safety_factor_m Module

Computes safety factor N.B. This module is currently axisymmetric - can only calculate pitch and safety factor for 2D equilibria PHITEMP parameter needed for equilibrium interface


Uses

  • module~~safety_factor_m~~UsesGraph module~safety_factor_m safety_factor_m dop853_constants dop853_constants module~safety_factor_m->dop853_constants dop853_module dop853_module module~safety_factor_m->dop853_module module~comm_handling_m comm_handling_m module~safety_factor_m->module~comm_handling_m module~constants_m constants_m module~safety_factor_m->module~constants_m module~coords_polar_m coords_polar_m module~safety_factor_m->module~coords_polar_m module~equilibrium_m equilibrium_m module~safety_factor_m->module~equilibrium_m module~precision_m precision_m module~safety_factor_m->module~precision_m module~screen_io_m screen_io_m module~safety_factor_m->module~screen_io_m mpi mpi module~comm_handling_m->mpi module~constants_m->module~precision_m module~coords_polar_m->module~comm_handling_m module~coords_polar_m->module~constants_m module~coords_polar_m->module~equilibrium_m module~coords_polar_m->module~precision_m module~coords_polar_m->module~screen_io_m module~root_finding_m root_finding_m module~coords_polar_m->module~root_finding_m module~slab_equilibrium_m slab_equilibrium_m module~coords_polar_m->module~slab_equilibrium_m module~equilibrium_m->module~precision_m iso_c_binding iso_c_binding module~precision_m->iso_c_binding iso_fortran_env iso_fortran_env module~precision_m->iso_fortran_env module~precision_m->mpi netcdf netcdf module~precision_m->netcdf module~screen_io_m->module~precision_m module~screen_io_m->iso_fortran_env module~screen_io_m->netcdf module~root_finding_m->module~precision_m module~slab_equilibrium_m->module~equilibrium_m module~slab_equilibrium_m->module~precision_m module~slab_equilibrium_m->module~screen_io_m module~descriptors_m descriptors_m module~slab_equilibrium_m->module~descriptors_m module~params_equi_slab_m params_equi_slab_m module~slab_equilibrium_m->module~params_equi_slab_m module~descriptors_m->module~screen_io_m module~params_equi_slab_m->module~precision_m module~params_equi_slab_m->module~screen_io_m module~params_equi_slab_m->iso_fortran_env module~error_handling_m error_handling_m module~params_equi_slab_m->module~error_handling_m module~status_codes_m status_codes_m module~params_equi_slab_m->module~status_codes_m module~error_handling_m->module~comm_handling_m module~error_handling_m->module~precision_m module~error_handling_m->module~screen_io_m module~error_handling_m->mpi module~error_handling_m->netcdf module~error_handling_m->module~status_codes_m

Functions

public function safety_factor(equi, rho)

Compute safety factor q(rho)

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout), target :: equi

Equilibrium defining the field line

real(kind=FP), intent(in) :: rho

Flux surface label

Return Value real(kind=fp)


Subroutines

public subroutine solout_none(me, nr, xold, x, y, irtrn, xout)

An empty function needed in order to run the field line tracer

Arguments

Type IntentOptional Attributes Name
class(dop853_pitch_t), intent(inout) :: me

Instance of the type

integer, intent(in) :: nr

Grid point (0,1,...)

real(kind=DP), intent(in) :: xold

The preceding grid point

real(kind=DP), intent(in) :: x

Current grid point

real(kind=DP), intent(in), dimension(:) :: y

State vector [size n]

integer, intent(inout) :: irtrn

Serves to interrupt the integration, if irtrn is set <0

real(kind=DP), intent(out) :: xout

Can be used for efficient intermediate output