/[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.11 - (show annotations) (download)
Tue Dec 12 22:37:28 2006 UTC (17 years, 6 months ago) by stephd
Branch: MAIN
CVS Tags: checkpoint58u_post, checkpoint58w_post, checkpoint58x_post, checkpoint58t_post, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59i, checkpoint59h, checkpoint59, checkpoint58y_post, checkpoint58v_post, checkpoint58s_post
Changes since 1.10: +8 -1 lines
o add new diagnostic (phosphorus export production)

1 C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_biotic_diags.F,v 1.10 2005/09/29 12:19:51 edhill 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 CHARACTER*(1) pf
40
41 #ifdef DIC_BIOTIC
42
43 IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
44 pf(1:1) = 'D'
45 ELSE
46 pf(1:1) = 'R'
47 ENDIF
48
49 #ifdef ALLOW_TIMEAVE
50
51 C Dump files and restart average computation if needed
52 IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock) ) THEN
53
54 C Normalize by integrated time
55 DO bj = myByLo(myThid), myByHi(myThid)
56 DO bi = myBxLo(myThid), myBxHi(myThid)
57 CALL TIMEAVE_NORMALIZ(BIOave, DIC_timeave, nR ,
58 & bi,bj,myThid)
59 CALL TIMEAVE_NORMALIZ(CARave, DIC_timeave, nR ,
60 & bi,bj,myThid)
61 CALL TIMEAVE_NORMALIZ(SURave,dic_timeave, 1 ,
62 & bi,bj,myThid)
63 CALL TIMEAVE_NORMALIZ(SUROave,dic_timeave, 1 ,
64 & bi,bj,myThid)
65 CALL TIMEAVE_NORMALIZ(pCO2ave,dic_timeave, 1 ,
66 & bi,bj,myThid)
67 CALL TIMEAVE_NORMALIZ(pHave,dic_timeave, 1 ,
68 & bi,bj,myThid)
69 CALL TIMEAVE_NORMALIZ(fluxCO2ave,dic_timeave, 1 ,
70 & bi,bj,myThid)
71 CALL TIMEAVE_NORMALIZ(OmegaCave, DIC_timeave, nR ,
72 & bi,bj,myThid)
73 CALL TIMEAVE_NORMALIZ(pfluxave,dic_timeave, nR ,
74 & bi,bj,myThid)
75 CALL TIMEAVE_NORMALIZ(epfluxave,dic_timeave, nR ,
76 & bi,bj,myThid)
77 CALL TIMEAVE_NORMALIZ(cfluxave,dic_timeave, nR ,
78 & bi,bj,myThid)
79 ENDDO
80 ENDDO
81
82 IF ( PTRACERS_timeave_mdsio ) THEN
83 WRITE(suff,'(I10.10)') myIter
84 CALL WRITE_FLD_XYZ_RL('DIC_Biotave.',suff,BIOave,
85 & myIter,myThid)
86 CALL WRITE_FLD_XYZ_RL('DIC_Cartave.',suff,CARave,
87 & myIter,myThid)
88 CALL WRITE_FLD_XY_RL('DIC_Surtave.',suff,SURave,
89 & myIter,myThid)
90 CALL WRITE_FLD_XY_RL('DIC_SurOtave.',suff,SUROave,
91 & myIter,myThid)
92 CALL WRITE_FLD_XY_RL('DIC_pHtave.',suff,pHave,
93 & myIter,myThid)
94 CALL WRITE_FLD_XY_RL('DIC_pCO2tave.',suff,pCO2ave,
95 & myIter,myThid)
96 CALL WRITE_FLD_XY_RL('DIC_fluxCO2ave.',suff,fluxCO2ave,
97 & myIter,myThid)
98 CALL WRITE_FLD_XYZ_RL('DIC_OmegaCtave.',suff,OmegaCave,
99 & myIter,myThid)
100 CALL WRITE_FLD_XYZ_RL('DIC_pfluxtave.',suff,pfluxave,
101 & myIter,myThid)
102 CALL WRITE_FLD_XYZ_RL('DIC_epfluxtave.',suff,epfluxave,
103 & myIter,myThid)
104 CALL WRITE_FLD_XYZ_RL('DIC_cfluxtave.',suff,cfluxave,
105 & myIter,myThid)
106 ENDIF
107
108 #ifdef ALLOW_MNC
109 IF ( PTRACERS_timeave_mnc ) THEN
110 CALL MNC_CW_SET_UDIM('dic_tave', -1, myThid)
111 CALL MNC_CW_RL_W_S('D','dic_tave',0,0,'T',myTime,myThid)
112 CALL MNC_CW_SET_UDIM('dic_tave', 0, myThid)
113 CALL MNC_CW_I_W_S('I','dic_tave',0,0,'iter',myIter,myThid)
114 CALL MNC_CW_RL_W(
115 & pf,'dic_tave',0,0,'dic_BIO_ave',BIOave,myThid)
116 CALL MNC_CW_RL_W(
117 & pf,'dic_tave',0,0,'dic_CAR_ave',CARave,myThid)
118 CALL MNC_CW_RL_W(
119 & pf,'dic_tave',0,0,'dic_SUR_ave',SURave,myThid)
120 CALL MNC_CW_RL_W(
121 & pf,'dic_tave',0,0,'dic_SURO_ave',SUROave,myThid)
122 CALL MNC_CW_RL_W(
123 & pf,'dic_tave',0,0,'dic_pH_ave',pHave,myThid)
124 CALL MNC_CW_RL_W(
125 & pf,'dic_tave',0,0,'dic_pCO2_ave',pCO2ave,myThid)
126 CALL MNC_CW_RL_W(
127 & pf,'dic_tave',0,0,'dic_fluxCO2_ave',fluxCO2ave,myThid)
128 CALL MNC_CW_RL_W(
129 & pf,'dic_tave',0,0,'dic_OmegaC_ave',OmegaCave,myThid)
130 CALL MNC_CW_RL_W(
131 & pf,'dic_tave',0,0,'dic_pflux_ave',pfluxave,myThid)
132 CALL MNC_CW_RL_W(
133 & pf,'dic_tave',0,0,'dic_epflux_ave',epfluxave,myThid)
134 CALL MNC_CW_RL_W(
135 & pf,'dic_tave',0,0,'dic_cflux_ave',cfluxave,myThid)
136 ENDIF
137 #endif
138
139 C Reset averages to zero
140 DO bj = myByLo(myThid), myByHi(myThid)
141 DO bi = myBxLo(myThid), myBxHi(myThid)
142 CALL TIMEAVE_RESET(BIOave,Nr,bi,bj,myThid)
143 CALL TIMEAVE_RESET(CARave,Nr,bi,bj,myThid)
144 CALL TIMEAVE_RESET(SURave,1,bi,bj,myThid)
145 CALL TIMEAVE_RESET(SUROave,1,bi,bj,myThid)
146 CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid)
147 CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid)
148 CALL TIMEAVE_RESET(fluxCO2ave,1,bi,bj,myThid)
149 CALL TIMEAVE_RESET(OmegaCave,Nr,bi,bj,myThid)
150 CALL TIMEAVE_RESET(pfluxave,Nr,bi,bj,myThid)
151 CALL TIMEAVE_RESET(epfluxave,Nr,bi,bj,myThid)
152 CALL TIMEAVE_RESET(cfluxave,Nr,bi,bj,myThid)
153 do k=1,Nr
154 DIC_TimeAve(bi,bj,k)=0.d0
155 enddo
156 ENDDO
157 ENDDO
158
159 ENDIF
160
161 #endif /* ALLOW_TIMEAVE */
162
163 #endif /* DIC_BIOTIC */
164
165 RETURN
166 END

  ViewVC Help
Powered by ViewVC 1.1.22