em3d.v



[EM3D_APML] [EM3D_BLOCKtypemodule] [EM3D_FIELDobjects] [EM3D_FIELDtypemodule] [EM3D_SPLITYEEFIELDtypemodule] [EM3D_YEEFIELDtypemodule] [EM3D_bnd] [EM3D_kyee]

em3d
# Copyright (c) 1990-1998, The Regents of the University of California.
# All rights reserved.  See LEGAL.LLNL for full text and disclaimer.
# This is the parameter and variable database for the 3-D EM solver of code WARP
# Jean-Luc Vay,   LBNL, (510)486-4934
# David P. Grote, LLNL, (510)423-7194
# Alex Friedman,  LLNL, (510)422-0827


Module EM3D_APML:
pml              integer /1/
pml_sadjusted    integer /2/
apml_exponential integer /3/
apml_hybrid      integer /4/
apml_ssa         integer /5/
apml_lwa         integer /6/


[vcap3d]
Module EM3D_bnd dump:
l_pml_cummer  logical    /.false./
s_max_init       real    /4./
s_max_x          real
s_max_y          real
s_delta          real    /5./
sb_coef          real    /0./
nn               real    /2./
bnd_cond         integer /2/


[push_em3d_kyeebvec] [push_em3d_kyeeefvec] [push_em3d_kyeefvec] [push_em3d_kyeevec] [push_em3d_splitkyeebvec] [push_em3d_splitkyeeefvec]
Module EM3D_kyee dump:
alphax real /0.58333333333333337/  # 7./12.
betaxy real /0.083333333333333329/ # 1./12.
betaxz real /0.083333333333333329/ # 1./12.
gammax real /0.020833333333333332/ # 1./48.
alphay real /0.58333333333333337/  # 7./12.
betayx real /0.083333333333333329/ # 1./12.
betayz real /0.083333333333333329/ # 1./12.
gammay real /0.020833333333333332/ # 1./48.
alphaz real /0.58333333333333337/  # 7./12.
betazx real /0.083333333333333329/ # 1./12.
betazy real /0.083333333333333329/ # 1./12.
gammaz real /0.020833333333333332/ # 1./48.


[apply_dmask]
Module EM3D_FIELDobjects dump:
l_onegrid                    logical /.true./
l_elaser_out_plane           logical /.false./
l_moving_window              logical /.false./
l_noinputfield               logical /.false./
l_copyfields                 logical /.false./
l_smoothdensity              logical /.false./
ntamp_apr                    integer /4/
rap                          integer /1/
ndelta_t                     integer /1/
nxpatch                      integer /1/
nypatch                      integer /1/
ixpatch                      integer /0/
iypatch                      integer /0/
ntamp_scatter                integer /2/
ntamp_gather                 integer /4/
transition_zone              real /0./ # length of zone for linear transition from coarse to fine force (in coarse cell units)
tmin_moving_main_window      real /0./
otherproc                    integer /10/
otherblock                   integer /11/
push_em3d_e(f:EM3D_YEEFIELDtype,dt:real) subroutine
push_em3d_b(f:EM3D_YEEFIELDtype,dt:real) subroutine
push_em3d_ef(f:EM3D_YEEFIELDtype,dt:real) subroutine
push_em3d_f(f:EM3D_YEEFIELDtype,dt:real) subroutine
push_em3d_phi(f:EM3D_YEEFIELDtype,dt:real) subroutine
push_em3d_a(f:EM3D_YEEFIELDtype,dt:real) subroutine
push_em3d_block(f:EM3D_BLOCKtype,dt:real,which:integer) subroutine
push_em3d_eef(f:EM3D_BLOCKtype,dt:real,which:integer,l_pushf:logical,l_pushpot:logical) subroutine
push_em3d_bf(f:EM3D_BLOCKtype,dt:real,which:integer,l_pushf:logical,l_pushpot:logical) subroutine
init_splitfield(sf:EM3D_SPLITYEEFIELDtype, 
                nx:integer,ny:integer,nz:integer, 
                nxguard:integer,nyguard:integer,nzguard:integer, 
                dt:real,dx:real,dy:real,dz:real,
                xmin:real,ymin:real,zmin:real,clight:real,
                lsx:integer,lsy:integer,lsz:integer, 
                nnx:integer, smaxx:real, sdeltax:real, 
                nny:integer, smaxy:real, sdeltay:real, 
                nnz:integer, smaxz:real, sdeltaz:real, 
                l_2dxz:logical, l_2drz:logical) subroutine
depose_jxjyjz_esirkepov_linear_serial(j:real,
                           n:integer,x(n):real,y(n):real,z(n):real,
                           ux(n):real,uy(n):real,uz(n):real,
                           gaminv(n):real,w:real,q:real,
                           xmin:real,ymin:real,zmin:real,
                           dt:real,dx:real,dy:real,dz:real,
                           nx:integer,ny:integer,nz:integer,
                           nxguard:integer,nyguard:integer,nzguard:integer,
                           l_particles_weight:logical)
                           subroutine
depose_jxjyjz_esirkepov_n(j:real,
                           n:integer,x(n):real,y(n):real,z(n):real,
                           vx(n):real,vy(n):real,vz(n):real,gaminv(n):real,
                           w:real,q:real,
                           xmin:real,ymin:real,zmin:real,
                           dt:real,dx:real,dy:real,dz:real,
                           nx:integer,ny:integer,nz:integer,
                           nxguard:integer,nyguard:integer,nzguard:integer,
                           nox:integer,noy:integer,noz:integer,
                           l_particles_weight:logical,
                           l4symtry:logical)
                           subroutine
