/[MITgcm]/MITgcm/pkg/diagnostics/fill_diagnostics.F
ViewVC logotype

Diff of /MITgcm/pkg/diagnostics/fill_diagnostics.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.14 by molod, Wed Jul 21 21:13:50 2004 UTC revision 1.15 by jmc, Sat Jul 24 02:32:52 2004 UTC
# Line 19  C                  0 indicates multiple Line 19  C                  0 indicates multiple
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
# Line 79  C   Check to see if we need to do a bi-b Line 82  C   Check to see if we need to do a bi-b
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
# Line 89  c      bjrun = myByHi(myThid)-myByLo(myT Line 92  c      bjrun = myByHi(myThid)-myByLo(myT
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
# Line 129  c      bjrun = myByHi(myThid)-myByLo(myT Line 134  c      bjrun = myByHi(myThid)-myByLo(myT
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
# Line 169  c      bjrun = myByHi(myThid)-myByLo(myT Line 176  c      bjrun = myByHi(myThid)-myByLo(myT
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
# Line 208  c      bjrun = myByHi(myThid)-myByLo(myT Line 217  c      bjrun = myByHi(myThid)-myByLo(myT
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

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.22