Module including the NHDS implementation for bi-Maxwellian/cold-plasma reference cases. The original NHDS code can be found under github.com/danielver02/NHDS.
Calculates the modified Bessel function of argument x and order n.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | n |
Order of the modified Bessel function. |
||
double precision, | intent(in) | :: | x |
Argument of the modified Bessel function. |
Calculates the dispersion function based on the complex error function.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
double complex, | intent(in) | :: | zeta |
Argument of dispersion function. |
||
logical, | intent(in) | :: | kpos |
Check whether kpar is positive. |
Function to calculate the first kind modified Bessel function of integer order N for any real X.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | N | ||||
real(kind=8) | :: | X |
Auxiliary Bessel functions for N=0, N=1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=8) | :: | X |
Modified Bessel function of order 1.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=8) | :: | X |
Subroutine that calculates the susceptibility of species j based on NHDS.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
double complex, | intent(out) | :: | chi(3,3) |
Susceptibility tensor of species j. |
||
integer, | intent(in) | :: | j |
Index for species. |
||
double precision, | intent(in) | :: | kz |
Normalised parallel wavenumber. |
||
double precision, | intent(in) | :: | kperp |
Normalised perpendicular wavenumber. |
||
double complex, | intent(in) | :: | x |
Normalised complex frequency. |
Calculates the Y-tensor according to Stix for a bi-Maxwelling, using the NHDS calculation.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
double complex, | intent(out) | :: | Y(3,3) |
Y-tensor as defined by Stix. |
||
integer, | intent(in) | :: | j |
Index for species. |
||
integer, | intent(in) | :: | n |
Index of sum over Bessel functions. |
||
double precision, | intent(in) | :: | kz |
Normalised parallel wavenumber. |
||
double precision, | intent(in) | :: | kperp |
Normalised perpendicular wavenumber. |
||
double complex, | intent(in) | :: | x |
Normalised complex frequency. |
Subroutine that calculates the susceptibility of species j based on the cold-plasma dispersion relation based on the paper Verscharen & Chandran, ApJ 764, 88, 2013.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
double complex, | intent(out) | :: | chi(3,3) |
Susceptibility tensor of species j. |
||
integer, | intent(in) | :: | j |
Index for species. |
||
double precision, | intent(in) | :: | kz |
Normalised parallel wavenumber. |
||
double precision, | intent(in) | :: | kperp |
Normalised perpendicular wavenumber. |
||
double complex, | intent(in) | :: | x |
Normalised complex frequency. |
Given a complex number Z = (XI,YI), this subroutine computes the value of the Faddeeva function W(Z) = exp(-Z2)erfc(-IZ), where erfc is the complex complementary error function and I is the imaginary unit.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real | :: | XI | ||||
real | :: | YI | ||||
real | :: | U | ||||
real | :: | V | ||||
logical | :: | FLAG |