flux_surface_type Derived Type

type, public :: flux_surface_type

Helper type to wrap up some flux surface specific variables for analytic equilibrium type.


Contents

Source Code


Components

Type Visibility Attributes Name Initial
real, public :: Rmaj

Flux surface major radius, , input variable: Rmaj

real, public :: R_geo

Location of reference magnetic field, , input variable: R_geo

real, public :: r

Minor radius, , input variable: rhoc

real, public :: dr

Step size for radial derivatives, , input variable: delrho

real, public :: aSurf

Minor radius of shaping surface, , input variable: aSurf

real, public :: sHorz

Horizontal Shafranov shift, , input variable: shift, Raxis

real, public :: sVert

Vertical Shafranov shift, , input variable: shiftVert, Zaxis

real, public :: delm

First shaping mode strength, , input variable: akappa, delta2, deltam

real, public :: deln

Second shaping mode strength, , input variable: tri, delta3, deltan

real, public :: delmp

First shaping mode derivative, , input variable: akappri, deltampri

real, public :: delnp

Second shaping mode derivative, , input variable: tripri, deltanpri

real, public :: thm

First shaping mode tilt angle, , input variable: thetak, theta2, thetam

real, public :: thn

Second shaping mode tilt angle, , input variable: thetad, theta2, thetan

real, public :: q

Safety factor, , input variable: qinp

real, public :: shat

Magnetic shear, , input variable: s_hat_input

integer, public :: nt

Number of points in theta, input variable: ntheta

integer, public :: geoType

Geometry specification type, input variable: geoType

integer, public :: mMode

The first poloidal mode number, input variable: mMode

integer, public :: nMode

The second poloidal mode number, input variable: nMode

integer, public :: n_mxh

Number of moments for MXH equilibrium, input variable: n_mxh

real, public :: c0_mxh

Zeroth cosine moment for MXH equilibrium, input variable: c0_mxh

real, public, dimension(mxh_max_moments) :: c_mxh

Cosine moments for MXH equilibrium, input variable: c_mxh

real, public, dimension(mxh_max_moments) :: s_mxh

Sine moments for MXH equilibrium, input variable: s_mxh

real, public, dimension(mxh_max_moments) :: dc_mxh_dr

Radial derivatives of cosine moments for MXH equilibrium, input variable: dc_mxh_dr

real, public, dimension(mxh_max_moments) :: ds_mxh_dr

Radial derivatives of sine moments for MXH equilibrium, input variable: ds_mxh_dr


Constructor

public interface flux_surface_type

  • public function new_flux_surface_type(geoType, Rmaj, R_geo, r, dr, aSurf, sHorz, sVert, delm, deln, delmp, delnp, thm, thn, q, shat, nt, mMode, nMode, n_mxh, c0_mxh, c_mxh, s_mxh, dc_mxh_dr, ds_mxh_dr) result(self)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: geoType
    real, intent(in), optional :: Rmaj
    real, intent(in), optional :: R_geo
    real, intent(in), optional :: r
    real, intent(in), optional :: dr
    real, intent(in), optional :: aSurf
    real, intent(in), optional :: sHorz
    real, intent(in), optional :: sVert
    real, intent(in), optional :: delm
    real, intent(in), optional :: deln
    real, intent(in), optional :: delmp
    real, intent(in), optional :: delnp
    real, intent(in), optional :: thm
    real, intent(in), optional :: thn
    real, intent(in), optional :: q
    real, intent(in), optional :: shat
    integer, intent(in), optional :: nt
    integer, intent(in), optional :: mMode
    integer, intent(in), optional :: nMode
    integer, intent(in), optional :: n_mxh
    real, intent(in), optional :: c0_mxh
    real, intent(in), optional, dimension(mxh_max_moments) :: c_mxh
    real, intent(in), optional, dimension(mxh_max_moments) :: s_mxh
    real, intent(in), optional, dimension(mxh_max_moments) :: dc_mxh_dr
    real, intent(in), optional, dimension(mxh_max_moments) :: ds_mxh_dr

    Return Value type(flux_surface_type)


Source Code

  type :: flux_surface_type
     !> Flux surface major radius, \(R_{0N}\), input variable: `Rmaj`
     real :: Rmaj
     !> Location of reference magnetic field, \(R_{geoN}\), input variable: `R_geo`
     real :: R_geo
     !> Minor radius, \(r_{\psi N}\), input variable: `rhoc`
     real :: r
     !> Step size for radial derivatives, \(\Delta r_{\psi N}\), input variable: `delrho`
     real :: dr
     !> Minor radius of shaping surface, \(a_{\psi N}\), input variable: `aSurf`
     real :: aSurf
     !> Horizontal Shafranov shift, \(dR_{0N}/dr_{\psi N}\), input variable: `shift`, `Raxis`
     real :: sHorz
     !> Vertical Shafranov shift, \(dZ_{0N}/dr_{\psi N}\), input variable: `shiftVert`, `Zaxis`
     real :: sVert
     !> First shaping mode strength, \(\Delta_m\), input variable: `akappa`, `delta2`, `deltam`
     real :: delm
     !> Second shaping mode strength, \(\Delta_n\), input variable: `tri`, `delta3`, `deltan`
     real :: deln
     !> First shaping mode derivative, \(d\Delta_m/dr_{\psi N}\), input variable: `akappri`, `deltampri`
     real :: delmp
     !> Second shaping mode derivative, \(d\Delta_n/dr_{\psi N}\), input variable: `tripri`, `deltanpri`
     real :: delnp
     !> First shaping mode tilt angle, \(\theta_m\), input variable: `thetak`, `theta2`, `thetam`
     real :: thm
     !> Second shaping mode tilt angle, \(\theta_n\), input variable: `thetad`, `theta2`, `thetan`
     real :: thn
     !> Safety factor, \(q\), input variable: `qinp`
     real :: q
     !> Magnetic shear, \(\hat{s}\), input variable: `s_hat_input`
     real :: shat
     !> Number of points in theta, input variable: `ntheta`
     integer :: nt
     !> Geometry specification type, input variable: `geoType`
     integer :: geoType
     !> The first poloidal mode number, input variable: `mMode`
     integer :: mMode
     !> The second poloidal mode number, input variable: `nMode`
     integer :: nMode
     !> Number of moments for MXH equilibrium, input variable: `n_mxh`
     integer :: n_mxh
     !> Zeroth cosine moment for MXH equilibrium, input variable: `c0_mxh`
     real :: c0_mxh
     !> Cosine moments for MXH equilibrium, input variable: `c_mxh`
     real, dimension(mxh_max_moments) :: c_mxh
     !> Sine moments for MXH equilibrium, input variable: `s_mxh`
     real, dimension(mxh_max_moments) :: s_mxh
     !> Radial derivatives of cosine moments for MXH equilibrium, input variable: `dc_mxh_dr`
     real, dimension(mxh_max_moments) :: dc_mxh_dr
     !> Radial derivatives of sine moments for MXH equilibrium, input variable: `ds_mxh_dr`
     real, dimension(mxh_max_moments) :: ds_mxh_dr
  end type flux_surface_type