FIELDS Derived Type

type, public :: FIELDS


Inherits

type~~fields~~InheritsGraph type~fields FIELDS type~v_field_3d V_FIELD_3D type~fields->type~v_field_3d E_3D, B_3D, dBdR_3D, dBdPHI_3D, dBdZ_3D, gradB_3D, curlb_3D type~a_field A_FIELD type~fields->type~a_field AB type~v_field_1d V_FIELD_1D type~fields->type~v_field_1d E_SC_1D, J0_SC_1D, J1_SC_1D, J2_SC_1D, J3_SC_1D, A1_SC_1D, A2_SC_1D, A3_SC_1D type~v_field_2d V_FIELD_2D type~fields->type~v_field_2d E_2D, B_2D, B1Re_2D, B1Im_2D, dBdR_2D, dBdPHI_2D, dBdZ_2D, gradB_2D, curlb_2D type~mesh MESH type~fields->type~mesh X type~v_field_2dx V_FIELD_2DX type~fields->type~v_field_2dx B1Re_2DX, E1Im_2DX, E1Re_2DX, B1Im_2DX

Contents

Source Code


Components

TypeVisibility AttributesNameInitial
type(A_FIELD), public :: AB

An instance of the KORC derived data type A_FIELD.

type(V_FIELD_3D), public :: E_3D

KORC 3-D vector field of the pre-computed electric field.

type(V_FIELD_3D), public :: B_3D
type(V_FIELD_3D), public :: dBdR_3D
type(V_FIELD_3D), public :: dBdPHI_3D
type(V_FIELD_3D), public :: dBdZ_3D

KORC 3-D vector field of the pre-computed magnetic field.

type(V_FIELD_2D), public :: E_2D

KORC 2-D vector field of the pre-computed electric field.

type(V_FIELD_2D), public :: B_2D
type(V_FIELD_2D), public :: B1Re_2D
type(V_FIELD_2D), public :: B1Im_2D
type(V_FIELD_2DX), public :: B1Re_2DX
type(V_FIELD_2DX), public :: E1Im_2DX
type(V_FIELD_2DX), public :: E1Re_2DX
type(V_FIELD_2DX), public :: B1Im_2DX
type(V_FIELD_2D), public :: dBdR_2D
type(V_FIELD_2D), public :: dBdPHI_2D
type(V_FIELD_2D), public :: dBdZ_2D

KORC 3-D vector field of the pre-computed magnetic field.

type(V_FIELD_2D), public :: gradB_2D
type(V_FIELD_3D), public :: gradB_3D

KORC 3-D vector field of the gradient of the magnitude of the pre-computed magnetic field.

type(V_FIELD_2D), public :: curlb_2D
type(V_FIELD_3D), public :: curlb_3D

KORC 3-D vector field of the curl of the unit vector in the direction of the pre-computed magnetic field.

type(V_FIELD_1D), public :: E_SC_1D
type(V_FIELD_1D), public :: J0_SC_1D
type(V_FIELD_1D), public :: J1_SC_1D
type(V_FIELD_1D), public :: J2_SC_1D
type(V_FIELD_1D), public :: J3_SC_1D
type(V_FIELD_1D), public :: A1_SC_1D
type(V_FIELD_1D), public :: A2_SC_1D
type(V_FIELD_1D), public :: A3_SC_1D
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: r_1D
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: PSIP_1D
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: dMagPsiSqdPsiP
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: ddMagPsiSqdPsiPSq
type(MESH), public :: X

An instance of the KORC derived type MESH.

character(len=MAX_STRING_LENGTH), public :: E_model

Name for dynamical, analytic, electric field model to be added to

real(kind=rp), public :: E_dyn
real(kind=rp), public :: E_pulse
real(kind=rp), public :: E_width
character(len=30), public :: E_profile
real(kind=rp), public :: PSIP_min
real(kind=rp), public :: PSIp_lim
real(kind=rp), public :: PSIp_0
real(kind=rp), public :: AMP
real(kind=rp), public :: MARS_AMP_Scale
real(kind=rp), public :: AORSA_AMP_Scale
real(kind=rp), public :: AORSA_freq
real(kind=rp), public :: AORSA_nmode

interpolated E field

character(len=30), public :: Analytic_IWL
integer, public :: ntiles
real(kind=rp), public :: circumradius
integer, public :: res_double
integer, public, DIMENSION(3):: dims

Dimensions of the KORC vector field. dims=(number of grid nodes along , number of grid nodes along , number of grid nodes along ).

integer, public :: dim_1D
integer, public :: subcycle_E_SC
real(kind=rp), public :: dt_E_SC
real(kind=rp), public :: Ip_exp
real(kind=rp), public :: Ip0
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: PSIp
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: PSIp_FS
real(kind=rp), public, DIMENSION(:,:,:), ALLOCATABLE:: PSIp3D

2-D array for storing the data of the poloidal magnetic flux.

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: FLAG2D

2-D array defining the simulation domain where pre-computed data exist.

real(kind=rp), public, DIMENSION(:,:,:), ALLOCATABLE:: FLAG3D

