potentialBCs2D_fileinput Subroutine

public subroutine potentialBCs2D_fileinput(dt, dtE0, t, ymd, UTsec, E0dir, x, Vminx1, Vmaxx1, Vminx2, Vmaxx2, Vminx3, Vmaxx3, E01all, E02all, E03all, flagdirich)

A FILE INPUT BASED BOUNDARY CONDITIONS FOR ELECTRIC POTENTIAL OR FIELD-ALIGNED CURRENT. NOTE: THIS IS ONLY CALLED BY THE ROOT PROCESS

COMPUTE SOURCE/FORCING TERMS FROM BACKGROUND FIELDS, ETC. do not allow a background parallel field

bit of code duplication with worker code block below...

IF WE HAVE SINGLETON DIMENSION, ALLOCATE SOME SPACE FOR TEMP ARRAY INPUT TO INTERP1 NOW READ THE GRID

SPACE TO STORE INPUT DATA these need to be initialized so that something sensible happens at the beginning by default the code uses 300km altitude as a reference location, using the center x2,x3 point GRID INFORMATION EXISTS AT THIS POINT SO START READING IN PRECIP DATA read in the data from file get the date for "next" params

will work even for 2D grids, just repeats the data in the lon direction both min and max need to be read in from file and interpolated Note: for 2D simulations we don't use Vmaxx2p, etc. data read in from the input file - these BC's will be set later source data is 2D UPDATE OUR CONCEPT OF PREVIOUS AND NEXT TIMES INTERPOLATE IN TIME (LINEAR) make sure to set solve type every time step, as it does not persiste between function calls full 3D grid need to also handle lateral boundaries SOME BASIC DIAGNOSTICS LOAD POTENTIAL SOLVER INPUT ARRAYS, FIRST MAP THE ELECTRIC FIELDS define a reference metric factor for a given field line NOW THE BOUNDARY CONDITIONS full 3D grid

some type of 2D grid, lateral boundary will be overwritten Dirichlet: needs to be the same as the top corner grid points Neumann in x1: sides are grounded...

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(in) :: dt
real(kind=wp), intent(in) :: dtE0
real(kind=wp), intent(in) :: t
integer, intent(in), dimension(3):: ymd
real(kind=wp), intent(in) :: UTsec
character(len=*), intent(in) :: E0dir
type(curvmesh), intent(in) :: x
real(kind=wp), intent(out), dimension(:,:), target:: Vminx1
real(kind=wp), intent(out), dimension(:,:), target:: Vmaxx1
real(kind=wp), intent(out), dimension(:,:):: Vminx2
real(kind=wp), intent(out), dimension(:,:):: Vmaxx2
real(kind=wp), intent(out), dimension(:,:):: Vminx3
real(kind=wp), intent(out), dimension(:,:):: Vmaxx3
real(kind=wp), intent(out), dimension(:,:,:):: E01all
real(kind=wp), intent(out), dimension(:,:,:):: E02all
real(kind=wp), intent(out), dimension(:,:,:):: E03all
integer, intent(out) :: flagdirich

Calls

proc~~potentialbcs2d_fileinput~~CallsGraph proc~potentialbcs2d_fileinput potentialBCs2D_fileinput proc~interp1 interp1 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 interface~interp2 interp2 proc~potentialbcs2d_fileinput->interface~interp2 proc~dateinc dateinc proc~potentialbcs2d_fileinput->proc~dateinc proc~get_grid2 get_grid2 interface~get_grid2->proc~get_grid2 proc~get_simsize2 get_simsize2 interface~get_simsize2->proc~get_simsize2 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~day_wrap->proc~day_wrap proc~daysmonth daysmonth proc~day_wrap->proc~daysmonth proc~utsec2filestem->proc~day_wrap

Called by

proc~~potentialbcs2d_fileinput~~CalledByGraph proc~potentialbcs2d_fileinput potentialBCs2D_fileinput proc~potential_root_mpi_curv potential_root_mpi_curv proc~potential_root_mpi_curv->proc~potentialbcs2d_fileinput interface~potential_root_mpi_curv potential_root_mpi_curv interface~potential_root_mpi_curv->proc~potential_root_mpi_curv interface~potential_root_mpi potential_root_mpi interface~potential_root_mpi->interface~potential_root_mpi_curv proc~electrodynamics_curv electrodynamics_curv proc~electrodynamics_curv->interface~potential_root_mpi interface~electrodynamics electrodynamics interface~electrodynamics->proc~electrodynamics_curv program~gemini3d Gemini3D program~gemini3d->interface~electrodynamics

Contents

None