korc_types Module


Uses

  • module~~korc_types~~UsesGraph module~korc_types korc_types iso_c_binding iso_c_binding module~korc_types->iso_c_binding

Used by

  • module~~korc_types~~UsedByGraph module~korc_types korc_types module~korc_initialize korc_initialize module~korc_initialize->module~korc_types module~korc_input korc_input module~korc_initialize->module~korc_input module~korc_rnd_numbers korc_rnd_numbers module~korc_initialize->module~korc_rnd_numbers module~korc_velocity_distribution korc_velocity_distribution module~korc_initialize->module~korc_velocity_distribution module~korc_coords korc_coords module~korc_initialize->module~korc_coords module~korc_hdf5 korc_HDF5 module~korc_initialize->module~korc_hdf5 module~korc_hpc korc_hpc module~korc_initialize->module~korc_hpc module~korc_spatial_distribution korc_spatial_distribution module~korc_initialize->module~korc_spatial_distribution module~korc_fields korc_fields module~korc_initialize->module~korc_fields module~korc_constants korc_constants module~korc_initialize->module~korc_constants module~korc_input->module~korc_types module~korc_input->module~korc_hpc module~korc_rnd_numbers->module~korc_types module~korc_energy_pdfs korc_energy_pdfs module~korc_energy_pdfs->module~korc_types module~korc_energy_pdfs->module~korc_input module~korc_energy_pdfs->module~korc_hdf5 module~korc_energy_pdfs->module~korc_hpc module~korc_energy_pdfs->module~korc_constants module~korc_experimental_pdf korc_experimental_pdf module~korc_experimental_pdf->module~korc_types module~korc_experimental_pdf->module~korc_input module~korc_experimental_pdf->module~korc_rnd_numbers module~korc_random korc_random module~korc_experimental_pdf->module~korc_random module~korc_experimental_pdf->module~korc_coords module~korc_experimental_pdf->module~korc_hdf5 module~korc_experimental_pdf->module~korc_hpc module~korc_experimental_pdf->module~korc_fields module~korc_interp korc_interp module~korc_experimental_pdf->module~korc_interp module~korc_experimental_pdf->module~korc_constants module~korc_velocity_distribution->module~korc_types module~korc_velocity_distribution->module~korc_rnd_numbers module~korc_velocity_distribution->module~korc_energy_pdfs module~korc_velocity_distribution->module~korc_experimental_pdf module~korc_velocity_distribution->module~korc_hdf5 module~korc_avalanche korc_avalanche module~korc_velocity_distribution->module~korc_avalanche module~korc_velocity_distribution->module~korc_hpc module~korc_hammersley_generator korc_hammersley_generator module~korc_velocity_distribution->module~korc_hammersley_generator module~korc_velocity_distribution->module~korc_fields module~korc_simple_equilibrium_pdf korc_simple_equilibrium_pdf module~korc_velocity_distribution->module~korc_simple_equilibrium_pdf module~korc_velocity_distribution->module~korc_constants module~korc_finalize korc_finalize module~korc_finalize->module~korc_types module~korc_finalize->module~korc_hpc module~korc_profiles korc_profiles module~korc_finalize->module~korc_profiles module~korc_finalize->module~korc_fields module~korc_random->module~korc_types module~korc_coords->module~korc_types module~korc_coords->module~korc_constants module~korc_hdf5->module~korc_types module~korc_hdf5->module~korc_hpc module~korc_hdf5->module~korc_constants module~korc_avalanche->module~korc_types module~korc_avalanche->module~korc_input module~korc_avalanche->module~korc_coords module~korc_avalanche->module~korc_hdf5 module~korc_avalanche->module~korc_hpc module~korc_avalanche->module~korc_profiles module~korc_avalanche->module~korc_fields module~korc_avalanche->module~korc_constants module~korc_hpc->module~korc_types module~korc_profiles->module~korc_types module~korc_profiles->module~korc_input module~korc_profiles->module~korc_coords module~korc_profiles->module~korc_hdf5 module~korc_profiles->module~korc_hpc module~korc_profiles->module~korc_interp program~main main program~main->module~korc_types program~main->module~korc_initialize program~main->module~korc_input program~main->module~korc_finalize program~main->module~korc_hdf5 program~main->module~korc_hpc program~main->module~korc_profiles module~korc_ppusher korc_ppusher program~main->module~korc_ppusher module~korc_collisions korc_collisions program~main->module~korc_collisions program~main->module~korc_fields program~main->module~korc_interp module~korc_fio korc_fio program~main->module~korc_fio module~korc_units korc_units program~main->module~korc_units module~korc_hammersley_generator->module~korc_types module~korc_ppusher->module~korc_types module~korc_ppusher->module~korc_hpc module~korc_ppusher->module~korc_profiles module~korc_ppusher->module~korc_collisions module~korc_ppusher->module~korc_fields module~korc_ppusher->module~korc_interp module~korc_ppusher->module~korc_constants module~korc_collisions->module~korc_types module~korc_collisions->module~korc_input module~korc_collisions->module~korc_random module~korc_collisions->module~korc_hdf5 module~korc_collisions->module~korc_profiles module~korc_collisions->module~korc_fields module~korc_collisions->module~korc_interp module~korc_collisions->module~korc_fio module~korc_collisions->module~korc_constants module~korc_spatial_distribution->module~korc_types module~korc_spatial_distribution->module~korc_input module~korc_spatial_distribution->module~korc_rnd_numbers module~korc_spatial_distribution->module~korc_experimental_pdf module~korc_spatial_distribution->module~korc_random module~korc_spatial_distribution->module~korc_hdf5 module~korc_spatial_distribution->module~korc_avalanche module~korc_spatial_distribution->module~korc_hpc module~korc_spatial_distribution->module~korc_profiles module~korc_spatial_distribution->module~korc_hammersley_generator module~korc_spatial_distribution->module~korc_fields module~korc_spatial_distribution->module~korc_constants module~korc_fields->module~korc_types module~korc_fields->module~korc_input module~korc_fields->module~korc_coords module~korc_fields->module~korc_hdf5 module~korc_fields->module~korc_hpc module~korc_fields->module~korc_interp module~korc_interp->module~korc_types module~korc_interp->module~korc_rnd_numbers module~korc_interp->module~korc_coords module~korc_interp->module~korc_hpc module~korc_interp->module~korc_fio module~korc_fio->module~korc_types module~korc_fio->module~korc_input module~korc_fio->module~korc_hdf5 module~korc_units->module~korc_types module~korc_units->module~korc_input module~korc_units->module~korc_constants module~korc_simple_equilibrium_pdf->module~korc_types module~korc_simple_equilibrium_pdf->module~korc_input module~korc_simple_equilibrium_pdf->module~korc_hdf5 module~korc_simple_equilibrium_pdf->module~korc_hpc module~korc_simple_equilibrium_pdf->module~korc_constants module~korc_constants->module~korc_types proc~init_random_seed init_random_seed proc~init_random_seed->module~korc_random

