alps_var Module

Contains all global variables.


Uses

  • module~~alps_var~~UsesGraph module~alps_var alps_var mpi mpi module~alps_var->mpi

Used by


Variables

Type Visibility Attributes Name Initial
character(len=500), public :: runname

Root of input file name.

character(len=500), public :: foldername

Directory of input file name.

integer, public :: nroots

Number of dispersion solutions under consideration.

integer, public :: nroots_max

Number of dispersion solutions found in frequency map scan.

logical, public :: use_map

Choice of: (T) searching for roots over a map in complex frequency space, via map_read; (F) input (nroots) guesses for solutions, via solution_read

logical, public :: writeOut = .true.

Write or suppress output to screen.

integer, public :: unit_error

Output unit for error file.

integer, public :: nproc

Total number of processors.

integer, public :: iproc

Number of local processor.

logical, public :: proc0

T if iproc=0.

integer, public :: ierror

Integer error flag.

double precision, public :: kperp

Perpendicular wavenumber, normalized by inverse reference inertial length, .

double precision, public :: kpar

Parallel wavenumber, normalized by inverse reference inertial length, .

double precision, public :: vA

Alfven Velocity, normalized to speed of light, .

double precision, public :: Bessel_zero = 1.d-45

Calculate Bessel functions until the maximum is less than this value.

integer, public :: nspec

Number of plasma components.

integer, public :: nspec_rel

Number of relativistic plasma components.

double complex, public, dimension(:), allocatable :: wroots

Dispersion solutions, ranging from 1 to numroots.

integer, public :: numroots = 100

Maximum number of solutions.

double precision, public :: omi

Smallest value for complex map search.

double precision, public :: omf

Largest value for complex map search.

double precision, public :: gami

Smallest value for complex map search.

double precision, public :: gamf

Largest value for complex map search.

logical, public :: loggridw

Linear (F) or Log (T) spacing for map search.

logical, public :: loggridg

Linear (F) or Log (T) spacing for map search.

integer, public :: nr = 128

Number of points in frequency grid.

integer, public :: ni = 128

Number of points in frequency grid.

integer, public :: nperp

Number of perpendicular momentum space grid points, .

integer, public :: npar

Number of parallel momentum space grid points, .

integer, public :: ngamma = 100

Number of grid points in relativitic , (Eqn. 3.14).

integer, public :: npparbar = 200

Number of grid points in dimensionless paralell momentum , .

integer, public :: positions_principal = 5

Number of parallel momentum steps distant from the resonant momentum included in the numerical calculation of Eqn 3.5, .

double precision, public :: Tlim = 0.01d0

Threshold for analytical principal-value integration for evaluating Eqn 3.6 and 3.7, .

integer, public :: sproc

The species number on which this process is working.

integer, public :: numiter = 50

Maximum number of iterations in secant method.

double precision, public :: D_threshold = 1.d-5

Minimum threshold for secant method.

double precision, public :: D_prec = 1.d-5

Size of bounding region for secant method.

double precision, public :: D_gap = 1.d-5

Size of allowable difference between roots.

double precision, public :: pi

The ratio of a circle's circumference to its diameter.

character(len=75), public :: arrayName

Name of input files for distributions.

double precision, public, dimension(:,:,:), allocatable :: f0

Background distribution function array ; (1:nspec,0:nperp,0:npar).

double precision, public, dimension(:,:,:), allocatable :: f0_rel

Relativistic background distribution function array ; (1:nspec,0:ngamma,0:npparbar).

double precision, public, dimension(:,:,:,:), allocatable :: df0

Perpendicular and parallel derivatives of ; (1:nspec,0:nperp,0:npar,1:2), with in index 1, and in index 2.

double precision, public, dimension(:,:,:,:), allocatable :: df0_rel

Derivatives of ; (1:nspec,0:nperp,0:npar,1:2), with in index 1 and in index 2.

double precision, public, dimension(:,:,:,:), allocatable :: pp

Momentum Space Array for ; (1:nspec,0:nperp,0:npar,1:2) with in index 1 and in index 2.

double precision, public, dimension(:), allocatable :: current_int

Current density, (0:nspec) Zeroth index is sum over all species

double precision, public, dimension(:,:,:), allocatable :: gamma_rel

Relativistic momentum space array of ; (1:nspec,0:ngamma,0:npparbar).

double precision, public, dimension(:,:,:), allocatable :: pparbar_rel

Relativistic momentum space array of ; (1:nspec,0:ngamma,0:npparbar).

integer, public, dimension(:), allocatable :: nmax

number of n values to sum over, (1:nspec).

integer, public :: nlim(2)

Lower and Upper limits for n values for iproc to sum over.

