vars Module

Contains all global variables.


Used by

  • module~~vars~~UsedByGraph module~vars vars proc~calc_fs1 calc_fs1 proc~calc_fs1->module~vars proc~calc_wparth calc_wparth proc~calc_wparth->module~vars proc~check_nbesmax check_nbesmax proc~check_nbesmax->module~vars proc~compute_fpc_cart compute_fpc_cart proc~compute_fpc_cart->module~vars proc~compute_fpc_gyro compute_fpc_gyro proc~compute_fpc_gyro->module~vars proc~map_read map_read proc~map_read->module~vars proc~om_read om_read proc~om_read->module~vars proc~radial_read radial_read proc~radial_read->module~vars proc~radial_read_0 radial_read_0 proc~radial_read_0->module~vars proc~radial_read_1 radial_read_1 proc~radial_read_1->module~vars proc~radial_read_2 radial_read_2 proc~radial_read_2->module~vars proc~radial_read_3 radial_read_3 proc~radial_read_3->module~vars proc~radial_read_4 radial_read_4 proc~radial_read_4->module~vars proc~radial_read_5 radial_read_5 proc~radial_read_5->module~vars proc~radial_read_6 radial_read_6 proc~radial_read_6->module~vars proc~read_guess_input read_guess_input proc~read_guess_input->module~vars proc~read_in_params read_in_params proc~read_in_params->module~vars proc~read_map_input read_map_input proc~read_map_input->module~vars proc~read_radial_input read_radial_input proc~read_radial_input->module~vars proc~read_scan_input read_scan_input proc~read_scan_input->module~vars proc~scan_read scan_read proc~scan_read->module~vars proc~spec_read spec_read proc~spec_read->module~vars proc~wparth_from_ratio wparth_from_ratio proc~wparth_from_ratio->module~vars program~plume plume program~plume->module~vars

Variables

Type Visibility Attributes Name Initial
real, public, target :: betap

Reference Species Parallel Thermal-to-Magnetic Pressure Ratio. 8 pi n_ref T_ref,par/B^2

real, public, target :: kperp

Wavenumber perpendicular to B0, normalized to reference gyroradius. k_perp rho_ref = k_perp w_perp,ref/Omega_ref

real, public, target :: kpar

Wavenumber parallel to B0, normalized to reference gyroradius. k_perp rho_ref = k_perp w_t,ref,perp/Omega_ref

real, public, target :: vtp

Parallel reference thermal velocity normalized to the speed of light. v_t,ref,par/c

integer, public :: nspec

Number of species/components to be included in calculation.

integer, public :: nscan = 0

Number of parameter scans.

type(specie), public, dimension(:), allocatable, target :: spec

Dimensionless Species/Component Parameters.

type(specie), public, dimension(:, :), allocatable, target :: rad_spec

Array for Varying Species/Component Parameters (under development).

type(scanner), public, dimension(:), allocatable :: scan

Array of scan parameters for all scans to be calculated.

type(scanner), public, dimension(:), allocatable :: rad_scan

Array of scan parameters for extended parameter scans (under development).

real, public, pointer :: sw

Parameter Sweep parameter values.

real, public, pointer :: sw2

Parameter Sweep parameter values.

real, public, pointer :: sw3

Parameter Sweep parameter values.

real, public, pointer :: sw4

Parameter Sweep parameter values.

complex, public, dimension(:, :, :), allocatable :: susc

Susceptibility tensor. (1:nspec,1:3,1:3) with the 3x3 subarray arranged as: (1,1) xx; (1,2) xy; (1,3) xz; (2,1) yx; (2,2) yy; (2,3) yz; (3,1) zx; (3,2) zy; (3,3) zz;

complex, public, dimension(:, :, :, :), allocatable :: susc_low

low-n components of the susceptibility tensor. (1:nspec,1:3,1:3,0:1) with the 3x3 subarray arranged as susc. The final index contains the n=0 and n=\pm 1 contributions.

logical, public :: low_n = .true.

Toggle on low-n susceptibility suplementary calculation.

logical, public :: new_low_n = .true.

Flag to use Revised low_n for LD/TTD separation. This modifies the Collisionless Power Absorption Calculation! IF TRUE THEN low_n MUST BE TRUE TOO! (GGH: 1/18/23)

complex, public, dimension(3, 3) :: lam

Matrix in Wave equation.

integer, public :: option

Selection for the type of dispersion calculation to be undertaken. -1: Calculate disp(om) at a single (omega, gamma) 0: Calculate Roots for input plasma parameters. 1: Calculate Roots for input plasma parameters or Reads in root value and then scan over plasma parameters, with range and type specified in .in file. 2: Calculate Roots for input plasma parameters or Reads in root value and then scan over two-dimensional plasma parameters space, with range and type specified in .in file. 3: deprecated 4: Make multiple maps of complex frequency space. 5: Find roots for parameters along a prescribed path Path is set by solar wind models, with values calculated and output by helper function (in development, the radial scan function.).

logical, public :: writeOut

Enables or suppressed output to screen.

character(len=100), public :: dataName

Data Subdirectory where output is stored.

character(len=100), public :: outputName

Common name string for output files.

character(len=100), public :: print_Name

Additional string for output files.

logical, public :: use_map

Determines method for selecting initial solutions. T-> Use map routine to determine solutions in defined regions of complex frequency space. Map parameters determined by &maps list in .in file. F-> Read nroot_max initial guesses for complex frequency solutions. Guesses determined by &guess_N lists in .in file.

logical, public :: loggridw

Set log or linear spacing for real frequency axis of the map search.

logical, public :: loggridg

Set log or linear spacing for imaginary frequency axis of the map search.

real, public :: omi

Lower bound on real frequency map search axis.

