19 subroutine bound(time,nvar,ng,valbig,mitot,mjtot,mptr,aux,naux)
21 use amr_module, only: rnode, node, hxposs, hyposs, cornxlo, cornxhi
22 use amr_module, only: cornylo, cornyhi, ndilo, ndihi, ndjlo, ndjhi
23 use amr_module, only: nestlevel, xlower, xupper, ylower, yupper
24 use amr_module, only: xperdom, yperdom, spheredom
29 integer,
intent(in) :: nvar, ng, mitot, mjtot, mptr, naux
30 real(kind=8),
intent(in) :: time
31 real(kind=8),
intent(in out) :: valbig(nvar,mitot,mjtot)
32 real(kind=8),
intent(in out) :: aux(naux,mitot,mjtot)
35 integer :: ilo, ihi, jlo, jhi, level,i,j
36 real(kind=8) :: xleft, xright, ybot, ytop, hx, hy, xl, xr, yb, yt
38 xleft = rnode(cornxlo, mptr)
39 xright = rnode(cornxhi, mptr)
40 ybot = rnode(cornylo, mptr)
41 ytop = rnode(cornyhi, mptr)
42 ilo = node(ndilo, mptr)
43 ihi = node(ndihi, mptr)
44 jlo = node(ndjlo, mptr)
45 jhi = node(ndjhi, mptr)
46 level = node(nestlevel, mptr)
58 if ((xl < xlower) .and. xperdom)
then
59 call
prefilrecur(level,nvar,valbig,aux,naux,time,mitot,mjtot,1,ng+1, &
62 call
filrecur(level,nvar,valbig,aux,naux,time,mitot,mjtot,1,ng+1,ilo-ng,ilo-1,jlo,jhi)
72 if ((xr .gt. xupper) .and. xperdom)
then
73 call
prefilrecur(level,nvar,valbig,aux,naux,time,mitot,mjtot, &
74 mitot-ng+1,ng+1,ihi+1,ihi+ng,jlo,jhi)
76 call
filrecur(level,nvar,valbig,aux,naux,time,mitot,mjtot, &
77 mitot-ng+1,ng+1,ihi+1,ihi+ng,jlo,jhi)
88 if ( ((yb < ylower) .and. (yperdom .or. spheredom)) .or. &
89 ( ((xl < xlower) .or. (xr > xupper)) .and. xperdom) )
then
90 call
prefilrecur(level,nvar,valbig,aux,naux,time,mitot,mjtot,1,1,ilo-ng,ihi+ng,jlo-ng,jlo-1)
92 call
filrecur(level,nvar,valbig,aux,naux,time,mitot,mjtot,1,1,ilo-ng,ihi+ng,jlo-ng,jlo-1)
102 if ( ((yt .gt. yupper) .and. (yperdom .or. spheredom)) .or. &
103 (((xl .lt. xlower) .or. (xr .gt. xupper)) .and. xperdom) )
then
104 call
prefilrecur(level,nvar,valbig,aux,naux,time,mitot,mjtot, &
105 1,mjtot-ng+1,ilo-ng,ihi+ng,jhi+1,jhi+ng)
107 call
filrecur(level,nvar,valbig,aux,naux,time,mitot,mjtot, &
108 1,mjtot-ng+1,ilo-ng,ihi+ng,jhi+1,jhi+ng)
recursive subroutine prefilrecur(level, nvar, valbig, auxbig, naux, time, mitot, mjtot, nrowst, ncolst, ilo, ihi, jlo, jhi, iglo, ighi, jglo, jghi, patchOnly)
recursive subroutine filrecur(level, nvar, valbig, aux, naux, t, mitot, mjtot, nrowst, ncolst, ilo, ihi, jlo, jhi, patchOnly, msrc)
Fill a region (patch) described by:
subroutine bound(time, nvar, ng, valbig, mitot, mjtot, mptr, aux, naux)
This routine sets the boundary values for a given grid at level level.