double precision, public, dimension(:), allocatable :: ns

Ratio of species density to reference , (1:nspec).

double precision, public, dimension(:), allocatable :: qs

Ratio of species charge to reference , (1:nspec).

double precision, public, dimension(:), allocatable :: ms

Ratio of species mass to reference , (1:nspec).

logical, public, dimension(:), allocatable :: relativistic

Use relativistic treatment; (1:nspec).

double complex, public, dimension(:,:), allocatable :: wave

Wave Equation Tensor (1:3,1:3).

double complex, public, dimension(:,:,:), allocatable :: chi0

Susceptibility Tensor (1:nspec,1:3,1:3).

double precision, public, dimension(:,:), allocatable :: bessel_array

Array of Bessel functions; (nlim(1):nlim(2)+1,0:nperp).

integer, public, dimension(:), allocatable :: n_fits

Number of fitted functions, (1:nspec)

integer, public, dimension(:,:), allocatable :: fit_type

Type of analytic function to be fit, (1:nspec,1:maxval(nfits)); 1) Maxwellian, 2) Kappa, 3) Juettner with , 4) Juettner with , constant , 5) Juettner with ; variable , 6) Bi-Moyal distribution.

integer, public :: maxsteps_fit = 500

Maximum number of fitting iterations.

double precision, public :: lambda_initial_fit = 1.d0

Inital Levenberg-Marquardt damping parameter.

double precision, public :: lambdafac_fit = 1.d1

Adjustment factor for Levenberg-Marquardt damping parameter.

double precision, public :: epsilon_fit = 1.d-8

Convergence for Levenberg-Marquardt fit.

double precision, public, dimension(:,:,:,:), allocatable :: param_fit

Fit parameters, (1:nspec,0:nperp,4,maxval(n_fits)).

double precision, public, dimension(:,:), allocatable :: perp_correction

This parameter, in Eqn. B1, compensates for the strong dependence of , making the fit more reliable.

logical, public :: fit_check = .true.

If true, output fitted functions to ASCII file for each species.

logical, public :: determine_minima = .true.

If true, after map search, determine minima and refine solutions.

integer, public :: n_resonance_interval = 100

How many steps should be used to integrate around the resonance, , used for integrating near poles (see section 3.1).

integer, public :: scan_option = 1

Select case for scans; 1) consecutive scans along input paths in wavevector space, 2) double scans of two selected parameters.

integer, public :: n_scan = 0

Number of wavevector scans. Must be set to 2 for scan_option=2; Must be 1 or larger for scan_option=1. 0 turns off wavevector scans.

logical, public, dimension(:), allocatable :: logfit

Use logarithmic fitting, (1:nspec).

logical, public, dimension(:), allocatable :: usebM

Use bi-Maxwellian/cold calculation from NHDS, (1:nspec).

integer, public, dimension(:), allocatable :: bMnmaxs

Maximum number of n for NHDS bi-Maxwellian calculation, (1:nspec).

double precision, public, dimension(:), allocatable :: bMBessel_zeros

Bessel-zero for NHDS bi-Maxwellian calculation (1:nspec).

double precision, public, dimension(:), allocatable :: bMbetas

Species beta for NHDS bi-Maxwellian calculation (1:nspec). If bMbetas=0.d0, then this species is treated with the cold-plasma susceptibility.

double precision, public, dimension(:), allocatable :: bMalphas

Species temperature anisotropy for NHDS bi-Maxwellian calculation.

double precision, public, dimension(:), allocatable :: bMpdrifts

Species drift momentum for NHDS bi-Maxwellian/cold calculation, in units of (1:nspec).

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

Scan parameters for each wavevector scan. Read in from scan_read.

double precision, public :: kperp_last

Previous value of .

double precision, public :: kpar_last

Previous value of .

double precision, public :: kperp_0

Current value of .

double precision, public :: kpar_0

Current value of .


Derived Types

type, public ::  scanner

Description of wavevector scan behavior. Read in from scan_read.

Components

Type Visibility Attributes Name Initial
double precision, public :: range_i

Initial scan value.

double precision, public :: range_f

Final scan value.

logical, public :: log_scan

Use log (T) or linear (F) spacing.

logical, public :: heat_s

Calculates heating rates if true.

logical, public :: eigen_s

Calculates eigenfunctions if true.

integer, public :: type_s

Type of parameter scan; 0: Current value of to =range and =range. 1: at fixed from current value of to range. 2: Wavevector scan at fixed angle to =range. 3: scan with constant . 4: scan with constant .

integer, public :: n_out

Number of output scan values.

integer, public :: n_res

Resolution between output scan values.

double precision, public :: diff

step size for first wavevector variation.

double precision, public :: diff2

step size for second wavevector variation.