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

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

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

revision 1.8 by molod, Wed Jun 23 20:41:28 2004 UTC revision 1.12 by jmc, Wed Sep 8 01:49:26 2004 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4  #include "PACKAGES_CONFIG.h"  #include "DIAG_OPTIONS.h"
 #include "CPP_OPTIONS.h"  
5    
6         subroutine diagnostics_fill_state(myThid)         subroutine diagnostics_fill_state(myThid)
7    
8         implicit none         implicit none
9  #include "SIZE.h"  #include "SIZE.h"
10  #include "EEPARAMS.h"  #include "EEPARAMS.h"
11  #include "GRID.h"  #include "GRID.h"
12  #include "DYNVARS.h"  #include "DYNVARS.h"
13    #include "SURFACE.h"
14    
15        integer myThid        integer myThid
16    
# Line 18  C $Name$ Line 19  C $Name$
19        _RL dummys(1-OLx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy)        _RL dummys(1-OLx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy)
20        integer i,j,K,bi,bj        integer i,j,K,bi,bj
21        integer km1        integer km1
22          
23          call fill_diagnostics(myThid,'ETAN    ',0,1,0,1,1,etaN)        call fill_diagnostics(myThid,'ETAN    ',0,1,0,1,1,etaN)
24          
25          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
26          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
27            do j = 1,sNy            do j = 1,sNy
28            do i = 1,sNx              do i = 1,sNx
29             dummys(i,j,bi,bj) = etaN(i,j,bi,bj)*etaN(i,j,bi,bj)                dummys(i,j,bi,bj) = etaN(i,j,bi,bj)*etaN(i,j,bi,bj)
30            enddo              enddo
31            enddo            enddo
32          enddo          enddo
33          enddo        enddo
34          call fill_diagnostics(myThid,'ETANSQ  ',0,1,0,1,1,dummys)        call fill_diagnostics(myThid,'ETANSQ  ',0,1,0,1,1,dummys)
35          
36          call fill_diagnostics(myThid,'UVEL    ',0,Nr,0,1,1,uVel)  #ifdef EXACT_CONSERV
37          call fill_diagnostics(myThid,'VVEL    ',0,Nr,0,1,1,vVel)        do bj = myByLo(myThid), myByHi(myThid)
         call fill_diagnostics(myThid,'WVEL    ',0,Nr,0,1,1,wVel)  
         call fill_diagnostics(myThid,'THETA   ',0,Nr,0,1,1,theta)  
         call fill_diagnostics(myThid,'SALT    ',0,Nr,0,1,1,salt)  
   
         do bj = myByLo(myThid), myByHi(myThid)  
38          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
          do K=1,Nr  
39            do j = 1,sNy            do j = 1,sNy
40            do i = 1,sNx              do i = 1,sNx
41             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*uVel(i,j,K,bi,bj)                dummys(i,j,bi,bj) = dEtaHdt(i,j,bi,bj)*dEtaHdt(i,j,bi,bj)
42            enddo              enddo
43            enddo            enddo
          enddo  
         enddo  
44          enddo          enddo
45          call fill_diagnostics(myThid,'UVELSQ  ',0,Nr,0,1,1,dummy)        enddo
46          call fill_diagnostics(myThid,'DETADT2 ',0,1,0,1,1,dummys)
47          do bj = myByLo(myThid), myByHi(myThid)  #endif
48          
49          call fill_diagnostics(myThid,'UVEL    ',0,Nr,0,1,1,uVel)
50          call fill_diagnostics(myThid,'VVEL    ',0,Nr,0,1,1,vVel)
51          call fill_diagnostics(myThid,'WVEL    ',0,Nr,0,1,1,wVel)
52          call fill_diagnostics(myThid,'THETA   ',0,Nr,0,1,1,theta)
53          call fill_diagnostics(myThid,'SALT    ',0,Nr,0,1,1,salt)
54          
55          do bj = myByLo(myThid), myByHi(myThid)
56          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
57           do K=1,Nr            do K=1,Nr
58            do j = 1,sNy              do j = 1,sNy
59            do i = 1,sNx                do i = 1,sNx
60             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*vVel(i,j,K,bi,bj)                  dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*uVel(i,j,K,bi,bj)
61            enddo                enddo
62                enddo
63            enddo            enddo
          enddo  