depose_jxjyjz_pxpypz_esirkepov_linear_serial(cj:real,mp:real,
                           n:integer,x(n):real,y(n):real,z(n):real,
                           ux(n):real,uy(n):real,uz(n):real,
                           gaminv(n):real,w:real,q:real,m:real,
                           xmin:real,ymin:real,zmin:real,
                           dt:real,dx:real,dy:real,dz:real,
                           nx:integer,ny:integer,nz:integer,
                           nxguard:integer,nyguard:integer,nzguard:integer,
                           l_particles_weight:logical,
                           l_relativ:logical)
                           subroutine
depose_rho_linear_serial(rho:real,
                           n:integer,x(n):real,y(n):real,z(n):real,
                           w(n):real,q:real,
                           xmin:real,ymin:real,zmin:real,
                           dx:real,dy:real,dz:real,
                           nx:integer,ny:integer,nz:integer,
                           nxguard:integer,nyguard:integer,nzguard:integer,
                           l_particles_weight:logical)
                           subroutine
depose_rho_n(rho:real,
                           n:integer,x(n):real,y(n):real,z(n):real,
                           w:real,q:real,
                           xmin:real,ymin:real,zmin:real,
                           dx:real,dy:real,dz:real,
                           nx:integer,ny:integer,nz:integer,
                           nxguard:integer,nyguard:integer,nzguard:integer,
                           nox:integer,noy:integer,noz:integer,
                           l_particles_weight:logical,
                           l4symtry:logical)
                           subroutine
depose_rho_n_2dxz(rho:real,
                           n:integer,x(n):real,y(n):real,z(n):real,
                           w:real,q:real,
                           xmin:real,zmin:real,
                           dx:real,dz:real,
                           nx:integer,nz:integer,
                           nxguard:integer,nzguard:integer,
                           nox:integer,noz:integer,
                           l_particles_weight:logical,
                           l4symtry:logical,l_2drz:logical)
                           subroutine
depose_j_n_2dxz(cj:real,
                           n:integer,x(n):real,z(n):real,
                           ux(n):real,uy(n):real,uz(n):real,
                           gaminv(n):real,w:real,q:real,
                           xmin:real,zmin:real,
                           dt:real,dx:real,dz:real,
                           nx:integer,nz:integer,
                           nxguard:integer,nzguard:integer,
                           nox:integer,noz:integer,
                           l_particles_weight:logical,
                           l4symtry:logical)
                           subroutine
getf3d_linear(n:integer,xp(n):real,yp(n):real,zp(n):real,
               ex(n):real,ey(n):real,ez(n):real,
               xmin:real,ymin:real,zmin:real,
               dx:real,dy:real,dz:real,
               nx:integer,ny:integer,nz:integer,
               nxguard:integer,nyguard:integer,nzguard:integer,
               exg:real,eyg:real,ezg:real)
                           subroutine
getf3d_n(n:integer,xp(n):real,yp(n):real,zp(n):real,
         ex(n):real,ey(n):real,ez(n):real,
         xmin:real,ymin:real,zmin:real,
         dx:real,dy:real,dz:real,
         nx:integer,ny:integer,nz:integer,
         nxguard:integer,nyguard:integer,nzguard:integer,
         nox:integer,noy:integer,noz:integer,
         exg:real,eyg:real,ezg:real,l4symtry:logical)
                           subroutine
averagef3d_rz(nx:integer,ny:integer,nz:integer,
              nxguard:integer,nyguard:integer,nzguard:integer,
              fxg:real,fyg:real,fzg:real,ntheta:integer) subroutine
getf2dxz_n(n:integer,xp(n):real,yp(n):real,zp(n):real,
         ex(n):real,ey(n):real,ez(n):real,
         xmin:real,zmin:real,
         dx:real,dz:real,
         nx:integer,ny:integer,nz:integer,
         nxguard:integer,nyguard:integer,nzguard:integer,
         nox:integer,noz:integer,
         exg:real,eyg:real,ezg:real,l4symtry:logical,l_2drz:logical)
                           subroutine
getf2drz_n(n:integer,xp(n):real,yp(n):real,zp(n):real,
         ex(n):real,ey(n):real,ez(n):real,
         xmin:real,zmin:real,
         dx:real,dz:real,
         nx:integer,ny:integer,nz:integer,
         nxguard:integer,nyguard:integer,nzguard:integer,
         nox:integer,noz:integer,
         exg:real,eyg:real,ezg:real,l4symtry:logical,l_2drz:logical)
                           subroutine
gete3d_linear_energy_conserving(n:integer,xp(n):real,yp(n):real,zp(n):real,
               ex(n):real,ey(n):real,ez(n):real,
               xmin:real,ymin:real,zmin:real,
               dx:real,dy:real,dz:real,
               nx:integer,ny:integer,nz:integer,
               nxguard:integer,nyguard:integer,nzguard:integer,
               exg:real,eyg:real,ezg:real)
                           subroutine
