80 |
_RL SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
81 |
_RL SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
82 |
_RL BIO(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL BIO(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
83 |
|
_RL BIO_kar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
84 |
_RL CAR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL CAR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
85 |
_RL bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
86 |
_RL pflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL pflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
90 |
_RL freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
91 |
#endif |
#endif |
92 |
INTEGER I,J,k |
INTEGER I,J,k |
93 |
|
INTEGER nCALCITEstep |
94 |
CEOP |
CEOP |
95 |
|
|
96 |
DO k=1,Nr |
DO k=1,Nr |
105 |
SURC(i,j)=0.d0 |
SURC(i,j)=0.d0 |
106 |
CAR(i,j,k)=0.d0 |
CAR(i,j,k)=0.d0 |
107 |
BIO(i,j,k)=0.d0 |
BIO(i,j,k)=0.d0 |
108 |
|
BIO_kar(i,j,k)=0.d0 |
109 |
bioac(i,j,k)=0.d0 |
bioac(i,j,k)=0.d0 |
110 |
pflux(i,j,k)=0.d0 |
pflux(i,j,k)=0.d0 |
111 |
cflux(i,j,k)=0.d0 |
cflux(i,j,k)=0.d0 |
154 |
& myIter,myTime,myThid) |
& myIter,myTime,myThid) |
155 |
|
|
156 |
c carbonate |
c carbonate |
157 |
|
#ifdef CAR_DISS |
158 |
|
c dissolution only below saturation horizon |
159 |
|
c code following methid by Karsten Friis |
160 |
|
nCALCITEstep = 3600 |
161 |
|
IF(myIter .lt. (nIter0+5) .or. |
162 |
|
& mod(myIter,nCALCITEstep) .eq. 0)THEN |
163 |
|
CALL CALCITE_SATURATION( |
164 |
|
I bi,bj,imin,imax,jmin,jmax, |
165 |
|
I myIter,myTime,myThid) |
166 |
|
ENDIF |
167 |
|
c |
168 |
|
CALL CAR_FLUX_OMEGA_TOP( bioac, cflux, |
169 |
|
& bi,bj,imin,imax,jmin,jmax, |
170 |
|
& myIter,myTime,myThid) |
171 |
|
#else |
172 |
|
c old OCMIP way |
173 |
CALL CAR_FLUX( bioac, cflux, |
CALL CAR_FLUX( bioac, cflux, |
174 |
& bi,bj,imin,imax,jmin,jmax, |
& bi,bj,imin,imax,jmin,jmax, |
175 |
& myIter,myTime,myThid) |
& myIter,myTime,myThid) |
176 |
|
#endif |
177 |
|
|
178 |
c add all tendencies for PO4, DOP, ALK, DIC |
c add all tendencies for PO4, DOP, ALK, DIC |
179 |
DO k=1,Nr |
DO k=1,Nr |
187 |
GDOP(i,j,k)=+bioac(i,j,k)*DOPfraction |
GDOP(i,j,k)=+bioac(i,j,k)*DOPfraction |
188 |
& - maskC(i,j,k,bi,bj)*Kdopremin*PTR_DOP(i,j,k) |
& - maskC(i,j,k,bi,bj)*Kdopremin*PTR_DOP(i,j,k) |
189 |
GALK(i,j,k)=+2.d0*car(i,j,k)-R_NP*bio(i,j,k) |
GALK(i,j,k)=+2.d0*car(i,j,k)-R_NP*bio(i,j,k) |
190 |
|
BIO_kar(i,j,k)=R_NP*bio(i,j,k) |
191 |
GDIC(i,j,k)=car(i,j,k)+R_CP*bio(i,j,k) |
GDIC(i,j,k)=car(i,j,k)+R_CP*bio(i,j,k) |
192 |
if (PTR_O2(i,j,k).gt.o2crit) then |
if (PTR_O2(i,j,k).gt.o2crit) then |
193 |
GO2(i,j,k)=R_OP*bio(i,j,k) |
GO2(i,j,k)=R_OP*bio(i,j,k) |
243 |
& BIOac(i,j,k)*deltaTclock |
& BIOac(i,j,k)*deltaTclock |
244 |
CARave(i,j,k,bi,bj)=CARave(i,j,k,bi,bj)+ |
CARave(i,j,k,bi,bj)=CARave(i,j,k,bi,bj)+ |
245 |
& CAR(i,j,k)*deltaTclock |
& CAR(i,j,k)*deltaTclock |
246 |
|
OmegaCave(i,j,k,bi,bj)= OmegaCave(i,j,k,bi,bj)+ |
247 |
|
& OmegaC(i,j,k,bi,bj)*deltaTclock |
248 |
|
pfluxave(i,j,k,bi,bj)= pfluxave(i,j,k,bi,bj) + |
249 |
|
& pflux(i,j,k)*deltaTclock |
250 |
|
cfluxave(i,j,k,bi,bj)= cfluxave(i,j,k,bi,bj) + |
251 |
|
& cflux(i,j,k)*deltaTclock |
252 |
if (k.eq.1) then |
if (k.eq.1) then |
253 |
SURave(i,j,bi,bj)=SURave(i,j,bi,bj)+ |
SURave(i,j,bi,bj)=SURave(i,j,bi,bj)+ |
254 |
& SURC(i,j)*deltaTclock |
& SURC(i,j)*deltaTclock |