64          enddo          enddo
65          enddo        enddo
66          call fill_diagnostics(myThid,'VVELSQ  ',0,Nr,0,1,1,dummy)        call fill_diagnostics(myThid,'UVELSQ  ',0,Nr,0,1,1,dummy)
67    
68          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
69          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
70           do K=1,Nr            do K=1,Nr
71            do j = 1,sNy              do j = 1,sNy
72            do i = 1,sNx                do i = 1,sNx
73             dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*wVel(i,j,K,bi,bj)                  dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*vVel(i,j,K,bi,bj)
74            enddo                enddo
75                enddo
76            enddo            enddo
          enddo  
         enddo  
77          enddo          enddo
78          call fill_diagnostics(myThid,'WVELSQ  ',0,Nr,0,1,1,dummy)        enddo
79          call fill_diagnostics(myThid,'VVELSQ  ',0,Nr,0,1,1,dummy)
80    
81          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
82          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
83           do K=1,Nr            do K=1,Nr
84            do j = 1,sNy              do j = 1,sNy
85            do i = 1,sNx                do i = 1,sNx
86             dummy(i,j,K,bi,bj) = theta(i,j,K,bi,bj)*theta(i,j,K,bi,bj)                  dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*wVel(i,j,K,bi,bj)
87            enddo                enddo
88                enddo
89            enddo            enddo
          enddo  
         enddo  
90          enddo          enddo
91          call fill_diagnostics(myThid,'THETASQ ',0,Nr,0,1,1,dummy)        enddo
92          call fill_diagnostics(myThid,'WVELSQ  ',0,Nr,0,1,1,dummy)
93          do bj = myByLo(myThid), myByHi(myThid)        
94          do bj = myByLo(myThid), myByHi(myThid)
95          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
96           do K=1,Nr            do K=1,Nr
97            do j = 1,sNy              do j = 1,sNy
98            do i = 1,sNx                do i = 1,sNx
99             dummy(i,j,K,bi,bj) = salt(i,j,K,bi,bj)*salt(i,j,K,bi,bj)                  dummy(i,j,K,bi,bj)
100            enddo       &               = theta(i,j,K,bi,bj)*theta(i,j,K,bi,bj)
101                  enddo
102                enddo
103            enddo            enddo
          enddo  
104          enddo          enddo
105          enddo        enddo
106          call fill_diagnostics(myThid,'SALTSQ  ',0,Nr,0,1,1,dummy)        call fill_diagnostics(myThid,'THETASQ ',0,Nr,0,1,1,dummy)
107          
108          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
109          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
110           do K=1,Nr            do K=1,Nr
111            do j = 1,sNy              do j = 1,sNy
112            do i = 1,sNx                do i = 1,sNx
113             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*vVel(i,j,K,bi,bj)                  dummy(i,j,K,bi,bj) = salt(i,j,K,bi,bj)*salt(i,j,K,bi,bj)
114            enddo                enddo
115                enddo
116            enddo            enddo
          enddo  
         enddo  
117          enddo          enddo
118          call fill_diagnostics(myThid,'UVELVVEL',0,Nr,0,1,1,dummy)        enddo
119          call fill_diagnostics(myThid,'SALTSQ  ',0,Nr,0,1,1,dummy)
120          do bj = myByLo(myThid), myByHi(myThid)        
121          do bj = myByLo(myThid), myByHi(myThid)
122          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
123           do K=1,Nr            do K=1,Nr
124            do j = 1,sNy              do j = 1,sNy
125            do i = 1,sNx                do i = 1,sNx
126             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*                  dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*vVel(i,j,K,bi,bj)
127       &         0.5*(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))                enddo
128            enddo              enddo
129            enddo            enddo
          enddo  
         enddo  
