@brief Subroutine that frees memory allocated for PSPLINE interpolants.
@param[in] params Core KORC simulation parameters.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(KORC_PARAMS), | intent(in) | :: | params |
subroutine finalize_interpolants(params)
TYPE(KORC_PARAMS), INTENT(IN) :: params
if ((params%field_model(1:8) .EQ. 'EXTERNAL').or. &
(params%field_eval.eq.'interp')) then
if (params%mpi_params%rank .EQ. 0) then
write(output_unit_write,'("* * * * FINALIZING FIELD INTERPOLANT * * * *")')
end if
if (EZspline_allocated(bfield_3d%R)) call Ezspline_free(bfield_3d%R, ezerr)
if (EZspline_allocated(bfield_3d%PHI)) &
call Ezspline_free(bfield_3d%PHI,ezerr)
if (EZspline_allocated(bfield_3d%Z)) call Ezspline_free(bfield_3d%Z, ezerr)
if (EZspline_allocated(bfield_2d%A)) call Ezspline_free(bfield_2d%A, ezerr)
if (EZspline_allocated(bfield_2d%R)) call Ezspline_free(bfield_2d%R, ezerr)
if (EZspline_allocated(bfield_2d%PHI)) &
call Ezspline_free(bfield_2d%PHI,ezerr)
if (EZspline_allocated(bfield_2d%Z)) call Ezspline_free(bfield_2d%Z, ezerr)
if (EZspline_allocated(gradB_2d%R)) call Ezspline_free(gradB_2d%R, ezerr)
if (EZspline_allocated(gradB_2d%PHI)) &
call Ezspline_free(gradB_2d%PHI, ezerr)
if (EZspline_allocated(gradB_2d%Z)) call Ezspline_free(gradB_2d%Z, ezerr)
if (EZspline_allocated(curlb_2d%R)) call Ezspline_free(curlb_2d%R, ezerr)
if (EZspline_allocated(curlb_2d%PHI)) &
call Ezspline_free(curlb_2d%PHI, ezerr)
if (EZspline_allocated(gradB_3d%R)) call Ezspline_free(gradB_3d%R, ezerr)
if (EZspline_allocated(gradB_3d%PHI)) &
call Ezspline_free(gradB_3d%PHI, ezerr)
if (EZspline_allocated(gradB_3d%Z)) call Ezspline_free(gradB_3d%Z, ezerr)
if (EZspline_allocated(curlb_3d%R)) call Ezspline_free(curlb_3d%R, ezerr)
if (EZspline_allocated(curlb_3d%PHI)) &
call Ezspline_free(curlb_3d%PHI, ezerr)
if (EZspline_allocated(curlb_3d%Z)) call Ezspline_free(curlb_3d%Z, ezerr)
if (ALLOCATED(profiles_domain%FLAG2D)) DEALLOCATE(profiles_domain%FLAG2D)
if (ALLOCATED(profiles_domain%FLAG3D)) DEALLOCATE(profiles_domain%FLAG3D)
if (params%mpi_params%rank .EQ. 0) then
write(output_unit_write,'("* * * * FIELD INTERPOLANT FINALIZED * * * *")')
end if
end if
if (params%profile_model(1:8) .EQ. 'EXTERNAL') then
if (params%mpi_params%rank .EQ. 0) then
write(output_unit_write,'("* * * * FINALIZING PROFILE INTERPOLANT * * * *")')
end if
if (EZspline_allocated(profiles_3d%ne)) &
call Ezspline_free(profiles_3d%ne,ezerr)
if (EZspline_allocated(profiles_3d%Te)) &
call Ezspline_free(profiles_3d%Te,ezerr)
if (EZspline_allocated(profiles_3d%Zeff)) call Ezspline_free( &
profiles_3d%Zeff, ezerr)
if (EZspline_allocated(profiles_2d%ne)) &
call Ezspline_free(profiles_2d%ne,ezerr)
if (EZspline_allocated(profiles_2d%Te)) &
call Ezspline_free(profiles_2d%Te,ezerr)
if (EZspline_allocated(profiles_2d%Zeff)) call Ezspline_free( &
profiles_2d%Zeff, ezerr)
if (ALLOCATED(profiles_domain%FLAG2D)) DEALLOCATE(profiles_domain%FLAG2D)
if (ALLOCATED(profiles_domain%FLAG3D)) DEALLOCATE(profiles_domain%FLAG3D)
if (params%mpi_params%rank .EQ. 0) then
write(output_unit_write,'("* * * * PROFILE INTERPOLANT FINALIZED * * * *")')
end if
end if
end subroutine finalize_interpolants