/[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.6 - (show annotations) (download)
Wed Dec 4 21:19:12 2013 UTC (11 years, 11 months ago) by jahn
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt64r_20131210
Changes since 1.5: +2 -0 lines
only master cpu/thread writes

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 #ifdef pH_3D
69 CALL TIMEAVE_NORMALIZ(pCO2ave,dic_timeave, Nr,
70 & bi,bj,myThid)
71 CALL TIMEAVE_NORMALIZ(pHave,dic_timeave, Nr,
72 & bi,bj,myThid)
73 #else
74 CALL TIMEAVE_NORMALIZ(pCO2ave,dic_timeave, 1 ,
75 & bi,bj,myThid)
76 CALL TIMEAVE_NORMALIZ(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 do k=1,Nr
148 DIC_TimeAve(bi,bj,k)=0.d0
149 enddo
150 ENDDO
151 ENDDO
152
153 ENDIF
154
155 #endif /*TIMEAVE*/
156
157 RETURN
158 END
159 #endif /*ALLOW_CARBON*/
160
161 #endif /*DARWIN*/
162 #endif /*ALLOW_PTRACERS*/
163 c ==================================================================

  ViewVC Help
Powered by ViewVC 1.1.22