/[MITgcm]/MITgcm_contrib/darwin2/pkg/darwin/darwin_diags.F
ViewVC logotype

Annotation of /MITgcm_contrib/darwin2/pkg/darwin/darwin_diags.F

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


Revision 1.8 - (hide annotations) (download)
Wed Dec 4 21:19:12 2013 UTC (11 years, 7 months ago) by jahn
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt64r_20131210
Changes since 1.7: +3 -1 lines
only master cpu/thread writes

1 jahn 1.8 C $Header: /u/gcmpack/MITgcm_contrib/darwin2/pkg/darwin/darwin_diags.F,v 1.7 2012/10/23 17:55:30 stephd Exp $
2 stephd 1.2 C $Name: $
3 jahn 1.1
4     #include "DARWIN_OPTIONS.h"
5    
6     CStartOfInterface
7     SUBROUTINE DARWIN_DIAGS( myTime, myIter, myThid )
8     C /==========================================================\
9     C | SUBROUTINE DARWIN_DIAGS |
10     C | o Do DARWIN diagnostic output |
11     C |==========================================================|
12     C \==========================================================/
13     IMPLICIT NONE
14    
15     C === Global variables ===
16     #include "SIZE.h"
17     #include "EEPARAMS.h"
18     #include "PARAMS.h"
19     #include "PTRACERS_SIZE.h"
20     #include "PTRACERS_PARAMS.h"
21     #include "DARWIN_SIZE.h"
22     #include "SPECTRAL_SIZE.h"
23     #include "SPECTRAL.h"
24     #include "DARWIN_IO.h"
25    
26     C == Routine arguments ==
27     C myTime - Current time of simulation ( s )
28     C myIter - Iteration number
29     C myThid - Number of this instance of INI_FORCING
30     _RL myTime
31     INTEGER myIter
32     INTEGER myThid
33     CEndOfInterface
34    
35    
36     C == Local variables ==
37     LOGICAL DIFFERENT_MULTIPLE
38     EXTERNAL DIFFERENT_MULTIPLE
39     INTEGER bi, bj, k
40     INTEGER np
41     INTEGER ii,jj,ilnb
42     #ifdef ALLOW_QUOTA
43     INTEGER iPhy
44     #endif
45     CHARACTER*(MAX_LEN_MBUF) suff
46     CHARACTER*(1) pf
47     CHARACTER*(MAX_LEN_FNAM) name
48     C Functions
49     INTEGER ILNBLNK
50    
51     _RL Nfixtot, PPtot, Denittot
52    
53     #ifdef ALLOW_DARWIN
54    
55     IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
56     pf(1:1) = 'D'
57     ELSE
58     pf(1:1) = 'R'
59     ENDIF
60    
61     #ifdef ALLOW_TIMEAVE
62    
63     #ifdef ALLOW_QUOTA
64     iPhy = ibiomass
65     #endif
66    
67     C Dump files and restart average computation if needed
68     IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock).
69     & and.myIter.ne.nIter0 ) THEN
70    
71     C Normalize by integrated time
72     DO bj = myByLo(myThid), myByHi(myThid)
73     DO bi = myBxLo(myThid), myBxHi(myThid)
74     CALL TIMEAVE_NORMALIZ(PARave, DAR_timeave, nR ,
75     & bi,bj,myThid)
76     CALL TIMEAVE_NORMALIZ(PPave, DAR_timeave, nR ,
77     & bi,bj,myThid)
78 benw 1.3 #ifdef QUOTA_DIAG_LIMIT
79     do np=1,npmax
80     CALL TIMEAVE_NORMALIZ(Nlimave(1-Olx,1-Oly,1,1,1,np),
81     & DAR_timeave, nR ,bi,bj,myThid)
82     CALL TIMEAVE_NORMALIZ(Flimave(1-Olx,1-Oly,1,1,1,np),
83     & DAR_timeave, nR ,bi,bj,myThid)
84     CALL TIMEAVE_NORMALIZ(Ilimave(1-Olx,1-Oly,1,1,1,np),
85     & DAR_timeave, nR ,bi,bj,myThid)
86     enddo
87     CALL TIMEAVE_NORMALIZ(Tlimave,DAR_timeave, nR ,
88     & bi,bj,myThid)
89     #endif
90 jahn 1.1 #ifndef ALLOW_QUOTA
91     CALL TIMEAVE_NORMALIZ(Chlave, DAR_timeave, nR ,
92     & bi,bj,myThid)
93     #endif
94     CALL TIMEAVE_NORMALIZ(Nfixave, DAR_timeave, nR ,
95     & bi,bj,myThid)
96     CALL TIMEAVE_NORMALIZ(Denitave, DAR_timeave, nR ,
97     & bi,bj,myThid)
98    
99 stephd 1.7 #ifdef DAR_DIAG_PARW
100     do ii = 1,tlam
101     CALL TIMEAVE_NORMALIZ(PARwave(1-Olx,1-Oly,1,1,1,ii),
102     & DAR_timeave,nR,bi,bj,myThid)
103     enddo
104     do np = 1,npmax
105     CALL TIMEAVE_NORMALIZ(chl2cave(1-Olx,1-Oly,1,1,1,np),
106     & DAR_timeave,nR,bi,bj,myThid)
107     enddo
108     #endif
109 jahn 1.1 #ifdef DAR_DIAG_ACDOM
110     CALL TIMEAVE_NORMALIZ(aCDOMave, DAR_timeave, nR ,
111     & bi,bj,myThid)
112     #endif
113     #ifdef DAR_DIAG_IRR
114     do ii = 1,tlam
115     CALL TIMEAVE_NORMALIZ(Edave(1-Olx,1-Oly,1,1,1,ii),
116     & DAR_timeave,nR,bi,bj,myThid)
117     CALL TIMEAVE_NORMALIZ(Esave(1-Olx,1-Oly,1,1,1,ii),
118     & DAR_timeave,nR,bi,bj,myThid)
119     CALL TIMEAVE_NORMALIZ(Euave(1-Olx,1-Oly,1,1,1,ii),
120     & DAR_timeave,nR,bi,bj,myThid)
121 jahn 1.5 CALL TIMEAVE_NORMALIZ(Estave(1-Olx,1-Oly,1,1,1,ii),
122     & DAR_timeave,nR,bi,bj,myThid)
123 jahn 1.1 CALL TIMEAVE_NORMALIZ(Eutave(1-Olx,1-Oly,1,1,1,ii),
124     & DAR_timeave,nR,bi,bj,myThid)
125     enddo
126     #endif
127 jahn 1.4 #ifdef DAR_DIAG_IRR_AMPS
128     do ii = 1,tlam
129 jahn 1.5 CALL TIMEAVE_NORMALIZ(amp1ave(1-Olx,1-Oly,1,1,1,ii),
130 jahn 1.4 & DAR_timeave,nR,bi,bj,myThid)
131 jahn 1.5 CALL TIMEAVE_NORMALIZ(amp2ave(1-Olx,1-Oly,1,1,1,ii),
132 jahn 1.4 & DAR_timeave,nR,bi,bj,myThid)
133     enddo
134     #endif
135 jahn 1.1 #ifdef DAR_DIAG_ABSORP
136     do ii = 1,tlam
137     CALL TIMEAVE_NORMALIZ(aave(1-Olx,1-Oly,1,1,1,ii),
138     & DAR_timeave,nR,bi,bj,myThid)
139     enddo
140     #endif
141     #ifdef DAR_DIAG_SCATTER
142     do ii = 1,tlam
143     CALL TIMEAVE_NORMALIZ(btave(1-Olx,1-Oly,1,1,1,ii),
144     & DAR_timeave,nR,bi,bj,myThid)
145     CALL TIMEAVE_NORMALIZ(bbave(1-Olx,1-Oly,1,1,1,ii),
146     & DAR_timeave,nR,bi,bj,myThid)
147     enddo
148     #endif
149     #ifdef DAR_DIAG_PART_SCATTER
150     do ii = 1,tlam
151     CALL TIMEAVE_NORMALIZ(apartave(1-Olx,1-Oly,1,1,1,ii),
152     & DAR_timeave,nR,bi,bj,myThid)
153     CALL TIMEAVE_NORMALIZ(btpartave(1-Olx,1-Oly,1,1,1,ii),
154     & DAR_timeave,nR,bi,bj,myThid)
155     CALL TIMEAVE_NORMALIZ(bbpartave(1-Olx,1-Oly,1,1,1,ii),
156     & DAR_timeave,nR,bi,bj,myThid)
157     enddo
158     #endif
159 jahn 1.4 #ifdef DAR_RADTRANS
160     CALL TIMEAVE_NORMALIZ(rmudave(1-Olx,1-Oly,1,1),
161     & DAR_timeave,1,bi,bj,myThid)
162     #endif
163 stephd 1.7 #ifdef DAR_DIAG_EK
164     do np = 1,npmax
165     CALL TIMEAVE_NORMALIZ(Ekave(1-Olx,1-Oly,1,1,1,np),
166     & DAR_timeave,nR,bi,bj,myThid)
167     CALL TIMEAVE_NORMALIZ(EkoverEave(1-Olx,1-Oly,1,1,1,np),
168     & DAR_timeave,nR,bi,bj,myThid)
169     CALL TIMEAVE_NORMALIZ(acclimave(1-Olx,1-Oly,1,1,1,np),
170     & DAR_timeave,nR,bi,bj,myThid)
171     do ii = 1,tlam
172     CALL TIMEAVE_NORMALIZ(Ek_nlave(1-Olx,1-Oly,1,1,1,np,ii),
173     & DAR_timeave,nR,bi,bj,myThid)
174     CALL TIMEAVE_NORMALIZ(
175     & EkoverE_nlave(1-Olx,1-Oly,1,1,1,np,ii),
176     & DAR_timeave,nR,bi,bj,myThid)
177     enddo
178     enddo
179     #endif
180 jahn 1.1
181     c ANNA_TAVE
182     #ifdef WAVES_DIAG_PCHL
183     do np=1,npmax
184     CALL TIMEAVE_NORMALIZ(Pchlave(1-Olx,1-Oly,1,1,1,np),
185     & DAR_timeave, nR ,
186     & bi,bj,myThid)
187     c CALL TIMEAVE_NORMALIZ(Pchlave(1-Olx,1-Oly,1,1,1,np),
188     c & DAR_timeave, nR ,
189     c & bi,bj,myThid)
190     enddo
191     #endif
192     c ANNA end TAVE
193    
194     #ifdef DAR_DIAG_RSTAR
195     do np=1,npmax
196     CALL TIMEAVE_NORMALIZ(Rstarave(1-Olx,1-Oly,1,1,1,np),
197     & DAR_timeave, nR ,
198     & bi,bj,myThid)
199     CALL TIMEAVE_NORMALIZ(RNstarave(1-Olx,1-Oly,1,1,1,np),
200     & DAR_timeave, nR ,
201     & bi,bj,myThid)
202     enddo
203     #endif
204     #ifdef DAR_DIAG_DIVER
205     CALL TIMEAVE_NORMALIZ(Diver1ave(1-Olx,1-Oly,1,1,1),
206     & DAR_timeave, nR ,
207     & bi,bj,myThid)
208     CALL TIMEAVE_NORMALIZ(Diver2ave(1-Olx,1-Oly,1,1,1),
209     & DAR_timeave, nR ,
210     & bi,bj,myThid)
211     CALL TIMEAVE_NORMALIZ(Diver3ave(1-Olx,1-Oly,1,1,1),
212     & DAR_timeave, nR ,
213     & bi,bj,myThid)
214     CALL TIMEAVE_NORMALIZ(Diver4ave(1-Olx,1-Oly,1,1,1),
215     & DAR_timeave, nR ,
216     & bi,bj,myThid)
217     #endif
218     c
219     #ifdef DAR_DIAG_GROW
220     do np=1,npmax
221     CALL TIMEAVE_NORMALIZ(Growave(1-Olx,1-Oly,1,1,1,np),
222     & DAR_timeave, nR ,
223     & bi,bj,myThid)
224     CALL TIMEAVE_NORMALIZ(Growsqave(1-Olx,1-Oly,1,1,1,np),
225     & DAR_timeave, nR ,
226     & bi,bj,myThid)
227     enddo
228     #endif
229     #ifdef ALLOW_DIAZ
230     c
231     #ifdef DAR_DIAG_NFIXP
232     do np=1,npmax
233     CALL TIMEAVE_NORMALIZ(NfixPave(1-Olx,1-Oly,1,1,1,np),
234     & DAR_timeave, nR ,
235     & bi,bj,myThid)
236     enddo
237     #endif
238     #endif
239     ENDDO
240     ENDDO
241    
242     #ifdef CALC_RATE_TOTALS
243     call tracer_sumvol(
244     & PPave, nR, PPtot, myThid )
245     PPtot=PPtot*120. _d 0 * 12. _d 0* 1. _d -3* 31536000. _d 0
246 jahn 1.6 & *1. _d -15
247 jahn 1.1 call tracer_sumvol(
248     & Nfixave, nR, Nfixtot, myThid )
249     Nfixtot=Nfixtot*14. _d 0 *1. _d -3* 31536000. _d 0
250     & *1 _d -12
251     call tracer_sumvol(
252     & Denitave, nR, Denittot, myThid )
253     Denittot=Denittot*14. _d 0 *1. _d -3* 31536000. _d 0
254     & *1 _d -12
255 jahn 1.8 _BEGIN_MASTER( myThid )
256 stephd 1.2 write(dar_ratetot_unit,*) myIter, PPtot, Nfixtot, Denittot
257 jahn 1.8 _END_MASTER( myThid )
258 jahn 1.1 #endif
259    
260    
261     IF ( PTRACERS_timeave_mdsio ) THEN
262     WRITE(suff,'(I10.10)') myIter
263     CALL WRITE_FLD_XYZ_RL('DAR_PARtave.',suff,PARave,
264     & myIter,myThid)
265     CALL WRITE_FLD_XYZ_RL('DAR_PPtave.',suff,PPave,
266     & myIter,myThid)
267     #ifndef ALLOW_QUOTA
268     CALL WRITE_FLD_XYZ_RL('DAR_Chltave.',suff,Chlave,
269     & myIter,myThid)
270     #endif
271     CALL WRITE_FLD_XYZ_RL('DAR_Nfixtave.',suff,Nfixave,
272     & myIter,myThid)
273     CALL WRITE_FLD_XYZ_RL('DAR_Denittave.',suff,Denitave,
274     & myIter,myThid)
275 stephd 1.7 #ifdef DAR_DIAG_PARW
276     do ii = 1,tlam
277     WRITE(suff,'(A8,I2.2,A1,I10.10)') 'PARwave',
278     & ii,'.',myIter
279     CALL WRITE_FLD_XYZ_RL(suff,' ',
280     & PARwave(1-Olx,1-Oly,1,1,1,ii),
281     & myIter,myThid)
282     enddo
283     do np = 1,npmax
284     WRITE(suff,'(A8,I2.2,A1,I10.10)') 'chl2cave',
285     & np,'.',myIter
286     CALL WRITE_FLD_XYZ_RL(suff,' ',
287     & chl2cave(1-Olx,1-Oly,1,1,1,np),
288     & myIter,myThid)
289     enddo
290     #endif
291 jahn 1.1 #ifdef DAR_DIAG_ACDOM
292     CALL WRITE_FLD_XYZ_RL('DAR_aCDOMtave',suff,aCDOMave,
293     & myIter,myThid)
294     #endif
295     #ifdef DAR_DIAG_IRR
296     do ii = 1,tlam
297     WRITE(suff,'(A5,I2.2,A1,I10.10)') 'Edave',
298     & ii,'.',myIter
299     CALL WRITE_FLD_XYZ_RL(suff,' ',
300     & Edave(1-Olx,1-Oly,1,1,1,ii),
301     & myIter,myThid)
302     WRITE(suff,'(A5,I2.2,A1,I10.10)') 'Esave',
303     & ii,'.',myIter
304     CALL WRITE_FLD_XYZ_RL(suff,' ',
305     & Esave(1-Olx,1-Oly,1,1,1,ii),
306     & myIter,myThid)
307     WRITE(suff,'(A5,I2.2,A1,I10.10)') 'Euave',
308     & ii,'.',myIter
309     CALL WRITE_FLD_XYZ_RL(suff,' ',
310     & Euave(1-Olx,1-Oly,1,1,1,ii),
311     & myIter,myThid)
312 jahn 1.5 WRITE(suff,'(A8,I2.2,A1,I10.10)') 'Estopave',
313     & ii,'.',myIter
314     CALL WRITE_FLD_XYZ_RL(suff,' ',
315     & Estave(1-Olx,1-Oly,1,1,1,ii),
316     & myIter,myThid)
317 jahn 1.1 WRITE(suff,'(A8,I2.2,A1,I10.10)') 'Eutopave',
318     & ii,'.',myIter
319     CALL WRITE_FLD_XYZ_RL(suff,' ',
320     & Eutave(1-Olx,1-Oly,1,1,1,ii),
321     & myIter,myThid)
322     enddo
323     #endif
324 jahn 1.4 #ifdef DAR_DIAG_IRR_AMPS
325     do ii = 1,tlam
326 jahn 1.5 WRITE(suff,'(A5,I2.2,A1,I10.10)') 'amp1ave',
327 jahn 1.4 & ii,'.',myIter
328     CALL WRITE_FLD_XYZ_RL(suff,' ',
329 jahn 1.5 & amp1ave(1-Olx,1-Oly,1,1,1,ii),
330 jahn 1.4 & myIter,myThid)
331 jahn 1.5 WRITE(suff,'(A5,I2.2,A1,I10.10)') 'amp2ave',
332 jahn 1.4 & ii,'.',myIter
333     CALL WRITE_FLD_XYZ_RL(suff,' ',
334 jahn 1.5 & amp2ave(1-Olx,1-Oly,1,1,1,ii),
335 jahn 1.4 & myIter,myThid)
336     enddo
337     #endif
338 jahn 1.1 #ifdef DAR_DIAG_ABSORP
339     do ii = 1,tlam
340     WRITE(suff,'(A4,I2.2,A1,I10.10)') 'aave',
341     & ii,'.',myIter
342     CALL WRITE_FLD_XYZ_RL(suff,' ',
343     & aave(1-Olx,1-Oly,1,1,1,ii),
344     & myIter,myThid)
345     enddo
346     #endif
347     #ifdef DAR_DIAG_SCATTER
348     do ii = 1,tlam
349     WRITE(suff,'(A5,I2.2,A1,I10.10)') 'btave',
350     & ii,'.',myIter
351     CALL WRITE_FLD_XYZ_RL(suff,' ',
352     & btave(1-Olx,1-Oly,1,1,1,ii),
353     & myIter,myThid)
354     WRITE(suff,'(A5,I2.2,A1,I10.10)') 'bbave',
355     & ii,'.',myIter
356     CALL WRITE_FLD_XYZ_RL(suff,' ',
357     & bbave(1-Olx,1-Oly,1,1,1,ii),
358     & myIter,myThid)
359     enddo
360     #endif
361     #ifdef DAR_DIAG_PART_SCATTER
362     do ii = 1,tlam
363     WRITE(suff,'(A8,I2.2,A1,I10.10)') 'apartave',
364     & ii,'.',myIter
365     CALL WRITE_FLD_XYZ_RL(suff,' ',
366     & apartave(1-Olx,1-Oly,1,1,1,ii),
367     & myIter,myThid)
368     WRITE(suff,'(A9,I2.2,A1,I10.10)') 'btpartave',
369     & ii,'.',myIter
370     CALL WRITE_FLD_XYZ_RL(suff,' ',
371     & btpartave(1-Olx,1-Oly,1,1,1,ii),
372     & myIter,myThid)
373     WRITE(suff,'(A9,I2.2,A1,I10.10)') 'bbpartave',
374     & ii,'.',myIter
375     CALL WRITE_FLD_XYZ_RL(suff,' ',
376     & bbpartave(1-Olx,1-Oly,1,1,1,ii),
377     & myIter,myThid)
378     enddo
379     #endif
380 jahn 1.4 #ifdef DAR_RADTRANS
381     WRITE(suff,'(A7,A1,I10.10)') 'rmudave',
382     & '.',myIter
383     CALL WRITE_FLD_XY_RL(suff,' ',
384     & rmudave(1-Olx,1-Oly,1,1),
385     & myIter,myThid)
386     #endif
387 stephd 1.7 #ifdef DAR_DIAG_EK
388     do np = 1,npmax
389     WRITE(suff,'(A8,I2.2,A1,I10.10)') 'Ekave',
390     & np,'.',myIter
391     CALL WRITE_FLD_XYZ_RL(suff,' ',
392     & Ekave(1-Olx,1-Oly,1,1,1,np),
393     & myIter,myThid)
394     WRITE(suff,'(A8,I2.2,A1,I10.10)') 'EkoverEave',
395     & np,'.',myIter
396     CALL WRITE_FLD_XYZ_RL(suff,' ',
397     & EkoverEave(1-Olx,1-Oly,1,1,1,np),
398     & myIter,myThid)
399     WRITE(suff,'(A8,I2.2,A1,I10.10)') 'acclimave',
400     & np,'.',myIter
401     CALL WRITE_FLD_XYZ_RL(suff,' ',
402     & acclimave(1-Olx,1-Oly,1,1,1,np),
403     & myIter,myThid)
404     do ii = 1,tlam
405     WRITE(suff,'(A8,I2.2,A1,I2.2,A1,I10.10)') 'Ek_nl_ave',
406     & np,'_',ii,'.',myIter
407     CALL WRITE_FLD_XYZ_RL(suff,' ',
408     & Ek_nlave(1-Olx,1-Oly,1,1,1,np,ii),
409     & myIter,myThid)
410     WRITE(suff,'(A8,I2.2,A1,I2.2,A1,I10.10)') 'EkoverE_nl_ave',
411     & np,'_',ii,'.',myIter
412     CALL WRITE_FLD_XYZ_RL(suff,' ',
413     & EkoverE_nlave(1-Olx,1-Oly,1,1,1,np,ii),
414     & myIter,myThid)
415     enddo
416     enddo
417     #endif
418 jahn 1.1
419     c ANNA_TAVE
420     #ifdef WAVES_DIAG_PCHL
421     do np=1,npmax
422     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'Pchlave',
423     & np,'.',myIter
424     CALL WRITE_FLD_XYZ_RL(suff,' ',
425     & Pchlave(1-Olx,1-Oly,1,1,1,np),
426     & myIter,myThid)
427     enddo
428     #endif
429     c ANNA end TAVE
430     #ifdef DAR_DIAG_RSTAR
431     do np=1,npmax
432     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'Rstarave',
433     & np,'.',myIter
434     CALL WRITE_FLD_XYZ_RL(suff,' ',
435     & Rstarave(1-Olx,1-Oly,1,1,1,np),
436     & myIter,myThid)
437     enddo
438     do np=1,npmax
439     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'RNstarave',
440     & np,'.',myIter
441     CALL WRITE_FLD_XYZ_RL(suff,' ',
442     & RNstarave(1-Olx,1-Oly,1,1,1,np),
443     & myIter,myThid)
444     enddo
445     #endif
446     #ifdef DAR_DIAG_DIVER
447     WRITE(suff,'(I10.10)') myIter
448     CALL WRITE_FLD_XYZ_RL('DAR_Diver1tave.',suff,Diver1ave,
449     & myIter,myThid)
450     CALL WRITE_FLD_XYZ_RL('DAR_Diver2tave.',suff,Diver2ave,
451     & myIter,myThid)
452     CALL WRITE_FLD_XYZ_RL('DAR_Diver3tave.',suff,Diver3ave,
453     & myIter,myThid)
454     CALL WRITE_FLD_XYZ_RL('DAR_Diver4tave.',suff,Diver4ave,
455     & myIter,myThid)
456     #endif
457     c
458     #ifdef DAR_DIAG_GROW
459     do np=1,npmax
460     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'Growave',
461     & np,'.',myIter
462     CALL WRITE_FLD_XYZ_RL(suff,' ',
463     & Growave(1-Olx,1-Oly,1,1,1,np),
464     & myIter,myThid)
465     enddo
466     do np=1,npmax
467     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'Growsqave',
468     & np,'.',myIter
469     CALL WRITE_FLD_XYZ_RL(suff,' ',
470     & Growsqave(1-Olx,1-Oly,1,1,1,np),
471     & myIter,myThid)
472     enddo
473     #endif
474     c
475     #ifdef ALLOW_DIAZ
476     #ifdef DAR_DIAG_NFIXP
477     do np=1,npmax
478     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'NfixPave',
479     & np,'.',myIter
480     CALL WRITE_FLD_XYZ_RL(suff,' ',
481     & NfixPave(1-Olx,1-Oly,1,1,1,np),
482     & myIter,myThid)
483     enddo
484     #endif
485     #endif
486     ENDIF
487    
488     #ifdef ALLOW_MNC
489     IF ( PTRACERS_timeave_mnc ) THEN
490     CALL MNC_CW_SET_UDIM('dar_tave', -1, myThid)
491     CALL MNC_CW_RL_W_S('D','dar_tave',0,0,'T',myTime,myThid)
492     CALL MNC_CW_SET_UDIM('dar_tave', 0, myThid)
493     CALL MNC_CW_I_W_S('I','dar_tave',0,0,'iter',myIter,myThid)
494     CALL MNC_CW_RL_W(
495     & pf,'dar_tave',0,0,'dar_PAR_ave',PARave,myThid)
496     CALL MNC_CW_RL_W(
497     & pf,'dar_tave',0,0,'dar_PP_ave',PPave,myThid)
498 benw 1.3 #ifdef QUOTA_DIAG_LIMIT
499     do np=1,npmax
500     WRITE(name,'(a,i3.3)') 'dar_Nlim_',np
501     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
502     & Nlimave(1-OLx,1-OLy,1,1,1,np),myThid)
503     WRITE(name,'(a,i3.3)') 'dar_Flim_',np
504     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
505     & Flimave(1-OLx,1-OLy,1,1,1,np),myThid)
506     WRITE(name,'(a,i3.3)') 'dar_Ilim_',np
507     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
508     & Ilimave(1-OLx,1-OLy,1,1,1,np),myThid)
509     enddo
510     CALL MNC_CW_RL_W(
511     & pf,'dar_tave',0,0,'dar_Tlim_ave',Tlimave,myThid)
512     #endif
513 jahn 1.1 #ifndef ALLOW_QUOTA
514     CALL MNC_CW_RL_W(
515     & pf,'dar_tave',0,0,'dar_Chl_ave',Chlave,myThid)
516     #endif
517     CALL MNC_CW_RL_W(
518     & pf,'dar_tave',0,0,'dar_Nfix_ave',Nfixave,myThid)
519     CALL MNC_CW_RL_W(
520     & pf,'dar_tave',0,0,'dar_Denit_ave',Denitave,myThid)
521 stephd 1.7 #ifdef DAR_DIAG_PARW
522     do ii = 1,tlam
523     DO jj = 1,MAX_LEN_FNAM
524     name(jj:jj) = ' '
525     ENDDO
526     WRITE(name,'(a,i2.2)') 'dar_PARw',ii
527     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
528     & PARwave(1-OLx,1-OLy,1,1,1,ii),myThid)
529     enddo
530     do np = 1,npmax
531     DO jj = 1,MAX_LEN_FNAM
532     name(jj:jj) = ' '
533     ENDDO
534     WRITE(name,'(a,i2.2)') 'dar_chl2c',np
535     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
536     & chl2cave(1-OLx,1-OLy,1,1,1,np),myThid)
537     enddo
538     #endif
539 jahn 1.1 #ifdef DAR_DIAG_ACDOM
540     CALL MNC_CW_RL_W(
541     & pf,'dar_tave',0,0,'dar_aCDOM_ave',aCDOMave,myThid)
542     #endif
543     #ifdef DAR_DIAG_IRR
544     do ii = 1,tlam
545     DO jj = 1,MAX_LEN_FNAM
546     name(jj:jj) = ' '
547     ENDDO
548     WRITE(name,'(a,i2.2)') 'dar_Ed',ii
549     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
550     & Edave(1-OLx,1-OLy,1,1,1,ii),myThid)
551     WRITE(name,'(a,i2.2)') 'dar_Es',ii
552     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
553     & Esave(1-OLx,1-OLy,1,1,1,ii),myThid)
554     WRITE(name,'(a,i2.2)') 'dar_Eu',ii
555     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
556     & Euave(1-OLx,1-OLy,1,1,1,ii),myThid)
557 jahn 1.5 WRITE(name,'(a,i2.2)') 'dar_Estop',ii
558     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
559     & Estave(1-OLx,1-OLy,1,1,1,ii),myThid)
560 jahn 1.1 WRITE(name,'(a,i2.2)') 'dar_Eutop',ii
561     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
562     & Eutave(1-OLx,1-OLy,1,1,1,ii),myThid)
563     enddo
564     #endif
565 jahn 1.4 #ifdef DAR_DIAG_IRR_AMPS
566     do ii = 1,tlam
567     DO jj = 1,MAX_LEN_FNAM
568     name(jj:jj) = ' '
569     ENDDO
570 jahn 1.5 WRITE(name,'(a,i2.2)') 'dar_amp1_',ii
571 jahn 1.4 CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
572 jahn 1.5 & amp1ave(1-OLx,1-OLy,1,1,1,ii),myThid)
573     WRITE(name,'(a,i2.2)') 'dar_amp2_',ii
574 jahn 1.4 CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
575 jahn 1.5 & amp2ave(1-OLx,1-OLy,1,1,1,ii),myThid)
576 jahn 1.4 enddo
577     #endif
578 jahn 1.1 #ifdef DAR_DIAG_ABSORP
579     do ii = 1,tlam
580     DO jj = 1,MAX_LEN_FNAM
581     name(jj:jj) = ' '
582     ENDDO
583     WRITE(name,'(a,i2.2)') 'dar_a',ii
584     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
585     & aave(1-OLx,1-OLy,1,1,1,ii),myThid)
586     enddo
587     #endif
588     #ifdef DAR_DIAG_SCATTER
589     do ii = 1,tlam
590     DO jj = 1,MAX_LEN_FNAM
591     name(jj:jj) = ' '
592     ENDDO
593     WRITE(name,'(a,i2.2)') 'dar_bt',ii
594     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
595     & btave(1-OLx,1-OLy,1,1,1,ii),myThid)
596     WRITE(name,'(a,i2.2)') 'dar_bb',ii
597     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
598     & bbave(1-OLx,1-OLy,1,1,1,ii),myThid)
599     enddo
600     #endif
601     #ifdef DAR_DIAG_PART_SCATTER
602     do ii = 1,tlam
603     DO jj = 1,MAX_LEN_FNAM
604     name(jj:jj) = ' '
605     ENDDO
606     WRITE(name,'(a,i2.2)') 'dar_apart',ii
607     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
608     & apartave(1-OLx,1-OLy,1,1,1,ii),myThid)
609     WRITE(name,'(a,i2.2)') 'dar_btpart',ii
610     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
611     & btpartave(1-OLx,1-OLy,1,1,1,ii),myThid)
612     WRITE(name,'(a,i2.2)') 'dar_bbpart',ii
613     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
614     & bbpartave(1-OLx,1-OLy,1,1,1,ii),myThid)
615     enddo
616     #endif
617 jahn 1.4 #ifdef DAR_RADTRANS
618     DO jj = 1,MAX_LEN_FNAM
619     name(jj:jj) = ' '
620     ENDDO
621     WRITE(name,'(a)') 'dar_rmud'
622     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
623     & rmudave(1-OLx,1-OLy,1,1),myThid)
624     #endif
625 stephd 1.7 #ifdef DAR_DIAG_EK
626     do np = 1,npmax
627     DO jj = 1,MAX_LEN_FNAM
628     name(jj:jj) = ' '
629     ENDDO
630     WRITE(name,'(a,i2.2)') 'dar_Ek',np
631     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
632     & Ekave(1-OLx,1-OLy,1,1,1,np),myThid)
633     WRITE(name,'(a,i2.2)') 'dar_EkoverE',np
634     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
635     & EkoverEave(1-OLx,1-OLy,1,1,1,np),myThid)
636     WRITE(name,'(a,i2.2)') 'dar_acclim',np
637     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
638     & acclimave(1-OLx,1-OLy,1,1,1,np),myThid)
639     do ii = 1,tlam
640     WRITE(name,'(a,i2.2,a,i2.2)') 'dar_Ek_nl',np,'_',ii
641     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
642     & Ek_nlave(1-OLx,1-OLy,1,1,1,np,ii),myThid)
643     WRITE(name,'(a,i2.2,a,i2.2)') 'dar_EkoverE_nl',np,'_',ii
644     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
645     & EkoverE_nlave(1-OLx,1-OLy,1,1,1,np,ii),myThid)
646     enddo
647     enddo
648     #endif
649 jahn 1.1 c ANNA_TAVE
650     #ifdef WAVES_DIAG_PCHL
651     do np=1,npmax
652     ii=iPhy+np-1
653     DO jj = 1,MAX_LEN_FNAM
654     name(jj:jj) = ' '
655     ENDDO
656     ilnb = ILNBLNK(PTRACERS_names(ii))
657     WRITE(name,'(a,a)') 'dar_Pchl_',PTRACERS_names(ii)(1:ilnb)
658     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
659     & Pchlave(1-OLx,1-OLy,1,1,1,np),myThid)
660     enddo
661     #endif
662     c ANNA end TAVE
663     #ifdef DAR_DIAG_RSTAR
664     do np=1,npmax
665     ii=iPhy+np-1
666     DO jj = 1,MAX_LEN_FNAM
667     name(jj:jj) = ' '
668     ENDDO
669     ilnb = ILNBLNK(PTRACERS_names(ii))
670     WRITE(name,'(a,a)') 'dar_Rstar_',PTRACERS_names(ii)(1:ilnb)
671     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
672     & Rstarave(1-OLx,1-OLy,1,1,1,np),myThid)
673     enddo
674     do np=1,npmax
675     ii=iPhy+np-1
676     DO jj = 1,MAX_LEN_FNAM
677     name(jj:jj) = ' '
678     ENDDO
679     ilnb = ILNBLNK(PTRACERS_names(ii))
680     WRITE(name,'(a,a)') 'dar_RNstar_',PTRACERS_names(ii)(1:ilnb)
681     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
682     & RNstarave(1-OLx,1-OLy,1,1,1,np),myThid)
683     enddo
684     #endif
685     #ifdef DAR_DIAG_DIVER
686     CALL MNC_CW_RL_W(
687     & pf,'dar_tave',0,0,'dar_Diver1_ave',Diver1ave,myThid)
688     CALL MNC_CW_RL_W(
689     & pf,'dar_tave',0,0,'dar_Diver2_ave',Diver2ave,myThid)
690     CALL MNC_CW_RL_W(
691     & pf,'dar_tave',0,0,'dar_Diver3_ave',Diver3ave,myThid)
692     CALL MNC_CW_RL_W(
693     & pf,'dar_tave',0,0,'dar_Diver4_ave',Diver4ave,myThid)
694     #endif
695     c
696     #ifdef DAR_DIAG_GROW
697     do np=1,npmax
698     ii=iPhy+np-1
699     DO jj = 1,MAX_LEN_FNAM
700     name(jj:jj) = ' '
701     ENDDO
702     ilnb = ILNBLNK(PTRACERS_names(ii))
703     WRITE(name,'(a,a)') 'dar_Grow_',PTRACERS_names(ii)(1:ilnb)
704     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
705     & Growave(1-OLx,1-OLy,1,1,1,np),myThid)
706     enddo
707     do np=1,npmax
708     ii=iPhy+np-1
709     DO jj = 1,MAX_LEN_FNAM
710     name(jj:jj) = ' '
711     ENDDO
712     ilnb = ILNBLNK(PTRACERS_names(ii))
713     WRITE(name,'(a,a)') 'dar_Growsq_',PTRACERS_names(ii)(1:ilnb)
714     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
715     & Growsqave(1-OLx,1-OLy,1,1,1,np),myThid)
716     enddo
717     #endif
718     c
719     #ifdef ALLOW_DIAZ
720     #ifdef DAR_DIAG_NFIXP
721     do np=1,npmax
722     ii=iPhy+np-1
723     DO jj = 1,MAX_LEN_FNAM
724     name(jj:jj) = ' '
725     ENDDO
726     ilnb = ILNBLNK(PTRACERS_names(ii))
727     WRITE(name,'(a,a)') 'dar_NfixP_',PTRACERS_names(ii)(1:ilnb)
728     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
729     & NfixPave(1-OLx,1-OLy,1,1,1,np),myThid)
730     enddo
731     #endif
732     #endif
733     ENDIF
734     #endif
735    
736     C Reset averages to zero
737     DO bj = myByLo(myThid), myByHi(myThid)
738     DO bi = myBxLo(myThid), myBxHi(myThid)
739     CALL TIMEAVE_RESET(PARave,Nr,bi,bj,myThid)
740     CALL TIMEAVE_RESET(PPave,Nr,bi,bj,myThid)
741 benw 1.3 #ifdef QUOTA_DIAG_LIMIT
742     CALL TIMEAVE_RESET(Nlimave,Nr,bi,bj,myThid)
743     CALL TIMEAVE_RESET(Flimave,Nr,bi,bj,myThid)
744     CALL TIMEAVE_RESET(Ilimave,Nr,bi,bj,myThid)
745     CALL TIMEAVE_RESET(Tlimave,Nr,bi,bj,myThid)
746     #endif
747 jahn 1.1 #ifndef ALLOW_QUOTA
748     CALL TIMEAVE_RESET(Chlave,Nr,bi,bj,myThid)
749     #endif
750     CALL TIMEAVE_RESET(Nfixave,Nr,bi,bj,myThid)
751     CALL TIMEAVE_RESET(Denitave,Nr,bi,bj,myThid)
752 stephd 1.7 #ifdef DAR_DIAG_PARW
753     do ii = 1,tlam
754     CALL TIMEAVE_RESET(PARwave(1-OLx,1-OLy,1,1,1,ii),
755     & Nr,bi,bj,myThid)
756     enddo
757     do np = 1,npmax
758     CALL TIMEAVE_RESET(chl2cave(1-OLx,1-OLy,1,1,1,np),
759     & Nr,bi,bj,myThid)
760     enddo
761     #endif
762 jahn 1.1 #ifdef DAR_DIAG_ACDOM
763     CALL TIMEAVE_RESET(aCDOMave,Nr,bi,bj,myThid)
764     #endif
765     #ifdef DAR_DIAG_IRR
766     do ii = 1,tlam
767     CALL TIMEAVE_RESET(Edave(1-OLx,1-OLy,1,1,1,ii),
768     & Nr,bi,bj,myThid)
769     CALL TIMEAVE_RESET(Esave(1-OLx,1-OLy,1,1,1,ii),
770     & Nr,bi,bj,myThid)
771     CALL TIMEAVE_RESET(Euave(1-OLx,1-OLy,1,1,1,ii),
772     & Nr,bi,bj,myThid)
773 jahn 1.5 CALL TIMEAVE_RESET(Estave(1-OLx,1-OLy,1,1,1,ii),
774     & Nr,bi,bj,myThid)
775 jahn 1.1 CALL TIMEAVE_RESET(Eutave(1-OLx,1-OLy,1,1,1,ii),
776     & Nr,bi,bj,myThid)
777     enddo
778     #endif
779 jahn 1.4 #ifdef DAR_DIAG_IRR_AMPS
780     do ii = 1,tlam
781 jahn 1.5 CALL TIMEAVE_RESET(amp1ave(1-OLx,1-OLy,1,1,1,ii),
782 jahn 1.4 & Nr,bi,bj,myThid)
783 jahn 1.5 CALL TIMEAVE_RESET(amp2ave(1-OLx,1-OLy,1,1,1,ii),
784 jahn 1.4 & Nr,bi,bj,myThid)
785     enddo
786     #endif
787 jahn 1.1 #ifdef DAR_DIAG_ABSORP
788     do ii = 1,tlam
789     CALL TIMEAVE_RESET(aave(1-OLx,1-OLy,1,1,1,ii),
790     & Nr,bi,bj,myThid)
791     enddo
792     #endif
793     #ifdef DAR_DIAG_SCATTER
794     do ii = 1,tlam
795     CALL TIMEAVE_RESET(btave(1-OLx,1-OLy,1,1,1,ii),
796     & Nr,bi,bj,myThid)
797     CALL TIMEAVE_RESET(bbave(1-OLx,1-OLy,1,1,1,ii),
798     & Nr,bi,bj,myThid)
799     enddo
800     #endif
801     #ifdef DAR_DIAG_PART_SCATTER
802     do ii = 1,tlam
803     CALL TIMEAVE_RESET(apartave(1-OLx,1-OLy,1,1,1,ii),
804     & Nr,bi,bj,myThid)
805     CALL TIMEAVE_RESET(btpartave(1-OLx,1-OLy,1,1,1,ii),
806     & Nr,bi,bj,myThid)
807     CALL TIMEAVE_RESET(bbpartave(1-OLx,1-OLy,1,1,1,ii),
808     & Nr,bi,bj,myThid)
809     enddo
810     #endif
811 jahn 1.4 #ifdef DAR_RADTRANS
812     CALL TIMEAVE_RESET(rmudave(1-OLx,1-OLy,1,1),
813     & 1,bi,bj,myThid)
814     #endif
815 stephd 1.7 #ifdef DAR_DIAG_EK
816     do np = 1,npmax
817     CALL TIMEAVE_RESET(Ekave(1-OLx,1-OLy,1,1,1,np),
818     & Nr,bi,bj,myThid)
819     CALL TIMEAVE_RESET(EkoverEave(1-OLx,1-OLy,1,1,1,np),
820     & Nr,bi,bj,myThid)
821     CALL TIMEAVE_RESET(acclimave(1-OLx,1-OLy,1,1,1,np),
822     & Nr,bi,bj,myThid)
823     do ii = 1,tlam
824     CALL TIMEAVE_RESET(Ek_nlave(1-OLx,1-OLy,1,1,1,np,ii),
825     & Nr,bi,bj,myThid)
826     CALL TIMEAVE_RESET(EkoverE_nlave(1-OLx,1-OLy,1,1,1,np,ii),
827     & Nr,bi,bj,myThid)
828     enddo
829     enddo
830     #endif
831 jahn 1.1 c ANNA_TAVE
832     #ifdef WAVES_DIAG_PCHL
833     do np=1,npmax
834     CALL TIMEAVE_RESET(Pchlave(1-OLx,1-OLy,1,1,1,np),
835     & Nr,bi,bj,myThid)
836     enddo
837     #endif
838     c ANNA and TAVE
839     #ifdef DAR_DIAG_RSTAR
840     do np=1,npmax
841     CALL TIMEAVE_RESET(Rstarave(1-OLx,1-OLy,1,1,1,np),
842     & Nr,bi,bj,myThid)
843     enddo
844     do np=1,npmax
845     CALL TIMEAVE_RESET(RNstarave(1-OLx,1-OLy,1,1,1,np),
846     & Nr,bi,bj,myThid)
847     enddo
848     #endif
849     #ifdef DAR_DIAG_DIVER
850     CALL TIMEAVE_RESET(Diver1ave,Nr,bi,bj,myThid)
851     CALL TIMEAVE_RESET(Diver2ave,Nr,bi,bj,myThid)
852     CALL TIMEAVE_RESET(Diver3ave,Nr,bi,bj,myThid)
853     CALL TIMEAVE_RESET(Diver4ave,Nr,bi,bj,myThid)
854     #endif
855     c
856     #ifdef DAR_DIAG_GROW
857     do np=1,npmax
858     CALL TIMEAVE_RESET(Growave(1-OLx,1-OLy,1,1,1,np),
859     & Nr,bi,bj,myThid)
860     enddo
861     do np=1,npmax
862     CALL TIMEAVE_RESET(Growsqave(1-OLx,1-OLy,1,1,1,np),
863     & Nr,bi,bj,myThid)
864     enddo
865     #endif
866     c
867     #ifdef ALLOW_DIAZ
868     #ifdef DAR_DIAG_NFIXP
869     do np=1,npmax
870     CALL TIMEAVE_RESET(NfixPave(1-OLx,1-OLy,1,1,1,np),
871     & Nr,bi,bj,myThid)
872     enddo
873     #endif
874     #endif
875     do k=1,Nr
876     DAR_TimeAve(bi,bj,k)=0.d0
877     enddo
878     ENDDO
879     ENDDO
880    
881     ENDIF
882    
883     #endif /* ALLOW_TIMEAVE */
884    
885     #endif /* ALLOW_DARWIN */
886    
887     RETURN
888     END

  ViewVC Help
Powered by ViewVC 1.1.22