getb3d_linear_energy_conserving(n:integer,xp(n):real,yp(n):real,zp(n):real,
               bx(n):real,by(n):real,bz(n):real,
               xmin:real,ymin:real,zmin:real,
               dx:real,dy:real,dz:real,
               nx:integer,ny:integer,nz:integer,
               nxguard:integer,nyguard:integer,nzguard:integer,
               bxg:real,byg:real,bzg:real)
                           subroutine
geteb3d_linear_energy_conserving(n:integer,xp(n):real,yp(n):real,zp(n):real,
               ex(n):real,ey(n):real,ez(n):real,
               bx(n):real,by(n):real,bz(n):real,
               xmin:real,ymin:real,zmin:real,
               dx:real,dy:real,dz:real,
               nx:integer,ny:integer,nz:integer,
               nxguard:integer,nyguard:integer,nzguard:integer,
               exg:real,eyg:real,ezg:real,
               bxg:real,byg:real,bzg:real)
                           subroutine
gete3d_n_energy_conserving(n:integer,xp(n):real,yp(n):real,zp(n):real,
               ex(n):real,ey(n):real,ez(n):real,
               xmin:real,ymin:real,zmin:real,
               dx:real,dy:real,dz:real,
               nx:integer,ny:integer,nz:integer,
               nxguard:integer,nyguard:integer,nzguard:integer,
               nox:integer,noy:integer,noz:integer,
               exg:real,eyg:real,ezg:real,
                           l4symtry:logical)
                           subroutine
getb3d_n_energy_conserving(n:integer,xp(n):real,yp(n):real,zp(n):real,
               bx(n):real,by(n):real,bz(n):real,
               xmin:real,ymin:real,zmin:real,
               dx:real,dy:real,dz:real,
               nx:integer,ny:integer,nz:integer,
               nxguard:integer,nyguard:integer,nzguard:integer,
               nox:integer,noy:integer,noz:integer,
               bxg:real,byg:real,bzg:real,
                           l4symtry:logical)
                           subroutine
gete2dxz_n_energy_conserving(n:integer,xp(n):real,yp(n):real,zp(n):real,
               ex(n):real,ey(n):real,ez(n):real,
               xmin:real,zmin:real,
               dx:real,dz:real,
               nx:integer,nz:integer,
               nxguard:integer,nzguard:integer,
               nox:integer,noz:integer,
               exg:real,eyg:real,ezg:real,
                           l4symtry:logical,l_2drz:logical)
                           subroutine
getb2dxz_n_energy_conserving(n:integer,xp(n):real,yp(n):real,zp(n):real,
               bx(n):real,by(n):real,bz(n):real,
               xmin:real,zmin:real,
               dx:real,dz:real,
               nx:integer,nz:integer,
               nxguard:integer,nzguard:integer,
               nox:integer,noz:integer,
               bxg:real,byg:real,bzg:real,
                           l4symtry:logical,l_2drz:logical)
                           subroutine
yee2node3d(f:EM3D_YEEFIELDtype) subroutine
node2yee3d(f:EM3D_YEEFIELDtype) subroutine
em3d_exchange_e(b:EM3D_BLOCKtype) subroutine
em3d_exchange_b(b:EM3D_BLOCKtype) subroutine
em3d_exchange_f(b:EM3D_BLOCKtype) subroutine
em3d_exchange_j(b:EM3D_BLOCKtype) subroutine
em3d_exchange_rho(b:EM3D_BLOCKtype) subroutine
add_current_slice_3d(f:EM3D_YEEFIELDtype,i:integer) subroutine
add_rho_slice_3d(f:EM3D_YEEFIELDtype,i:integer) subroutine
set_incond(f:EM3D_YEEFIELDtype,n:integer,indx(3,n):integer) subroutine
em3d_applybc_rho(f:EM3D_YEEFIELDtype,xlbnd:integer,xrbnd:integer,
                                     ylbnd:integer,yrbnd:integer,
                                     zlbnd:integer,zrbnd:integer) subroutine
em3d_applybc_j(f:EM3D_YEEFIELDtype,xlbnd:integer,xrbnd:integer,
                                   ylbnd:integer,yrbnd:integer,
                                   zlbnd:integer,zrbnd:integer) subroutine
project_jxjyjz(jfine:real,jcoarse:real,jcoarse_mother:real,
               nxf:integer,nyf:integer,nzf:integer,
               nxc:integer,nyc,nzc:integer,
               nxguard:integer,nyguard:integer,nzguard:integer,
               rapx:integer,rapy:integer,rapz:integer,
               ixc:integer,iyc:integer,izc:integer,l_2dxz:logical,
               icycle:integer,novercycle:integer) subroutine
project_rho(rhofine:real,rhocoarse:real,rhocoarse_mother:real,
               nxf:integer,nyf:integer,nzf:integer,
               nxc:integer,nyc,nzc:integer,
               nxguard:integer,nyguard:integer,nzguard:integer,
               rapx:integer,rapy:integer,rapz:integer,
               ixc:integer,iyc:integer,izc:integer,l_2dxz:logical) subroutine
apply_dmask(rho:real,jc:real,dmaskx:real,dmasky:real,dmaskz:real,
            bounds(6):integer,nguarddepos(3):integer,ntrans(3):integer,
            nx:integer,ny:integer,nz:integer,nxguard:integer,nyguard:integer,nzguard:integer,
            l_pushf:logical,l_2dxz:logical) subroutine
