51 subroutine projec2(level,numpro,rectflags,ilo,ihi,jlo,jhi,mbuff)
54 implicit double precision (a-h,o-z)
55 dimension rectflags(ilo-mbuff:ihi+mbuff,jlo-mbuff:jhi+mbuff)
56 logical borderx, bordery
57 integer ist(3),iend(3),jst(3),jend(3),ishift(3),jshift(3)
66 10
if (mkid .eq. 0)
go to 90
79 istc = ikidlo/
intratx(level+1) - 1
81 jstc = jkidlo/
intraty(level+1) - 1
83 iendc = ikidhi/
intratx(level+1) + 1
84 iendc = iendc/
intratx(level) + 1
85 jendc = jkidhi/
intraty(level+1) + 1
86 jendc = jendc/
intraty(level) + 1
89 borderx = (istc .le. 0 .or. iendc .ge.
iregsz(level)-1)
90 bordery = (jstc .le. 0 .or. jendc .ge.
jregsz(level)-1)
94 if (.not. (
xperdom .and. borderx) .and.
95 . .not. (
yperdom .and. bordery))
then 98 iendc = min(iendc,
iregsz(level))
99 jendc = min(jendc,
jregsz(level))
102 ixlo = max(istc, ilo-mbuff)
103 ixhi = min(iendc,ihi+mbuff)
104 jxlo = max(jstc, jlo-mbuff)
105 jxhi = min(jendc,jhi+mbuff)
109 if (.not.((ixlo .le. ixhi) .and. (jxlo .le. jxhi)))
go to 80
114 if (rectflags(i,j) .eq.
goodpt)
then 118 101
format(
' pt.',2i5,
' of grid ',i5,
' projected' )
126 call setindices(ist,iend,jst,jend,iclo,ichi,jclo,jhci,
127 . ishift,jshift,level)
131 i1 = max(istc, ist(i))
132 i2 = min(iendc, iend(i))
134 j1 = max(jstc, jst(j))
135 j2 = min(jendc, jend(j))
137 if (.not. ((i1 .le. i2) .and. (j1 .le. j2)))
go to 25
146 ixlo = max(i1,ilo-mbuff)
147 ixhi = min(i2,ihi+mbuff)
148 jxlo = max(j1,jlo-mbuff)
149 jxhi = min(j2,jhi+mbuff)
151 if (.not.((ixlo.le.ixhi) .and. (jxlo.le.jxhi)))
go to 25
156 if (rectflags(ix,jx) .eq.
goodpt)
then 172 jendc = jkidhi/lrat2y
173 if (jstc .eq. 0)
then 174 iwrap1 =
iregsz(level) - iendc - 1
175 iwrap2 =
iregsz(level) - istc - 1
177 do 61 i = iwrap1, iwrap2
178 if (rectflags(i,1) .eq.
goodpt)
then 186 if (jendc .eq. jsize-1)
then 187 iwrap1 =
iregsz(level) - iendc - 1
188 iwrap2 =
iregsz(level) - istc - 1
190 do 62 i = iwrap1, iwrap2
191 if (rectflags(i,jsize-1) .eq.
goodpt)
then 192 rectflags(i,jsize-1) =
badpro 206 write(
outunit,102) numpro,level
207 102
format(i9,
' more pts. projected to level ',i5)
210 103
format(/,
' from projec: flagged pts. (incl. buffer zone)',
211 &
' at level ',i4,
':')
213 do 110 j = jhi+mbuff, jlo-mbuff, -1
214 write(
outunit,104)(int(rectflags(i,j)),i=ilo-mbuff,ihi+mbuff)
real(kind=8), parameter badpro
integer, dimension(maxlv) iregsz
integer, dimension(maxlv) newstl
integer, parameter ndihi
global i index of right border of this grid
integer, dimension(maxlv) jregsz
integer, dimension(nsize, maxgr) node
real(kind=8), parameter goodpt
subroutine projec2(level, numpro, rectflags, ilo, ihi, jlo, jhi, mbuff)
This subroutine projects all level level+2 grids to a level level grid and flag the cells being proje...
integer, parameter ndilo
global i index of left border of this grid
integer, parameter ndjlo
global j index of lower border of this grid
integer, dimension(maxlv) intraty
integer, parameter outunit
subroutine setindices(ist, iend, jst, jend, ilo, ihi, jlo, jhi, ishift, jshift, level)
integer, parameter ndjhi
global j index of upper border of this grid
integer, dimension(maxlv) intratx
integer, parameter levelptr
node number (index) of next grid on the same level
The module contains the definition of a "node descriptor" as well as other global variables used duri...