public subroutine calc_eigen(omega, electric, magnetic, vmean, ds, Ps, Ps_split, eigen_L, heat_L)
proc~~calc_eigen~~UsesGraph
proc~calc_eigen
calc_eigen
module~alps_var
alps_var
proc~calc_eigen->module~alps_var
mpi
mpi
module~alps_var->mpi
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
This subroutine calculates the relative electric and magnetic field amplitudes, the relative fluctuations in the density and velocity of all species, and the heating rates of the given solution.
It is based on the calc_eigen routine by Greg Howes and Kris Klein, found in PLUME.
The splitting by mechanisms is described in Huang, Howes, and Brown, JPP 2024.
Arguments
Type
Intent Optional Attributes
Name
double complex,
intent(in)
::
omega
Complex wave frequency .
double complex,
intent(out),
dimension(1:3)
::
electric
Relative electric field amplitude (eigenfunction).
double complex,
intent(out),
dimension(1:3)
::
magnetic
Relative magnetic field amplitude (eigenfunction).
double complex,
intent(out),
dimension(1:3,1:nspec)
::
vmean
Relative velocity-fluctuation amplitude (eigenfunction).
double complex,
intent(out),
dimension(1:nspec)
::
ds
Relative density-fluctuation amplitude (eigenfunction).
double precision,
intent(out),
dimension(1:nspec)
::
Ps
Relative heating rate of a given species.
double precision,
dimension(1:6,1:nspec)
::
Ps_split
Relative heating rate of a given species split by component
logical,
intent(in)
::
eigen_L
Check whether eigenfunction calculation is requested.
logical,
intent(in)
::
heat_L
Check whether eigenfunction calculation is requested.
proc~~calc_eigen~~CallsGraph
proc~calc_eigen
calc_eigen
proc~disp
disp
proc~calc_eigen->proc~disp
mpi_barrier
mpi_barrier
proc~disp->mpi_barrier
mpi_bcast
mpi_bcast
proc~disp->mpi_bcast
mpi_reduce
mpi_reduce
proc~disp->mpi_reduce
proc~calc_chi
calc_chi
proc~disp->proc~calc_chi
proc~determine_resonances
determine_resonances
proc~disp->proc~determine_resonances
proc~full_integrate
full_integrate
proc~disp->proc~full_integrate
proc~int_ee
int_ee
proc~disp->proc~int_ee
proc~int_ee_rel
int_ee_rel
proc~disp->proc~int_ee_rel
proc~besseli
besselI
proc~calc_chi->proc~besseli
proc~calc_chi_cold
calc_chi_cold
proc~calc_chi->proc~calc_chi_cold
proc~calc_ypsilon
calc_ypsilon
proc~calc_chi->proc~calc_ypsilon
proc~integrate
integrate
proc~full_integrate->proc~integrate
proc~integrate_res
integrate_res
proc~full_integrate->proc~integrate_res
proc~integrate_res_rel
integrate_res_rel
proc~full_integrate->proc~integrate_res_rel
proc~landau_integrate
landau_integrate
proc~full_integrate->proc~landau_integrate
proc~landau_integrate_rel
landau_integrate_rel
proc~full_integrate->proc~landau_integrate_rel
proc~determine_sproc_rel
determine_sproc_rel
proc~int_ee_rel->proc~determine_sproc_rel
proc~bessi
BESSI
proc~besseli->proc~bessi
proc~calc_ypsilon->proc~besseli
proc~dispfunct
dispfunct
proc~calc_ypsilon->proc~dispfunct
proc~int_t
int_T
proc~integrate->proc~int_t
proc~resu
resU
proc~integrate->proc~resu
proc~integrate_res->proc~integrate
proc~funct_g
funct_g
proc~integrate_res->proc~funct_g
proc~integrate_res_rel->proc~determine_sproc_rel
proc~integrate_resu_rel
integrate_resU_rel
proc~integrate_res_rel->proc~integrate_resu_rel
proc~eval_fit
eval_fit
proc~landau_integrate->proc~eval_fit
proc~int_t_res
int_T_res
proc~landau_integrate->proc~int_t_res
proc~landau_integrate_rel->proc~determine_sproc_rel
proc~landau_integrate_rel->proc~eval_fit
proc~int_t_res_rel
int_T_res_rel
proc~landau_integrate_rel->proc~int_t_res_rel
dfloat
dfloat
proc~bessi->dfloat
float
float
proc~bessi->float
proc~bessi0~2
BESSI0
proc~bessi->proc~bessi0~2
proc~bessi1~2
BESSI1
proc~bessi->proc~bessi1~2
proc~wofz
WOFZ
proc~dispfunct->proc~wofz
proc~distribution_analyt
distribution_analyt
proc~eval_fit->proc~distribution_analyt
proc~fit_function
fit_function
proc~eval_fit->proc~fit_function
proc~fit_function_poly
fit_function_poly
proc~eval_fit->proc~fit_function_poly
proc~funct_g->proc~int_t
proc~cbessj
CBESSJ
proc~int_t_res_rel->proc~cbessj
proc~alps_error
alps_error
proc~integrate_resu_rel->proc~alps_error
proc~int_t_rel
int_T_rel
proc~integrate_resu_rel->proc~int_t_rel
proc~principal_integral_rel
principal_integral_rel
proc~integrate_resu_rel->proc~principal_integral_rel
proc~resu_rel
resU_rel
proc~integrate_resu_rel->proc~resu_rel
mpi_abort
mpi_abort
proc~alps_error->mpi_abort
proc~output_time
output_time
proc~alps_error->proc~output_time
proc~fact
Fact
proc~cbessj->proc~fact
proc~bessj
BESSJ
proc~int_t_rel->proc~bessj
proc~funct_g_rel
funct_g_rel
proc~principal_integral_rel->proc~funct_g_rel
dcos
dcos
proc~wofz->dcos
dexp
dexp
proc~wofz->dexp
dsin
dsin
proc~wofz->dsin
idint
idint
proc~wofz->idint
idnint
idnint
proc~wofz->idnint
proc~bessj->float
proc~bessj0
BESSJ0
proc~bessj->proc~bessj0
proc~bessj1
BESSJ1
proc~bessj->proc~bessj1
proc~funct_g_rel->proc~int_t_rel
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
proc~~calc_eigen~~CalledByGraph
proc~calc_eigen
calc_eigen
proc~om_double_scan
om_double_scan
proc~om_double_scan->proc~calc_eigen
proc~om_scan
om_scan
proc~om_scan->proc~calc_eigen
program~alps
alps
program~alps->proc~om_double_scan
program~alps->proc~om_scan
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.