addsubstractfields(child:EM3D_BLOCKtype,child_coarse:EM3D_BLOCKtype,
                   parent:EM3D_BLOCKtype,lc(3):integer,ref(3):integer,l_2dxz:logical) subroutine
addsubstractfields_nodal(child:EM3D_BLOCKtype,child_coarse:EM3D_BLOCKtype,
                   parent:EM3D_BLOCKtype,lc(3):integer,ref(3):integer,l_2dxz:logical) subroutine
shift_em3dblock_ncells_x(b:EM3D_BLOCKtype,n:integer) subroutine
shift_em3dblock_ncells_z(b:EM3D_BLOCKtype,n:integer) subroutine
depose_jxjy_esirkepov_linear_serial_2d(j:real,
                           n:integer,x(n):real,y(n):real,
                           xold(n):real,yold(n):real,uz(n):real,
                           gaminv(n):real,w:real,q:real,
                           xmin:real,ymin:real,dt:real,dx:real,dy:real,
                           nx:integer,ny:integer,l_particles_weight:logical)
                           subroutine
depose_jxjyjz_esirkepov_n_2d(j:real,
                           n:integer,x(n):real,y(n):real,z(n):real,
                           ux(n):real,uy(n):real,uz(n):real,
                           gaminv(n):real,w:real,q:real,
                           xmin:real,zmin:real,dt:real,dx:real,dz:real,
                           nx:integer,nz:integer,
                           nxguard:integer,nzguard:integer,
                           nox:integer,noz:integer,
                           l_particles_weight:logical,
                           l4symtry:logical,l_2drz:logical)
                           subroutine
depose_jxjyjz_villasenor_n_2d(j:real,
                           n:integer,x(n):real,y(n):real,
                           ux(n):real,uy(n):real,uz(n):real,
                           gaminv(n):real,w:real,q:real,
                           xmin:real,zmin:real,dt:real,dx:real,dz:real,
                           nx:integer,nz:integer,
                           nxguard:integer,nzguard:integer,
                           nox:integer,noz:integer,
                           l_particles_weight:logical,
                           l4symtry:logical)
                           subroutine
setebp(emblock:EM3D_YEEFIELDtype,icycle:integer,novercycle:integer) subroutine
getdive(ex:real,ey:real,ez:real,dive:real,dx:real,dy:real,dz:real,
        nx:integer,ny:integer,nz:integer,nxguard:integer,nyguard:integer,nzguard:integer,
        xmin:real,
        l_2dxz:logical,l_2drz:logical) subroutine


