The ADM modules and programs¶
Module mag_adm_vol¶
Module : mag_adm
Purpose : (arbitrary) analytic dynamical magnetosphere data
-
class
adm_vol_t
¶ ADM field volume
type, extends (field_vol_t)
- Parameters
rho_w(:,:,:) – Density in wind regions – real(WP), allocatable
rho_h(:,:,:) – Density in hot regions – real(WP), allocatable
rho_c(:,:,:) – Density in cooled regions – real(WP), allocatable
v_w(:,:,;) – Velocity in wind regions – real(WP), allocatable
v_h(:,:,:) – Velocity in hot regions – real(WP), allocatable
v_c(:,:,:) – Velocity in cooled regions – real(WP), allocatable
T_h(:,:,:) – Temperature in hot regions – real(WP), allocatable
M_star – Stellar mass – real(WP)
R_star – Stellar radius – real(WP)
T_eff – Stellar effective temperature – real(WP)
X – Hydrogen abundance – real(WP)
Z – Metal abundance – real(WP)
M_dot – Wind mass-loss rate – real(WP)
beta – Wind velocity law exponent – real(WP)
v_inf – Wind terminal speed – real(WP)
Lambda – Coooling rate – real(WP)
R_c – Closure radius (R_star) – real(WP)
delta – Smoothing length (R_star) – real(WP)
process_node – process a particular node – procedure
bcast_nodes – broadcast the class if MPI – procedure
-
class
shock_func_t
¶ shock properties
type, extends (func_t)
- Parameters
r_m – radius of the loop apex (point farthest from the star) – real(WP)
B_m – magnetic field at the loop apex – real(WP)
g_m – g function (path inegral result) at the loop apex – real(WP)
B_star – magnetic field value of star – real(WP)
mu_B – dot product of r and B – real(WP)
beta – wind acceleration exponent – real(WP)
r_beta – radius where wind speed is sound speed when following a beta velocity law – real(WP)
chi_inf – cooling parameter; >>1 is adiabatic, <<1 is radiative – real(WP)
sp_r – radial spline –
spline_t
sp_B – magnetic field spline –
spline_t
sp_g – path-integral-function spline –
spline_t
verbose – – logical
eval_c – evaluate the shock discriminant – procedure
-
adm_vol_t_
(fv) result (av)¶ Construct the adm_vol_t
function
- Parameters
fv – field volume –
field_vol_t
, intent(in)av – ADM volume –
adm_vol_t
-
locate_shock_ (s, r_m, B_m, g_m, B_star, mu_B, &
locate the shock
function
- Parameters
s(:) – position along loop – real(WP), intent(in)
r_m – radius at shock apex – real(WP), intent(in)
B_m – magnetic field at shock apex – real(WP), intent(in)
g_m – g function (path inegral result) at the loop apex – real(WP), intent(in)
B_star – star magnetic field - real(WP), intent(in)
mu_B – dot product of r and B – real(WP), intent(in)
beta – wind acceleration exponent – real(WP), intent(in)
r_beta – radius where wind speed is sound speed when following a beta velocity law – real(WP), intent(in)
chi_inf – cooling parameter; >>1 is adiabatic, <<1 is radiative – real(WP), intent(in)
sp_r – radial spline – real(WP), intent(in)
sp_B – magnetic field spline – real(WP), intent(in)
sp_g – path-tinegral-function spline – real(WP), intent(in)
- Rtype s_s
s position (along loop) of shock – real(WP)
-
eval_c_
(this, z) result (f_z)¶ Evaluate the shock discriminant function, defined by XADM (B15)
function
- Parameters
this – shock in question –
shock_func_t
, intent(inout)z – real part is position along path length – complex(WP), intent(in)
- Rtype f_z
shock discriminant – complex(WP)
-
read_
(hg, av)¶ Read the adm_vol_t
only if hdf5
subroutine
-
write_
(hg, av)¶ Write the adm_vol_t
only if hdf5
subroutine
-
process_node
(this, vi, fl)¶ Process the node
subroutine
- Parameters
this – ADM volume –
adm_vol_t
, intent(inout)vi(:) – position for evaluation – integer, intent(in)
fl – field line –
field_line_t
, intent(in)
-
bcast_
(av, root_rank)¶ Broadcast the adm_vol_t
only if MPI
subroutine
- Parameters
av – ADM volume to broadcast –
adm_vol_t
, intent(inout)root_rank – rank of the root processor node – integer, intent(in)
-
bcast_nodes
(this, vi_a, vi_b, root_rank)¶ Broadcast the nodes with indices between i_a and i_b
only if MPI
subroutine
- Parameters
this – ADM volume to broadcast –
adm_vol_t
, intent(inout)vi_a(:) – lower indices of broadcasting – integer, intent(in)
vi_b(:) – upper indices of broadcasting – integer, intent(in)
root_rank – rank of the root processor node – integer, intent(in)