130          enddo          enddo
131          call fill_diagnostics(myThid,'UVELTH  ',0,Nr,0,1,1,dummy)        enddo
132          call fill_diagnostics(myThid,'UVELVVEL',0,Nr,0,1,1,dummy)
133          do bj = myByLo(myThid), myByHi(myThid)        
134          do bj = myByLo(myThid), myByHi(myThid)
135          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
136           do K=1,Nr            do K=1,Nr
137            do j = 1,sNy              do j = 1,sNy
138            do i = 1,sNx                do i = 1,sNx
139             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*                  dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*
140       &         0.5*(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))       &               0.5*(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
141            enddo                enddo
142                enddo
143            enddo            enddo
          enddo  
         enddo  
144          enddo          enddo
145          call fill_diagnostics(myThid,'VVELTH  ',0,Nr,0,1,1,dummy)        enddo
146          call fill_diagnostics(myThid,'UVELTH  ',0,Nr,0,1,1,dummy)
147          do bj = myByLo(myThid), myByHi(myThid)        
148           do bi = myBxLo(myThid), myBxHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
149            do bi = myBxLo(myThid), myBxHi(myThid)
150            do K=1,Nr            do K=1,Nr
151             km1 = MAX(k-1,1)              do j = 1,sNy
152             do j = 1,sNy                do i = 1,sNx
153              do i = 1,sNx                  dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*
154               dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5*       &               0.5*(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
155       &                 (theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))                enddo
156              enddo              enddo
            enddo  
157            enddo            enddo
          enddo  
158          enddo          enddo
159          call fill_diagnostics(myThid,'WVELTH  ',0,Nr,0,1,1,dummy)        enddo
160          call fill_diagnostics(myThid,'VVELTH  ',0,Nr,0,1,1,dummy)
161          do bj = myByLo(myThid), myByHi(myThid)        
162          do bj = myByLo(myThid), myByHi(myThid)
163          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
164           do K=1,Nr            do K=1,Nr
165            do j = 1,sNy              km1 = MAX(k-1,1)
166            do i = 1,sNx              do j = 1,sNy
167             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*                do i = 1,sNx
168       &         0.5*(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))                  dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5*
169            enddo       &               (theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))
170                  enddo
171                enddo
172            enddo            enddo
          enddo  
173          enddo          enddo
174          enddo        enddo
175          call fill_diagnostics(myThid,'UVELSLT ',0,Nr,0,1,1,dummy)        call fill_diagnostics(myThid,'WVELTH  ',0,Nr,0,1,1,dummy)
176          
177          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
178          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
179           do K=1,Nr            do K=1,Nr
180            do j = 1,sNy              do j = 1,sNy
181            do i = 1,sNx                do i = 1,sNx
182             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*                  dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*
183       &         0.5*(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))       &               0.5*(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
184            enddo                enddo
185                enddo
186            enddo            enddo
          enddo  
         enddo  
187          enddo          enddo
188          call fill_diagnostics(myThid,'VVELSLT ',0,Nr,0,1,1,dummy)        enddo
189          call fill_diagnostics(myThid,'UVELSLT ',0,Nr,0,1,1,dummy)
190          do bj = myByLo(myThid), myByHi(myThid)        
191           do bi = myBxLo(myThid), myBxHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
192            do bi = myBxLo(myThid), myBxHi(myThid)
193            do K=1,Nr            do K=1,Nr
194             km1 = MAX(k-1,1)              do j = 1,sNy
195             do j = 1,sNy                do i = 1,sNx
196              do i = 1,sNx                  dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*
197               dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5*       &               0.5*(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
198       &                 (salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))                enddo
199              enddo              enddo
            enddo  
200            enddo            enddo
          enddo  
201          enddo          enddo
202          call fill_diagnostics(myThid,'WVELSLT ',0,Nr,0,1,1,dummy)        enddo
203          call fill_diagnostics(myThid,'VVELSLT ',0,Nr,0,1,1,dummy)
204    
205          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
206          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
207           do K=1,Nr            do K=1,Nr
208            do j = 1,sNy              km1 = MAX(k-1,1)
209            do i = 1,sNx              do j = 1,sNy
210             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)                do i = 1,sNx
211            enddo                  dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5*
212         &               (salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))
213                  enddo
214                enddo
215            enddo            enddo
          enddo  
