/[MITgcm]/MITgcm_contrib/darwin2/pkg/darwin/dic_diags.F
ViewVC logotype

Contents of /MITgcm_contrib/darwin2/pkg/darwin/dic_diags.F

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


Revision 1.7 - (show annotations) (download)
Fri Dec 27 17:29:00 2013 UTC (11 years, 6 months ago) by jahn
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt65w_20160512, ctrb_darwin2_ckpt65j_20150225, ctrb_darwin2_ckpt66g_20170424, ctrb_darwin2_ckpt66k_20171025, ctrb_darwin2_ckpt66n_20180118, ctrb_darwin2_ckpt65v_20160409, ctrb_darwin2_ckpt65s_20160114, ctrb_darwin2_ckpt65_20140718, ctrb_darwin2_ckpt66d_20170214, ctrb_darwin2_ckpt65m_20150615, ctrb_darwin2_ckpt65q_20151118, ctrb_darwin2_ckpt65o_20150914, ctrb_darwin2_ckpt65p_20151023, ctrb_darwin2_ckpt65e_20140929, ctrb_darwin2_ckpt64v_20140411, ctrb_darwin2_ckpt64z_20140711, ctrb_darwin2_ckpt65l_20150504, ctrb_darwin2_ckpt65z_20160929, ctrb_darwin2_ckpt65n_20150729, ctrb_darwin2_ckpt64y_20140622, ctrb_darwin2_ckpt65d_20140915, ctrb_darwin2_ckpt64t_20140202, ctrb_darwin2_ckpt66h_20170602, ctrb_darwin2_ckpt64s_20140105, ctrb_darwin2_ckpt64x_20140524, ctrb_darwin2_ckpt65x_20160612, ctrb_darwin2_ckpt66f_20170407, ctrb_darwin2_ckpt65g_20141120, ctrb_darwin2_ckpt65k_20150402, ctrb_darwin2_ckpt64w_20140502, ctrb_darwin2_ckpt66a_20161020, ctrb_darwin2_ckpt65f_20141014, ctrb_darwin2_ckpt66b_20161219, ctrb_darwin2_ckpt64u_20140308, ctrb_darwin2_ckpt65i_20150123, ctrb_darwin2_ckpt66j_20170815, ctrb_darwin2_ckpt65y_20160801, ctrb_darwin2_ckpt66c_20170121, ctrb_darwin2_ckpt65a_20140728, ctrb_darwin2_ckpt65b_20140812, ctrb_darwin2_ckpt65t_20160221, ctrb_darwin2_ckpt66o_20180209, ctrb_darwin2_ckpt66e_20170314, ctrb_darwin2_ckpt65u_20160315, ctrb_darwin2_ckpt65r_20151221, ctrb_darwin2_ckpt66i_20170718, ctrb_darwin2_ckpt65c_20140830, ctrb_darwin2_ckpt66l_20171025, ctrb_darwin2_ckpt65h_20141217, ctrb_darwin2_ckpt66m_20171213, HEAD
Changes since 1.6: +23 -25 lines
use simpler (no level index) cumulative-time counter for timeave