Contents


Variables

TypeVisibility AttributesNameInitial
integer, public, parameter:: is =KIND(INT(1, 1))

Definition of 1 Byte (8 bits) Fortran KORC integer type.

integer, public, parameter:: ip =KIND(INT(1, 8))

Definition of 8 Bytes (64 bits) Fortran KORC integer type.

integer, public, parameter:: idef =KIND(1)

Definition of the default KORC integer type on the system where KORC is compiled.

integer, public, parameter:: rdef =KIND(1.0)

Definition of the default KORC real type on the system where KORC is compiled.

integer, public, parameter:: rp =KIND(0.d0)

Definition of the KORC double precision real type.

integer, public, parameter:: rp =KIND(1.0)

Definition of the KORC single precision real type.

real(kind=rp), public, parameter:: korc_zero =1.0E-15

Definition of the zero in KORC.

integer, public, parameter:: MAX_STRING_LENGTH =1000

Default length of a KORC_STRING variable.

integer, public, parameter:: default_unit_open =101

Default file unit for opening and reading from an external text file.

integer, public, parameter:: default_unit_write =201

Default file unit for opening and writing to external an external text file.

integer, public, parameter:: output_unit_write =202

Default file unit for opening and writing to external an external text file.


Derived Types

type, public :: KORC_STRING

