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

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22