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

Contents 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 - (show annotations) (download)
Wed May 11 17:36:09 2011 UTC (14 years, 3 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 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
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 & myTime,myIter,myThid)
17 #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