Forces recalculation of coefficients in collision operator when timestep changes.
subroutine finish_collisions
implicit none
! This is a bit of a hack to make sure that we get the correct vnmult
! value during a timestep change. Whilst we do restore vnmult from the
! restart file, this unfortunately doesn't happen until after we've initialised
! the collision operator so we choose to store this in vnm_init, which is
! where we get our initial value of vnmult from anyway.
vnm_init = vnmult
vnmult = -1.0
initialized = .false.
if (allocated(c_rate)) deallocate (c_rate)
if (allocated(z0)) deallocate (z0, w0, s0)
if (allocated(bz0)) deallocate (bz0, bw0, bs0)
if (allocated(vnew)) deallocate (vnew, vnew_s, vnew_D, vnew_E, delvnew)
if (allocated(vnewh)) deallocate (vnewh)
if (allocated(pitch_weights)) deallocate(pitch_weights)
if(use_le_layout) then
if (allocated(c1le)) then
deallocate (c1le, betaale, qle)
if (heating) deallocate (d1le, h1le)
end if
if (allocated(ec1le)) deallocate (ec1le, ebetaale, eqle)
if (allocated(s0le)) deallocate(s0le)
if (allocated(w0le)) deallocate(w0le)
if (allocated(z0le)) deallocate(z0le)
if (allocated(aj0le)) deallocate(aj0le)
if (allocated(vperp_aj1le)) deallocate(vperp_aj1le)
if (allocated(vpa_aj0_le)) deallocate(vpa_aj0_le)
if (allocated(bs0le)) deallocate(bs0le)
if (allocated(bw0le)) deallocate(bw0le)
if (allocated(bz0le)) deallocate(bz0le)
else
if (allocated(c1)) then
deallocate (c1, betaa, ql)
if (heating) deallocate (d1, h1)
end if
if (allocated(ec1)) deallocate (ec1, ebetaa, eql)
end if
if (allocated(vpdiff)) deallocate (vpdiff)
if (allocated(vpdiffle)) deallocate (vpdiffle)
if (allocated(dtot)) deallocate (dtot, fdf, fdb)
call collisions_config%reset()
end subroutine finish_collisions