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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22