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

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

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


Revision 1.5 - (hide annotations) (download)
Wed Oct 9 17:14:37 2013 UTC (11 years, 9 months ago) by stephd
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt64o_20131024, ctrb_darwin2_ckpt64p_20131118, ctrb_darwin2_ckpt64q_20131118, ctrb_darwin2_ckpt64p_20131024
Changes since 1.4: +19 -0 lines
o changes so that pH and pCO2 can be calculated for full water column
  by defining pH_3D in DARWIN_OPTIONS.h. Includes 3D diags and pickup

1 jahn 1.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 stephd 1.4 #include "DARWIN_SIZE.h"
25 jahn 1.1 #include "DARWIN_FLUX.h"
26 stephd 1.2 #include "DARWIN_IO.h"
27 jahn 1.1 #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 stephd 1.2 _RL co2fluxtot
43 jahn 1.1 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 stephd 1.5 #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 jahn 1.1 CALL TIMEAVE_NORMALIZ(pCO2ave,dic_timeave, 1 ,
75     & bi,bj,myThid)
76     CALL TIMEAVE_NORMALIZ(pHave,dic_timeave, 1 ,
77     & bi,bj,myThid)
78 stephd 1.5 #endif
79 jahn 1.1 ENDDO
80     ENDDO
81    
82 stephd 1.2 #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 jahn 1.3 & *1. _d -15
88 stephd 1.2 write(dar_fluxtot_unit,*) myIter, co2fluxtot
89     #endif
90    
91    
92 jahn 1.1 IF ( PTRACERS_timeave_mdsio ) THEN
93     WRITE(suff,'(I10.10)') myIter
94     CALL WRITE_FLD_XY_RL('DIC_Surtave.',suff,SURave,
95     & myIter,myThid)
96     CALL WRITE_FLD_XY_RL('DIC_SurCtave.',suff,SURCave,
97     & myIter,myThid)
98     CALL WRITE_FLD_XY_RL('DIC_SurOtave.',suff,SUROave,
99     & myIter,myThid)
100 stephd 1.5 #ifdef pH_3D
101     CALL WRITE_FLD_XYZ_RL('DIC_pHtave.',suff,pHave,
102     & myIter,myThid)
103     CALL WRITE_FLD_XYZ_RL('DIC_pCO2tave.',suff,pCO2ave,
104     & myIter,myThid)
105     #else
106 jahn 1.1 CALL WRITE_FLD_XY_RL('DIC_pHtave.',suff,pHave,
107     & myIter,myThid)
108     CALL WRITE_FLD_XY_RL('DIC_pCO2tave.',suff,pCO2ave,
109     & myIter,myThid)
110 stephd 1.5 #endif
111 jahn 1.1 ENDIF
112    
113     #ifdef ALLOW_MNC
114     IF ( PTRACERS_timeave_mnc ) THEN
115     CALL MNC_CW_SET_UDIM('dic_tave', -1, myThid)
116     CALL MNC_CW_RL_W_S('D','dic_tave',0,0,'T',myTime,myThid)
117     CALL MNC_CW_SET_UDIM('dic_tave', 0, myThid)
118     CALL MNC_CW_I_W_S('I','dic_tave',0,0,'iter',myIter,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_SURC_ave',SURCave,myThid)
123     CALL MNC_CW_RL_W(
124     & pf,'dic_tave',0,0,'dic_SURO_ave',SUROave,myThid)
125     CALL MNC_CW_RL_W(
126     & pf,'dic_tave',0,0,'dic_pH_ave',pHave,myThid)
127     CALL MNC_CW_RL_W(
128     & pf,'dic_tave',0,0,'dic_pCO2_ave',pCO2ave,myThid)
129     ENDIF
130     #endif
131    
132     C Reset averages to zero
133     DO bj = myByLo(myThid), myByHi(myThid)
134     DO bi = myBxLo(myThid), myBxHi(myThid)
135     CALL TIMEAVE_RESET(SURave,1,bi,bj,myThid)
136     CALL TIMEAVE_RESET(SURCave,1,bi,bj,myThid)
137     CALL TIMEAVE_RESET(SUROave,1,bi,bj,myThid)
138 stephd 1.5 #ifdef pH_3D
139     CALL TIMEAVE_RESET(pCO2ave,Nr,bi,bj,myThid)
140     CALL TIMEAVE_RESET(pHave,Nr,bi,bj,myThid)
141     #else
142 jahn 1.1 CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid)
143     CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid)
144 stephd 1.5 #endif
145 jahn 1.1 do k=1,Nr
146     DIC_TimeAve(bi,bj,k)=0.d0
147     enddo
148     ENDDO
149     ENDDO
150    
151     ENDIF
152    
153     #endif /*TIMEAVE*/
154    
155     RETURN
156     END
157     #endif /*ALLOW_CARBON*/
158    
159     #endif /*DARWIN*/
160     #endif /*ALLOW_PTRACERS*/
161     c ==================================================================

  ViewVC Help
Powered by ViewVC 1.1.22