Read more…

Components

TypeVisibility AttributesNameInitial
character(len=MAX_STRING_LENGTH), public :: str

type, public :: V_FIELD_3D

Read more…

Components

TypeVisibility AttributesNameInitial
real(kind=rp), public, DIMENSION(:,:,:), ALLOCATABLE:: R

component of the vector field variable.

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

component of the vector field variable.

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

component of the vector field variable.

type, public :: V_FIELD_2DX

Read more…

Components

TypeVisibility AttributesNameInitial
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: X

component of the vector field variable.

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

component of the vector field variable.

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

component of the vector field variable.

type, public :: V_FIELD_2D

Read more…

Components

TypeVisibility AttributesNameInitial
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: R

component of the vector field variable.

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

component of the vector field variable.

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

component of the vector field variable.

type, public :: V_FIELD_1D

Read more…

Components

TypeVisibility AttributesNameInitial
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: R

component of the vector field variable.

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

component of the vector field variable.

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

component of the vector field variable.

type, private :: KORC_MPI

Read more…

Components

TypeVisibility AttributesNameInitial
integer, public :: nmpi

Number of MPI processes.

integer, public :: nmpi_prev
integer, public :: rank

Rank in WORLD COMMON communicator.

integer, public :: rank_topo

Rank in mpi_topo communicator

integer, public :: mpi_topo

MPI communicator for a certain topology.

type, public :: CHARCS_PARAMS

Read more…

Components

TypeVisibility AttributesNameInitial
real(kind=rp), public :: time

Read more…
real(kind=rp), public :: time_r

Read more…
real(kind=rp), public :: velocity

Characteristic velocity. This is fixed to the speed of .

real(kind=rp), public :: length

Characteristic length scale calculated as times the relativistic time scale.

real(kind=rp), public :: mass

Characteristic particle mass. This is equal to the electron mass .

real(kind=rp), public :: charge

Characteristic particle charge. This is equal to the electron charge .

real(kind=rp), public :: density

Characteristic particle density. This is equal to , with the characteristic length.

real(kind=rp), public :: Eo

Characteristic electric field . Usually at the magnetic axis.

real(kind=rp), public :: Bo

Characteristic magnetic field . Usually at the magnetic axis.

real(kind=rp), public :: energy

Characteristic energy. This is equal to .

real(kind=rp), public :: pressure

Characteristic pressure.

Read more…
real(kind=rp), public :: temperature

Characteristic plasma temperature (Joules). This is equal to .

type, public :: KORC_PARAMS

Read more…

Components

TypeVisibility AttributesNameInitial
character(len=MAX_STRING_LENGTH), public :: path_to_inputs

Absolute path to KORC's input file.

character(len=MAX_STRING_LENGTH), public :: path_to_outputs

Absolute path to the outputs' folder.

integer, public :: num_omp_threads

Number of open MP threads per MPI process used in the simulation.

logical, public :: restart

Flag to indicate if the simulations proceeds (restart=T) or not (restart=F). Restart simulation that exited before simulation_time reached.

logical, public :: proceed

Flag to indicate if the simulations continues (proceed=T) or not (proceed=F). Append simulation results after previous simulation_time reached.

logical, public :: load_balance
logical, public :: reinit

Flag to begin a new simulation, reinitializing from restart file state

real(kind=rp), public :: simulation_time

Total simulation time in seconds.

real(kind=rp), public :: snapshot_frequency

Time between snapshots in time of the simulation.

real(kind=rp), public :: restart_overwrite_frequency

Time between overwrites of restart file in time of the simulation.

