/[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.2 - (hide annotations) (download)
Wed May 11 17:36:09 2011 UTC (14 years, 2 months ago) by stephd
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt62y_20110526, ctrb_darwin2_ckpt62x_20110513, ctrb_darwin2_ckpt63b_20110830, ctrb_darwin2_ckpt63a_20110804, ctrb_darwin2_ckpt63_20110728, ctrb_darwin2_ckpt62z_20110622
Changes since 1.1: +3 -3 lines
o subroutine arguments in wrong order

1 stephd 1.2 C $Header: /u/gcmpack/MITgcm_contrib/darwin2/pkg/monod/monod_cons.F,v 1.1 2011/04/13 18:56:25 jahn Exp $
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     _BEGIN_MASTER(myThid)
53     c
54     tmptotP=0. _d 0
55     tmptotN=0. _d 0
56     tmptotFe=0. _d 0
57     tmptotSi=0. _d 0
58     #ifdef ALLOW_CARBON
59     tmptotC=0. _d 0
60     tmptotA=0. _d 0
61     tmptotO=0. _d 0
62     #endif
63     voltot=0. _d 0
64    
65     DO bj=myByLo(myThid),myByHi(myThid)
66     DO bi=myBxLo(myThid),myBxHi(myThid)
67    
68     DO i=1,sNx
69     DO j=1,sNy
70     do k= 1, NR
71     c-----------------------------------------------------------------
72     vol=rA(i,j,bi,bj)*drF(k)
73     voltot=voltot+vol
74     c Phosphorus budget
75     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,iPO4)*vol !PO4
76     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,iDOP)*vol !DOP
77     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,iPOP)*vol !POP
78     do nz=1,nzmax
79     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,iZooP(nz))*vol !ZOO1P
80     enddo
81     do np=1,npmax
82     npnum=iPhy+np-1
83     tmptotP=tmptotP+Ptracer(i,j,k,bi,bj,npnum)*vol !Phy
84     enddo
85     c Nitrogen budget
86     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iNO3)*vol !NO3
87     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iNH4)*vol !NH4
88     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iNO2)*vol !NO2
89     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iDON)*vol !DON
90     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iPON)*vol !PON
91     do nz=1,nzmax
92     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,iZooN(nz))*vol !ZOO1N
93     enddo
94     do np=1,npmax
95     npnum=iPhy+np-1
96     tmptotN=tmptotN+Ptracer(i,j,k,bi,bj,npnum)*R_NP(np)*vol !Phy
97     enddo
98     c Iron budget
99     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,iFeT)*vol !Fet
100     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,iDOFe)*vol !DOFe
101     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,iPOFe)*vol !POFe
102     do nz=1,nzmax
103     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,iZooFe(nz))*vol !ZOO1Fe
104     enddo
105     do np=1,npmax
106     npnum=iPhy+np-1
107     tmptotFe=tmptotFe+Ptracer(i,j,k,bi,bj,npnum)*R_FeP(np)*vol !Phy
108     enddo
109     c Silica budget
110     tmptotSi=tmptotSi+Ptracer(i,j,k,bi,bj,iSi)*vol !Si
111     tmptotSi=tmptotSi+Ptracer(i,j,k,bi,bj,iPOSi)*vol !POSi
112     do nz=1,nzmax
113     tmptotSi=tmptotSi+Ptracer(i,j,k,bi,bj,iZooSi(nz))*vol !ZOO1Si
114     enddo
115     do np=1,npmax
116     npnum=iPhy+np-1
117     tmptotSi=tmptotSi+Ptracer(i,j,k,bi,bj,npnum)*R_SiP(np)*vol !Phy
118     enddo
119     c------------------------------------------------------------
120     #ifdef ALLOW_CARBON
121     c carbon budget
122     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iDIC)*vol !DIC
123     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iDOC)*vol !DOC
124     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iPOC)*vol !POC
125     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iPIC)*vol !PIC
126     do nz=1,nzmax
127     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,iZooC(nz))*vol !ZOOC
128     enddo
129     do np=1,npmax
130     npnum=iPhy+np-1
131     tmptotC=tmptotC+Ptracer(i,j,k,bi,bj,npnum)*R_PC(np)*vol !Phy
132     enddo
133     c alkalinity budget !!!!! NOT FULL BUDGET!!!!!
134     tmptotA=tmptotA+Ptracer(i,j,k,bi,bj,iALK)*vol !ALK
135     c oxygem budget !!!!!!!! NOT FULL BUDGET !!!!!!!!!!!
136     tmptotO=tmptotO+Ptracer(i,j,k,bi,bj,iO2)*vol !O2
137     #endif
138     enddo
139     ENDDO
140     ENDDO
141     ENDDO
142     ENDDO
143    
144     _GLOBAL_SUM_RL(tmptotP,myThid)
145     _GLOBAL_SUM_RL(tmptotN,myThid)
146     _GLOBAL_SUM_RL(tmptotFe,myThid)
147     _GLOBAL_SUM_RL(tmptotSi,myThid)
148     _GLOBAL_SUM_RL(voltot,myThid)
149     #ifdef ALLOW_CARBON
150     _GLOBAL_SUM_RL(tmptotC,myThid)
151     _GLOBAL_SUM_RL(tmptotA,myThid)
152     _GLOBAL_SUM_RL(tmptotO,myThid)
153     #endif
154    
155    
156     c print*,'tmptotP',tmptotP
157     c print*,'tmptotN',tmptotN
158     c print*,'tmptotFe',tmptotFe
159     c print*,'tmptotSi',tmptotSi
160     #ifdef ALLOW_CARBON
161     c print*,'tmptotC',tmptotC
162     c print*,'tmptotA',tmptotA
163     c print*,'tmptotO',tmptotO
164     #endif
165    
166     write(DAR_cons_unit1,*), myIter, tmptotP, tmptotP/voltot
167     write(DAR_cons_unit2,*), myIter, tmptotN, tmptotN/voltot
168     write(DAR_cons_unit3,*), myIter, tmptotFe, tmptotFe/voltot
169     write(DAR_cons_unit4,*), myIter, tmptotSi, tmptotSi/voltot
170     #ifdef ALLOW_CARBON
171     write(DAR_cons_unit5,*), myIter, tmptotC, tmptotC/voltot
172     write(DAR_cons_unit6,*), myIter, tmptotA, tmptotA/voltot
173     write(DAR_cons_unit7,*), myIter, tmptotO, tmptotO/voltot
174     #endif
175    
176     _END_MASTER(myThid)
177    
178     C-- Everyone else must wait
179     _BARRIER
180     #endif
181     c
182     c -----------------------------------------------------
183     RETURN
184     END
185     #endif /*MONOD*/
186     #endif /*ALLOW_PTRACERS*/
187    
188     C============================================================================

  ViewVC Help
Powered by ViewVC 1.1.22