Dispersion relation function and associated eigenfunction and minimization calculations. Required for fpc.f90 (Consider reducing scope with submodule or other approach- fine for now)
!!
!! !!
!!
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private, | parameter | :: | nbrack | = | 128 |
Number of Bessel functions to sum |
| real, | private, | parameter | :: | tol | = | 1.0E-13 |
Root Search Tolerance |
| real, | private, | parameter | :: | prec | = | 1.E-7 |
Root Finding precision |
Hot, collisionless dispersion relation Hot plasma dispersion relation with weak neutral-charged collisions
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex | :: | om |
Complex Frequency |
Returns Plasma Dispersion Function for input complex frequency and global values of the dimensionless plasma parameters. updated to include weak neutral-charged collision
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex | :: | om |
Complex Frequency |
Returns Plasma Dispersion Function for input complex frequency and global values of the dimensionless plasma parameters.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex | :: | om |
Complex Frequency |
Secant routine to find minimum value of dispersion relation function.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex | :: | func |
Function to evaluate. |
|||
| complex | :: | x1 |
Lower bracket value of solution refinement. |
|||
| complex | :: | x2 |
Upper bracket value of solution refinement. |
|||
| real | :: | xacc |
Solution tolerance. |
|||
| integer | :: | iflag |
flag for tracking iteration. |
Evaluate Plasma Dispersion Function (Z) for kparallel >/< 0 Calls zetout with appropriate argument.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real | :: | kpar |
|
|||
| complex | :: | zin |
Argument of plasma dispersion function. |
Value of plasma dispersion function.
This is the subroutine used by Linsker to evaluate his Z-function.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex | :: | zin |
Call the correct Numerical Recipes Bessel function bessels is a function which calls the numerical recipes routine of the appropriate order -- this is to avoid to many if - then statements in the program. Note that we are determining I_n(x) e^(-x) to avoid large argument errors.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer | :: | n |
Bessel function order. |
|||
| real | :: | x |
Bessel function argument. |
Identifies minima in a prescribed region of complex frequency space.
Testing routine for single evaluation of dispersion relation.
Refine solutions for roots of dispersion relation.
Calculate complex frequency maps for scanned parameters. Intervatively calls map_search over a fixed range of parameters. k_1|=swf k_1|=swf
Calculate solutions as a function of the variation of a single parameter. k_1|=swf
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer | :: | is |
Scan index. |
Calculate solutions as a function of the variation of two parameters, creating a surface in parameter space. k_1|=swf
Calculates normal modes of the system for a specified radial solar wind model (under development) ADD split power calculations here... (KGK)
Scans roots at a given location in parameter space. Used in conjunction with radial_scan.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex, | dimension(1:nspec) | :: | omlast |
Arrays with complex frequency for each solution. |
||
| real, | dimension(1:6,1:nspec) | :: | params |
Species parameters: |
||
| integer, | dimension(1:nroot_max) | :: | out_unit |
Main output unit. |
||
| character(len=100) | :: | fmt |
Output format for dispersion relation. |
|||
| integer | :: | out_type |
logic for outputing supplementary eigenfunction and heating calculations. 0: Frequency, Eigenfuction, Heating. 1: Frequency, Eigenfuction. 2: Frequency, Heating. 3: Frequency. |
|||
| integer | :: | ir |
Radial index. |
|||
| logical | :: | mod_write |
For only writing out every n_scan, not n_scan * n_res steps species parameters: useful for outputing data (INVESTIGATE THIS...) |
Calculates the electric and magnetic fields as well as species velocities and density fluctuations for identified wave as well as the power emission or absorption.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex | :: | omega |
Complex Frequency of identified wave. |
|||
| complex, | intent(out), | dimension(1:3) | :: | electric |
Complex electric field fluctuations (Ex, Ey, Ez) |
|
| complex, | intent(out), | dimension(1:3) | :: | magnetic |
Complex magnetic field fluctuations (Bx, By, Bz) |
|
| complex, | intent(out), | dimension(1:3,1:nspec) | :: | vmean |
Complex Velocity fluctuations: (Uxs, Uys, Uzs) |
|
| complex, | intent(out), | dimension(1:nspec) | :: | ns |
Complex Density fluctuations. |
|
| real, | intent(out), | dimension(1:nspec) | :: | Ps |
Power into/out of species/components. |
|
| real, | intent(out), | dimension(1:7,1:nspec) | :: | Ps_split |
<< |
|
| logical | :: | eigen_L |
Logical for calculating eigenvalues |
|||
| logical | :: | heat_L |
Logical for calculating heating |
Sets step sizes for all classes of parameter scans called in for map_scan. k_1|=swf
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=150) | :: | outName |
String for I/O identification. |
|||
| real | :: | diff |
Spacing for scanned parameter. |
|||
| real | :: | diff2 |
Suplemental spacing for scanned parameter. |
Sets I/O strings, step sizes, and formats for om_scan.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=150) | :: | outName |
String for I/O identification. |
|||
| character(len=150) | :: | tensorName |
String for Susceptability output. |
|||
| character(len=100) | :: | fmt |
Output format for solution. |
|||
| character(len=100) | :: | fmt_tnsr |
Output format for susceptibility tensor. |
|||
| integer | :: | out_type |
logic for outputing supplementary eigenfunction and heating calculations. 0: Frequency, Eigenfuction, Heating. 1: Frequency, Eigenfuction. 2: Frequency, Heating. 3: Frequency. |
|||
| integer | :: | is |
Scan index |
|||
| real | :: | diff |
Spacing for scanned parameter. |
|||
| real | :: | diff2 |
Suplemental spacing for scanned parameter. |
Sets I/O strings, step sizes, and formats for om_double_scan. k_1|=swf
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=150) | :: | outName |
String for I/O identification. |
|||
| character(len=150) | :: | tensorName |
String for Susceptability output. |
|||
| character(len=100) | :: | fmt |
Output format for solution. |
|||
| character(len=100) | :: | fmt_tnsr |
Output format for susceptibility tensor. |
|||
| integer | :: | out_type |
logic for outputing supplementary eigenfunction and heating calculations. 0: Frequency, Eigenfuction, Heating. 1: Frequency, Eigenfuction. 2: Frequency, Heating. 3: Frequency. |
|||
| real, | dimension(1:2,1:2) | :: | diff |
Spacing for scanned parameter. |
Finding minimum values on complex frequency grid.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real, | dimension(:,:), pointer | :: | val |
Value of Dispersion relation. Covers 0:nr, 0:ni |
||
| integer | :: | numroots |
Maximum number of roots. |
|||
| integer, | dimension(1:2,1:numroots) | :: | iroots |
Indices of roots. |
||
| integer, | intent(out) | :: | nroots |
Number of roots found. |