216          enddo          enddo
217          enddo        enddo
218          call fill_diagnostics(myThid,'UVELMASS',0,Nr,0,1,1,salt)        call fill_diagnostics(myThid,'WVELSLT ',0,Nr,0,1,1,dummy)
219          
220          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
221          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
222           do K=1,Nr            do K=1,Nr
223            do j = 1,sNy              do j = 1,sNy
224            do i = 1,sNx                do i = 1,sNx
225             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)                  dummy(i,j,K,bi,bj)
226            enddo       &               = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)
227                  enddo
228                enddo
229            enddo            enddo
          enddo  
230          enddo          enddo
231          enddo        enddo
232          call fill_diagnostics(myThid,'VVELMASS',0,Nr,0,1,1,dummy)        call fill_diagnostics(myThid,'UVELMASS',0,Nr,0,1,1,dummy)
233    
234          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
235          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
236           do K=1,Nr            do K=1,Nr
237            do j = 1,sNy              do j = 1,sNy
238            do i = 1,sNx                do i = 1,sNx
239             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*                  dummy(i,j,K,bi,bj)
240       .         0.5*(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))       &               = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)
241       .                                * hFacW(i,j,K,bi,bj)                enddo
242            enddo              enddo
243            enddo            enddo
          enddo  
         enddo  
244          enddo          enddo
245          call fill_diagnostics(myThid,'UTHMASS ',0,Nr,0,1,1,dummy)        enddo
246          call fill_diagnostics(myThid,'VVELMASS',0,Nr,0,1,1,dummy)
247    
248          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
249          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
250           do K=1,Nr            do K=1,Nr
251            do j = 1,sNy              do j = 1,sNy
252            do i = 1,sNx                do i = 1,sNx
253             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*                  dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*
254       .         0.5*(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))       &               0.5*(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
255       .                                * hFacS(i,j,K,bi,bj)       &               * hFacW(i,j,K,bi,bj)
256            enddo                enddo
257                enddo
258            enddo            enddo
          enddo  
         enddo  
259          enddo          enddo
260          call fill_diagnostics(myThid,'VTHMASS ',0,Nr,0,1,1,dummy)        enddo
261          call fill_diagnostics(myThid,'UTHMASS ',0,Nr,0,1,1,dummy)
262    
263          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
264          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
265           do K=1,Nr            do K=1,Nr
266            do j = 1,sNy              do j = 1,sNy
267            do i = 1,sNx                do i = 1,sNx
268             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*                  dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*
269       .         0.5*(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))       &               0.5*(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
270       .                                * hFacW(i,j,K,bi,bj)       &               * hFacS(i,j,K,bi,bj)
271            enddo                enddo
272                enddo
273            enddo            enddo
          enddo  
274          enddo          enddo
275          enddo
276          call fill_diagnostics(myThid,'VTHMASS ',0,Nr,0,1,1,dummy)
277          
278          do bj = myByLo(myThid), myByHi(myThid)
279            do bi = myBxLo(myThid), myBxHi(myThid)
280              do K=1,Nr
281                do j = 1,sNy
282                  do i = 1,sNx
283                    dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*
284         &               0.5*(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
285         &               * hFacW(i,j,K,bi,bj)
286                  enddo
287                enddo
288              enddo
289          enddo          enddo
290          call fill_diagnostics(myThid,'USLTMASS',0,Nr,0,1,1,dummy)        enddo
291          call fill_diagnostics(myThid,'USLTMASS',0,Nr,0,1,1,dummy)
292    
293          do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
294          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
295           do K=1,Nr            do K=1,Nr
296            do j = 1,sNy              do j = 1,sNy
297            do i = 1,sNx                do i = 1,sNx
298             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*                  dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*
299       .         0.5*(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))       &               0.5*(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
300       .                                * hFacS(i,j,K,bi,bj)       &               * hFacS(i,j,K,bi,bj)
301            enddo                enddo
302                enddo
303            enddo            enddo
          enddo  
         enddo  
304          enddo          enddo
305          call fill_diagnostics(myThid,'VSLTMASS',0,Nr,0,1,1,dummy)        enddo
306          call fill_diagnostics(myThid,'VSLTMASS',0,Nr,0,1,1,dummy)
307          
308          
309  #endif /* ALLOW_DIAGNOSTICS */  #endif /* ALLOW_DIAGNOSTICS */
310          
311        return        return
312        end        end

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.22