3-D array defining the simulation domain where pre-computed data exist.

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: LCFS2D
real(kind=rp), public, DIMENSION(:,:,:), ALLOCATABLE:: LCFS3D
real(kind=rp), public :: Eo

Characteristic electric field.

real(kind=rp), public :: Bo

Characteristic magnetic field.

real(kind=rp), public :: Ro

Radial position of the magnetic axis.

real(kind=rp), public :: Zo

position of the magnetic axis.

logical, public :: Bfield

Flag to indicate whether a pre-computed magnetic field will be used (Bfield=T) or not (Bfield=F).

logical, public :: dBfield

Flag to indicate whether a pre-computed magnetic field will be used (Bfield=T) or not (Bfield=F).

logical, public :: Bflux
logical, public :: Bflux3D
logical, public :: B1field
logical, public :: E1field

Flag to indicate whether a pre-computed poloidal magnetic flux will be used (Bflux=T) or not (Bflux=F).

logical, public :: Efield

Flag to indicate whether a pre-computed electric field will be used (Efield=T) or not (Efield=F).

logical, public :: Bfield_in_file

Flag to indicate if a pre-computed magnetic field is in the input file.

logical, public :: dBfield_in_file
logical, public :: B1field_in_file
logical, public :: E1field_in_file

Flag to indicate if a pre-computed magnetic field is in the input file.

logical, public :: Bflux_in_file

Flag to indicate if a pre-computed poloidal magnetic flux is in the input file.

logical, public :: Efield_in_file

Flag to indicate if a pre-computed electric field is in the input file.

logical, public :: axisymmetric_fields

Flag to indicate if the pre-computed fields are axisymmetric.

logical, public :: Dim2x1t
logical, public :: E_2x1t
logical, public :: ReInterp_2x1t
real(kind=rp), public :: t0_2x1t
integer, public :: ind0_2x1t
integer, public :: ind_2x1t
integer, public :: isrc
integer(kind=C_INT), public :: FIO_B

An M3D-C1 magnetic field.

integer(kind=C_INT), public :: FIO_E

An M3D-C1 Electric field.

integer(kind=C_INT), public :: FIO_A

An M3D-C1 vector potential.

real(kind=c_double), public :: time0
real(kind=c_double), public :: time1
real(kind=rp), public :: psip_conv
logical, public :: useLCFS

