FIXME : Add documentation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=:), | public, | allocatable | :: | type_name |
Name of the specific implementation |
||
logical, | public | :: | initialised | = | .false. |
Has this instance been initialised |
|
logical, | public | :: | has_full_theta_range | = | .false. |
Does this implementation have the full or half theta grid? If only half then we assume up-down symmetry and use this to set gradients etc. |
|
integer, | public | :: | nr |
Typically the number of radial and theta grid points. |
|||
integer, | public | :: | nt |
Typically the number of radial and theta grid points. |
|||
real, | public | :: | psi_0 | ||||
real, | public | :: | psi_a | ||||
real, | public | :: | B_T | ||||
real, | public | :: | beta_0 | ||||
real, | public | :: | R_mag | ||||
real, | public | :: | Z_mag | ||||
real, | public | :: | aminor | ||||
real, | public, | allocatable, dimension(:,:) | :: | R_psi |
2D map of co-ordinates to R, Z or B |
||
real, | public, | allocatable, dimension(:,:) | :: | Z_psi |
2D map of co-ordinates to R, Z or B |
||
real, | public, | allocatable, dimension(:,:) | :: | B_psi |
2D map of co-ordinates to R, Z or B |
||
real, | public, | allocatable, dimension(:,:) | :: | eqth |
2D maps of theta and eqpsi |
||
real, | public, | allocatable, dimension(:,:) | :: | eqpsi_2d |
2D maps of theta and eqpsi |
||
real, | public, | allocatable, dimension (:,:,:) | :: | dpcart |
Minor radius gradient in cylindrical coordinates |
||
real, | public, | allocatable, dimension (:,:,:) | :: | dtcart |
Theta gradient in cylindrical coordinates |
||
real, | public, | allocatable, dimension (:,:,:) | :: | dbcart |
B gradient in cylindrical coordinates |
||
real, | public, | allocatable, dimension (:,:,:) | :: | dpbish |
Minor radius gradient in Bishop coordinates |
||
real, | public, | allocatable, dimension (:,:,:) | :: | dtbish |
Theta gradient in Bishop coordinates |
||
real, | public, | allocatable, dimension (:,:,:) | :: | dbbish |
B gradient in Bishop coordinates |
||
real, | public, | allocatable, dimension(:) | :: | eqpsi |
Equilibrium psi (not normalised) and pressure grids |
||
real, | public, | allocatable, dimension(:) | :: | pressure |
Equilibrium psi (not normalised) and pressure grids |
||
real, | public, | allocatable, dimension(:) | :: | psi_bar |
Normalised psi, fp, q, beta, diameter and R_centre values on grid |
||
real, | public, | allocatable, dimension(:) | :: | fp |
Normalised psi, fp, q, beta, diameter and R_centre values on grid |
||
real, | public, | allocatable, dimension(:) | :: | qsf |
Normalised psi, fp, q, beta, diameter and R_centre values on grid |
||
real, | public, | allocatable, dimension(:) | :: | beta |
Normalised psi, fp, q, beta, diameter and R_centre values on grid |
||
real, | public, | allocatable, dimension(:) | :: | diam |
Normalised psi, fp, q, beta, diameter and R_centre values on grid |
||
real, | public, | allocatable, dimension(:) | :: | rc |
Normalised psi, fp, q, beta, diameter and R_centre values on grid |
||
character(len=EQFILE_LENGTH), | public | :: | filename | ||||
type(spline), | public | :: | btori_spl | ||||
type(spline), | public | :: | qsf_spl | ||||
type(spline), | public | :: | pressure_spl | ||||
type(spline), | public | :: | beta_spl | ||||
type(spline), | public | :: | diam_spl | ||||
type(spline), | public | :: | rcenter_spl |
procedure , public , :: initialise Subroutine | |
procedure , public , :: gradient Subroutine | Calculate the derivative of rp w.r.t. R and Z and return the modulus sqrt(drp/dR ^ 2 + drp/dZ^2). I.e. return |grad rp|. Parameters are: - rgrid: Submodule radial grid (r_circ for EFIT, rp otherwise) - theta: grid of theta - gradf(:,1): |grad psi| - gradf(:,2): 0.0 - char: if char = 'R', return |grad pressure| instead - char: if char = 'T', then return theta gradient in bishop form - gradf(:,1): (dtheta/dZ d rp/dR - dtheta/dR drp/dZ)/ |grad rp| - gradf(:,2): (dtheta/dR d rp/dR + dtheta/dZ drp/dZ)/ |grad rp| - rp: value of rp on the flux surface where we want the grad - nth: number of theta points - ntgrid: lower index of theta array is -ntgrid |
procedure , public , :: calculate_gradients Subroutine | |
procedure , public , :: rhofun => rhofun_null Function | |
procedure , public , :: derm Subroutine | |
procedure , public , :: invR Function | |
procedure , public , :: eqdbish Subroutine | |
procedure , public , :: eqdcart Subroutine | |
procedure , public , :: dealloc_common_arrays Subroutine | |
procedure , public , :: alloc_common_arrays Subroutine | |
procedure , public , :: hahm_burrell Subroutine | |
procedure , public , :: dealloc_arrays Subroutine | |
procedure , public , :: alloc_arrays Subroutine | |
procedure , public , :: alloc_special_arrays => alloc_special_arrays_null Subroutine | |
procedure , public , :: dealloc_special_arrays => dealloc_special_arrays_null Subroutine | |
procedure , public , :: finalise => finalise_eqfile Subroutine | |
procedure , public , :: finish_setup => finish_setup_eqfile Subroutine | |
procedure , public , :: setup_special_splines => setup_special_splines_eqfile_null Subroutine | |
procedure , public , :: delete_special_splines => delete_special_splines_eqfile_null Subroutine | |
procedure , public , :: setup_splines => setup_splines_eqfile Subroutine | |
procedure , public , :: delete_splines => delete_splines_eqfile Subroutine | |
procedure , public , :: dbtori => dbtori_eqfile Function | |
procedure , public , :: btori => btori_eqfile Function | |
procedure , public , :: betafun => betafun_eqfile Function | |
procedure , public , :: qfun => qfun_eqfile Function | |
procedure , public , :: dpfun => dpfun_eqfile Function | |
procedure , public , :: pfun => pfun_eqfile Function | |
procedure , public , :: rcenter => rcenter_eqfile Function | |
procedure , public , :: diameter => diameter_eqfile Function | |
procedure , public , :: rfun => psi_eqfile Function | |
procedure , public , :: psi => psi_eqfile Function | |
procedure , public , :: zpos => zpos_eqfile Function | |
procedure , public , :: rpos => rpos_eqfile Function | |
procedure , public , :: eqitem => eqitem_eqfile Function | |
procedure , public , :: read_and_set Subroutine |
FIXME : Add documentation Not really the diameter in this case. Instead, return the normalized minor radius, measured inside the ring, in the plane of the ring, starting at the ring and going inward.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ideq_type), | intent(inout) | :: | self | |||
type(geo_input_type), | intent(in) | :: | inputs |