/[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.13 - (show annotations) (download)
Fri Apr 4 21:32:37 2008 UTC (16 years, 2 months ago) by dfer
Branch: MAIN
Changes since 1.12: +2 -2 lines
Merging DIC_ABIOTIC.h and DIC_BIOTIC.h

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

  ViewVC Help
Powered by ViewVC 1.1.22