19 |
C non-0 (any integer) - WHICH single level to increment. |
C non-0 (any integer) - WHICH single level to increment. |
20 |
C negative integer - the input data array is single-leveled |
C negative integer - the input data array is single-leveled |
21 |
C positive integer - the input data array is multi-leveled |
C positive integer - the input data array is multi-leveled |
22 |
C nlevs ...... Number of levels to be incremented (1 if levflg > 0) |
C nlevs ...... indicates Number of levels to be filled (1 if levflg <> 0) |
23 |
|
C positive: fill in "nlevs" levels in the same order as |
24 |
|
C the input array |
25 |
|
C negative: fill in -nlevs levels in reverse order. |
26 |
C bibjflg .... Integer flag to indicate instructions for bi bj loop |
C bibjflg .... Integer flag to indicate instructions for bi bj loop |
27 |
C 0 indicates that the bi-bj loop must be done here |
C 0 indicates that the bi-bj loop must be done here |
28 |
C 1 indicates that the bi-bj loop is done OUTSIDE |
C 1 indicates that the bi-bj loop is done OUTSIDE |
82 |
if(bibjflg.eq.0) then |
if(bibjflg.eq.0) then |
83 |
irun = sNx+2*Olx |
irun = sNx+2*Olx |
84 |
jrun = sNy+2*Oly |
jrun = sNy+2*Oly |
85 |
krun = nlevs |
krun = abs(nlevs) |
86 |
c birun = myBxHi(myThid)-myBxLo(myThid)+1 |
c birun = myBxHi(myThid)-myBxLo(myThid)+1 |
87 |
c bjrun = myByHi(myThid)-myByLo(myThid)+1 |
c bjrun = myByHi(myThid)-myByLo(myThid)+1 |
88 |
birun = nSx |
birun = nSx |
92 |
do bihere=myBxLo(myThid), myBxHi(myThid) |
do bihere=myBxLo(myThid), myBxHi(myThid) |
93 |
|
|
94 |
if(levflg.eq.0)then |
if(levflg.eq.0)then |
95 |
do levhere = 1,nlevs |
do levhere = 1,krun |
96 |
|
level = levhere |
97 |
|
IF (nlevs.LT.0) level=1-nlevs-levhere |
98 |
call fillit(arrayin,irun,jrun,krun,levhere,birun,bjrun, |
call fillit(arrayin,irun,jrun,krun,levhere,birun,bjrun, |
99 |
. bihere,bjhere,array) |
. bihere,bjhere,array) |
100 |
do j = 1,sNy |
do j = 1,sNy |
101 |
do i = 1,sNx |
do i = 1,sNx |
102 |
qdiag(i,j,ipointer+levhere-1,bihere,bjhere) = |
qdiag(i,j,ipointer+level-1,bihere,bjhere) = |
103 |
. qdiag(i,j,ipointer+levhere-1,bihere,bjhere) + |
. qdiag(i,j,ipointer+level-1,bihere,bjhere) + |
104 |
. array(i,j) |
. array(i,j) |
105 |
enddo |
enddo |
106 |
enddo |
enddo |
134 |
elseif(bibjflg.eq.1) then |
elseif(bibjflg.eq.1) then |
135 |
irun = sNx+2*Olx |
irun = sNx+2*Olx |
136 |
jrun = sNy+2*Oly |
jrun = sNy+2*Oly |
137 |
krun = nlevs |
krun = abs(nlevs) |
138 |
birun = nSx |
birun = nSx |
139 |
bjrun = nSy |
bjrun = nSy |
140 |
|
|
141 |
if(levflg.eq.0)then |
if(levflg.eq.0)then |
142 |
do levhere = 1,nlevs |
do levhere = 1,krun |
143 |
|
level = levhere |
144 |
|
IF (nlevs.LT.0) level=1-nlevs-levhere |
145 |
call fillit(arrayin,irun,jrun,krun,levhere,birun,bjrun, |
call fillit(arrayin,irun,jrun,krun,levhere,birun,bjrun, |
146 |
. bi,bj,array) |
. bi,bj,array) |
147 |
do j = 1,sNy |
do j = 1,sNy |
148 |
do i = 1,sNx |
do i = 1,sNx |
149 |
qdiag(i,j,ipointer+levhere-1,bi,bj) = |
qdiag(i,j,ipointer+level-1,bi,bj) = |
150 |
. qdiag(i,j,ipointer+levhere-1,bi,bj) + |
. qdiag(i,j,ipointer+level-1,bi,bj) + |
151 |
. array(i,j) |
. array(i,j) |
152 |
enddo |
enddo |
153 |
enddo |
enddo |
176 |
elseif(bibjflg.eq.2) then |
elseif(bibjflg.eq.2) then |
177 |
irun = sNx |
irun = sNx |
178 |
jrun = sNy |
jrun = sNy |
179 |
krun = nlevs |
krun = abs(nlevs) |
180 |
birun = 1 |
birun = 1 |
181 |
bjrun = 1 |
bjrun = 1 |
182 |
|
|
183 |
if(levflg.eq.0)then |
if(levflg.eq.0)then |
184 |
do levhere = 1,nlevs |
do levhere = 1,krun |
185 |
|
level = levhere |
186 |
|
IF (nlevs.LT.0) level=1-nlevs-levhere |
187 |
call fillit(arrayin,irun,jrun,krun,levhere,birun,bjrun, |
call fillit(arrayin,irun,jrun,krun,levhere,birun,bjrun, |
188 |
. 1,1,arrayloc) |
. 1,1,arrayloc) |
189 |
do j = 1,sNy |
do j = 1,sNy |
190 |
do i = 1,sNx |
do i = 1,sNx |
191 |
qdiag(i,j,ipointer+levhere-1,bi,bj) = |
qdiag(i,j,ipointer+level-1,bi,bj) = |
192 |
. qdiag(i,j,ipointer+levhere-1,bi,bj) + arrayloc(i,j) |
. qdiag(i,j,ipointer+level-1,bi,bj) + arrayloc(i,j) |
193 |
enddo |
enddo |
194 |
enddo |
enddo |
195 |
enddo |
enddo |
217 |
elseif(bibjflg.eq.3) then |
elseif(bibjflg.eq.3) then |
218 |
irun = sNx+2*Olx |
irun = sNx+2*Olx |
219 |
jrun = sNy+2*Oly |
jrun = sNy+2*Oly |
220 |
krun = nlevs |
krun = abs(nlevs) |
221 |
birun = 1 |
birun = 1 |
222 |
bjrun = 1 |
bjrun = 1 |
223 |
|
|
224 |
if(levflg.eq.0)then |
if(levflg.eq.0)then |
225 |
do levhere = 1,nlevs |
do levhere = 1,krun |
226 |
|
level = levhere |
227 |
|
IF (nlevs.LT.0) level=1-nlevs-levhere |
228 |
call fillit(arrayin,irun,jrun,krun,levhere,birun,bjrun, |
call fillit(arrayin,irun,jrun,krun,levhere,birun,bjrun, |
229 |
. 1,1,array) |
. 1,1,array) |
230 |
do j = 1,sNy |
do j = 1,sNy |
231 |
do i = 1,sNx |
do i = 1,sNx |
232 |
qdiag(i,j,ipointer+levhere-1,bi,bj) = |
qdiag(i,j,ipointer+level-1,bi,bj) = |
233 |
. qdiag(i,j,ipointer+levhere-1,bi,bj) + array(i,j) |
. qdiag(i,j,ipointer+level-1,bi,bj) + array(i,j) |
234 |
enddo |
enddo |
235 |
enddo |
enddo |
236 |
enddo |
enddo |