SOLVE IONOSPHERIC POTENTIAL EQUATION IN 2D USING MUMPS.
ASSUME THAT:
* WE ARE RESOLVING THE POTENTIAL ALONG THE FIELD LINE
* POTENTIAL VARIES IN X1 AND X3. X2 IS NOMINALLY JUST ONE ELEMENT.
* LEFT AND RIGHT BOUNDARIES (IN X3) USE DIRICHLET BOUNARY CONDITIONS
* TOP (ALTITUDE) CAN BE NEUMANN OR DIRICHLET.
* BOTTOM (ALTITUDE) IS ALWAYS DIRICHLET.
This subroutine solves equations of the form:
d/dx1(sig0 dV/dx1) + d/dx3(sigP dV/dx3) = srcterm
(LOGICAL) BOTTOM GRID POINTS + CORNER, USE NEUMANN HERE, PRESUMABLY ZERO.
ZZZ - potential problem here if we have inverted grid...
force bottom current to zero
SOLVE (ALL WORKERS NEED TO SEE THIS CALL)
Arguments
Type
Intent
Optional
Attributes
Name
real(kind=wp),
intent(in),
dimension(:,:,:)
::
srcterm
real(kind=wp),
intent(in),
dimension(:,:,:)
::
sig0
real(kind=wp),
intent(in),
dimension(:,:,:)
::
sigP
real(kind=wp),
intent(in),
dimension(:,:)
::
Vminx1
real(kind=wp),
intent(in),
dimension(:,:)
::
Vmaxx1
real(kind=wp),
intent(in),
dimension(:,:)
::
Vminx3
real(kind=wp),
intent(in),
dimension(:,:)
::
Vmaxx3
real(kind=wp),
intent(in),
dimension(0:)
::
dx1
real(kind=wp),
intent(in),
dimension(:)
::
dx1i
real(kind=wp),
intent(in),
dimension(0:)
::
dx3all
real(kind=wp),
intent(in),
dimension(:)
::
dx3iall
integer,
intent(in)
::
flagdirich
logical,
intent(in)
::
perflag
integer,
intent(in)
::
gridflag
integer,
intent(in)
::
it
Return Value real(kind=wp),
dimension(size(sig0,1),1,size(sig0,3))
Nodes of different colours represent the following:
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.
Nodes of different colours represent the following:
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.