private subroutine electrodynamics_curv(it, t, dt, nn, vn2, vn3, Tn, sourcemlat, ns, Ts, vs1, B1, vs2, vs3, x, potsolve, flagcap, E1, E2, E3, J1, J2, J3, Phiall, flagE0file, dtE0, E0dir, ymd, UTsec)
THIS IS A WRAPPER FUNCTION FOR THE ELECTRODYANMICS
PART OF THE MODEL. BOTH THE ROOT AND WORKER PROCESSES
CALL THIS SAME SUBROUTINE, WHEN THEN BRANCHES INTO
DIFFERENT TASKS FOR EACH AFTER ALL COMPUTE CONDUCTIVITIES
AND INERTIAL CAPACITANCE.
NOTE THAT THE ALLOCATION STATUS
OF THE ALL VARIABLES FOR THE WORKERS WILL BE UNALLOCATED.
THIS code requires FORTRAN >= 2003 STANDARD.
To leading order the ion drifts do not include the polarization parts,
otherwise it may mess up polarization convective term in the electrodynamics solver...
Arguments
Type
Intent Optional
Attributes Name
integer,
intent(in)
::
it
real(kind=wp),
intent(in)
::
t
real(kind=wp),
intent(in)
::
dt
real(kind=wp),
intent(in),
dimension(:,:,:,:) ::
nn
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(in)
::
sourcemlat
real(kind=wp),
intent(in),
dimension(-1:,-1:,-1:,:) ::
ns
real(kind=wp),
intent(in),
dimension(-1:,-1:,-1:,:) ::
Ts
real(kind=wp),
intent(in),
dimension(-1:,-1:,-1:,:) ::
vs1
real(kind=wp),
intent(in),
dimension(-1:,-1:,-1:) ::
B1
real(kind=wp),
intent(inout),
dimension(-1:,-1:,-1:,:) ::
vs2
real(kind=wp),
intent(inout),
dimension(-1:,-1:,-1:,:) ::
vs3
type(curvmesh ),
intent(in)
::
x
integer,
intent(in)
::
potsolve
integer,
intent(in)
::
flagcap
real(kind=wp),
intent(out),
dimension(:,:,:) ::
E1
real(kind=wp),
intent(out),
dimension(:,:,:) ::
E2
real(kind=wp),
intent(out),
dimension(:,:,:) ::
E3
real(kind=wp),
intent(out),
dimension(:,:,:) ::
J1
real(kind=wp),
intent(out),
dimension(:,:,:) ::
J2
real(kind=wp),
intent(out),
dimension(:,:,:) ::
J3
real(kind=wp),
intent(inout),
dimension(:,:,:), allocatable ::
Phiall inout since it may not be allocated or deallocated in this procedure
integer,
intent(in)
::
flagE0file
real(kind=wp),
intent(in)
::
dtE0
character(len=*),
intent(in)
::
E0dir
integer,
intent(in),
dimension(3) ::
ymd
real(kind=wp),
intent(in)
::
UTsec
Calls
proc~~electrodynamics_curv~~CallsGraph
proc~electrodynamics_curv
electrodynamics_curv
interface~potential_workers_mpi
potential_workers_mpi
proc~electrodynamics_curv->interface~potential_workers_mpi
interface~potential_root_mpi
potential_root_mpi
proc~electrodynamics_curv->interface~potential_root_mpi
proc~capacitance
capacitance
proc~electrodynamics_curv->proc~capacitance
proc~conductivities
conductivities
proc~electrodynamics_curv->proc~conductivities
proc~potential_workers_mpi
potential_workers_mpi
interface~potential_workers_mpi->proc~potential_workers_mpi
interface~potential_root_mpi_curv
potential_root_mpi_curv
interface~potential_root_mpi->interface~potential_root_mpi_curv
proc~maxwell_colln
maxwell_colln
proc~conductivities->proc~maxwell_colln
proc~coulomb_colln
coulomb_colln
proc~conductivities->proc~coulomb_colln
interface~bcast_recv
bcast_recv
proc~potential_workers_mpi->interface~bcast_recv
proc~elliptic_workers
elliptic_workers
proc~potential_workers_mpi->proc~elliptic_workers
mpi_recv
mpi_recv
proc~potential_workers_mpi->mpi_recv
proc~halo_pot
halo_pot
proc~potential_workers_mpi->proc~halo_pot
interface~div3d
div3D
proc~potential_workers_mpi->interface~div3d
interface~integral3d1_curv_alt
integral3D1_curv_alt
proc~potential_workers_mpi->interface~integral3d1_curv_alt
interface~gather_send
gather_send
proc~potential_workers_mpi->interface~gather_send
interface~integral3d1
integral3D1
proc~potential_workers_mpi->interface~integral3d1
interface~grad3d2
grad3D2
proc~potential_workers_mpi->interface~grad3d2
interface~grad3d1
grad3D1
proc~potential_workers_mpi->interface~grad3d1
interface~grad3d3
grad3D3
proc~potential_workers_mpi->interface~grad3d3
proc~potential_root_mpi_curv
potential_root_mpi_curv
interface~potential_root_mpi_curv->proc~potential_root_mpi_curv
interface~bcast_recv2d_23
bcast_recv2D_23
interface~bcast_recv->interface~bcast_recv2d_23
interface~bcast_recv4d_23
bcast_recv4D_23
interface~bcast_recv->interface~bcast_recv4d_23
interface~bcast_recv3d_23
bcast_recv3D_23
interface~bcast_recv->interface~bcast_recv3d_23
interface~bcast_recv1d_23
bcast_recv1D_23
interface~bcast_recv->interface~bcast_recv1d_23
proc~check_mumps_status
check_mumps_status
proc~elliptic_workers->proc~check_mumps_status
proc~quiet_mumps
quiet_mumps
proc~elliptic_workers->proc~quiet_mumps
mumps_exec
mumps_exec
proc~elliptic_workers->mumps_exec
interface~halo
halo
proc~halo_pot->interface~halo
proc~potential_root_mpi_curv->proc~halo_pot
proc~potential_root_mpi_curv->interface~div3d
proc~potential_root_mpi_curv->interface~integral3d1_curv_alt
proc~potential_root_mpi_curv->interface~integral3d1
proc~potential_root_mpi_curv->interface~grad3d2
proc~potential_root_mpi_curv->interface~grad3d1
proc~potential_root_mpi_curv->interface~grad3d3
interface~potential2d_polarization_periodic
potential2D_polarization_periodic
proc~potential_root_mpi_curv->interface~potential2d_polarization_periodic
proc~potential3d_fieldresolved_decimate
potential3D_fieldresolved_decimate
proc~potential_root_mpi_curv->proc~potential3d_fieldresolved_decimate
proc~potentialbcs2d
potentialBCs2D
proc~potential_root_mpi_curv->proc~potentialbcs2d
interface~bcast_send
bcast_send
proc~potential_root_mpi_curv->interface~bcast_send
interface~potential2d_fieldresolved
potential2D_fieldresolved
proc~potential_root_mpi_curv->interface~potential2d_fieldresolved
interface~gather_recv
gather_recv
proc~potential_root_mpi_curv->interface~gather_recv
mpi_send
mpi_send
proc~potential_root_mpi_curv->mpi_send
proc~potentialbcs2d_fileinput
potentialBCs2D_fileinput
proc~potential_root_mpi_curv->proc~potentialbcs2d_fileinput
interface~potential2d_polarization
potential2D_polarization
proc~potential_root_mpi_curv->interface~potential2d_polarization
interface~div3d_curv_23
div3D_curv_23
interface~div3d->interface~div3d_curv_23
proc~integral3d1_curv_alt
integral3D1_curv_alt
interface~integral3d1_curv_alt->proc~integral3d1_curv_alt
interface~gather_send4d_23
gather_send4D_23
interface~gather_send->interface~gather_send4d_23
interface~gather_send2d_23
gather_send2D_23
interface~gather_send->interface~gather_send2d_23
interface~gather_send3d_23
gather_send3D_23
interface~gather_send->interface~gather_send3d_23
interface~integral3d1_curv
integral3D1_curv
interface~integral3d1->interface~integral3d1_curv
interface~grad3d2_curv_23
grad3D2_curv_23
interface~grad3d2->interface~grad3d2_curv_23
interface~grad3d1_curv_23
grad3D1_curv_23
interface~grad3d1->interface~grad3d1_curv_23
interface~grad3d3_curv_23
grad3D3_curv_23
interface~grad3d3->interface~grad3d3_curv_23
proc~bcast_recv2d_23
bcast_recv2D_23
interface~bcast_recv2d_23->proc~bcast_recv2d_23
proc~potential2d_polarization_periodic
potential2D_polarization_periodic
interface~potential2d_polarization_periodic->proc~potential2d_polarization_periodic
proc~bcast_recv4d_23
bcast_recv4D_23
interface~bcast_recv4d_23->proc~bcast_recv4d_23
proc~grad3d3_curv_23
grad3D3_curv_23
interface~grad3d3_curv_23->proc~grad3d3_curv_23
proc~bcast_recv3d_23
bcast_recv3D_23
interface~bcast_recv3d_23->proc~bcast_recv3d_23
proc~potential3d_fieldresolved_decimate->interface~grad3d2
proc~potential3d_fieldresolved_decimate->interface~grad3d1
proc~potential3d_fieldresolved_decimate->interface~grad3d3
proc~interp1
interp1
proc~potential3d_fieldresolved_decimate->proc~interp1
interface~elliptic3d_cart
elliptic3D_cart
proc~potential3d_fieldresolved_decimate->interface~elliptic3d_cart
interface~bcast_send1d_23
bcast_send1D_23
interface~bcast_send->interface~bcast_send1d_23
interface~bcast_send2d_23
bcast_send2D_23
interface~bcast_send->interface~bcast_send2d_23
interface~bcast_send4d_23
bcast_send4D_23
interface~bcast_send->interface~bcast_send4d_23
interface~bcast_send3d_23
bcast_send3D_23
interface~bcast_send->interface~bcast_send3d_23
proc~potential2d_fieldresolved
potential2D_fieldresolved
interface~potential2d_fieldresolved->proc~potential2d_fieldresolved
proc~gather_send4d_23
gather_send4D_23
interface~gather_send4d_23->proc~gather_send4d_23
proc~grad3d1_curv_23
grad3D1_curv_23
interface~grad3d1_curv_23->proc~grad3d1_curv_23
proc~gather_send2d_23
gather_send2D_23
interface~gather_send2d_23->proc~gather_send2d_23
proc~gather_send3d_23
gather_send3D_23
interface~gather_send3d_23->proc~gather_send3d_23
interface~gather_recv4d_23
gather_recv4D_23
interface~gather_recv->interface~gather_recv4d_23
interface~gather_recv3d_23
gather_recv3D_23
interface~gather_recv->interface~gather_recv3d_23
interface~gather_recv2d_23
gather_recv2D_23
interface~gather_recv->interface~gather_recv2d_23
proc~integral3d1_curv
integral3D1_curv
interface~integral3d1_curv->proc~integral3d1_curv
proc~grad3d2_curv_23
grad3D2_curv_23
interface~grad3d2_curv_23->proc~grad3d2_curv_23
interface~interp2
interp2
proc~potentialbcs2d_fileinput->interface~interp2
proc~potentialbcs2d_fileinput->proc~interp1
interface~get_grid2
get_grid2
proc~potentialbcs2d_fileinput->interface~get_grid2
interface~get_simsize2
get_simsize2
proc~potentialbcs2d_fileinput->interface~get_simsize2
proc~date_filename
date_filename
proc~potentialbcs2d_fileinput->proc~date_filename
proc~dateinc
dateinc
proc~potentialbcs2d_fileinput->proc~dateinc
interface~halo_23
halo_23
interface~halo->interface~halo_23
proc~potential2d_polarization
potential2D_polarization
interface~potential2d_polarization->proc~potential2d_polarization
proc~div3d_curv_23
div3D_curv_23
interface~div3d_curv_23->proc~div3d_curv_23
proc~interp2
interp2
interface~interp2->proc~interp2
interface~elliptic2d_cart
elliptic2D_cart
proc~potential2d_fieldresolved->interface~elliptic2d_cart
proc~gather_recv4d_23
gather_recv4D_23
interface~gather_recv4d_23->proc~gather_recv4d_23
proc~gather_recv3d_23
gather_recv3D_23
interface~gather_recv3d_23->proc~gather_recv3d_23
interface~grad2d1_curv_alt
grad2D1_curv_alt
proc~potential2d_polarization->interface~grad2d1_curv_alt
interface~elliptic2d_polarization
elliptic2D_polarization
proc~potential2d_polarization->interface~elliptic2d_polarization
interface~grad2d3
grad2D3
proc~potential2d_polarization->interface~grad2d3
proc~bcast_recv4d_23->mpi_recv
proc~bcast_send2d_23
bcast_send2D_23
interface~bcast_send2d_23->proc~bcast_send2d_23
proc~bcast_recv2d_23->mpi_recv
proc~gather_send3d_23->mpi_send
proc~gather_recv2d_23
gather_recv2D_23
interface~gather_recv2d_23->proc~gather_recv2d_23
proc~potential2d_polarization_periodic->interface~grad2d1_curv_alt
interface~elliptic2d_polarization_periodic
elliptic2D_polarization_periodic
proc~potential2d_polarization_periodic->interface~elliptic2d_polarization_periodic
proc~grad2d3_curv_periodic
grad2D3_curv_periodic
proc~potential2d_polarization_periodic->proc~grad2d3_curv_periodic
proc~elliptic3d_cart
elliptic3D_cart
interface~elliptic3d_cart->proc~elliptic3d_cart
proc~get_grid2
get_grid2
interface~get_grid2->proc~get_grid2
proc~bcast_send4d_23
bcast_send4D_23
interface~bcast_send4d_23->proc~bcast_send4d_23
proc~bcast_recv3d_23->mpi_recv
proc~gather_send4d_23->mpi_send
proc~bcast_send3d_23
bcast_send3D_23
interface~bcast_send3d_23->proc~bcast_send3d_23
proc~halo_23
halo_23
interface~halo_23->proc~halo_23
proc~gather_send2d_23->mpi_send
proc~get_simsize2
get_simsize2
interface~get_simsize2->proc~get_simsize2
proc~utsec2filestem
utsec2filestem
proc~date_filename->proc~utsec2filestem
proc~day_wrap
day_wrap
proc~dateinc->proc~day_wrap
proc~elliptic2d_cart
elliptic2D_cart
interface~elliptic2d_cart->proc~elliptic2d_cart
proc~grad2d1_curv_alt_23
grad2D1_curv_alt_23
interface~grad2d1_curv_alt->proc~grad2d1_curv_alt_23
proc~elliptic2d_polarization
elliptic2D_polarization
interface~elliptic2d_polarization->proc~elliptic2d_polarization
proc~elliptic3d_cart->proc~check_mumps_status
proc~elliptic3d_cart->proc~quiet_mumps
proc~elliptic3d_cart->mumps_exec
mumps_perm
mumps_perm
proc~elliptic3d_cart->mumps_perm
mpi_irecv
mpi_irecv
proc~halo_23->mpi_irecv
proc~grid2id
grid2ID
proc~halo_23->proc~grid2id
mpi_isend
mpi_isend
proc~halo_23->mpi_isend
mpi_waitall
mpi_waitall
proc~halo_23->mpi_waitall
proc~grad2d3_curv_23
grad2D3_curv_23
interface~grad2d3->proc~grad2d3_curv_23
proc~gather_recv4d_23->mpi_recv
proc~slabinds
slabinds
proc~gather_recv4d_23->proc~slabinds
proc~bcast_send2d_23->mpi_send
proc~bcast_send2d_23->proc~slabinds
proc~elliptic2d_polarization_periodic
elliptic2D_polarization_periodic
interface~elliptic2d_polarization_periodic->proc~elliptic2d_polarization_periodic
proc~gather_recv3d_23->mpi_recv
proc~gather_recv3d_23->proc~slabinds
proc~day_wrap->proc~day_wrap
proc~daysmonth
daysmonth
proc~day_wrap->proc~daysmonth
proc~bcast_send3d_23->mpi_send
proc~bcast_send3d_23->proc~slabinds
proc~gather_recv2d_23->mpi_recv
proc~gather_recv2d_23->proc~slabinds
proc~bcast_send4d_23->mpi_send
proc~bcast_send4d_23->proc~slabinds
proc~utsec2filestem->proc~day_wrap
proc~elliptic2d_polarization->proc~check_mumps_status
proc~elliptic2d_polarization->proc~quiet_mumps
proc~elliptic2d_polarization->mumps_exec
proc~elliptic2d_polarization->mumps_perm
proc~id2grid
ID2grid
proc~slabinds->proc~id2grid
proc~elliptic2d_cart->proc~check_mumps_status
proc~elliptic2d_cart->proc~quiet_mumps
proc~elliptic2d_cart->mumps_exec
proc~elliptic2d_cart->mumps_perm
proc~elliptic2d_polarization_periodic->proc~check_mumps_status
proc~elliptic2d_polarization_periodic->proc~quiet_mumps
proc~elliptic2d_polarization_periodic->mumps_exec
proc~elliptic2d_polarization_periodic->mumps_perm
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.
Called by
proc~~electrodynamics_curv~~CalledByGraph
proc~electrodynamics_curv
electrodynamics_curv
interface~electrodynamics
electrodynamics
interface~electrodynamics->proc~electrodynamics_curv
program~gemini3d
Gemini3D
program~gemini3d->interface~electrodynamics
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.