4 subroutine preintcopy(val,mitot,mjtot,nvar,ilo,ihi,jlo,jhi,
8 implicit double precision (a-h,o-z)
10 dimension fliparray((mitot+mjtot)*nghost*nvar)
11 dimension val(nvar,mitot,mjtot)
12 dimension ist(3), iend(3), jst(3), jend(3), ishift(3), jshift(3)
15 iadd(ivar,i,j) = locflip + ivar-1 + nvar*((j-1)*nr+i-1)
44 ist(3) = iregsz(level)
46 iend(2) = iregsz(level)-1
48 ishift(1) = iregsz(level)
50 ishift(3) = -iregsz(level)
52 ist(1) = iregsz(level)
54 ist(3) = iregsz(level)
64 if (yperdom .or. spheredom)
then
67 jst(3) = jregsz(level)
69 jend(2) = jregsz(level)-1
71 jshift(1) = jregsz(level)
73 jshift(3) = -jregsz(level)
75 jst(1) = jregsz(level)
77 jst(3) = jregsz(level)
89 i2 = min(ihi, iend(i))
90 if (i1 .gt. i2) go to 20
93 j2 = min(jhi, jend(j))
100 if (.not. spheredom .or. j .eq. 2)
then
101 iputst = (i1 - ilo) + 1
102 jputst = (j1 - jlo) + 1
103 call
intcopy(val,mitot,mjtot,nvar,
104 2 i1+ishift(i),i2+ishift(i),
105 3 j1+jshift(j),j2+jshift(j),level,
113 if (j1 < 0) jbump = abs(j1)
114 if (j2 >= jregsz(level)) jbump = -(j2+1-jregsz(level))
117 iwrap1 = i1 + ishift(i)
118 iwrap2 = i2 + ishift(i)
120 iwrap1 = iregsz(level) - iwrap1 -1
121 iwrap2 = iregsz(level) - iwrap2 -1
128 xlwrap = xlower + iwrap1*hxposs(level)
129 ybwrap = ylower + jwrap1*hyposs(level)
134 101
format(
" actual patch from i:",2i5,
" j :",2i5)
135 102
format(
" intcopy called w i:",2i5,
" j :",2i5)
136 call
intcopy(fliparray,nr,nc,nvar,
137 1 iwrap1,iwrap2,jwrap1,jwrap2,level,1,1)
146 100
format(
" filling loc ",2i5,
" with ",2i5)
151 index =
iadd(ivar,nr-(ii-i1),nc-(jj-j1))
152 val(ivar,nrowst+(ii-ilo),ncolst+(jj-jlo)) =
153 1 fliparray(
iadd(ivar,nr-(ii-i1),nc-(jj-j1)))
integer pure function iadd(ivar, i, j)
subroutine intcopy(val, mitot, mjtot, nvar, ilo, ihi, jlo, jhi, level, iputst, jputst)
subroutine preintcopy(val, mitot, mjtot, nvar, ilo, ihi, jlo, jhi, level, fliparray)