/[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.3 - (show annotations) (download)
Mon Sep 24 17:32:09 2012 UTC (13 years, 1 month ago) by jahn
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt64_20121012
Changes since 1.2: +1 -1 lines
_d must now be followed by a space

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 #include "DARWIN_IO.h"
26 #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 _RL co2fluxtot
42 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 #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 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