Source Code

  TYPE, PUBLIC :: FIELDS
     !! @note Derived type with all the variables and data of analytical 
     !! and pre-computed electric and magnetic fields. @endnote

     TYPE(A_FIELD) 	 			:: AB 
     !! An instance of the KORC derived data type A_FIELD.
     TYPE(V_FIELD_3D) 				:: E_3D 
     !! KORC 3-D vector field of the pre-computed electric field.
     TYPE(V_FIELD_3D) 				:: B_3D
     TYPE(V_FIELD_3D) 				:: dBdR_3D
     TYPE(V_FIELD_3D) 				:: dBdPHI_3D
     TYPE(V_FIELD_3D) 				:: dBdZ_3D 
     !! KORC 3-D vector field of the pre-computed magnetic field.
     TYPE(V_FIELD_2D) 				:: E_2D 
     !! KORC 2-D vector field of the pre-computed electric field.
     TYPE(V_FIELD_2D) 				:: B_2D
     TYPE(V_FIELD_2D) 				:: B1Re_2D
     TYPE(V_FIELD_2D) 				:: B1Im_2D
     TYPE(V_FIELD_2DX) 				:: B1Re_2DX
     TYPE(V_FIELD_2DX) 				:: E1Im_2DX
     TYPE(V_FIELD_2DX) 				:: E1Re_2DX
     TYPE(V_FIELD_2DX) 				:: B1Im_2DX
     TYPE(V_FIELD_2D) 				:: dBdR_2D
     TYPE(V_FIELD_2D) 				:: dBdPHI_2D
     TYPE(V_FIELD_2D) 				:: dBdZ_2D 
     !! KORC 3-D vector field of the pre-computed magnetic field.
     TYPE(V_FIELD_2D) 				:: gradB_2D
     TYPE(V_FIELD_3D) 				:: gradB_3D 
     !! KORC 3-D vector field of the gradient of the magnitude of the
     !! pre-computed magnetic field.
     TYPE(V_FIELD_2D) 				:: curlb_2D
     TYPE(V_FIELD_3D) 				:: curlb_3D 
     !! KORC 3-D vector field of the curl of the unit vector in the
     !! direction of the pre-computed magnetic field.
     TYPE(V_FIELD_1D) 				:: E_SC_1D
     TYPE(V_FIELD_1D) 				:: J0_SC_1D
     TYPE(V_FIELD_1D) 				:: J1_SC_1D
     TYPE(V_FIELD_1D) 				:: J2_SC_1D
     TYPE(V_FIELD_1D) 				:: J3_SC_1D
     TYPE(V_FIELD_1D) 				:: A1_SC_1D
     TYPE(V_FIELD_1D) 				:: A2_SC_1D
     TYPE(V_FIELD_1D) 				:: A3_SC_1D
     
     REAL(rp), DIMENSION(:), ALLOCATABLE :: r_1D
     REAL(rp), DIMENSION(:), ALLOCATABLE :: PSIP_1D
     REAL(rp), DIMENSION(:), ALLOCATABLE :: dMagPsiSqdPsiP
     REAL(rp), DIMENSION(:), ALLOCATABLE :: ddMagPsiSqdPsiPSq
     TYPE(MESH) 		 		:: X 
     !! An instance of the KORC derived type MESH.
     CHARACTER(MAX_STRING_LENGTH) :: E_model
     !! Name for dynamical, analytic, electric field model to be added to
     REAL(rp)  :: E_dyn
     REAL(rp)  :: E_pulse
     REAL(rp)  :: E_width
     CHARACTER(30) :: E_profile
     REAL(rp)  :: PSIP_min
     REAL(rp)  :: PSIp_lim,PSIp_0
     REAL(rp)  :: AMP
     REAL(rp)  :: MARS_AMP_Scale
     REAL(rp)  :: AORSA_AMP_Scale
     REAL(rp)  :: AORSA_freq
     REAL(rp)  :: AORSA_nmode
     !! interpolated E field
     CHARACTER(30) :: Analytic_IWL
     INTEGER :: ntiles
     REAL(rp) :: circumradius
     INTEGER 			:: res_double
     INTEGER, DIMENSION(3) 			:: dims 
     !! Dimensions of the KORC vector field. dims=(number of grid 
     !! nodes along \(R\), number of grid nodes along \(\phi\), 
     !! number of grid nodes along \(Z\)).
     INTEGER 			:: dim_1D
     INTEGER 			:: subcycle_E_SC
     REAL(rp)  :: dt_E_SC,Ip_exp,Ip0
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: PSIp
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: PSIp_FS
     REAL(rp), DIMENSION(:,:,:), ALLOCATABLE 	:: PSIp3D 
     !! 2-D array for storing the data of the poloidal magnetic flux.
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: FLAG2D 
     !! 2-D array defining the simulation domain where pre-computed data exist.
     REAL(rp), DIMENSION(:,:,:), ALLOCATABLE      :: FLAG3D 
     !! 3-D array defining the simulation domain where pre-computed data exist.
     REAL(rp), DIMENSION(:,:), ALLOCATABLE 	:: LCFS2D
     REAL(rp), DIMENSION(:,:,:), ALLOCATABLE    :: LCFS3D 
     REAL(rp) 					:: Eo 
     !! Characteristic electric field.
     REAL(rp) 					:: Bo 
     !! Characteristic magnetic field.
     REAL(rp) 					:: Ro 
     !! Radial position of the magnetic axis.
     REAL(rp) 					:: Zo 
     !! \(Z\) position of the magnetic axis.
     LOGICAL 					:: Bfield 
     !! Flag to indicate whether a pre-computed magnetic field will be
     !! used (Bfield=T) or not (Bfield=F).
     LOGICAL 					:: dBfield 
     !! Flag to indicate whether a pre-computed magnetic field will be
     !! used (Bfield=T) or not (Bfield=F).
     LOGICAL 					:: Bflux
     LOGICAL 					:: Bflux3D
     LOGICAL 					:: B1field
     LOGICAL 					:: E1field
     !! Flag to indicate whether a pre-computed poloidal magnetic flux will
     !! be used (Bflux=T) or not (Bflux=F).
     LOGICAL 					:: Efield 
     !! Flag to indicate whether a pre-computed electric field will be used
     !! (Efield=T) or not (Efield=F).
     LOGICAL 					:: Bfield_in_file 
     !! Flag to indicate if a pre-computed magnetic field is in the input file.
     LOGICAL 					:: dBfield_in_file
     LOGICAL 					:: B1field_in_file
     LOGICAL 					:: E1field_in_file 
     !! Flag to indicate if a pre-computed magnetic field is in the input file.
     LOGICAL 					:: Bflux_in_file 
     !! Flag to indicate if a pre-computed poloidal magnetic flux is in the
     !! input file.
     LOGICAL 					:: Efield_in_file 
     !! Flag to indicate if a pre-computed electric field is in the input file.
     LOGICAL 					:: axisymmetric_fields 
     !! Flag to indicate if the pre-computed fields are axisymmetric.
     LOGICAL 					:: Dim2x1t
     LOGICAL 					:: E_2x1t,ReInterp_2x1t
     REAL(rp)  :: t0_2x1t
     INTEGER  :: ind0_2x1t,ind_2x1t
#ifdef FIO
     INTEGER  :: isrc
     INTEGER (C_INT)                         :: FIO_B
     !! An M3D-C1 magnetic field.
     INTEGER (C_INT)                         :: FIO_E
     !! An M3D-C1 Electric field.
     INTEGER (C_INT)                         :: FIO_A
     !! An M3D-C1 vector potential.
     real(c_double)  ::  time0,time1
#endif
     REAL(rp)  :: psip_conv
     LOGICAL :: useLCFS
     
  END TYPE FIELDS