real, public :: omf

Upper bound on real frequency map search axis.

real, public :: gami

Lower bound on imaginary frequency map search axis.

real, public :: gamf

Upper bound on imaginary frequency map search axis.

logical, public :: positive_roots = .false.

Consider all solutions (false) or only solutions with positive real frequencies (true).

integer, public :: nr = 128

Number of grid points along real frequency axis Now read in by map_read

integer, public :: ni = 128

Number of grid points along imaginary frequency axis Now read in by map_read

integer, public, parameter :: numroots = 500

Maximum number of minima to keep for a further refinement from a map search.

integer, public, parameter :: nbesmax = 15
integer, public :: nRad

Number of points to scan in radial models.

character(len=100), public :: modelName

Input file name for radial model

real, public, dimension(:), allocatable :: radius

Radial distance from the Sun, in Rs.

real, public, dimension(:), allocatable :: beta_rad
real, public, dimension(:), allocatable :: vtp_rad
logical, public :: radial_heating
logical, public :: radial_eigen
integer, public :: k_scan

Determines wavevector values to include in radial scan 0: single point in kperp, kpar space 1: fixed kperp, scan over kpar 2: fixed kpar, scan over kperp 3: fixed theta, scan over k 4: fixed k, scan over theta 5: plane scan over (kperp, kpar) 6: plane scan over (k, theta)

real, public :: pi
real, public :: vperpmin
real, public :: vperpmax
real, public :: vparmin
real, public :: vparmax
real, public :: vxmin
real, public :: vxmax
real, public :: vymin
real, public :: vymax
real, public :: vzmin
real, public :: vzmax
real, public :: delv
real, public :: elecdircontribution
logical, public :: computemoment = .true.

Enables computation of fs1 moments; not recommended as it is prone to inaccuracies and is unnecessary give that analytical moments are computed. Used for verifying self consistency of the code instead. Note this integrals are very challenging numerically using our current integration scheme. It is common to be off by at least half an order of magnitude in certain domains. This is for debug only. Please use the analytic moments.

real, public :: EpsilonSokhotski_Plemelj = 0.01

Epsilon in the Sokhotski–Plemelj theorem, which states int f(x)/(x-a) dx can be approximated using eps->0 int f(x)/(x-a+i eps) dx to 'better' handle the singularity numerically. This value should be left as zero, only be used by advanced users, and only when the user is computing moments for comparison to the analytic form (because it requires a very small delta v to 'work') (Remember to recompile!)

real, public :: vxshift = 0.0

shifts grid along vx- used to test stiffness of fs1 in JETPLUME (DEBUG ONLY- keep as zero otherwise)

real, public :: vyshift = 0.0

shifts grid along vy- used to test stiffness of fs1 in JETPLUME (DEBUG ONLY- keep as zero otherwise)

real, public :: vzshift = 0.0

shifts grid along vz- used to test stiffness of fs1 in JETPLUME (DEBUG ONLY- keep as zero otherwise)

logical, private :: useOnlyReferenceWpar = .false.

compute the reference thermal velocity for reference and then 'convert' using temperature ratios, or for each species individually. Only used for numerical moments of fs1, which are only for debug. For most users, this value is irrelevant. Choice is approximatley equivalent in domain where error in integrals of fs1 for all species are small, but those domains are rare with physical values Instead, I recommend setting this to false to allow the error to be 'absorbed' in the calculation of wparS

integer, public :: nroots

Number of roots found.

real, public, dimension(1:2, 1:numroots) :: wroots

Real and Imaginary components of each solution.

complex, public :: omega_val

var used to pass omega to rtsec in fpc.f90

integer, public :: nroot_max

Input specified nroots to follow.


Derived Types

type, public ::  specie

Species Input Parameters

Components

Type Visibility Attributes Name Initial
real, public :: tau_s

Relative Temperature ratio.

real, public :: mu_s

Relative Mass ratio.

real, public :: alph_s

Temperature Anisotropy.

real, public :: Q_s

Relative charge ratio.

real, public :: D_s

Density Ratio.

real, public :: vv_s

Relative Drift, normalized to reference Alfven velocity with .

type, public ::  scanner

Parameters to control parameter scans.

Components

Type Visibility Attributes Name Initial
real, public :: range_i

Initial value of scanned parameter.

real, public :: range_f

Final value of scanned parameter.

logical, public :: log_scan

Linear or Logarithmic scan. T-> log, F-> linear scan

logical, public :: heat_s

Controls supplementary heating calculation. T-> Heating Calculation; F-> No heating calculation.

logical, public :: eigen_s

Controls supplementary eigenfunction calculation. T-> Eigenfunction calculation; F-> No eigenfunction Calculation.

logical, public :: tensor_s

Controls supplementary output of susceptibility tensor. T-> Output tensor; F-> Supress output.

integer, public :: type_s

Defines nature of parameter scans. Style: -1- Global two component Scan: Type: 0 k_0-> k_1 1 theta_0 -> theta_1 2 k_fixed angle Style: 0- Global Scan: Type: 0 kperp 1 kpar 2 betap 3 vtp Style: 1-nspec-> Species Scan: Type: 0 tau_s 1 mu_s 2 alph_s 3 Q_s 4 D_s 5 vv_s

integer, public :: style_s

Defines nature of parameter scan. -1: Global two-component scan 0: Global one-component 1 to nspec: species specific parameter scan

integer, public :: n_scan

Number of output steps. n_scan*n_res Total steps taken.

integer, public :: n_res

Scan resolution between output steps. n_scan*n_res Total steps taken.

real, public :: diff

Step size for scanned parameter. Either (swf-swi)/(n_scann_res) or (log10(swf)-log10(swi))/(n_scann_res).