/[MITgcm]/MITgcm/pkg/dic/dic_biotic_diags.F
ViewVC logotype

Contents of /MITgcm/pkg/dic/dic_biotic_diags.F

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


Revision 1.9 - (show annotations) (download)
Fri Sep 16 20:16:31 2005 UTC (18 years, 9 months ago) by stephd
Branch: MAIN
CVS Tags: checkpoint57s_post
Changes since 1.8: +7 -7 lines
o fix bug in pflux and cflux diagnostics

1 C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_biotic_diags.F,v 1.8 2005/08/18 18:24:29 stephd Exp $
2 C $Name: $
3
4 #include "DIC_OPTIONS.h"
5 #include "GCHEM_OPTIONS.h"
6
7 CStartOfInterface
8 SUBROUTINE DIC_BIOTIC_DIAGS( myTime, myIter, myThid )
9 C /==========================================================\
10 C | SUBROUTINE DIC_BIOTIC_DIAGS |
11 C | o Do DIC diagnostic output |
12 C |==========================================================|
13 C \==========================================================/
14 IMPLICIT NONE
15
16 C === Global variables ===
17 #include "SIZE.h"
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20 #include "DIC_BIOTIC.h"
21 #include "PTRACERS_SIZE.h"
22 #include "PTRACERS.h"
23
24 C == Routine arguments ==
25 C myTime - Current time of simulation ( s )
26 C myIter - Iteration number
27 C myThid - Number of this instance of INI_FORCING
28 _RL myTime
29 INTEGER myIter
30 INTEGER myThid
31 CEndOfInterface
32
33
34 C == Local variables ==
35 LOGICAL DIFFERENT_MULTIPLE
36 EXTERNAL DIFFERENT_MULTIPLE
37 INTEGER bi, bj, k
38 CHARACTER*(MAX_LEN_MBUF) suff
39
40 #ifdef DIC_BIOTIC
41
42
43 #ifdef ALLOW_TIMEAVE
44
45 C Dump files and restart average computation if needed
46 IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock) ) THEN
47
48 C Normalize by integrated time
49 DO bj = myByLo(myThid), myByHi(myThid)
50 DO bi = myBxLo(myThid), myBxHi(myThid)
51 CALL TIMEAVE_NORMALIZ(BIOave, DIC_timeave, nR ,
52 & bi,bj,myThid)
53 CALL TIMEAVE_NORMALIZ(CARave, DIC_timeave, nR ,
54 & bi,bj,myThid)
55 CALL TIMEAVE_NORMALIZ(SURave,dic_timeave, 1 ,
56 & bi,bj,myThid)
57 CALL TIMEAVE_NORMALIZ(SUROave,dic_timeave, 1 ,
58 & bi,bj,myThid)
59 CALL TIMEAVE_NORMALIZ(pCO2ave,dic_timeave, 1 ,
60 & bi,bj,myThid)
61 CALL TIMEAVE_NORMALIZ(pHave,dic_timeave, 1 ,
62 & bi,bj,myThid)
63 CALL TIMEAVE_NORMALIZ(fluxCO2ave,dic_timeave, 1 ,
64 & bi,bj,myThid)
65 CALL TIMEAVE_NORMALIZ(OmegaCave, DIC_timeave, nR ,
66 & bi,bj,myThid)
67 CALL TIMEAVE_NORMALIZ(pfluxave,dic_timeave, nR ,
68 & bi,bj,myThid)
69 CALL TIMEAVE_NORMALIZ(cfluxave,dic_timeave, nR ,
70 & bi,bj,myThid)
71 ENDDO
72 ENDDO
73
74 IF ( PTRACERS_timeave_mdsio ) THEN
75 WRITE(suff,'(I10.10)') myIter
76 CALL WRITE_FLD_XYZ_RL('DIC_Biotave.',suff,BIOave,
77 & myIter,myThid)
78 CALL WRITE_FLD_XYZ_RL('DIC_Cartave.',suff,CARave,
79 & myIter,myThid)
80 CALL WRITE_FLD_XY_RL('DIC_Surtave.',suff,SURave,
81 & myIter,myThid)
82 CALL WRITE_FLD_XY_RL('DIC_SurOtave.',suff,SUROave,
83 & myIter,myThid)
84 CALL WRITE_FLD_XY_RL('DIC_pHtave.',suff,pHave,
85 & myIter,myThid)
86 CALL WRITE_FLD_XY_RL('DIC_pCO2tave.',suff,pCO2ave,
87 & myIter,myThid)
88 CALL WRITE_FLD_XY_RL('DIC_fluxCO2ave.',suff,fluxCO2ave,
89 & myIter,myThid)
90 CALL WRITE_FLD_XYZ_RL('DIC_OmegaCtave.',suff,OmegaCave,
91 & myIter,myThid)
92 CALL WRITE_FLD_XYZ_RL('DIC_pfluxtave.',suff,pfluxave,
93 & myIter,myThid)
94 CALL WRITE_FLD_XYZ_RL('DIC_cfluxtave.',suff,cfluxave,
95 & myIter,myThid)
96 ENDIF
97
98 #ifdef ALLOW_MNC
99 IF ( PTRACERS_timeave_mnc ) THEN
100 CALL MNC_CW_SET_UDIM('dic_tave', -1, myThid)
101 CALL MNC_CW_RL_W_S('D','dic_tave',0,0,'T',myTime,myThid)
102 CALL MNC_CW_SET_UDIM('dic_tave', 0, myThid)
103 CALL MNC_CW_I_W_S('I','dic_tave',0,0,'iter',myIter,myThid)
104 CALL MNC_CW_RL_W(
105 & 'D','dic_tave',0,0,'dic_BIO_ave',BIOave,myThid)
106 CALL MNC_CW_RL_W(
107 & 'D','dic_tave',0,0,'dic_CAR_ave',CARave,myThid)
108 CALL MNC_CW_RL_W(
109 & 'D','dic_tave',0,0,'dic_SUR_ave',SURave,myThid)
110 CALL MNC_CW_RL_W(
111 & 'D','dic_tave',0,0,'dic_SURO_ave',SUROave,myThid)
112 CALL MNC_CW_RL_W(
113 & 'D','dic_tave',0,0,'dic_pH_ave',pHave,myThid)
114 CALL MNC_CW_RL_W(
115 & 'D','dic_tave',0,0,'dic_pCO2_ave',pCO2ave,myThid)
116 CALL MNC_CW_RL_W(
117 & 'D','dic_tave',0,0,'dic_fluxCO2_ave',fluxCO2ave,myThid)
118 CALL MNC_CW_RL_W(
119 & 'D','dic_tave',0,0,'dic_OmegaC_ave',OmegaCave,myThid)
120 CALL MNC_CW_RL_W(
121 & 'D','dic_tave',0,0,'dic_pflux_ave',pfluxave,myThid)
122 CALL MNC_CW_RL_W(
123 & 'D','dic_tave',0,0,'dic_cflux_ave',cfluxave,myThid)
124 ENDIF
125 #endif
126
127 C Reset averages to zero
128 DO bj = myByLo(myThid), myByHi(myThid)
129 DO bi = myBxLo(myThid), myBxHi(myThid)
130 CALL TIMEAVE_RESET(BIOave,Nr,bi,bj,myThid)
131 CALL TIMEAVE_RESET(CARave,Nr,bi,bj,myThid)
132 CALL TIMEAVE_RESET(SURave,1,bi,bj,myThid)
133 CALL TIMEAVE_RESET(SUROave,1,bi,bj,myThid)
134 CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid)
135 CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid)
136 CALL TIMEAVE_RESET(fluxCO2ave,1,bi,bj,myThid)
137 CALL TIMEAVE_RESET(OmegaCave,Nr,bi,bj,myThid)
138 CALL TIMEAVE_RESET(pfluxave,Nr,bi,bj,myThid)
139 CALL TIMEAVE_RESET(cfluxave,Nr,bi,bj,myThid)
140 do k=1,Nr
141 DIC_TimeAve(bi,bj,k)=0.d0
142 enddo
143 ENDDO
144 ENDDO
145
146 ENDIF
147
148 #endif /* ALLOW_TIMEAVE */
149
150 #endif /* DIC_BIOTIC */
151
152 RETURN
153 END

  ViewVC Help
Powered by ViewVC 1.1.22