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

  • module~~alps_var~~UsedByGraph module~alps_var alps_var proc~alps_error alps_error proc~alps_error->module~alps_var proc~alps_error_init alps_error_init proc~alps_error_init->module~alps_var proc~bm_read bM_read proc~bm_read->module~alps_var proc~calc_chi calc_chi proc~calc_chi->module~alps_var proc~calc_chi_cold calc_chi_cold proc~calc_chi_cold->module~alps_var proc~calc_eigen calc_eigen proc~calc_eigen->module~alps_var proc~calc_ypsilon calc_ypsilon proc~calc_ypsilon->module~alps_var proc~derivative_f0 derivative_f0 proc~derivative_f0->module~alps_var proc~derivative_f0_rel derivative_f0_rel proc~derivative_f0_rel->module~alps_var proc~determine_bessel_array determine_bessel_array proc~determine_bessel_array->module~alps_var proc~determine_glls determine_GLLS proc~determine_glls->module~alps_var proc~determine_jt determine_JT proc~determine_jt->module~alps_var proc~determine_nmax determine_nmax proc~determine_nmax->module~alps_var proc~determine_param_fit determine_param_fit proc~determine_param_fit->module~alps_var proc~determine_resonances determine_resonances proc~determine_resonances->module~alps_var proc~determine_sproc_rel determine_sproc_rel proc~determine_sproc_rel->module~alps_var proc~disp disp proc~disp->module~alps_var proc~eval_fit eval_fit proc~eval_fit->module~alps_var proc~find_minima find_minima proc~find_minima->module~alps_var proc~fit_function fit_function proc~fit_function->module~alps_var proc~fit_function_poly fit_function_poly proc~fit_function_poly->module~alps_var proc~fit_read fit_read proc~fit_read->module~alps_var proc~full_integrate full_integrate proc~full_integrate->module~alps_var proc~funct_g funct_g proc~funct_g->module~alps_var proc~funct_g_rel funct_g_rel proc~funct_g_rel->module~alps_var proc~get_indexed_double_namelist_unit get_indexed_double_namelist_unit proc~get_indexed_double_namelist_unit->module~alps_var proc~get_indexed_namelist_unit~2 get_indexed_namelist_unit proc~get_indexed_namelist_unit~2->module~alps_var proc~init_param init_param proc~init_param->module~alps_var proc~int_ee int_ee proc~int_ee->module~alps_var proc~int_ee_rel int_ee_rel proc~int_ee_rel->module~alps_var proc~int_t int_T proc~int_t->module~alps_var proc~int_t_rel int_T_rel proc~int_t_rel->module~alps_var proc~int_t_res int_T_res proc~int_t_res->module~alps_var proc~int_t_res_rel int_T_res_rel proc~int_t_res_rel->module~alps_var proc~integrate integrate proc~integrate->module~alps_var proc~integrate_res integrate_res proc~integrate_res->module~alps_var proc~integrate_res_rel integrate_res_rel proc~integrate_res_rel->module~alps_var proc~integrate_resu_rel integrate_resU_rel proc~integrate_resu_rel->module~alps_var proc~landau_integrate landau_integrate proc~landau_integrate->module~alps_var proc~landau_integrate_rel landau_integrate_rel proc~landau_integrate_rel->module~alps_var proc~least_squares_fit least_squares_fit proc~least_squares_fit->module~alps_var proc~lm_nonlinear_fit LM_nonlinear_fit proc~lm_nonlinear_fit->module~alps_var proc~map_read map_read proc~map_read->module~alps_var proc~map_search map_search proc~map_search->module~alps_var proc~om_double_scan om_double_scan proc~om_double_scan->module~alps_var proc~om_scan om_scan proc~om_scan->module~alps_var proc~output_fit output_fit proc~output_fit->module~alps_var proc~pass_distribution pass_distribution proc~pass_distribution->module~alps_var proc~pass_instructions pass_instructions proc~pass_instructions->module~alps_var proc~poly_read poly_read proc~poly_read->module~alps_var proc~principal_integral_rel principal_integral_rel proc~principal_integral_rel->module~alps_var proc~read_f0 read_f0 proc~read_f0->module~alps_var proc~refine_guess refine_guess proc~refine_guess->module~alps_var proc~resu resU proc~resu->module~alps_var proc~resu_rel resU_rel proc~resu_rel->module~alps_var proc~scan_read scan_read proc~scan_read->module~alps_var proc~secant secant proc~secant->module~alps_var proc~set_polynomial_basis set_polynomial_basis proc~set_polynomial_basis->module~alps_var proc~solution_read solution_read proc~solution_read->module~alps_var proc~spec_read~2 spec_read proc~spec_read~2->module~alps_var proc~split_processes split_processes proc~split_processes->module~alps_var program~alps alps program~alps->module~alps_var

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

Selection of method for Hybrid-Analytical Continutation, (1:nspec) 0) Use the analytic function. 1) Use the 'n_fits' functions described with 'fit_type' 2) Use a polynomial basis representation.

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

Polynomials of order (0,poly_order) evaluatated at (0,npar) abscissa points, (1:nspec,0:npar,0:poly_order) poly_order is taken to be the maximum order across all species.

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

Fit Coefficients for Polynomials from Generarl Linear Least Squares Method (1:nspec,0:nperp,0:poly_order) poly_order is taken to be the maximum order across all species. The fit is taken in one dimension at each perpendicular momentum value.

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

Selection of Orthogonal Basis Function, (1:nspec) 1) Chebyshev Polynomials Other Polynomials can be added in future releases.

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

Limit on the Evaluation of the Polynomial Representation, (1:nspec)

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

Selection of Maximum Order of Orthogonal Basis Function, (1:nspec)

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.