real(kind=rp), public :: dt

Time step in the simulation as a fraction of the relativistic electron gyro-period .

real(kind=rp), public :: time =0.0_rp

Current physical time in the simulation.

integer(kind=ip), public :: ito =0_ip

Initial time iteration in the simulation, this is different from zero in case is a restarting simulation.

integer(kind=ip), public :: it =0_ip

Current time iteration in the simulation, this is different from zero in case is a restarting simulation.

real(kind=rp), public :: init_time =0.0_rp

Time at the beginning of a run with proceed=T

integer(kind=ip), public :: t_steps
integer(kind=ip), public :: prev_iter_2x1t

Number of time steps needed for evolving the electrons up to "simulation_time".

integer(kind=ip), public :: t_skip
integer(kind=ip), public :: t_it_SC =1_ip
integer(kind=ip), public :: output_cadence
integer(kind=ip), public :: coll_per_dump
integer(kind=ip), public :: orbits_per_coll
real(kind=rp), public :: coll_per_dump_dt

Time iteration offset used to decide when the outputs are generated.

integer(kind=ip), public :: restart_output_cadence

Time iteration offset used to decide when the restart files are generated.

integer(kind=ip), public :: coll_cadence
integer(kind=ip), public :: num_snapshots

Number of snapshots in time for generating the output files.

integer, public :: num_species

Number of different populations of simulated relativistic electrons in KORC.

real(kind=rp), public :: minimum_particle_energy

Minimum allowed energy of simulated electrons.

Read more…
real(kind=rp), public :: minimum_particle_g

Minimum allowed relativistic factor of simulated electrons.

logical, public :: radiation

Flag to indicate if synchrotron radiation losses are included (radiation=T) or not (radiation=F).

logical, public :: collisions

Flag to indicate if collisionsare included (collisions=T) or not (collisions=F).

logical, public :: LargeCollisions
character(len=MAX_STRING_LENGTH), public :: GC_rad_model
character(len=MAX_STRING_LENGTH), public :: collisions_model

String with the name of the collisions model to be used in the simulation.

character(len=MAX_STRING_LENGTH), public :: bound_electron_model
character(len=MAX_STRING_LENGTH), public :: field_model
character(len=MAX_STRING_LENGTH), public :: profile_model

String with the name of the model for the fields and plasma profiles.

character(len=MAX_STRING_LENGTH), public :: magnetic_field_filename
character(len=MAX_STRING_LENGTH), public :: magnetic_field_directory
character(len=MAX_STRING_LENGTH), public :: magnetic_field_list
character(len=MAX_STRING_LENGTH), public, DIMENSION(:), ALLOCATABLE:: magnetic_field_filenames
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: time_of_filenames

String with the name of the model for the fields and plasma profiles.

character(len=MAX_STRING_LENGTH), public, DIMENSION(:), ALLOCATABLE:: outputs_list

List of electron variables to include in the outputs.

integer, public :: HDF5_error_handling

Flag to indicate whether we allow HDF5 to show warnings during runtime (HDF5_error_handling=1) or not (HDF5_error_handling=0)

type(KORC_MPI), public :: mpi_params

An instance of the KORC_MPI derived type.

type(CHARCS_PARAMS), public :: cpp

An instance of the CHARCS_PARAMS derived type.

logical, public :: FO_GC_compare
character(len=MAX_STRING_LENGTH), public :: orbit_model

String with the name of the orbit model ('FO' or 'GC').

character(len=MAX_STRING_LENGTH), public :: field_eval

String with the name of the field evaluation method for analytical fields ('interp' or 'eqn')

logical, public :: GC_coords

Flag to get_fields to control whether cartesian to cylindrical coordinate transformation needs to be performed

logical, public :: FokPlan

Flag to decouple spatial-dependence of evolution

logical, public :: SameRandSeed
logical, public :: SC_E
logical, public :: SC_E_add
integer, public :: time_slice
real(kind=rp), public :: rmax
real(kind=rp), public :: rmin
real(kind=rp), public :: zmax
real(kind=rp), public :: zmin
integer, public :: pchunk

