/[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.3 - (hide annotations) (download)
Mon Jul 2 09:37:48 2012 UTC (13 years ago) by benw
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt63p_20120707
Changes since 1.2: +34 -1 lines
Allows for MNC output of nitrogen, iron, temperature and light limitation factors

1 benw 1.3 C $Header: /u/gcmpack/MITgcm_contrib/darwin2/pkg/darwin/darwin_diags.F,v 1.2 2011/05/11 18:11:56 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     #ifdef DAR_DIAG_ACDOM
100     CALL TIMEAVE_NORMALIZ(aCDOMave, DAR_timeave, nR ,
101     & bi,bj,myThid)
102     #endif
103     #ifdef DAR_DIAG_IRR
104     do ii = 1,tlam
105     CALL TIMEAVE_NORMALIZ(Edave(1-Olx,1-Oly,1,1,1,ii),
106     & DAR_timeave,nR,bi,bj,myThid)
107     CALL TIMEAVE_NORMALIZ(Esave(1-Olx,1-Oly,1,1,1,ii),
108     & DAR_timeave,nR,bi,bj,myThid)
109     CALL TIMEAVE_NORMALIZ(Euave(1-Olx,1-Oly,1,1,1,ii),
110     & DAR_timeave,nR,bi,bj,myThid)
111     CALL TIMEAVE_NORMALIZ(Eutave(1-Olx,1-Oly,1,1,1,ii),
112     & DAR_timeave,nR,bi,bj,myThid)
113     enddo
114     #endif
115     #ifdef DAR_DIAG_ABSORP
116     do ii = 1,tlam
117     CALL TIMEAVE_NORMALIZ(aave(1-Olx,1-Oly,1,1,1,ii),
118     & DAR_timeave,nR,bi,bj,myThid)
119     enddo
120     #endif
121     #ifdef DAR_DIAG_SCATTER
122     do ii = 1,tlam
123     CALL TIMEAVE_NORMALIZ(btave(1-Olx,1-Oly,1,1,1,ii),
124     & DAR_timeave,nR,bi,bj,myThid)
125     CALL TIMEAVE_NORMALIZ(bbave(1-Olx,1-Oly,1,1,1,ii),
126     & DAR_timeave,nR,bi,bj,myThid)
127     enddo
128     #endif
129     #ifdef DAR_DIAG_PART_SCATTER
130     do ii = 1,tlam
131     CALL TIMEAVE_NORMALIZ(apartave(1-Olx,1-Oly,1,1,1,ii),
132     & DAR_timeave,nR,bi,bj,myThid)
133     CALL TIMEAVE_NORMALIZ(btpartave(1-Olx,1-Oly,1,1,1,ii),
134     & DAR_timeave,nR,bi,bj,myThid)
135     CALL TIMEAVE_NORMALIZ(bbpartave(1-Olx,1-Oly,1,1,1,ii),
136     & DAR_timeave,nR,bi,bj,myThid)
137     enddo
138     #endif
139    
140     c ANNA_TAVE
141     #ifdef WAVES_DIAG_PCHL
142     do np=1,npmax
143     CALL TIMEAVE_NORMALIZ(Pchlave(1-Olx,1-Oly,1,1,1,np),
144     & DAR_timeave, nR ,
145     & bi,bj,myThid)
146     c CALL TIMEAVE_NORMALIZ(Pchlave(1-Olx,1-Oly,1,1,1,np),
147     c & DAR_timeave, nR ,
148     c & bi,bj,myThid)
149     enddo
150     #endif
151     c ANNA end TAVE
152    
153     #ifdef DAR_DIAG_RSTAR
154     do np=1,npmax
155     CALL TIMEAVE_NORMALIZ(Rstarave(1-Olx,1-Oly,1,1,1,np),
156     & DAR_timeave, nR ,
157     & bi,bj,myThid)
158     CALL TIMEAVE_NORMALIZ(RNstarave(1-Olx,1-Oly,1,1,1,np),
159     & DAR_timeave, nR ,
160     & bi,bj,myThid)
161     enddo
162     #endif
163     #ifdef DAR_DIAG_DIVER
164     CALL TIMEAVE_NORMALIZ(Diver1ave(1-Olx,1-Oly,1,1,1),
165     & DAR_timeave, nR ,
166     & bi,bj,myThid)
167     CALL TIMEAVE_NORMALIZ(Diver2ave(1-Olx,1-Oly,1,1,1),
168     & DAR_timeave, nR ,
169     & bi,bj,myThid)
170     CALL TIMEAVE_NORMALIZ(Diver3ave(1-Olx,1-Oly,1,1,1),
171     & DAR_timeave, nR ,
172     & bi,bj,myThid)
173     CALL TIMEAVE_NORMALIZ(Diver4ave(1-Olx,1-Oly,1,1,1),
174     & DAR_timeave, nR ,
175     & bi,bj,myThid)
176     #endif
177     c
178     #ifdef DAR_DIAG_GROW
179     do np=1,npmax
180     CALL TIMEAVE_NORMALIZ(Growave(1-Olx,1-Oly,1,1,1,np),
181     & DAR_timeave, nR ,
182     & bi,bj,myThid)
183     CALL TIMEAVE_NORMALIZ(Growsqave(1-Olx,1-Oly,1,1,1,np),
184     & DAR_timeave, nR ,
185     & bi,bj,myThid)
186     enddo
187     #endif
188     #ifdef ALLOW_DIAZ
189     c
190     #ifdef DAR_DIAG_NFIXP
191     do np=1,npmax
192     CALL TIMEAVE_NORMALIZ(NfixPave(1-Olx,1-Oly,1,1,1,np),
193     & DAR_timeave, nR ,
194     & bi,bj,myThid)
195     enddo
196     #endif
197     #endif
198     ENDDO
199     ENDDO
200    
201     #ifdef CALC_RATE_TOTALS
202     call tracer_sumvol(
203     & PPave, nR, PPtot, myThid )
204     PPtot=PPtot*120. _d 0 * 12. _d 0* 1. _d -3* 31536000. _d 0
205     & *1. _d-15
206     call tracer_sumvol(
207     & Nfixave, nR, Nfixtot, myThid )
208     Nfixtot=Nfixtot*14. _d 0 *1. _d -3* 31536000. _d 0
209     & *1 _d -12
210     call tracer_sumvol(
211     & Denitave, nR, Denittot, myThid )
212     Denittot=Denittot*14. _d 0 *1. _d -3* 31536000. _d 0
213     & *1 _d -12
214 stephd 1.2 write(dar_ratetot_unit,*) myIter, PPtot, Nfixtot, Denittot
215 jahn 1.1 #endif
216    
217    
218     IF ( PTRACERS_timeave_mdsio ) THEN
219     WRITE(suff,'(I10.10)') myIter
220     CALL WRITE_FLD_XYZ_RL('DAR_PARtave.',suff,PARave,
221     & myIter,myThid)
222     CALL WRITE_FLD_XYZ_RL('DAR_PPtave.',suff,PPave,
223     & myIter,myThid)
224     #ifndef ALLOW_QUOTA
225     CALL WRITE_FLD_XYZ_RL('DAR_Chltave.',suff,Chlave,
226     & myIter,myThid)
227     #endif
228     CALL WRITE_FLD_XYZ_RL('DAR_Nfixtave.',suff,Nfixave,
229     & myIter,myThid)
230     CALL WRITE_FLD_XYZ_RL('DAR_Denittave.',suff,Denitave,
231     & myIter,myThid)
232     #ifdef DAR_DIAG_ACDOM
233     CALL WRITE_FLD_XYZ_RL('DAR_aCDOMtave',suff,aCDOMave,
234     & myIter,myThid)
235     #endif
236     #ifdef DAR_DIAG_IRR
237     do ii = 1,tlam
238     WRITE(suff,'(A5,I2.2,A1,I10.10)') 'Edave',
239     & ii,'.',myIter
240     CALL WRITE_FLD_XYZ_RL(suff,' ',
241     & Edave(1-Olx,1-Oly,1,1,1,ii),
242     & myIter,myThid)
243     WRITE(suff,'(A5,I2.2,A1,I10.10)') 'Esave',
244     & ii,'.',myIter
245     CALL WRITE_FLD_XYZ_RL(suff,' ',
246     & Esave(1-Olx,1-Oly,1,1,1,ii),
247     & myIter,myThid)
248     WRITE(suff,'(A5,I2.2,A1,I10.10)') 'Euave',
249     & ii,'.',myIter
250     CALL WRITE_FLD_XYZ_RL(suff,' ',
251     & Euave(1-Olx,1-Oly,1,1,1,ii),
252     & myIter,myThid)
253     WRITE(suff,'(A8,I2.2,A1,I10.10)') 'Eutopave',
254     & ii,'.',myIter
255     CALL WRITE_FLD_XYZ_RL(suff,' ',
256     & Eutave(1-Olx,1-Oly,1,1,1,ii),
257     & myIter,myThid)
258     enddo
259     #endif
260     #ifdef DAR_DIAG_ABSORP
261     do ii = 1,tlam
262     WRITE(suff,'(A4,I2.2,A1,I10.10)') 'aave',
263     & ii,'.',myIter
264     CALL WRITE_FLD_XYZ_RL(suff,' ',
265     & aave(1-Olx,1-Oly,1,1,1,ii),
266     & myIter,myThid)
267     enddo
268     #endif
269     #ifdef DAR_DIAG_SCATTER
270     do ii = 1,tlam
271     WRITE(suff,'(A5,I2.2,A1,I10.10)') 'btave',
272     & ii,'.',myIter
273     CALL WRITE_FLD_XYZ_RL(suff,' ',
274     & btave(1-Olx,1-Oly,1,1,1,ii),
275     & myIter,myThid)
276     WRITE(suff,'(A5,I2.2,A1,I10.10)') 'bbave',
277     & ii,'.',myIter
278     CALL WRITE_FLD_XYZ_RL(suff,' ',
279     & bbave(1-Olx,1-Oly,1,1,1,ii),
280     & myIter,myThid)
281     enddo
282     #endif
283     #ifdef DAR_DIAG_PART_SCATTER
284     do ii = 1,tlam
285     WRITE(suff,'(A8,I2.2,A1,I10.10)') 'apartave',
286     & ii,'.',myIter
287     CALL WRITE_FLD_XYZ_RL(suff,' ',
288     & apartave(1-Olx,1-Oly,1,1,1,ii),
289     & myIter,myThid)
290     WRITE(suff,'(A9,I2.2,A1,I10.10)') 'btpartave',
291     & ii,'.',myIter
292     CALL WRITE_FLD_XYZ_RL(suff,' ',
293     & btpartave(1-Olx,1-Oly,1,1,1,ii),
294     & myIter,myThid)
295     WRITE(suff,'(A9,I2.2,A1,I10.10)') 'bbpartave',
296     & ii,'.',myIter
297     CALL WRITE_FLD_XYZ_RL(suff,' ',
298     & bbpartave(1-Olx,1-Oly,1,1,1,ii),
299     & myIter,myThid)
300     enddo
301     #endif
302    
303     c ANNA_TAVE
304     #ifdef WAVES_DIAG_PCHL
305     do np=1,npmax
306     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'Pchlave',
307     & np,'.',myIter
308     CALL WRITE_FLD_XYZ_RL(suff,' ',
309     & Pchlave(1-Olx,1-Oly,1,1,1,np),
310     & myIter,myThid)
311     enddo
312     #endif
313     c ANNA end TAVE
314     #ifdef DAR_DIAG_RSTAR
315     do np=1,npmax
316     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'Rstarave',
317     & np,'.',myIter
318     CALL WRITE_FLD_XYZ_RL(suff,' ',
319     & Rstarave(1-Olx,1-Oly,1,1,1,np),
320     & myIter,myThid)
321     enddo
322     do np=1,npmax
323     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'RNstarave',
324     & np,'.',myIter
325     CALL WRITE_FLD_XYZ_RL(suff,' ',
326     & RNstarave(1-Olx,1-Oly,1,1,1,np),
327     & myIter,myThid)
328     enddo
329     #endif
330     #ifdef DAR_DIAG_DIVER
331     WRITE(suff,'(I10.10)') myIter
332     CALL WRITE_FLD_XYZ_RL('DAR_Diver1tave.',suff,Diver1ave,
333     & myIter,myThid)
334     CALL WRITE_FLD_XYZ_RL('DAR_Diver2tave.',suff,Diver2ave,
335     & myIter,myThid)
336     CALL WRITE_FLD_XYZ_RL('DAR_Diver3tave.',suff,Diver3ave,
337     & myIter,myThid)
338     CALL WRITE_FLD_XYZ_RL('DAR_Diver4tave.',suff,Diver4ave,
339     & myIter,myThid)
340     #endif
341     c
342     #ifdef DAR_DIAG_GROW
343     do np=1,npmax
344     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'Growave',
345     & np,'.',myIter
346     CALL WRITE_FLD_XYZ_RL(suff,' ',
347     & Growave(1-Olx,1-Oly,1,1,1,np),
348     & myIter,myThid)
349     enddo
350     do np=1,npmax
351     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'Growsqave',
352     & np,'.',myIter
353     CALL WRITE_FLD_XYZ_RL(suff,' ',
354     & Growsqave(1-Olx,1-Oly,1,1,1,np),
355     & myIter,myThid)
356     enddo
357     #endif
358     c
359     #ifdef ALLOW_DIAZ
360     #ifdef DAR_DIAG_NFIXP
361     do np=1,npmax
362     WRITE(suff,'(A7,I2.2,A1,I10.10)') 'NfixPave',
363     & np,'.',myIter
364     CALL WRITE_FLD_XYZ_RL(suff,' ',
365     & NfixPave(1-Olx,1-Oly,1,1,1,np),
366     & myIter,myThid)
367     enddo
368     #endif
369     #endif
370     ENDIF
371    
372     #ifdef ALLOW_MNC
373     IF ( PTRACERS_timeave_mnc ) THEN
374     CALL MNC_CW_SET_UDIM('dar_tave', -1, myThid)
375     CALL MNC_CW_RL_W_S('D','dar_tave',0,0,'T',myTime,myThid)
376     CALL MNC_CW_SET_UDIM('dar_tave', 0, myThid)
377     CALL MNC_CW_I_W_S('I','dar_tave',0,0,'iter',myIter,myThid)
378     CALL MNC_CW_RL_W(
379     & pf,'dar_tave',0,0,'dar_PAR_ave',PARave,myThid)
380     CALL MNC_CW_RL_W(
381     & pf,'dar_tave',0,0,'dar_PP_ave',PPave,myThid)
382 benw 1.3 #ifdef QUOTA_DIAG_LIMIT
383     do np=1,npmax
384     WRITE(name,'(a,i3.3)') 'dar_Nlim_',np
385     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
386     & Nlimave(1-OLx,1-OLy,1,1,1,np),myThid)
387     WRITE(name,'(a,i3.3)') 'dar_Flim_',np
388     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
389     & Flimave(1-OLx,1-OLy,1,1,1,np),myThid)
390     WRITE(name,'(a,i3.3)') 'dar_Ilim_',np
391     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
392     & Ilimave(1-OLx,1-OLy,1,1,1,np),myThid)
393     enddo
394     CALL MNC_CW_RL_W(
395     & pf,'dar_tave',0,0,'dar_Tlim_ave',Tlimave,myThid)
396     #endif
397 jahn 1.1 #ifndef ALLOW_QUOTA
398     CALL MNC_CW_RL_W(
399     & pf,'dar_tave',0,0,'dar_Chl_ave',Chlave,myThid)
400     #endif
401     CALL MNC_CW_RL_W(
402     & pf,'dar_tave',0,0,'dar_Nfix_ave',Nfixave,myThid)
403     CALL MNC_CW_RL_W(
404     & pf,'dar_tave',0,0,'dar_Denit_ave',Denitave,myThid)
405     #ifdef DAR_DIAG_ACDOM
406     CALL MNC_CW_RL_W(
407     & pf,'dar_tave',0,0,'dar_aCDOM_ave',aCDOMave,myThid)
408     #endif
409     #ifdef DAR_DIAG_IRR
410     do ii = 1,tlam
411     DO jj = 1,MAX_LEN_FNAM
412     name(jj:jj) = ' '
413     ENDDO
414     WRITE(name,'(a,i2.2)') 'dar_Ed',ii
415     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
416     & Edave(1-OLx,1-OLy,1,1,1,ii),myThid)
417     WRITE(name,'(a,i2.2)') 'dar_Es',ii
418     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
419     & Esave(1-OLx,1-OLy,1,1,1,ii),myThid)
420     WRITE(name,'(a,i2.2)') 'dar_Eu',ii
421     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
422     & Euave(1-OLx,1-OLy,1,1,1,ii),myThid)
423     WRITE(name,'(a,i2.2)') 'dar_Eutop',ii
424     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
425     & Eutave(1-OLx,1-OLy,1,1,1,ii),myThid)
426     enddo
427     #endif
428     #ifdef DAR_DIAG_ABSORP
429     do ii = 1,tlam
430     DO jj = 1,MAX_LEN_FNAM
431     name(jj:jj) = ' '
432     ENDDO
433     WRITE(name,'(a,i2.2)') 'dar_a',ii
434     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
435     & aave(1-OLx,1-OLy,1,1,1,ii),myThid)
436     enddo
437     #endif
438     #ifdef DAR_DIAG_SCATTER
439     do ii = 1,tlam
440     DO jj = 1,MAX_LEN_FNAM
441     name(jj:jj) = ' '
442     ENDDO
443     WRITE(name,'(a,i2.2)') 'dar_bt',ii
444     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
445     & btave(1-OLx,1-OLy,1,1,1,ii),myThid)
446     WRITE(name,'(a,i2.2)') 'dar_bb',ii
447     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
448     & bbave(1-OLx,1-OLy,1,1,1,ii),myThid)
449     enddo
450     #endif
451     #ifdef DAR_DIAG_PART_SCATTER
452     do ii = 1,tlam
453     DO jj = 1,MAX_LEN_FNAM
454     name(jj:jj) = ' '
455     ENDDO
456     WRITE(name,'(a,i2.2)') 'dar_apart',ii
457     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
458     & apartave(1-OLx,1-OLy,1,1,1,ii),myThid)
459     WRITE(name,'(a,i2.2)') 'dar_btpart',ii
460     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
461     & btpartave(1-OLx,1-OLy,1,1,1,ii),myThid)
462     WRITE(name,'(a,i2.2)') 'dar_bbpart',ii
463     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
464     & bbpartave(1-OLx,1-OLy,1,1,1,ii),myThid)
465     enddo
466     #endif
467     c ANNA_TAVE
468     #ifdef WAVES_DIAG_PCHL
469     do np=1,npmax
470     ii=iPhy+np-1
471     DO jj = 1,MAX_LEN_FNAM
472     name(jj:jj) = ' '
473     ENDDO
474     ilnb = ILNBLNK(PTRACERS_names(ii))
475     WRITE(name,'(a,a)') 'dar_Pchl_',PTRACERS_names(ii)(1:ilnb)
476     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
477     & Pchlave(1-OLx,1-OLy,1,1,1,np),myThid)
478     enddo
479     #endif
480     c ANNA end TAVE
481     #ifdef DAR_DIAG_RSTAR
482     do np=1,npmax
483     ii=iPhy+np-1
484     DO jj = 1,MAX_LEN_FNAM
485     name(jj:jj) = ' '
486     ENDDO
487     ilnb = ILNBLNK(PTRACERS_names(ii))
488     WRITE(name,'(a,a)') 'dar_Rstar_',PTRACERS_names(ii)(1:ilnb)
489     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
490     & Rstarave(1-OLx,1-OLy,1,1,1,np),myThid)
491     enddo
492     do np=1,npmax
493     ii=iPhy+np-1
494     DO jj = 1,MAX_LEN_FNAM
495     name(jj:jj) = ' '
496     ENDDO
497     ilnb = ILNBLNK(PTRACERS_names(ii))
498     WRITE(name,'(a,a)') 'dar_RNstar_',PTRACERS_names(ii)(1:ilnb)
499     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
500     & RNstarave(1-OLx,1-OLy,1,1,1,np),myThid)
501     enddo
502     #endif
503     #ifdef DAR_DIAG_DIVER
504     CALL MNC_CW_RL_W(
505     & pf,'dar_tave',0,0,'dar_Diver1_ave',Diver1ave,myThid)
506     CALL MNC_CW_RL_W(
507     & pf,'dar_tave',0,0,'dar_Diver2_ave',Diver2ave,myThid)
508     CALL MNC_CW_RL_W(
509     & pf,'dar_tave',0,0,'dar_Diver3_ave',Diver3ave,myThid)
510     CALL MNC_CW_RL_W(
511     & pf,'dar_tave',0,0,'dar_Diver4_ave',Diver4ave,myThid)
512     #endif
513     c
514     #ifdef DAR_DIAG_GROW
515     do np=1,npmax
516     ii=iPhy+np-1
517     DO jj = 1,MAX_LEN_FNAM
518     name(jj:jj) = ' '
519     ENDDO
520     ilnb = ILNBLNK(PTRACERS_names(ii))
521     WRITE(name,'(a,a)') 'dar_Grow_',PTRACERS_names(ii)(1:ilnb)
522     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
523     & Growave(1-OLx,1-OLy,1,1,1,np),myThid)
524     enddo
525     do np=1,npmax
526     ii=iPhy+np-1
527     DO jj = 1,MAX_LEN_FNAM
528     name(jj:jj) = ' '
529     ENDDO
530     ilnb = ILNBLNK(PTRACERS_names(ii))
531     WRITE(name,'(a,a)') 'dar_Growsq_',PTRACERS_names(ii)(1:ilnb)
532     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
533     & Growsqave(1-OLx,1-OLy,1,1,1,np),myThid)
534     enddo
535     #endif
536     c
537     #ifdef ALLOW_DIAZ
538     #ifdef DAR_DIAG_NFIXP
539     do np=1,npmax
540     ii=iPhy+np-1
541     DO jj = 1,MAX_LEN_FNAM
542     name(jj:jj) = ' '
543     ENDDO
544     ilnb = ILNBLNK(PTRACERS_names(ii))
545     WRITE(name,'(a,a)') 'dar_NfixP_',PTRACERS_names(ii)(1:ilnb)
546     CALL MNC_CW_RL_W(pf,'dar_tave',0,0,name,
547     & NfixPave(1-OLx,1-OLy,1,1,1,np),myThid)
548     enddo
549     #endif
550     #endif
551     ENDIF
552     #endif
553    
554     C Reset averages to zero
555     DO bj = myByLo(myThid), myByHi(myThid)
556     DO bi = myBxLo(myThid), myBxHi(myThid)
557     CALL TIMEAVE_RESET(PARave,Nr,bi,bj,myThid)
558     CALL TIMEAVE_RESET(PPave,Nr,bi,bj,myThid)
559 benw 1.3 #ifdef QUOTA_DIAG_LIMIT
560     CALL TIMEAVE_RESET(Nlimave,Nr,bi,bj,myThid)
561     CALL TIMEAVE_RESET(Flimave,Nr,bi,bj,myThid)
562     CALL TIMEAVE_RESET(Ilimave,Nr,bi,bj,myThid)
563     CALL TIMEAVE_RESET(Tlimave,Nr,bi,bj,myThid)
564     #endif
565 jahn 1.1 #ifndef ALLOW_QUOTA
566     CALL TIMEAVE_RESET(Chlave,Nr,bi,bj,myThid)
567     #endif
568     CALL TIMEAVE_RESET(Nfixave,Nr,bi,bj,myThid)
569     CALL TIMEAVE_RESET(Denitave,Nr,bi,bj,myThid)
570     #ifdef DAR_DIAG_ACDOM
571     CALL TIMEAVE_RESET(aCDOMave,Nr,bi,bj,myThid)
572     #endif
573     #ifdef DAR_DIAG_IRR
574     do ii = 1,tlam
575     CALL TIMEAVE_RESET(Edave(1-OLx,1-OLy,1,1,1,ii),
576     & Nr,bi,bj,myThid)
577     CALL TIMEAVE_RESET(Esave(1-OLx,1-OLy,1,1,1,ii),
578     & Nr,bi,bj,myThid)
579     CALL TIMEAVE_RESET(Euave(1-OLx,1-OLy,1,1,1,ii),
580     & Nr,bi,bj,myThid)
581     CALL TIMEAVE_RESET(Eutave(1-OLx,1-OLy,1,1,1,ii),
582     & Nr,bi,bj,myThid)
583     enddo
584     #endif
585     #ifdef DAR_DIAG_ABSORP
586     do ii = 1,tlam
587     CALL TIMEAVE_RESET(aave(1-OLx,1-OLy,1,1,1,ii),
588     & Nr,bi,bj,myThid)
589     enddo
590     #endif
591     #ifdef DAR_DIAG_SCATTER
592     do ii = 1,tlam
593     CALL TIMEAVE_RESET(btave(1-OLx,1-OLy,1,1,1,ii),
594     & Nr,bi,bj,myThid)
595     CALL TIMEAVE_RESET(bbave(1-OLx,1-OLy,1,1,1,ii),
596     & Nr,bi,bj,myThid)
597     enddo
598     #endif
599     #ifdef DAR_DIAG_PART_SCATTER
600     do ii = 1,tlam
601     CALL TIMEAVE_RESET(apartave(1-OLx,1-OLy,1,1,1,ii),
602     & Nr,bi,bj,myThid)
603     CALL TIMEAVE_RESET(btpartave(1-OLx,1-OLy,1,1,1,ii),
604     & Nr,bi,bj,myThid)
605     CALL TIMEAVE_RESET(bbpartave(1-OLx,1-OLy,1,1,1,ii),
606     & Nr,bi,bj,myThid)
607     enddo
608     #endif
609     c ANNA_TAVE
610     #ifdef WAVES_DIAG_PCHL
611     do np=1,npmax
612     CALL TIMEAVE_RESET(Pchlave(1-OLx,1-OLy,1,1,1,np),
613     & Nr,bi,bj,myThid)
614     enddo
615     #endif
616     c ANNA and TAVE
617     #ifdef DAR_DIAG_RSTAR
618     do np=1,npmax
619     CALL TIMEAVE_RESET(Rstarave(1-OLx,1-OLy,1,1,1,np),
620     & Nr,bi,bj,myThid)
621     enddo
622     do np=1,npmax
623     CALL TIMEAVE_RESET(RNstarave(1-OLx,1-OLy,1,1,1,np),
624     & Nr,bi,bj,myThid)
625     enddo
626     #endif
627     #ifdef DAR_DIAG_DIVER
628     CALL TIMEAVE_RESET(Diver1ave,Nr,bi,bj,myThid)
629     CALL TIMEAVE_RESET(Diver2ave,Nr,bi,bj,myThid)
630     CALL TIMEAVE_RESET(Diver3ave,Nr,bi,bj,myThid)
631     CALL TIMEAVE_RESET(Diver4ave,Nr,bi,bj,myThid)
632     #endif
633     c
634     #ifdef DAR_DIAG_GROW
635     do np=1,npmax
636     CALL TIMEAVE_RESET(Growave(1-OLx,1-OLy,1,1,1,np),
637     & Nr,bi,bj,myThid)
638     enddo
639     do np=1,npmax
640     CALL TIMEAVE_RESET(Growsqave(1-OLx,1-OLy,1,1,1,np),
641     & Nr,bi,bj,myThid)
642     enddo
643     #endif
644     c
645     #ifdef ALLOW_DIAZ
646     #ifdef DAR_DIAG_NFIXP
647     do np=1,npmax
648     CALL TIMEAVE_RESET(NfixPave(1-OLx,1-OLy,1,1,1,np),
649     & Nr,bi,bj,myThid)
650     enddo
651     #endif
652     #endif
653     do k=1,Nr
654     DAR_TimeAve(bi,bj,k)=0.d0
655     enddo
656     ENDDO
657     ENDDO
658    
659     ENDIF
660    
661     #endif /* ALLOW_TIMEAVE */
662    
663     #endif /* ALLOW_DARWIN */
664    
665     RETURN
666     END

  ViewVC Help
Powered by ViewVC 1.1.22