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_tsp_B – magnetic field spline –
spline_tsp_g – path-integral-function spline –
spline_tverbose – – 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)