/[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.2 - (hide annotations) (download)
Wed May 11 18:11:56 2011 UTC (14 years, 2 months ago) by stephd
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt63l_20120405, ctrb_darwin2_ckpt63f_20111201, ctrb_darwin2_ckpt62y_20110526, ctrb_darwin2_ckpt62x_20110513, ctrb_darwin2_ckpt63o_20120629, ctrb_darwin2_ckpt63c_20111011, ctrb_darwin2_ckpt63i_20120124, ctrb_darwin2_ckpt63m_20120506, ctrb_darwin2_ckpt63s_20120908, ctrb_darwin2_ckpt63e_20111107, ctrb_darwin2_ckpt63b_20110830, ctrb_darwin2_ckpt63j_20120217, ctrb_darwin2_ckpt63r_20120817, ctrb_darwin2_ckpt63g_20111220, ctrb_darwin2_ckpt63a_20110804, ctrb_darwin2_ckpt63h_20111230, ctrb_darwin2_ckpt63p_20120707, ctrb_darwin2_ckpt63d_20111107, ctrb_darwin2_ckpt63q_20120731, ctrb_darwin2_ckpt63_20110728, ctrb_darwin2_ckpt63n_20120604, ctrb_darwin2_ckpt63k_20120317, ctrb_darwin2_ckpt62z_20110622
Changes since 1.1: +12 -0 lines
o tidy up how total rate (PP, Nfix, Denit) are written out, and add new file
  for writing out global total of CO2 flux

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     #include "DARWIN_FLUX.h"
25 stephd 1.2 #include "DARWIN_IO.h"
26 jahn 1.1 #include "PTRACERS_SIZE.h"
27     #include "PTRACERS_PARAMS.h"
28     C == Routine arguments ==
29     C myTime - Current time of simulation ( s )
30     C myIter - Iteration number
31     C myThid - Number of this instance of INI_FORCING
32     _RL myTime
33     INTEGER myIter
34     INTEGER myThid
35     CEndOfInterface
36    
37    
38     C == Local variables ==
39     LOGICAL DIFFERENT_MULTIPLE
40     EXTERNAL DIFFERENT_MULTIPLE
41 stephd 1.2 _RL co2fluxtot
42 jahn 1.1 INTEGER bi, bj, k
43     CHARACTER*(MAX_LEN_MBUF) suff
44     CHARACTER*(1) pf
45    
46     IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
47     pf(1:1) = 'D'
48     ELSE
49     pf(1:1) = 'R'
50     ENDIF
51    
52     #ifdef ALLOW_TIMEAVE
53    
54     C Dump files and restart average computation if needed
55     IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock).
56     & and.myIter.ne.nIter0 ) THEN
57    
58     C Normalize by integrated time
59     DO bj = myByLo(myThid), myByHi(myThid)
60     DO bi = myBxLo(myThid), myBxHi(myThid)
61     CALL TIMEAVE_NORMALIZ(SURave,dic_timeave, 1 ,
62     & bi,bj,myThid)
63     CALL TIMEAVE_NORMALIZ(SURCave,dic_timeave, 1 ,
64     & bi,bj,myThid)
65     CALL TIMEAVE_NORMALIZ(SUROave,dic_timeave, 1 ,
66     & bi,bj,myThid)
67     CALL TIMEAVE_NORMALIZ(pCO2ave,dic_timeave, 1 ,
68     & bi,bj,myThid)
69     CALL TIMEAVE_NORMALIZ(pHave,dic_timeave, 1 ,
70     & bi,bj,myThid)
71     ENDDO
72     ENDDO
73    
74 stephd 1.2 #ifdef CALC_RATE_TOTALS
75     call tracer_sumarea(
76     & SURCave, co2fluxtot, myThid )
77     c mmol/s to GtC/y
78     co2fluxtot=co2fluxtot* 12. _d 0* 1. _d -3* 31536000. _d 0
79     & *1. _d-15
80     write(dar_fluxtot_unit,*) myIter, co2fluxtot
81     #endif
82    
83    
84 jahn 1.1 IF ( PTRACERS_timeave_mdsio ) THEN
85     WRITE(suff,'(I10.10)') myIter
86     CALL WRITE_FLD_XY_RL('DIC_Surtave.',suff,SURave,
87     & myIter,myThid)
88     CALL WRITE_FLD_XY_RL('DIC_SurCtave.',suff,SURCave,
89     & myIter,myThid)
90     CALL WRITE_FLD_XY_RL('DIC_SurOtave.',suff,SUROave,
91     & myIter,myThid)
92     CALL WRITE_FLD_XY_RL('DIC_pHtave.',suff,pHave,
93     & myIter,myThid)
94     CALL WRITE_FLD_XY_RL('DIC_pCO2tave.',suff,pCO2ave,
95     & myIter,myThid)
96     ENDIF
97    
98     #ifdef ALLOW_MNC
99     IF ( PTRACERS_timeave_mnc ) THEN
100     CALL MNC_CW_SET_UDIM('dic_tave', -1, myThid)
101     CALL MNC_CW_RL_W_S('D','dic_tave',0,0,'T',myTime,myThid)
102     CALL MNC_CW_SET_UDIM('dic_tave', 0, myThid)
103     CALL MNC_CW_I_W_S('I','dic_tave',0,0,'iter',myIter,myThid)
104     CALL MNC_CW_RL_W(
105     & pf,'dic_tave',0,0,'dic_SUR_ave',SURave,myThid)
106     CALL MNC_CW_RL_W(
107     & pf,'dic_tave',0,0,'dic_SURC_ave',SURCave,myThid)
108     CALL MNC_CW_RL_W(
109     & pf,'dic_tave',0,0,'dic_SURO_ave',SUROave,myThid)
110     CALL MNC_CW_RL_W(
111     & pf,'dic_tave',0,0,'dic_pH_ave',pHave,myThid)
112     CALL MNC_CW_RL_W(
113     & pf,'dic_tave',0,0,'dic_pCO2_ave',pCO2ave,myThid)
114     ENDIF
115     #endif
116    
117     C Reset averages to zero
118     DO bj = myByLo(myThid), myByHi(myThid)
119     DO bi = myBxLo(myThid), myBxHi(myThid)
120     CALL TIMEAVE_RESET(SURave,1,bi,bj,myThid)
121     CALL TIMEAVE_RESET(SURCave,1,bi,bj,myThid)
122     CALL TIMEAVE_RESET(SUROave,1,bi,bj,myThid)
123     CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid)
124     CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid)
125     do k=1,Nr
126     DIC_TimeAve(bi,bj,k)=0.d0
127     enddo
128     ENDDO
129     ENDDO
130    
131     ENDIF
132    
133     #endif /*TIMEAVE*/
134    
135     RETURN
136     END
137     #endif /*ALLOW_CARBON*/
138    
139     #endif /*DARWIN*/
140     #endif /*ALLOW_PTRACERS*/
141     c ==================================================================

  ViewVC Help
Powered by ViewVC 1.1.22