/[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.10 - (show annotations) (download)
Thu Sep 29 12:19:51 2005 UTC (18 years, 8 months ago) by edhill
Branch: MAIN
CVS Tags: checkpoint58l_post, checkpoint57t_post, checkpoint58e_post, checkpoint57v_post, checkpoint58r_post, checkpoint57y_post, checkpoint58n_post, checkpoint58h_post, checkpoint57y_pre, checkpoint58q_post, checkpoint58j_post, checkpoint58, checkpoint58f_post, checkpoint57x_post, checkpoint58d_post, checkpoint58c_post, checkpoint57w_post, checkpint57u_post, checkpoint58a_post, checkpoint58i_post, checkpoint58g_post, checkpoint58o_post, checkpoint57z_post, checkpoint58k_post, checkpoint58p_post, checkpoint58b_post, checkpoint58m_post
Changes since 1.9: +17 -11 lines
 o make mnc honor the writeBinaryPrec flag for all the non-pickup and
   non-diagnostics output types

1 C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_biotic_diags.F,v 1.9 2005/09/16 20:16:31 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 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(cfluxave,dic_timeave, nR ,
76 & bi,bj,myThid)
77 ENDDO
78 ENDDO
79
80 IF ( PTRACERS_timeave_mdsio ) THEN
81 WRITE(suff,'(I10.10)') myIter
82 CALL WRITE_FLD_XYZ_RL('DIC_Biotave.',suff,BIOave,
83 & myIter,myThid)
84 CALL WRITE_FLD_XYZ_RL('DIC_Cartave.',suff,CARave,
85 & myIter,myThid)
86 CALL WRITE_FLD_XY_RL('DIC_Surtave.',suff,SURave,
87 & myIter,myThid)
88 CALL WRITE_FLD_XY_RL('DIC_SurOtave.',suff,SUROave,
89 & myIter,myThid)
90 CALL WRITE_FLD_XY_RL('DIC_pHtave.',suff,pHave,
91 & myIter,myThid)
92 CALL WRITE_FLD_XY_RL('DIC_pCO2tave.',suff,pCO2ave,
93 & myIter,myThid)
94 CALL WRITE_FLD_XY_RL('DIC_fluxCO2ave.',suff,fluxCO2ave,
95 & myIter,myThid)
96 CALL WRITE_FLD_XYZ_RL('DIC_OmegaCtave.',suff,OmegaCave,
97 & myIter,myThid)
98 CALL WRITE_FLD_XYZ_RL('DIC_pfluxtave.',suff,pfluxave,
99 & myIter,myThid)
100 CALL WRITE_FLD_XYZ_RL('DIC_cfluxtave.',suff,cfluxave,
101 & myIter,myThid)
102 ENDIF
103
104 #ifdef ALLOW_MNC
105 IF ( PTRACERS_timeave_mnc ) THEN
106 CALL MNC_CW_SET_UDIM('dic_tave', -1, myThid)
107 CALL MNC_CW_RL_W_S('D','dic_tave',0,0,'T',myTime,myThid)
108 CALL MNC_CW_SET_UDIM('dic_tave', 0, myThid)
109 CALL MNC_CW_I_W_S('I','dic_tave',0,0,'iter',myIter,myThid)
110 CALL MNC_CW_RL_W(
111 & pf,'dic_tave',0,0,'dic_BIO_ave',BIOave,myThid)
112 CALL MNC_CW_RL_W(
113 & pf,'dic_tave',0,0,'dic_CAR_ave',CARave,myThid)
114 CALL MNC_CW_RL_W(
115 & pf,'dic_tave',0,0,'dic_SUR_ave',SURave,myThid)
116 CALL MNC_CW_RL_W(
117 & pf,'dic_tave',0,0,'dic_SURO_ave',SUROave,myThid)
118 CALL MNC_CW_RL_W(
119 & pf,'dic_tave',0,0,'dic_pH_ave',pHave,myThid)
120 CALL MNC_CW_RL_W(
121 & pf,'dic_tave',0,0,'dic_pCO2_ave',pCO2ave,myThid)
122 CALL MNC_CW_RL_W(
123 & pf,'dic_tave',0,0,'dic_fluxCO2_ave',fluxCO2ave,myThid)
124 CALL MNC_CW_RL_W(
125 & pf,'dic_tave',0,0,'dic_OmegaC_ave',OmegaCave,myThid)
126 CALL MNC_CW_RL_W(
127 & pf,'dic_tave',0,0,'dic_pflux_ave',pfluxave,myThid)
128 CALL MNC_CW_RL_W(
129 & pf,'dic_tave',0,0,'dic_cflux_ave',cfluxave,myThid)
130 ENDIF
131 #endif
132
133 C Reset averages to zero
134 DO bj = myByLo(myThid), myByHi(myThid)
135 DO bi = myBxLo(myThid), myBxHi(myThid)
136 CALL TIMEAVE_RESET(BIOave,Nr,bi,bj,myThid)
137 CALL TIMEAVE_RESET(CARave,Nr,bi,bj,myThid)
138 CALL TIMEAVE_RESET(SURave,1,bi,bj,myThid)
139 CALL TIMEAVE_RESET(SUROave,1,bi,bj,myThid)
140 CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid)
141 CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid)
142 CALL TIMEAVE_RESET(fluxCO2ave,1,bi,bj,myThid)
143 CALL TIMEAVE_RESET(OmegaCave,Nr,bi,bj,myThid)
144 CALL TIMEAVE_RESET(pfluxave,Nr,bi,bj,myThid)
145 CALL TIMEAVE_RESET(cfluxave,Nr,bi,bj,myThid)
146 do k=1,Nr
147 DIC_TimeAve(bi,bj,k)=0.d0
148 enddo
149 ENDDO
150 ENDDO
151
152 ENDIF
153
154 #endif /* ALLOW_TIMEAVE */
155
156 #endif /* DIC_BIOTIC */
157
158 RETURN
159 END

  ViewVC Help
Powered by ViewVC 1.1.22