number of particles per vectorized chunk

integer, public :: num_impurity_species
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: Zj
real(kind=rp), public :: gam_min

type, public :: PARTICLES

Read more…

Components

TypeVisibility AttributesNameInitial
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: X

Cartesian coordinates of the electrons' position. dim(X) = (3,SPECIES::ppp).

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

Cartesian components of the electrons' velocity. dim(V) = dim(X).

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

Cartesian coordinates of the electrons' guiding-center position.

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

Coordinates of the electrons' position in cylindrical or toroidal coordinates.

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

Placeholder coordinates of the electrons' position in cylindrical coordinates for GC orbit model.

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

Placeholder of the electrons' parallel momentum for the GC orbit model

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

Cartesian components of the electric field felt by each electron. dim(E) = dim(X).

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

Cartesian components of the magnetic field felt by each electron. dim(B) = dim(X).

real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: PSI_P
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: BR

Cartesian components of the gradient of the R-component of the magnetic field felt by each electron. dim(B) = dim(X).

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

Cartesian components of the gradient of the PHI-component of the magnetic field felt by each electron. dim(B) = dim(X).

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

Cartesian components of the gradient of the Z-component of the magnetic field felt by each electron. dim(B) = dim(X).

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

Cylindrical components of the gradient of magnitude of magnetic field felt by each electron. dim(B) = dim(X).

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

Cylindrical components of the curl of the magnetic field unit vector felt by each electron. dim(B) = dim(X).

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

RHS of equations of motion for GC orbit model

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

Cash-Karp Runge-Kutta coefficient for GC orbit model

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

Cash-Karp Runge-Kutta coefficient for GC orbit model

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

Cash-Karp Runge-Kutta coefficient for GC orbit model

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

Cash-Karp Runge-Kutta coefficient for GC orbit model

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

Cash-Karp Runge-Kutta coefficient for GC orbit model

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

Cash-Karp Runge-Kutta coefficient for GC orbit model

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

Electron density seen by each electron. dim(ne) = (1,SPECIES::ppp).

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: nimp
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: ni
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: Te

Electron temperature seen by each electron. dim(Te) = (1,SPECIES::ppp).

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

Zeff seen by each electron. dim(Zeff) = (1,SPECIES::ppp).

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

Instantaneous relativistic factor of each electron in the simulation.

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

Instantaneous pitch angle of each electron in the simulation.

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

Magnetic moment of each electron in the simulation.

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

Instantaneous radiated power by each electron in the simulation.

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

Instantaneous input power of each electron due to the electric field acceleration.

integer(kind=is), public, DIMENSION(:), ALLOCATABLE:: flagCon

Flag for each particle to decide whether it is contained

integer(kind=is), public, DIMENSION(:), ALLOCATABLE:: flagCol

Flag for each particle to decide whether it is part of the high energy population

integer(kind=is), public, DIMENSION(:), ALLOCATABLE:: flagRE

Flag for each particle to decide whether it is initialized

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

An auxiliary scalar variable for each electron.

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

Weight of each electron. This is used when sampling weighted PDFs and in the synthetic camera diagnostic.

integer(kind=is), public, DIMENSION(:), ALLOCATABLE:: initLCFS
type(C_PTR), public, DIMENSION(:), ALLOCATABLE:: hint

Hint for M3D_C1 interpolation.

logical, public :: cart

type, public :: SPECIES

Read more…

Components

TypeVisibility AttributesNameInitial
type(PARTICLES), public :: vars

An instance of the PARTICLES derived type.

logical, public :: runaway

Flag to decide whether a given electron is a runaway (runaway=T) or not (runaway=F).

character(len=MAX_STRING_LENGTH), public :: spatial_distribution

String describing the type of initial spatial distribution for each electron species.

character(len=MAX_STRING_LENGTH), public :: energy_distribution

String describing the type of initial energy distribution for each electron species.

