/[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.6 - (hide annotations) (download)
Wed Dec 4 21:19:12 2013 UTC (11 years, 7 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 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 jahn 1.6 _BEGIN_MASTER( myThid )
89 stephd 1.2 write(dar_fluxtot_unit,*) myIter, co2fluxtot
90 jahn 1.6 _END_MASTER( myThid )
91 stephd 1.2 #endif
92    
93    
94 jahn 1.1 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 stephd 1.5 #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 jahn 1.1 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 stephd 1.5 #endif
113 jahn 1.1 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 stephd 1.5 #ifdef pH_3D
141     CALL TIMEAVE_RESET(pCO2ave,Nr,bi,bj,myThid)
142     CALL TIMEAVE_RESET(pHave,Nr,bi,bj,myThid)
143     #else
144 jahn 1.1 CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid)
145     CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid)
146 stephd 1.5 #endif
147 jahn 1.1 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