1 #include "CPP_OPTIONS.h"
2 #include "PTRACERS_OPTIONS.h"
3 #include "DARWIN_OPTIONS.h"
4
5 CBOP
6 SUBROUTINE DIC_DIAGS( myTime, myIter, myThid )
7 C /==========================================================\
8 C | SUBROUTINE DIC_BIOTIC_DIAGS |
9 C | o Do DIC diagnostic output |
10 C |==========================================================|
11 C \==========================================================/
12 IMPLICIT NONE
13
14 C === Global variables ===
15 #include "SIZE.h"
16 #include "EEPARAMS.h"
17 #include "PARAMS.h"
18 #ifdef ALLOW_DARWIN
19 #include "DARWIN_SIZE.h"
20 #include "DARWIN_FLUX.h"
21 #include "DARWIN_IO.h"
22 #endif
23 #ifdef ALLOW_PTRACERS
24 #include "PTRACERS_SIZE.h"
25 #include "PTRACERS_PARAMS.h"
26 #endif
27 C == Routine arguments ==
28 C myTime - Current time of simulation ( s )
29 C myIter - Iteration number
30 C myThid - Number of this instance of INI_FORCING
31 _RL myTime
32 INTEGER myIter
33 INTEGER myThid
34 CEOP
35
36 #ifdef ALLOW_PTRACERS
37 #ifdef ALLOW_DARWIN
38 #ifdef ALLOW_CARBON
39 #ifdef ALLOW_TIMEAVE
40
41 C == Local variables ==
42 LOGICAL DIFFERENT_MULTIPLE
43 EXTERNAL DIFFERENT_MULTIPLE
44 _RL co2fluxtot
45 INTEGER bi, bj, k
46 CHARACTER*(MAX_LEN_MBUF) suff
47 CHARACTER*(1) pf
48
49 IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
50 pf(1:1) = 'D'
51 ELSE
52 pf(1:1) = 'R'
53 ENDIF
54
55 C Dump files and restart average computation if needed
56 IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock).
57 & and.myIter.ne.nIter0 ) THEN
58
59 C Normalize by integrated time
60 DO bj = myByLo(myThid), myByHi(myThid)
61 DO bi = myBxLo(myThid), myBxHi(myThid)
62 CALL TIMEAVE_NORMALIZE(SURave,dic_timeave, 1 ,
63 & bi,bj,myThid)
64 CALL TIMEAVE_NORMALIZE(SURCave,dic_timeave, 1 ,
65 & bi,bj,myThid)
66 CALL TIMEAVE_NORMALIZE(SUROave,dic_timeave, 1 ,
67 & bi,bj,myThid)
68 #ifdef pH_3D
69 CALL TIMEAVE_NORMALIZE(pCO2ave,dic_timeave, Nr,
70 & bi,bj,myThid)
71 CALL TIMEAVE_NORMALIZE(pHave,dic_timeave, Nr,
72 & bi,bj,myThid)
73 #else
74 CALL TIMEAVE_NORMALIZE(pCO2ave,dic_timeave, 1 ,
75 & bi,bj,myThid)
76 CALL TIMEAVE_NORMALIZE(pHave,dic_timeave, 1 ,
77 & bi,bj,myThid)
78 #endif
79 ENDDO
80 ENDDO
81
82 #ifdef CALC_RATE_TOTALS
83 call tracer_sumarea(
84 & SURCave, co2fluxtot, myThid )
85 c mmol/s to GtC/y
86 co2fluxtot=co2fluxtot* 12. _d 0* 1. _d -3* 31536000. _d 0
87 & *1. _d -15
88 _BEGIN_MASTER( myThid )
89 write(dar_fluxtot_unit,*) myIter, co2fluxtot
90 _END_MASTER( myThid )
91 #endif
92
93
94 IF ( PTRACERS_timeave_mdsio ) THEN
95 WRITE(suff,'(I10.10)') myIter
96 CALL WRITE_FLD_XY_RL('DIC_Surtave.',suff,SURave,
97 & myIter,myThid)
98 CALL WRITE_FLD_XY_RL('DIC_SurCtave.',suff,SURCave,
99 & myIter,myThid)
100 CALL WRITE_FLD_XY_RL('DIC_SurOtave.',suff,SUROave,
101 & myIter,myThid)
102 #ifdef pH_3D
103 CALL WRITE_FLD_XYZ_RL('DIC_pHtave.',suff,pHave,
104 & myIter,myThid)
105 CALL WRITE_FLD_XYZ_RL('DIC_pCO2tave.',suff,pCO2ave,
106 & myIter,myThid)
107 #else
108 CALL WRITE_FLD_XY_RL('DIC_pHtave.',suff,pHave,
109 & myIter,myThid)
110 CALL WRITE_FLD_XY_RL('DIC_pCO2tave.',suff,pCO2ave,
111 & myIter,myThid)
112 #endif
113 ENDIF
114
115 #ifdef ALLOW_MNC
116 IF ( PTRACERS_timeave_mnc ) THEN
117 CALL MNC_CW_SET_UDIM('dic_tave', -1, myThid)
118 CALL MNC_CW_RL_W_S('D','dic_tave',0,0,'T',myTime,myThid)
119 CALL MNC_CW_SET_UDIM('dic_tave', 0, myThid)
120 CALL MNC_CW_I_W_S('I','dic_tave',0,0,'iter',myIter,myThid)
121 CALL MNC_CW_RL_W(
122 & pf,'dic_tave',0,0,'dic_SUR_ave',SURave,myThid)
123 CALL MNC_CW_RL_W(
124 & pf,'dic_tave',0,0,'dic_SURC_ave',SURCave,myThid)
125 CALL MNC_CW_RL_W(
126 & pf,'dic_tave',0,0,'dic_SURO_ave',SUROave,myThid)
127 CALL MNC_CW_RL_W(
128 & pf,'dic_tave',0,0,'dic_pH_ave',pHave,myThid)
129 CALL MNC_CW_RL_W(
130 & pf,'dic_tave',0,0,'dic_pCO2_ave',pCO2ave,myThid)
131 ENDIF
132 #endif
133
134 C Reset averages to zero
135 DO bj = myByLo(myThid), myByHi(myThid)
136 DO bi = myBxLo(myThid), myBxHi(myThid)
137 CALL TIMEAVE_RESET(SURave,1,bi,bj,myThid)
138 CALL TIMEAVE_RESET(SURCave,1,bi,bj,myThid)
139 CALL TIMEAVE_RESET(SUROave,1,bi,bj,myThid)
140 #ifdef pH_3D
141 CALL TIMEAVE_RESET(pCO2ave,Nr,bi,bj,myThid)
142 CALL TIMEAVE_RESET(pHave,Nr,bi,bj,myThid)
143 #else
144 CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid)
145 CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid)
146 #endif
147 DIC_TimeAve(bi,bj)=0.d0
148 ENDDO
149 ENDDO
150
151 ENDIF
152
153 #endif /* ALLOW_TIMEAVE */
154 #endif /* ALLOW_CARBON */
155 #endif /* ALLOW_DARWIN */
156 #endif /* ALLOW_PTRACERS */
157
158 RETURN
159 END
160
161 c ==================================================================

  ViewVC Help
Powered by ViewVC 1.1.22