[em3d_applybc_splitb] [em3d_applybc_splite] [em3d_exchange_bndb_x] [em3d_exchange_bndb_xrecv] [em3d_exchange_bndb_y] [em3d_exchange_bndb_yrecv] [em3d_exchange_bndb_z] [em3d_exchange_bndb_zrecv] [em3d_exchange_bnde_x] [em3d_exchange_bnde_xrecv] [em3d_exchange_bnde_y] [em3d_exchange_bnde_yrecv] [em3d_exchange_bnde_z] [em3d_exchange_bnde_zrecv] [em3d_exchange_bndf_x] [em3d_exchange_bndf_xrecv] [em3d_exchange_bndf_y] [em3d_exchange_bndf_yrecv] [em3d_exchange_bndf_z] [em3d_exchange_bndf_zrecv] [em3d_exchange_bndj_x] [em3d_exchange_bndj_xrecv] [em3d_exchange_bndj_y] [em3d_exchange_bndj_yrecv] [em3d_exchange_bndj_z] [em3d_exchange_bndj_zrecv] [em3d_exchange_bndrho_x] [em3d_exchange_bndrho_xrecv] [em3d_exchange_bndrho_y] [em3d_exchange_bndrho_yrecv] [em3d_exchange_bndrho_z] [em3d_exchange_bndrho_zrecv] [init_splitfield] [push_em3d_splita] [push_em3d_splitb] [push_em3d_splite] [push_em3d_splitef] [push_em3d_splitf] [push_em3d_splitphi] [set_bndcoeffsem3d] [shift_em3dsplitf_ncells_x] [shift_em3dsplitf_ncells_z] [vcap3d]
Derived Type EM3D_SPLITYEEFIELDtype:
fieldtype integer /-2/
stencil integer /0/ # 0 = Yee; 1 = Yee-enlarged (Karkkainen) on EF,B; 2 = Yee-enlarged (Karkkainen) on E,F
nx integer
ny integer
nz integer
nxguard integer /1/
nyguard integer /1/
nzguard integer /1/
ixmin integer /0/ # position of first node of grid interior in the x direction (FORTRAN indexing)
iymin integer /0/ # position of first node of grid interior in the y direction (FORTRAN indexing)
izmin integer /0/ # position of first node of grid interior in the z direction (FORTRAN indexing)
ixmax integer /obj__%nx/ # position of last node of grid interior in the x direction (FORTRAN indexing)
iymax integer /obj__%ny/ # position of last node of grid interior in the y direction (FORTRAN indexing)
izmax integer /obj__%nz/ # position of last node of grid interior in the z direction (FORTRAN indexing)
ixming integer /-obj__%nxguard/ # position of first node of entire grid (interior+guard nodes) in the x direction (FORTRAN indexing)
iyming integer /-obj__%nyguard/ # position of first node of entire grid (interior+guard nodes) in the y direction (FORTRAN indexing)
izming integer /-obj__%nzguard/ # position of first node of entire grid (interior+guard nodes) in the z direction (FORTRAN indexing)
ixmaxg integer /obj__%ixmax+obj__%nxguard/ # position of last node of entire grid (interior+guard nodes) in the x direction (FORTRAN indexing)
iymaxg integer /obj__%iymax+obj__%nyguard/ # position of last node of entire grid (interior+guard nodes) in the y direction (FORTRAN indexing)
izmaxg integer /obj__%izmax+obj__%nzguard/ # position of last node of entire grid (interior+guard nodes) in the z direction (FORTRAN indexing)
jxmin integer /0/ # position of first node of grid interior in the x direction (Python indexing)
jymin integer /0/ # position of first node of grid interior in the y direction (Python indexing)
jzmin integer /0/ # position of first node of grid interior in the z direction (Python indexing)
jxmax integer /0/ # position of last node of grid interior in the x direction (Python indexing)
jymax integer /0/ # position of last node of grid interior in the y direction (Python indexing)
jzmax integer /0/ # position of last node of grid interior in the z direction (Python indexing)
jxming integer /0/ # position of first node of entire grid (interior+guard nodes) in the x direction (Python indexing)
jyming integer /0/ # position of first node of entire grid (interior+guard nodes) in the y direction (Python indexing)
jzming integer /0/ # position of first node of entire grid (interior+guard nodes) in the z direction (Python indexing)
jxmaxg integer /0/ # position of last node of entire grid (interior+guard nodes) in the x direction (Python indexing)
jymaxg integer /0/ # position of last node of entire grid (interior+guard nodes) in the y direction (Python indexing)
jzmaxg integer /0/ # position of last node of entire grid (interior+guard nodes) in the z direction (Python indexing)
nxpo integer /0/
nypo integer /0/
nzpo integer /0/
nconds integer /0/
nxcond integer /0/
nycond integer /0/
nzcond integer /0/
dx real
dy real
dz real
dxi real
dyi real
dzi real
dt real
xmin real
xmax real
ymin real
ymax real
zmin real
zmax real
clight real
lsx integer
nnx integer
smaxx real
sdeltax real
lsy integer
nny integer
smaxy real
sdeltay real
lsz integer
nnz integer
smaxz real
sdeltaz real
l_2dxz logical /.False./
l_2drz logical /.False./
exx(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
exy(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
exz(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
eyx(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
eyy(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
eyz(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
ezx(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
ezy(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
ezz(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
bxy(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
bxz(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
byx(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
byz(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
bzx(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
bzy(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
fx(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
fy(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
fz(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
ax(-nxguard:nxpo+nxguard,-nyguard:nypo+nyguard,-nzguard:nzpo+nzguard) dynamic real
ay(-nxguard:nxpo+nxguard,-nyguard:nypo+nyguard,-nzguard:nzpo+nzguard) dynamic real
az(-nxguard:nxpo+nxguard,-nyguard:nypo+nyguard,-nzguard:nzpo+nzguard) dynamic real
phi(1:3,-nxguard:nxpo+nxguard,-nyguard:nypo+nyguard,-nzguard:nzpo+nzguard) dynamic real
incond(-nxguard:nxcond+nxguard,-nyguard:nycond+nyguard,-nzguard:nzcond+nzguard) dynamic logical
afx(-nxguard:nx+nxguard) dynamic real
bpfx(-nxguard:nx+nxguard) dynamic real
bmfx(-nxguard:nx+nxguard) dynamic real
agx(-nxguard:nx+nxguard) dynamic real
bpgx(-nxguard:nx+nxguard) dynamic real
bmgx(-nxguard:nx+nxguard) dynamic real
afy(-nyguard:ny+nyguard) dynamic real
bpfy(-nyguard:ny+nyguard) dynamic real
bmfy(-nyguard:ny+nyguard) dynamic real
agy(-nyguard:ny+nyguard) dynamic real
bpgy(-nyguard:ny+nyguard) dynamic real
bmgy(-nyguard:ny+nyguard) dynamic real
afz(-nzguard:nz+nzguard) dynamic real
bpfz(-nzguard:nz+nzguard) dynamic real
bmfz(-nzguard:nz+nzguard) dynamic real
agz(-nzguard:nz+nzguard) dynamic real
bpgz(-nzguard:nz+nzguard) dynamic real
bmgz(-nzguard:nz+nzguard) dynamic real


[add_current_slice_3d] [add_rho_slice_3d] [addsubstractfields] [addsubstractfields] [addsubstractfields_nodal] [addsubstractfields_nodal] [em3d_applybc_b] [em3d_applybc_e] [em3d_applybc_j] [em3d_applybc_rho] [em3d_exchange_bndb_x] [em3d_exchange_bndb_xrecv] [em3d_exchange_bndb_y] [em3d_exchange_bndb_yrecv] [em3d_exchange_bndb_z] [em3d_exchange_bndb_zrecv] [em3d_exchange_bnde_x] [em3d_exchange_bnde_xrecv] [em3d_exchange_bnde_y] [em3d_exchange_bnde_yrecv] [em3d_exchange_bnde_z] [em3d_exchange_bnde_zrecv] [em3d_exchange_bndf_x] [em3d_exchange_bndf_xrecv] [em3d_exchange_bndf_y] [em3d_exchange_bndf_yrecv] [em3d_exchange_bndf_z] [em3d_exchange_bndf_zrecv] [em3d_exchange_bndj_x] [em3d_exchange_bndj_xrecv] [em3d_exchange_bndj_y] [em3d_exchange_bndj_yrecv] [em3d_exchange_bndj_z] [em3d_exchange_bndj_zrecv] [em3d_exchange_bndrho_x] [em3d_exchange_bndrho_xrecv] [em3d_exchange_bndrho_y] [em3d_exchange_bndrho_yrecv] [em3d_exchange_bndrho_z] [em3d_exchange_bndrho_zrecv] [node2yee3d] [push_em3d_a] [push_em3d_b] [push_em3d_e] [push_em3d_ef] [push_em3d_f] [push_em3d_phi] [set_incond] [setebp] [setebp] [shift_em3df_ncells_x] [shift_em3df_ncells_z] [vcap3d] [yee2node3d]
Derived Type EM3D_YEEFIELDtype:
fieldtype integer /-1/
stencil integer /0/ # 0 = Yee; 1 = Yee-enlarged (Karkkainen) on EF,B; 2 = Yee-enlarged (Karkkainen) on E,F
l_nodecentered logical /.false./
nx integer /0/ # nb of mesh cells of grid interior in the x direction
ny integer /0/ # nb of mesh cells of grid interior in the y direction
nz integer /0/ # nb of mesh cells of grid interior in the z direction
nxguard integer /1/ # nb of guard cells in the x direction
nyguard integer /1/ # nb of guard cells in the y direction
nzguard integer /1/ # nb of guard cells in the z direction
ixmin integer /0/ # position of first node of grid interior in the x direction (FORTRAN indexing)
iymin integer /0/ # position of first node of grid interior in the y direction (FORTRAN indexing)
izmin integer /0/ # position of first node of grid interior in the z direction (FORTRAN indexing)
ixmax integer /obj__%nx/ # position of last node of grid interior in the x direction (FORTRAN indexing)
iymax integer /obj__%ny/ # position of last node of grid interior in the y direction (FORTRAN indexing)
izmax integer /obj__%nz/ # position of last node of grid interior in the z direction (FORTRAN indexing)
ixming integer /-obj__%nxguard/ # position of first node of entire grid (interior+guard nodes) in the x direction (FORTRAN indexing)
iyming integer /-obj__%nyguard/ # position of first node of entire grid (interior+guard nodes) in the y direction (FORTRAN indexing)
izming integer /-obj__%nzguard/ # position of first node of entire grid (interior+guard nodes) in the z direction (FORTRAN indexing)
ixmaxg integer /obj__%ixmax+obj__%nxguard/ # position of last node of entire grid (interior+guard nodes) in the x direction (FORTRAN indexing)
iymaxg integer /obj__%iymax+obj__%nyguard/ # position of last node of entire grid (interior+guard nodes) in the y direction (FORTRAN indexing)
izmaxg integer /obj__%izmax+obj__%nzguard/ # position of last node of entire grid (interior+guard nodes) in the z direction (FORTRAN indexing)
jxmin integer /0/ # position of first node of grid interior in the x direction (Python indexing)
jymin integer /0/ # position of first node of grid interior in the y direction (Python indexing)
jzmin integer /0/ # position of first node of grid interior in the z direction (Python indexing)
jxmax integer /0/ # position of last node of grid interior in the x direction (Python indexing)
jymax integer /0/ # position of last node of grid interior in the y direction (Python indexing)
jzmax integer /0/ # position of last node of grid interior in the z direction (Python indexing)
jxming integer /0/ # position of first node of entire grid (interior+guard nodes) in the x direction (Python indexing)
jyming integer /0/ # position of first node of entire grid (interior+guard nodes) in the y direction (Python indexing)
jzming integer /0/ # position of first node of entire grid (interior+guard nodes) in the z direction (Python indexing)
jxmaxg integer /0/ # position of last node of entire grid (interior+guard nodes) in the x direction (Python indexing)
jymaxg integer /0/ # position of last node of entire grid (interior+guard nodes) in the y direction (Python indexing)
jzmaxg integer /0/ # position of last node of entire grid (interior+guard nodes) in the z direction (Python indexing)
nxp integer /0/
nyp integer /0/
nzp integer /0/
nxext integer /0/
nyext integer /0/
nzext integer /0/
nxdamp integer /0/
nydamp integer /0/
nzdamp integer /0/
nxpnext integer /0/
nypnext integer /0/
nzpnext integer /0/
nxf integer /0/
nyf integer /0/
nzf integer /0/
nxpo integer /0/
nypo integer /0/
nzpo integer /0/
nxmp integer /0/
nymp integer /0/
nzmp integer /0/
ntimes integer /1/
nconds integer /0/
nxcond integer /0/
nycond integer /0/
nzcond integer /0/
xmin real
ymin real
zmin real
xmax real
ymax real
zmax real
dx real
dy real
dz real
dxi real
dyi real
dzi real
clight real
mu0    real
theta_damp real /0./
l_2dxz logical /.False./
l_2drz logical /.False./
sigmae real /0./ # coefficient for extended solver
sigmab real /0./ # coefficient for extended solver
Ex(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
Ey(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
Ez(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
Bx(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
By(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
Bz(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
Exp(-nxguard:nxp+nxguard,-nyguard:nyp+nyguard,-nzguard:nzp+nzguard) dynamic real
Eyp(-nxguard:nxp+nxguard,-nyguard:nyp+nyguard,-nzguard:nzp+nzguard) dynamic real
Ezp(-nxguard:nxp+nxguard,-nyguard:nyp+nyguard,-nzguard:nzp+nzguard) dynamic real
Bxp(-nxguard:nxp+nxguard,-nyguard:nyp+nyguard,-nzguard:nzp+nzguard) dynamic real
Byp(-nxguard:nxp+nxguard,-nyguard:nyp+nyguard,-nzguard:nzp+nzguard) dynamic real
Bzp(-nxguard:nxp+nxguard,-nyguard:nyp+nyguard,-nzguard:nzp+nzguard) dynamic real
Expnext(-nxguard:nxpnext+nxguard,-nyguard:nypnext+nyguard,-nzguard:nzpnext+nzguard) dynamic real
Eypnext(-nxguard:nxpnext+nxguard,-nyguard:nypnext+nyguard,-nzguard:nzpnext+nzguard) dynamic real
Ezpnext(-nxguard:nxpnext+nxguard,-nyguard:nypnext+nyguard,-nzguard:nzpnext+nzguard) dynamic real
Bxpnext(-nxguard:nxpnext+nxguard,-nyguard:nypnext+nyguard,-nzguard:nzpnext+nzguard) dynamic real
Bypnext(-nxguard:nxpnext+nxguard,-nyguard:nypnext+nyguard,-nzguard:nzpnext+nzguard) dynamic real
Bzpnext(-nxguard:nxpnext+nxguard,-nyguard:nypnext+nyguard,-nzguard:nzpnext+nzguard) dynamic real
F(-nxguard:nxf+nxguard,-nyguard:nyf+nyguard,-nzguard:nzf+nzguard) dynamic real
Rho(-nxguard:nxf+nxguard,-nyguard:nyf+nyguard,-nzguard:nzf+nzguard) dynamic real
Rhoold(-nxguard:nxf+nxguard,-nyguard:nyf+nyguard,-nzguard:nzf+nzguard) dynamic real
Rhoarray(-nxguard:nxf+nxguard,-nyguard:nyf+nyguard,-nzguard:nzf+nzguard,ntimes) dynamic real
J(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard,3) dynamic real
Jarray(-nxguard:nx+nxguard,-nyguard:ny+nyguard,-nzguard:nz+nzguard,3,ntimes) dynamic real
incond(-nxguard:nxcond+nxguard,-nyguard:nycond+nyguard,-nzguard:nzcond+nzguard) dynamic logical
Ax(-nxguard:nxpo+nxguard,-nyguard:nypo+nyguard,-nzguard:nzpo+nzguard) dynamic real
Ay(-nxguard:nxpo+nxguard,-nyguard:nypo+nyguard,-nzguard:nzpo+nzguard) dynamic real
Az(-nxguard:nxpo+nxguard,-nyguard:nypo+nyguard,-nzguard:nzpo+nzguard) dynamic real
Phi(-nxguard:nxpo+nxguard,-nyguard:nypo+nyguard,-nzguard:nzpo+nzguard) dynamic real
Mp(-nxguard:nxmp+nxguard,-nyguard:nymp+nyguard,-nzguard:nzmp+nzguard,3) dynamic real
Exold(-nxguard:nxdamp+nxguard,-nyguard:nydamp+nyguard,-nzguard:nzdamp+nzguard) dynamic real
Eyold(-nxguard:nxdamp+nxguard,-nyguard:nydamp+nyguard,-nzguard:nzdamp+nzguard) dynamic real
Ezold(-nxguard:nxdamp+nxguard,-nyguard:nydamp+nyguard,-nzguard:nzdamp+nzguard) dynamic real
Exbar(-nxguard:nxdamp+nxguard,-nyguard:nydamp+nyguard,-nzguard:nzdamp+nzguard) dynamic real
Eybar(-nxguard:nxdamp+nxguard,-nyguard:nydamp+nyguard,-nzguard:nzdamp+nzguard) dynamic real
Ezbar(-nxguard:nxdamp+nxguard,-nyguard:nydamp+nyguard,-nzguard:nzdamp+nzguard) dynamic real
Excp(-nxguard:nxdamp+nxguard,-nyguard:nydamp+nyguard,-nzguard:nzdamp+nzguard) dynamic real
Eycp(-nxguard:nxdamp+nxguard,-nyguard:nydamp+nyguard,-nzguard:nzdamp+nzguard) dynamic real
Ezcp(-nxguard:nxdamp+nxguard,-nyguard:nydamp+nyguard,-nzguard:nzdamp+nzguard) dynamic real
DEXY(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DEXZ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DEYX(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DEYZ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DEZX(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DEZY(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DBXY(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DBXZ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DBYX(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DBYZ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DBZX(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
DBZY(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BXYCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BYXCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BXZCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BZXCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BYZCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BZYCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EXYCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EYXCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EXZCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EZXCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EYZCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EZYCJ(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BXYCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BYXCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BXZCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BZXCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BYZCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
BZYCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EXYCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EYXCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EXZCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EZXCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EYZCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
EZYCJT(-nxguard:nxext+nxguard,-nyguard:nyext+nyguard,-nzguard:nzext+nzguard) dynamic real
E_inx_pos integer /-1/
E_inx_angle real  /0./
E_inx(-nyguard:ny+nyguard,-nzguard:nz+nzguard) dynamic real
E_iny_pos integer /-1/
E_iny_angle real  /0./
E_iny(-nxguard:nx+nxguard,-nzguard:nz+nzguard) dynamic real
E_inz_pos real /0./
E_inz_vel real /0./
E_inz_angle real  /0./
Ex_inz(-nxguard:nx+nxguard,-nyguard:ny+nyguard) dynamic real
Ey_inz(-nxguard:nx+nxguard,-nyguard:ny+nyguard) dynamic real
Ez_inz(-nxguard:nx+nxguard,-nyguard:ny+nyguard) dynamic real
dmaskx(-nxguard:nx+nxguard) dynamic real
dmasky(-nyguard:ny+nyguard) dynamic real
dmaskz(-nzguard:nz+nzguard) dynamic real


[em3d_exchange_bndb_x] [em3d_exchange_bndb_xrecv] [em3d_exchange_bndb_y] [em3d_exchange_bndb_yrecv] [em3d_exchange_bndb_z] [em3d_exchange_bndb_zrecv] [em3d_exchange_bnde_x] [em3d_exchange_bnde_xrecv] [em3d_exchange_bnde_y] [em3d_exchange_bnde_yrecv] [em3d_exchange_bnde_z] [em3d_exchange_bnde_zrecv] [em3d_exchange_bndf_x] [em3d_exchange_bndf_xrecv] [em3d_exchange_bndf_y] [em3d_exchange_bndf_yrecv] [em3d_exchange_bndf_z] [em3d_exchange_bndf_zrecv] [em3d_exchange_bndj_x] [em3d_exchange_bndj_xrecv] [em3d_exchange_bndj_y] [em3d_exchange_bndj_yrecv] [em3d_exchange_bndj_z] [em3d_exchange_bndj_zrecv] [em3d_exchange_bndrho_x] [em3d_exchange_bndrho_xrecv] [em3d_exchange_bndrho_y] [em3d_exchange_bndrho_yrecv] [em3d_exchange_bndrho_z] [em3d_exchange_bndrho_zrecv]
Derived Type EM3D_FIELDtype:
fieldtype integer /0/
yf dynamic EM3D_YEEFIELDtype
syf dynamic EM3D_SPLITYEEFIELDtype
proc integer /0/
xl dynamic EM3D_FIELDtype
xr dynamic EM3D_FIELDtype
yl dynamic EM3D_FIELDtype
yr dynamic EM3D_FIELDtype
zl dynamic EM3D_FIELDtype
zr dynamic EM3D_FIELDtype


[addsubstractfields] [addsubstractfields] [addsubstractfields_nodal] [addsubstractfields_nodal] [em3d_exchange_b] [em3d_exchange_e] [em3d_exchange_f] [em3d_exchange_j] [em3d_exchange_rho] [push_em3d_bf] [push_em3d_block] [push_em3d_blockbndb] [push_em3d_blockbnde] [push_em3d_blockbndef] [push_em3d_blockbndf] [push_em3d_eef] [shift_em3dblock_ncells_x] [shift_em3dblock_ncells_z] [vcap3d]
Derived Type EM3D_BLOCKtype:
nx integer
ny integer
nz integer
nxguard integer 
nyguard integer 
nzguard integer 
nbndx integer
nbndy integer
nbndz integer
xmin real
ymin real
zmin real
xmax real
ymax real
zmax real
dx real
dy real
dz real
dxi real
dyi real
dzi real
xlbnd                      integer /0/
xrbnd                      integer /0/
ylbnd                      integer /0/
yrbnd                      integer /0/
zlbnd                      integer /0/
zrbnd                      integer /0/
core dynamic EM3D_FIELDtype
sidexl dynamic EM3D_FIELDtype 
sidexr dynamic EM3D_FIELDtype
sideyl dynamic EM3D_FIELDtype
sideyr dynamic EM3D_FIELDtype
sidezl dynamic EM3D_FIELDtype
sidezr dynamic EM3D_FIELDtype
edgexlyl dynamic EM3D_FIELDtype
edgexryl dynamic EM3D_FIELDtype
edgexlyr dynamic EM3D_FIELDtype
edgexryr dynamic EM3D_FIELDtype
edgexlzl dynamic EM3D_FIELDtype
edgexlzr dynamic EM3D_FIELDtype
edgexrzl dynamic EM3D_FIELDtype
edgexrzr dynamic EM3D_FIELDtype
edgeylzl dynamic EM3D_FIELDtype
edgeyrzl dynamic EM3D_FIELDtype
edgeylzr dynamic EM3D_FIELDtype
edgeyrzr dynamic EM3D_FIELDtype
cornerxlylzl  dynamic EM3D_FIELDtype
cornerxrylzl  dynamic EM3D_FIELDtype
cornerxlyrzl  dynamic EM3D_FIELDtype
cornerxryrzl  dynamic EM3D_FIELDtype
cornerxlylzr  dynamic EM3D_FIELDtype
cornerxrylzr  dynamic EM3D_FIELDtype
cornerxlyrzr  dynamic EM3D_FIELDtype
cornerxryrzr  dynamic EM3D_FIELDtype