public subroutine fluid_adv(ns, vs1, Ts, vs2, vs3, J1, E1, Teinf, t, dt, x, nn, vn1, vn2, vn3, Tn, iver, f107, f107a, ymd, UTsec, flagprecfile, dtprec, precdir, flagglow, dtglow)
now add in photoionization sources
enforce minimum production rate to preserve conditioning for species that rely on constant production
testing should probably be done to see what the best choice is...
thermal electron heating rate from Swartz and Nisbet, (1978)
photoion ionrate and heating calculated seperately, added together with ionrate and heating from Fang or GLOW
Arguments
Type
Intent Optional
Attributes Name
real(kind=wp),
intent(inout),
dimension(-1:,-1:,-1:,:) ::
ns
real(kind=wp),
intent(inout),
dimension(-1:,-1:,-1:,:) ::
vs1
real(kind=wp),
intent(inout),
dimension(-1:,-1:,-1:,:) ::
Ts
real(kind=wp),
intent(inout),
dimension(-1:,-1:,-1:,:) ::
vs2
real(kind=wp),
intent(inout),
dimension(-1:,-1:,-1:,:) ::
vs3
real(kind=wp),
intent(in),
dimension(:,:,:) ::
J1
real(kind=wp),
intent(inout),
dimension(:,:,:) ::
E1
real(kind=wp),
intent(in)
::
Teinf
real(kind=wp),
intent(in)
::
t
real(kind=wp),
intent(in)
::
dt
type(curvmesh ),
intent(in)
::
x
real(kind=wp),
intent(in),
dimension(:,:,:,:) ::
nn
real(kind=wp),
intent(in),
dimension(:,:,:) ::
vn1
real(kind=wp),
intent(in),
dimension(:,:,:) ::
vn2
real(kind=wp),
intent(in),
dimension(:,:,:) ::
vn3
real(kind=wp),
intent(in),
dimension(:,:,:) ::
Tn
real(kind=wp),
intent(out),
dimension(:,:,:) ::
iver
real(kind=wp),
intent(in)
::
f107
real(kind=wp),
intent(in)
::
f107a
integer,
intent(in),
dimension(3) ::
ymd
real(kind=wp),
intent(in)
::
UTsec
integer,
intent(in)
::
flagprecfile
real(kind=wp),
intent(in)
::
dtprec
character(len=*),
intent(in)
::
precdir
integer,
intent(in)
::
flagglow
real(kind=wp),
intent(in)
::
dtglow
Calls
proc~~fluid_adv~~CallsGraph
proc~fluid_adv
fluid_adv
proc~etd_uncoupled
ETD_uncoupled
proc~fluid_adv->proc~etd_uncoupled
interface~srcsmomentum
srcsMomentum
proc~fluid_adv->interface~srcsmomentum
interface~rk2_prep_mpi
RK2_prep_mpi
proc~fluid_adv->interface~rk2_prep_mpi
interface~advec_prep_mpi
advec_prep_mpi
proc~fluid_adv->interface~advec_prep_mpi
proc~clean_param
clean_param
proc~fluid_adv->proc~clean_param
proc~precipbcs_fileinput
precipBCs_fileinput
proc~fluid_adv->proc~precipbcs_fileinput
proc~ionrate_fang08
ionrate_fang08
proc~fluid_adv->proc~ionrate_fang08
proc~eheating
eheating
proc~fluid_adv->proc~eheating
proc~sza
sza
proc~fluid_adv->proc~sza
proc~srcscontinuity
srcsContinuity
proc~fluid_adv->proc~srcscontinuity
interface~div3d
div3D
proc~fluid_adv->interface~div3d
proc~srcsenergy
srcsEnergy
proc~fluid_adv->proc~srcsenergy
proc~ionrate_glow98
ionrate_glow98
proc~fluid_adv->proc~ionrate_glow98
proc~photoionization
photoionization
proc~fluid_adv->proc~photoionization
interface~trbdf23d
TRBDF23D
proc~fluid_adv->interface~trbdf23d
interface~advec3d_mc_mpi
advec3D_MC_mpi
proc~fluid_adv->interface~advec3d_mc_mpi
proc~precipbcs
precipBCs
proc~fluid_adv->proc~precipbcs
proc~srcsmomentum_curv
srcsMomentum_curv
interface~srcsmomentum->proc~srcsmomentum_curv
proc~rk2_prep_mpi
RK2_prep_mpi
interface~rk2_prep_mpi->proc~rk2_prep_mpi
proc~advec_prep_mpi_23
advec_prep_mpi_23
interface~advec_prep_mpi->proc~advec_prep_mpi_23
mpi_recv
mpi_recv
proc~precipbcs_fileinput->mpi_recv
proc~interp1
interp1
proc~precipbcs_fileinput->proc~interp1
interface~get_grid2
get_grid2
proc~precipbcs_fileinput->interface~get_grid2
interface~get_simsize2
get_simsize2
proc~precipbcs_fileinput->interface~get_simsize2
mpi_send
mpi_send
proc~precipbcs_fileinput->mpi_send
proc~date_filename
date_filename
proc~precipbcs_fileinput->proc~date_filename
interface~interp2
interp2
proc~precipbcs_fileinput->interface~interp2
proc~dateinc
dateinc
proc~precipbcs_fileinput->proc~dateinc
proc~fang2008
fang2008
proc~ionrate_fang08->proc~fang2008
proc~doy_calc
doy_calc
proc~sza->proc~doy_calc
interface~div3d_curv_23
div3D_curv_23
interface~div3d->interface~div3d_curv_23
proc~maxwell_colln
maxwell_colln
proc~srcsenergy->proc~maxwell_colln
proc~coulomb_colln
coulomb_colln
proc~srcsenergy->proc~coulomb_colln
proc~ionrate_glow98->proc~doy_calc
proc~photoionization->mpi_recv
proc~photoionization->mpi_send
proc~trbdf23d_curv
TRBDF23D_curv
interface~trbdf23d->proc~trbdf23d_curv
proc~advec3d_mc_mpi_curv_23
advec3D_MC_mpi_curv_23
interface~advec3d_mc_mpi->proc~advec3d_mc_mpi_curv_23
proc~div3d_curv_23
div3D_curv_23
interface~div3d_curv_23->proc~div3d_curv_23
interface~halo
halo
proc~advec_prep_mpi_23->interface~halo
proc~get_grid2
get_grid2
interface~get_grid2->proc~get_grid2
proc~get_simsize2
get_simsize2
interface~get_simsize2->proc~get_simsize2
proc~daysmonth
daysmonth
proc~doy_calc->proc~daysmonth
proc~utsec2filestem
utsec2filestem
proc~date_filename->proc~utsec2filestem
proc~interp2
interp2
interface~interp2->proc~interp2
proc~day_wrap
day_wrap
proc~dateinc->proc~day_wrap
proc~trbdf21d
TRBDF21D
proc~trbdf23d_curv->proc~trbdf21d
proc~srcsmomentum_curv->proc~maxwell_colln
proc~srcsmomentum_curv->proc~coulomb_colln
interface~grad3d1
grad3D1
proc~srcsmomentum_curv->interface~grad3d1
proc~rk2_prep_mpi->interface~halo
proc~advec1d_mc_curv
advec1D_MC_curv
proc~advec3d_mc_mpi_curv_23->proc~advec1d_mc_curv
proc~advec3d_mc_mpi_curv_23->interface~halo
proc~minmod
minmod
proc~advec1d_mc_curv->proc~minmod
proc~day_wrap->proc~day_wrap
proc~day_wrap->proc~daysmonth
proc~gbsv
gbsv
proc~trbdf21d->proc~gbsv
interface~halo_23
halo_23
interface~halo->interface~halo_23
proc~utsec2filestem->proc~day_wrap
interface~grad3d1_curv_23
grad3D1_curv_23
interface~grad3d1->interface~grad3d1_curv_23
proc~halo_23
halo_23
interface~halo_23->proc~halo_23
dgbsv
dgbsv
proc~gbsv->dgbsv
sgbsv
sgbsv
proc~gbsv->sgbsv
proc~grad3d1_curv_23
grad3D1_curv_23
interface~grad3d1_curv_23->proc~grad3d1_curv_23
mpi_isend
mpi_isend
proc~halo_23->mpi_isend
mpi_irecv
mpi_irecv
proc~halo_23->mpi_irecv
proc~grid2id
grid2ID
proc~halo_23->proc~grid2id
mpi_waitall
mpi_waitall
proc~halo_23->mpi_waitall
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
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.