/[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.4 - (hide annotations) (download)
Tue Oct 23 17:55:31 2012 UTC (12 years, 8 months 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 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     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 stephd 1.2 #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 jahn 1.3 & *1. _d -15
81 stephd 1.2 write(dar_fluxtot_unit,*) myIter, co2fluxtot
82     #endif
83    
84    
85 jahn 1.1 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