character(len=MAX_STRING_LENGTH), public :: pitch_distribution

String describing the type of initial pitch-angle distribution for each electron species.

real(kind=rp), public :: Eo

Initial energy of each electron species in case of using an initial mono-energetic distribution.

real(kind=rp), public :: go

Corresponding relativisitc factor of each electron species in case of using an initial mono-energetic distribution.

real(kind=rp), public :: etao

Initial pitch-angle of each electron species in case of using an initial mono-pitch-angle distribution.

real(kind=rp), public, DIMENSION(2):: Eo_lims

Minimum and maximum energy limits of a given initial non-mono-energetic distribution.

real(kind=rp), public, DIMENSION(2):: etao_lims

Minimum and maximum pitch-angle limits of a given initial non-mono-pitch-angle distribution.

real(kind=rp), public :: wc

The mean electron cyclotron frequency of each electron species.

real(kind=rp), public :: wc_r

The mean relativistic electron cyclotron frequency of each electron species.

real(kind=rp), public :: q

Charge of each species.

Read more…
real(kind=rp), public :: m

Mass of each species.

Read more…
integer, public :: ppp

Number of computational particles used to simulate each electron species.

integer, public :: pinit

Number of computational particles initialized for each electron species to give room for sources of additional electrons

integer, public :: pRE
real(kind=rp), public :: Ro

Radial position of the center of the electrons' initial spatial distribution.

real(kind=rp), public :: PHIo

Azimuthal position of the electrons' initial spatial distribution, in case of using a disk at a certain poloidal section.

real(kind=rp), public :: Zo

Height of the center of the electrons' initial spatial distribution.

real(kind=rp), public :: r_inner

Minimum minor radius of the electrons' initial spatial distribution.

real(kind=rp), public :: r_outter

Maximum minor radius of the electrons' initial spatial distribution.

real(kind=rp), public :: falloff_rate

Exponential falloff or standard deviation of a non-uniform radial distribution of electrons.

real(kind=rp), public :: shear_factor

Shear factor used to generate an initial spatial distribution with an elliptic poloidal cross section.

Read more…
real(kind=rp), public :: sigmaR

Variance of the first dimension of a 2D Gaussian, spatial distribution function

real(kind=rp), public :: sigmaZ

Variance of the second dimension of a 2D Gaussian, spatial distribution function

real(kind=rp), public :: theta_gauss

Angle of counter-clockwise rotation (in degrees) of 2D Gaussian distribution relative to R,Z

real(kind=rp), public :: psi_max

Maximum value of the argument of the 2D gaussian exponential, used for an indicator function that limits the region of MH sampling

real(kind=rp), public :: Spong_b
real(kind=rp), public :: Spong_w
real(kind=rp), public :: Spong_dlam
real(kind=rp), public :: dth
real(kind=rp), public :: dgam
real(kind=rp), public :: dR
real(kind=rp), public :: dZ
real(kind=rp), public, DIMENSION(3):: Xtrace

Initial position in Cartesian coordinates for tracer particle

type, private :: A_FIELD

Read more…

Components

TypeVisibility AttributesNameInitial
real(kind=rp), public :: Bo

Magnitude of the toroidal magnetic field .

real(kind=rp), public :: a

Plasma edge as measured from the magnetic axis.

real(kind=rp), public :: Ro

Radial position of the magnetic axis

real(kind=rp), public :: qa

Safety factor at the plasma edge.

real(kind=rp), public :: qo

Safety factor at the magnetic axis .

real(kind=rp), public :: lambda

parameter of .

real(kind=rp), public :: Bpo

@deprecated Parameter not used anymore.

Read more…
real(kind=rp), public :: Bp_sign

Sign of . This depends on current_direction, Bp_sign=1 for current_direction='PARALLEL', and Bp_sign=-1 for current_direction='ANTI-PARALLEL'.

character(len=MAX_STRING_LENGTH), public :: current_direction

Direction of plasma current: PARALLEL or ANTI-PARALLEL to the toroidal magnetic field.

