/[MITgcm]/MITgcm/pkg/dic/dic_biotic_diags.F
ViewVC logotype

Annotation of /MITgcm/pkg/dic/dic_biotic_diags.F

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


Revision 1.11 - (hide annotations) (download)
Tue Dec 12 22:37:28 2006 UTC (17 years, 6 months ago) by stephd
Branch: MAIN
CVS Tags: checkpoint58u_post, checkpoint58w_post, checkpoint58x_post, checkpoint58t_post, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59i, checkpoint59h, checkpoint59, checkpoint58y_post, checkpoint58v_post, checkpoint58s_post
Changes since 1.10: +8 -1 lines
o add new diagnostic (phosphorus export production)

1 stephd 1.11 C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_biotic_diags.F,v 1.10 2005/09/29 12:19:51 edhill Exp $
2 stephd 1.1 C $Name: $
3    
4 edhill 1.4 #include "DIC_OPTIONS.h"
5 stephd 1.1 #include "GCHEM_OPTIONS.h"
6    
7     CStartOfInterface
8     SUBROUTINE DIC_BIOTIC_DIAGS( myTime, myIter, myThid )
9     C /==========================================================\
10     C | SUBROUTINE DIC_BIOTIC_DIAGS |
11     C | o Do DIC diagnostic output |
12     C |==========================================================|
13     C \==========================================================/
14     IMPLICIT NONE
15    
16     C === Global variables ===
17     #include "SIZE.h"
18     #include "EEPARAMS.h"
19     #include "PARAMS.h"
20     #include "DIC_BIOTIC.h"
21 edhill 1.7 #include "PTRACERS_SIZE.h"
22     #include "PTRACERS.h"
23 stephd 1.1
24     C == Routine arguments ==
25     C myTime - Current time of simulation ( s )
26     C myIter - Iteration number
27     C myThid - Number of this instance of INI_FORCING
28     _RL myTime
29     INTEGER myIter
30     INTEGER myThid
31     CEndOfInterface
32    
33    
34     C == Local variables ==
35 jmc 1.6 LOGICAL DIFFERENT_MULTIPLE
36     EXTERNAL DIFFERENT_MULTIPLE
37 stephd 1.1 INTEGER bi, bj, k
38     CHARACTER*(MAX_LEN_MBUF) suff
39 edhill 1.10 CHARACTER*(1) pf
40 stephd 1.1
41     #ifdef DIC_BIOTIC
42    
43 edhill 1.10 IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
44     pf(1:1) = 'D'
45     ELSE
46     pf(1:1) = 'R'
47     ENDIF
48 stephd 1.1
49     #ifdef ALLOW_TIMEAVE
50    
51     C Dump files and restart average computation if needed
52 jmc 1.6 IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock) ) THEN
53 stephd 1.1
54     C Normalize by integrated time
55     DO bj = myByLo(myThid), myByHi(myThid)
56     DO bi = myBxLo(myThid), myBxHi(myThid)
57     CALL TIMEAVE_NORMALIZ(BIOave, DIC_timeave, nR ,
58     & bi,bj,myThid)
59     CALL TIMEAVE_NORMALIZ(CARave, DIC_timeave, nR ,
60     & bi,bj,myThid)
61     CALL TIMEAVE_NORMALIZ(SURave,dic_timeave, 1 ,
62     & bi,bj,myThid)
63     CALL TIMEAVE_NORMALIZ(SUROave,dic_timeave, 1 ,
64     & bi,bj,myThid)
65     CALL TIMEAVE_NORMALIZ(pCO2ave,dic_timeave, 1 ,
66     & bi,bj,myThid)
67     CALL TIMEAVE_NORMALIZ(pHave,dic_timeave, 1 ,
68     & bi,bj,myThid)
69 stephd 1.2 CALL TIMEAVE_NORMALIZ(fluxCO2ave,dic_timeave, 1 ,
70     & bi,bj,myThid)
71 stephd 1.8 CALL TIMEAVE_NORMALIZ(OmegaCave, DIC_timeave, nR ,
72     & bi,bj,myThid)
73 stephd 1.9 CALL TIMEAVE_NORMALIZ(pfluxave,dic_timeave, nR ,
74 stephd 1.8 & bi,bj,myThid)
75 stephd 1.11 CALL TIMEAVE_NORMALIZ(epfluxave,dic_timeave, nR ,
76     & bi,bj,myThid)
77 stephd 1.9 CALL TIMEAVE_NORMALIZ(cfluxave,dic_timeave, nR ,
78 stephd 1.8 & bi,bj,myThid)
79 stephd 1.1 ENDDO
80     ENDDO
81 edhill 1.7
82     IF ( PTRACERS_timeave_mdsio ) THEN
83     WRITE(suff,'(I10.10)') myIter
84     CALL WRITE_FLD_XYZ_RL('DIC_Biotave.',suff,BIOave,
85     & myIter,myThid)
86     CALL WRITE_FLD_XYZ_RL('DIC_Cartave.',suff,CARave,
87     & myIter,myThid)
88     CALL WRITE_FLD_XY_RL('DIC_Surtave.',suff,SURave,
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     CALL WRITE_FLD_XY_RL('DIC_fluxCO2ave.',suff,fluxCO2ave,
97     & myIter,myThid)
98 stephd 1.8 CALL WRITE_FLD_XYZ_RL('DIC_OmegaCtave.',suff,OmegaCave,
99     & myIter,myThid)
100 stephd 1.9 CALL WRITE_FLD_XYZ_RL('DIC_pfluxtave.',suff,pfluxave,
101 stephd 1.8 & myIter,myThid)
102 stephd 1.11 CALL WRITE_FLD_XYZ_RL('DIC_epfluxtave.',suff,epfluxave,
103     & myIter,myThid)
104 stephd 1.9 CALL WRITE_FLD_XYZ_RL('DIC_cfluxtave.',suff,cfluxave,
105 stephd 1.8 & myIter,myThid)
106 edhill 1.7 ENDIF
107    
108     #ifdef ALLOW_MNC
109     IF ( PTRACERS_timeave_mnc ) THEN
110     CALL MNC_CW_SET_UDIM('dic_tave', -1, myThid)
111     CALL MNC_CW_RL_W_S('D','dic_tave',0,0,'T',myTime,myThid)
112     CALL MNC_CW_SET_UDIM('dic_tave', 0, myThid)
113     CALL MNC_CW_I_W_S('I','dic_tave',0,0,'iter',myIter,myThid)
114     CALL MNC_CW_RL_W(
115 edhill 1.10 & pf,'dic_tave',0,0,'dic_BIO_ave',BIOave,myThid)
116 edhill 1.7 CALL MNC_CW_RL_W(
117 edhill 1.10 & pf,'dic_tave',0,0,'dic_CAR_ave',CARave,myThid)
118 edhill 1.7 CALL MNC_CW_RL_W(
119 edhill 1.10 & pf,'dic_tave',0,0,'dic_SUR_ave',SURave,myThid)
120 edhill 1.7 CALL MNC_CW_RL_W(
121 edhill 1.10 & pf,'dic_tave',0,0,'dic_SURO_ave',SUROave,myThid)
122 edhill 1.7 CALL MNC_CW_RL_W(
123 edhill 1.10 & pf,'dic_tave',0,0,'dic_pH_ave',pHave,myThid)
124 edhill 1.7 CALL MNC_CW_RL_W(
125 edhill 1.10 & pf,'dic_tave',0,0,'dic_pCO2_ave',pCO2ave,myThid)
126 edhill 1.7 CALL MNC_CW_RL_W(
127 edhill 1.10 & pf,'dic_tave',0,0,'dic_fluxCO2_ave',fluxCO2ave,myThid)
128 stephd 1.8 CALL MNC_CW_RL_W(
129 edhill 1.10 & pf,'dic_tave',0,0,'dic_OmegaC_ave',OmegaCave,myThid)
130 stephd 1.8 CALL MNC_CW_RL_W(
131 edhill 1.10 & pf,'dic_tave',0,0,'dic_pflux_ave',pfluxave,myThid)
132 stephd 1.8 CALL MNC_CW_RL_W(
133 stephd 1.11 & pf,'dic_tave',0,0,'dic_epflux_ave',epfluxave,myThid)
134     CALL MNC_CW_RL_W(
135 edhill 1.10 & pf,'dic_tave',0,0,'dic_cflux_ave',cfluxave,myThid)
136 edhill 1.7 ENDIF
137     #endif
138 stephd 1.2
139 stephd 1.1 C Reset averages to zero
140     DO bj = myByLo(myThid), myByHi(myThid)
141     DO bi = myBxLo(myThid), myBxHi(myThid)
142     CALL TIMEAVE_RESET(BIOave,Nr,bi,bj,myThid)
143     CALL TIMEAVE_RESET(CARave,Nr,bi,bj,myThid)
144     CALL TIMEAVE_RESET(SURave,1,bi,bj,myThid)
145     CALL TIMEAVE_RESET(SUROave,1,bi,bj,myThid)
146     CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid)
147     CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid)
148 stephd 1.2 CALL TIMEAVE_RESET(fluxCO2ave,1,bi,bj,myThid)
149 stephd 1.8 CALL TIMEAVE_RESET(OmegaCave,Nr,bi,bj,myThid)
150 stephd 1.9 CALL TIMEAVE_RESET(pfluxave,Nr,bi,bj,myThid)
151 stephd 1.11 CALL TIMEAVE_RESET(epfluxave,Nr,bi,bj,myThid)
152 stephd 1.9 CALL TIMEAVE_RESET(cfluxave,Nr,bi,bj,myThid)
153 stephd 1.1 do k=1,Nr
154     DIC_TimeAve(bi,bj,k)=0.d0
155     enddo
156     ENDDO
157     ENDDO
158    
159     ENDIF
160    
161     #endif /* ALLOW_TIMEAVE */
162    
163     #endif /* DIC_BIOTIC */
164    
165     RETURN
166     END

  ViewVC Help
Powered by ViewVC 1.1.22