/[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.4 - (show annotations) (download)
Tue Oct 23 17:55:31 2012 UTC (13 years ago) by stephd
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt64k_20130723, ctrb_darwin2_ckpt64h_20130528, ctrb_darwin2_ckpt64m_20130820, ctrb_darwin2_ckpt64f_20130405, ctrb_darwin2_ckpt64a_20121116, ctrb_darwin2_ckpt64n_20130826, ctrb_darwin2_ckpt64i_20130622, ctrb_darwin2_ckpt64e_20130305, ctrb_darwin2_ckpt64g_20130503, ctrb_darwin2_ckpt64l_20130806, ctrb_darwin2_ckpt64c_20130120, ctrb_darwin2_ckpt64j_20130704, ctrb_darwin2_ckpt64b_20121224, ctrb_darwin2_ckpt64d_20130219
Changes since 1.3: +1 -0 lines
o add diagnostics for chl:c, Ek and Ek/E

1 #include "CPP_OPTIONS.h"
2 #include "PTRACERS_OPTIONS.h"
3 #include "DARWIN_OPTIONS.h"
4
5 #ifdef ALLOW_PTRACERS
6 #ifdef ALLOW_DARWIN
7
8 #ifdef ALLOW_CARBON
9
10 CBOP
11 CStartOfInterface
12 SUBROUTINE DIC_DIAGS( myTime, myIter, myThid )
13 C /==========================================================\
14 C | SUBROUTINE DIC_BIOTIC_DIAGS |
15 C | o Do DIC diagnostic output |
16 C |==========================================================|
17 C \==========================================================/
18 IMPLICIT NONE
19
20 C === Global variables ===
21 #include "SIZE.h"
22 #include "EEPARAMS.h"
23 #include "PARAMS.h"
24 #include "DARWIN_SIZE.h"
25 #include "DARWIN_FLUX.h"
26 #include "DARWIN_IO.h"
27 #include "PTRACERS_SIZE.h"
28 #include "PTRACERS_PARAMS.h"
29 C == Routine arguments ==
30 C myTime - Current time of simulation ( s )
31 C myIter - Iteration number
32 C myThid - Number of this instance of INI_FORCING
33 _RL myTime
34 INTEGER myIter
35 INTEGER myThid
36 CEndOfInterface
37
38
39 C == Local variables ==
40 LOGICAL DIFFERENT_MULTIPLE
41 EXTERNAL DIFFERENT_MULTIPLE
42 _RL co2fluxtot
43 INTEGER bi, bj, k
44 CHARACTER*(MAX_LEN_MBUF) suff
45 CHARACTER*(1) pf
46
47 IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
48 pf(1:1) = 'D'
49 ELSE
50 pf(1:1) = 'R'
51 ENDIF
52
53 #ifdef ALLOW_TIMEAVE
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_NORMALIZ(SURave,dic_timeave, 1 ,
63 & bi,bj,myThid)
64 CALL TIMEAVE_NORMALIZ(SURCave,dic_timeave, 1 ,
65 & bi,bj,myThid)
66 CALL TIMEAVE_NORMALIZ(SUROave,dic_timeave, 1 ,
67 & bi,bj,myThid)
68 CALL TIMEAVE_NORMALIZ(pCO2ave,dic_timeave, 1 ,
69 & bi,bj,myThid)
70 CALL TIMEAVE_NORMALIZ(pHave,dic_timeave, 1 ,
71 & bi,bj,myThid)
72 ENDDO
73 ENDDO
74
75 #ifdef CALC_RATE_TOTALS
76 call tracer_sumarea(
77 & SURCave, co2fluxtot, myThid )
78 c mmol/s to GtC/y
79 co2fluxtot=co2fluxtot* 12. _d 0* 1. _d -3* 31536000. _d 0
80 & *1. _d -15
81 write(dar_fluxtot_unit,*) myIter, co2fluxtot
82 #endif
83
84
85 IF ( PTRACERS_timeave_mdsio ) THEN
86 WRITE(suff,'(I10.10)') myIter
87 CALL WRITE_FLD_XY_RL('DIC_Surtave.',suff,SURave,
88 & myIter,myThid)
89 CALL WRITE_FLD_XY_RL('DIC_SurCtave.',suff,SURCave,
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 ENDIF
98
99 #ifdef ALLOW_MNC
100 IF ( PTRACERS_timeave_mnc ) THEN
101 CALL MNC_CW_SET_UDIM('dic_tave', -1, myThid)
102 CALL MNC_CW_RL_W_S('D','dic_tave',0,0,'T',myTime,myThid)
103 CALL MNC_CW_SET_UDIM('dic_tave', 0, myThid)
104 CALL MNC_CW_I_W_S('I','dic_tave',0,0,'iter',myIter,myThid)
105 CALL MNC_CW_RL_W(
106 & pf,'dic_tave',0,0,'dic_SUR_ave',SURave,myThid)
107 CALL MNC_CW_RL_W(
108 & pf,'dic_tave',0,0,'dic_SURC_ave',SURCave,myThid)
109 CALL MNC_CW_RL_W(
110 & pf,'dic_tave',0,0,'dic_SURO_ave',SUROave,myThid)
111 CALL MNC_CW_RL_W(
112 & pf,'dic_tave',0,0,'dic_pH_ave',pHave,myThid)
113 CALL MNC_CW_RL_W(
114 & pf,'dic_tave',0,0,'dic_pCO2_ave',pCO2ave,myThid)
115 ENDIF
116 #endif
117
118 C Reset averages to zero
119 DO bj = myByLo(myThid), myByHi(myThid)
120 DO bi = myBxLo(myThid), myBxHi(myThid)
121 CALL TIMEAVE_RESET(SURave,1,bi,bj,myThid)
122 CALL TIMEAVE_RESET(SURCave,1,bi,bj,myThid)
123 CALL TIMEAVE_RESET(SUROave,1,bi,bj,myThid)
124 CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid)
125 CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid)
126 do k=1,Nr
127 DIC_TimeAve(bi,bj,k)=0.d0
128 enddo
129 ENDDO
130 ENDDO
131
132 ENDIF
133
134 #endif /*TIMEAVE*/
135
136 RETURN
137 END
138 #endif /*ALLOW_CARBON*/
139
140 #endif /*DARWIN*/
141 #endif /*ALLOW_PTRACERS*/
142 c ==================================================================

  ViewVC Help
Powered by ViewVC 1.1.22