real(kind=rp), public :: Ero

radial electric field amplitude.

real(kind=rp), public :: rmn

mode location rmn

real(kind=rp), public :: sigmamn

mode width sigmamn

type, private :: MESH

Derived type with the cylindrical coordinates of the grid nodes at which the pre-computed plasma profiles and fields are known.

Components

TypeVisibility AttributesNameInitial
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: R

Radial grid.

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

Azimuthal grid.

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

Z grid.

type, public :: FIELDS

Read more…

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

type, public :: PROFILES

Read more…

Components

TypeVisibility AttributesNameInitial
type(MESH), public :: X

An instance of the KORC derived data type MESH.

real(kind=rp), public :: a

Plasma radius as measured from the magnetic axis

real(kind=rp), public :: R0
real(kind=rp), public :: Z0
real(kind=rp), public :: R0_RE
real(kind=rp), public :: Z0_RE
integer, public, DIMENSION(3):: dims

Dimensions of the arrays containing the pre-computed profiles data. dims=(number of grid nodes along , number of grid nodes along , number of grid nodes along ).

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 :: n_ne

used in of the electron density profile.

real(kind=rp), public :: n_Te

used in of the electron temperature profile.

real(kind=rp), public :: n_Zeff

used in of the profile.

real(kind=rp), public :: n_REr0 =0._rp
real(kind=rp), public :: n_tauion =0._rp
real(kind=rp), public :: n_tauin =0._rp
real(kind=rp), public :: n_tauout =0._rp
real(kind=rp), public :: n_shelfdelay =0._rp
real(kind=rp), public :: n_lamfront =0._rp
real(kind=rp), public :: n_lamback =0._rp
real(kind=rp), public :: n_lamshelf =0._rp
real(kind=rp), public :: n_shelf =0._rp
real(kind=rp), public :: psiN_0 =1._rp
real(kind=rp), public, DIMENSION(4):: a_ne

Coefficients of the polynomial electron density profile. See detailed description above, a_ne=(,,,).

real(kind=rp), public, DIMENSION(4):: a_Te

Coefficients of the polynomial electron temperature profile. See detailed description above, a_ne=(,,,).

real(kind=rp), public, DIMENSION(4):: a_Zeff

Coefficients of the profile. See detailed description above, a_ne=(,,,).

character(len=MAX_STRING_LENGTH), public :: Zeff_profile

String containing the type of profile to be used in the simulation.

real(kind=rp), public :: Zeffo

at the magnetic axis.

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

3-D array for keeping the pre-computed data of the profile.

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

2-D array for keeping the pre-computed data of the profile.

character(len=MAX_STRING_LENGTH), public :: ne_profile

String containing the type of electron density profile to be used in the simulation.

real(kind=rp), public :: neo

Electron density at the magnetic axis

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

3-D array for keeping the pre-computed data of the electron density profile.

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

2-D array for keeping the pre-computed data of the electron density profile.

character(len=MAX_STRING_LENGTH), public :: Te_profile

String containing the type of electron temperature profile to be used in the simulation.

real(kind=rp), public :: Teo

Electron temperature at the magnetic axis

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

3-D array for keeping the pre-computed data of the electron density profile.

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

2-D array for keeping the pre-computed data of the electron density profile.

character(len=MAX_STRING_LENGTH), public :: filename

Full path to the HDF5 file containing the pre-computed plasma profiles.

logical, public :: axisymmetric

Flag to indicate if the plasma profiles are axisymmetric.

real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: RHON
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: nRE_2D
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: nAr0_2D
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: nAr1_2D
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: nAr2_2D
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: nAr3_2D
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: nD_2D
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: nD1_2D
integer(kind=C_INT), public :: FIO_ne
integer(kind=C_INT), public :: FIO_ni
integer(kind=C_INT), public :: FIO_te
integer(kind=C_INT), public, DIMENSION(:), ALLOCATABLE:: FIO_nimp
integer(kind=C_INT), public :: FIO_zeff