/[MITgcm]/MITgcm_contrib/darwin2/pkg/monod/monod_cons.F
ViewVC logotype

Annotation of /MITgcm_contrib/darwin2/pkg/monod/monod_cons.F

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


Revision 1.5 - (hide annotations) (download)
Tue Jul 24 18:27:28 2012 UTC (12 years, 11 months ago) by stephd
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt64h_20130528, ctrb_darwin2_ckpt64f_20130405, ctrb_darwin2_ckpt64a_20121116, ctrb_darwin2_ckpt64e_20130305, ctrb_darwin2_ckpt63s_20120908, ctrb_darwin2_ckpt63r_20120817, ctrb_darwin2_ckpt64g_20130503, ctrb_darwin2_ckpt64c_20130120, ctrb_darwin2_ckpt63q_20120731, ctrb_darwin2_ckpt64b_20121224, ctrb_darwin2_ckpt64d_20130219, ctrb_darwin2_ckpt64_20121012
Changes since 1.4: +13 -1 lines
o add CDOM into budget for N,P,Fe and C

1 stephd 1.5 C $Header: /u/gcmpack/MITgcm_contrib/darwin2/pkg/monod/monod_cons.F,v 1.4 2011/12/07 20:04:00 jahn Exp $
2 stephd 1.2 C $Name: $
3 jahn 1.1
4     #include "CPP_OPTIONS.h"
5     #include "PTRACERS_OPTIONS.h"
6     #include "DARWIN_OPTIONS.h"
7    
8     #ifdef ALLOW_PTRACERS
9     #ifdef ALLOW_MONOD
10    
11     c=============================================================
12     c subroutine MONOD_cons
13     c check conservation in the model
14     C==============================================================
15     SUBROUTINE MONOD_CONS(
16 stephd 1.2 & myTime,myIter,myThid)
17 jahn 1.1 #include "SIZE.h"
18     #include "EEPARAMS.h"
19     #include "PARAMS.h"
20     #include "GRID.h"
21     #include "PTRACERS_SIZE.h"
22     #include "PTRACERS_PARAMS.h"
23     #include "PTRACERS_FIELDS.h"
24     #include "GCHEM.h"
25     #include "MONOD_SIZE.h"
26     #include "MONOD.h"
27     #include "DARWIN_IO.h"
28     #include "DYNVARS.h"
29    
30     C === Global variables ===
31     INTEGER myIter
32     _RL myTime
33     INTEGER myThid
34    
35     #ifdef CHECK_CONS
36     C============== Local variables ============================================
37     _RL tmptotP
38     _RL tmptotN
39     _RL tmptotSi
40     _RL tmptotFe
41     #ifdef ALLOW_CARBON
42     _RL tmptotC
43     _RL tmptotA
44     _RL tmptotO
45     #endif
46     _RL vol, voltot
47    
48     INTEGER i,j,k,bi,bj
49     INTEGER np, nz, npnum
50    
51    
52     c
53     tmptotP=0. _d 0
54     tmptotN=0. _d 0
55     tmptotFe=0. _d 0
56     tmptotSi=0. _d 0
57     #ifdef ALLOW_CARBON
58     tmptotC=0. _d 0
59     tmptotA=0. _d 0
60     tmptotO=0. _d 0
61     #endif
62     voltot=0. _d 0
63    
64     DO bj=myByLo(myThid),myByHi(myThid)
65     DO bi=myBxLo(myThid),myBxHi(myThid)
66    
67     DO i=1,sNx
68     DO j=1,sNy
69     do k= 1, NR
70     c-----------------------------------------------------------------
71     vol=rA(i,j,bi,bj)*drF(k)
72     voltot=voltot+vol
73     c Phosphorus budget
74     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,iPO4)*vol !PO4
75     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,iDOP)*vol !DOP
76     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,iPOP)*vol !POP
77     do nz=1,nzmax
78     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,iZooP(nz))*vol !ZOO1P
79     enddo
80     do np=1,npmax
81     npnum=iPhy+np-1
82     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,npnum)*vol !Phy
83     enddo
84 stephd 1.5 #ifdef ALLOW_CDOM
85     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,iCDOM)*vol !CDOM
86     #endif
87 jahn 1.1 c Nitrogen budget
88     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iNO3)*vol !NO3
89     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iNH4)*vol !NH4
90     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iNO2)*vol !NO2
91     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iDON)*vol !DON
92     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iPON)*vol !PON
93     do nz=1,nzmax
94     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iZooN(nz))*vol !ZOO1N
95     enddo
96     do np=1,npmax
97     npnum=iPhy+np-1
98     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,npnum)*R_NP(np)*vol !Phy
99     enddo
100 stephd 1.5 #ifdef ALLOW_CDOM
101     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iCDOM)*rnp_cdom*vol !CDOM
102     #endif
103 jahn 1.1 c Iron budget
104     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,iFeT)*vol !Fet
105     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,iDOFe)*vol !DOFe
106     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,iPOFe)*vol !POFe
107     do nz=1,nzmax
108     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,iZooFe(nz))*vol !ZOO1Fe
109     enddo
110     do np=1,npmax
111     npnum=iPhy+np-1
112     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,npnum)*R_FeP(np)*vol !Phy
113     enddo
114 stephd 1.5 #ifdef ALLOW_CDOM
115     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,iCDOM)*rfep_cdom*vol !CDOM
116     #endif
117 jahn 1.1 c Silica budget
118     tmptotSi=tmptotSi+Ptracer(i,j,k,bi,bj,iSi)*vol !Si
119     tmptotSi=tmptotSi+Ptracer(i,j,k,bi,bj,iPOSi)*vol !POSi
120     do nz=1,nzmax
121     tmptotSi=tmptotSi+Ptracer(i,j,k,bi,bj,iZooSi(nz))*vol !ZOO1Si
122     enddo
123     do np=1,npmax
124     npnum=iPhy+np-1
125     tmptotSi=tmptotSi+Ptracer(i,j,k,bi,bj,npnum)*R_SiP(np)*vol !Phy
126     enddo
127     c------------------------------------------------------------
128     #ifdef ALLOW_CARBON
129     c carbon budget
130     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iDIC)*vol !DIC
131     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iDOC)*vol !DOC
132     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iPOC)*vol !POC
133     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iPIC)*vol !PIC
134     do nz=1,nzmax
135     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iZooC(nz))*vol !ZOOC
136     enddo
137     do np=1,npmax
138     npnum=iPhy+np-1
139     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,npnum)*R_PC(np)*vol !Phy
140     enddo
141 stephd 1.5 #ifdef ALLOW_CDOM
142     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iCDOM)*rcp_cdom*vol !CDOM
143     #endif
144 jahn 1.1 c alkalinity budget !!!!! NOT FULL BUDGET!!!!!
145     tmptotA=tmptotA+Ptracer(i,j,k,bi,bj,iALK)*vol !ALK
146     c oxygem budget !!!!!!!! NOT FULL BUDGET !!!!!!!!!!!
147     tmptotO=tmptotO+Ptracer(i,j,k,bi,bj,iO2)*vol !O2
148     #endif
149     enddo
150     ENDDO
151     ENDDO
152     ENDDO
153     ENDDO
154    
155     _GLOBAL_SUM_RL(tmptotP,myThid)
156     _GLOBAL_SUM_RL(tmptotN,myThid)
157     _GLOBAL_SUM_RL(tmptotFe,myThid)
158     _GLOBAL_SUM_RL(tmptotSi,myThid)
159     _GLOBAL_SUM_RL(voltot,myThid)
160     #ifdef ALLOW_CARBON
161     _GLOBAL_SUM_RL(tmptotC,myThid)
162     _GLOBAL_SUM_RL(tmptotA,myThid)
163     _GLOBAL_SUM_RL(tmptotO,myThid)
164     #endif
165    
166    
167     c print*,'tmptotP',tmptotP
168     c print*,'tmptotN',tmptotN
169     c print*,'tmptotFe',tmptotFe
170     c print*,'tmptotSi',tmptotSi
171     #ifdef ALLOW_CARBON
172     c print*,'tmptotC',tmptotC
173     c print*,'tmptotA',tmptotA
174     c print*,'tmptotO',tmptotO
175     #endif
176    
177 jahn 1.3 IF ( myProcId.EQ.0 .AND. myThid.EQ.1 ) THEN
178 jahn 1.1 write(DAR_cons_unit1,*), myIter, tmptotP, tmptotP/voltot
179     write(DAR_cons_unit2,*), myIter, tmptotN, tmptotN/voltot
180     write(DAR_cons_unit3,*), myIter, tmptotFe, tmptotFe/voltot
181     write(DAR_cons_unit4,*), myIter, tmptotSi, tmptotSi/voltot
182     #ifdef ALLOW_CARBON
183     write(DAR_cons_unit5,*), myIter, tmptotC, tmptotC/voltot
184     write(DAR_cons_unit6,*), myIter, tmptotA, tmptotA/voltot
185     write(DAR_cons_unit7,*), myIter, tmptotO, tmptotO/voltot
186     #endif
187 jahn 1.3 ENDIF
188 jahn 1.1
189     C-- Everyone else must wait
190     _BARRIER
191     #endif
192     c
193     c -----------------------------------------------------
194     RETURN
195     END
196     #endif /*MONOD*/
197     #endif /*ALLOW_PTRACERS*/
198    
199     C============================================================================

  ViewVC Help
Powered by ViewVC 1.1.22