File indexing completed on 2025-06-13 05:08:41 UTC
view on githubraw file Latest commit b26a461d on 2025-06-12 20:15:47 UTC
6d54cf9ca1 Ed H*0001 #include "DIC_OPTIONS.h"
b26a461de7 Mart*0002 #ifdef ALLOW_AUTODIFF
0003 # include "AUTODIFF_OPTIONS.h"
0004 #endif
daab022f42 Step*0005
08536d17ba Step*0006
0007
0008
0009
da9555d02d Jean*0010 SUBROUTINE DIC_BIOTIC_FORCING(
0011 U PTR_DIC, PTR_ALK, PTR_PO4, PTR_DOP,
25bac1e456 Step*0012 #ifdef ALLOW_O2
da9555d02d Jean*0013 U PTR_O2,
25bac1e456 Step*0014 #endif
daab022f42 Step*0015 #ifdef ALLOW_FE
da9555d02d Jean*0016 U PTR_FE,
daab022f42 Step*0017 #endif
da9555d02d Jean*0018 I bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0019 I myTime, myIter, myThid )
daab022f42 Step*0020
08536d17ba Step*0021
0022
0023
daab022f42 Step*0024
08536d17ba Step*0025
0026 IMPLICIT NONE
daab022f42 Step*0027 #include "SIZE.h"
0028 #include "EEPARAMS.h"
0029 #include "PARAMS.h"
0030 #include "GRID.h"
da9555d02d Jean*0031 #include "DYNVARS.h"
2ef8966791 Davi*0032 #include "DIC_VARS.h"
c3ce348a09 Davi*0033 #include "PTRACERS_SIZE.h"
0034 #include "PTRACERS_PARAMS.h"
b26a461de7 Mart*0035 #ifdef ALLOW_AUTODIFF_TAMC
0036 # include "tamc.h"
0037 #endif
daab022f42 Step*0038
da9555d02d Jean*0039
08536d17ba Step*0040
0041
0042
0043
0044
0045
da9555d02d Jean*0046
0047
2e3e8c330d Jona*0048
da9555d02d Jean*0049
daab022f42 Step*0050 _RL PTR_DIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0051 _RL PTR_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0052 _RL PTR_PO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0053 _RL PTR_DOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
25bac1e456 Step*0054 #ifdef ALLOW_O2
daab022f42 Step*0055 _RL PTR_O2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
25bac1e456 Step*0056 #endif
daab022f42 Step*0057 #ifdef ALLOW_FE
0058 _RL PTR_FE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0059 #endif
da9555d02d Jean*0060 INTEGER bi, bj, iMin, iMax, jMin, jMax
0061 _RL myTime
2e3e8c330d Jona*0062 INTEGER myIter
da9555d02d Jean*0063 INTEGER myThid
daab022f42 Step*0064
0065 #ifdef DIC_BIOTIC
2e3e8c330d Jona*0066
0067 LOGICAL DIFFERENT_MULTIPLE
0068 EXTERNAL DIFFERENT_MULTIPLE
08536d17ba Step*0069
0070
0071
0072
0073
0074
0075
0076
ac7a11a12a Davi*0077
08536d17ba Step*0078
3c9c51750e Jean*0079
e18333c42b Davi*0080
bcb0b0f435 Davi*0081
e18333c42b Davi*0082
0083
3c9c51750e Jean*0084
e18333c42b Davi*0085
0086
daab022f42 Step*0087 _RL GDIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0088 _RL GALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0089 _RL GPO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0090 _RL GDOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0091 _RL SURA(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0092 _RL SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0093 _RL SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0094 _RL CAR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
bcb0b0f435 Davi*0095 _RL BIOac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
e18333c42b Davi*0096 _RL RDOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
daab022f42 Step*0097 _RL pflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
65132eb687 Step*0098 _RL exportflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
e18333c42b Davi*0099 _RL CAR_S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
daab022f42 Step*0100 _RL cflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
25bac1e456 Step*0101 #ifdef ALLOW_O2
0102 _RL GO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0103 #endif
daab022f42 Step*0104 #ifdef ALLOW_FE
0105 _RL GFE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0106 _RL freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0107 #endif
5979b35251 Jean*0108 INTEGER i,j,k
9b2642687a Jean*0109 #ifdef ALLOW_FE
0110 # ifdef SEDFE
5979b35251 Jean*0111 INTEGER kBottom
9b2642687a Jean*0112 # endif
0113 #endif
b26a461de7 Mart*0114 #ifdef ALLOW_AUTODIFF_TAMC
0115
0116 INTEGER tkey
0117 #endif
08536d17ba Step*0118
daab022f42 Step*0119
5979b35251 Jean*0120 #ifdef ALLOW_DEBUG
0121 IF (debugMode) CALL DEBUG_ENTER('DIC_BIOTIC_FORCING',myThid)
0122 #endif
0123
b26a461de7 Mart*0124 #ifdef ALLOW_AUTODIFF_TAMC
0125 tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy
0126 #endif
f18a542536 Jean*0127 IF ( useThSIce .OR. useSEAICE .OR. useCoupler ) THEN
0128 #ifdef ALLOW_DEBUG
0129 IF (debugMode) CALL DEBUG_CALL('DIC_FIELDS_UPDATE',myThid)
0130 #endif
0131 CALL DIC_FIELDS_UPDATE(
0132 I bi, bj, myTime, myIter, myThid )
0133 ENDIF
0134
daab022f42 Step*0135 DO k=1,Nr
0136 DO j=1-OLy,sNy+OLy
0137 DO i=1-OLx,sNx+OLx
e18333c42b Davi*0138 RDOP(i,j,k) =0. _d 0
bcb0b0f435 Davi*0139 GDIC(i,j,k) =0. _d 0
0140 GALK(i,j,k) =0. _d 0
0141 GPO4(i,j,k) =0. _d 0
0142 GDOP(i,j,k) =0. _d 0
0143 CAR(i,j,k) =0. _d 0
0144 BIOac(i,j,k) =0. _d 0
0145 pflux(i,j,k) =0. _d 0
0146 exportflux(i,j,k)=0. _d 0
0147 cflux(i,j,k) =0. _d 0
e18333c42b Davi*0148 CAR_S(i,j,k) =0. _d 0
25bac1e456 Step*0149 #ifdef ALLOW_O2
bcb0b0f435 Davi*0150 GO2(i,j,k) =0. _d 0
25bac1e456 Step*0151 #endif
daab022f42 Step*0152 #ifdef ALLOW_FE
bcb0b0f435 Davi*0153 GFE(i,j,k) =0. _d 0
85d94247b5 Jean*0154
0155
daab022f42 Step*0156 #endif
0157 ENDDO
0158 ENDDO
0159 ENDDO
da9555d02d Jean*0160 DO j=1-OLy,sNy+OLy
0161 DO i=1-OLx,sNx+OLx
ac7a11a12a Davi*0162 SURA(i,j) =0. _d 0
0163 SURC(i,j) =0. _d 0
0164 SURO(i,j) =0. _d 0
0165 ENDDO
da9555d02d Jean*0166 ENDDO
daab022f42 Step*0167
6bf15b6a7c Jean*0168
5979b35251 Jean*0169 #ifdef ALLOW_DEBUG
0170 IF (debugMode) CALL DEBUG_CALL('DIC_SURFFORCING',myThid)
0171 #endif
da9555d02d Jean*0172 CALL DIC_SURFFORCING(
0173 I PTR_DIC, PTR_ALK, PTR_PO4,
0174 O SURC,
0175 I bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0176 I myTime, myIter, myThid )
daab022f42 Step*0177
b26a461de7 Mart*0178 #ifdef ALLOW_AUTODIFF_TAMC
0179
0180 #endif
0181
6bf15b6a7c Jean*0182
5979b35251 Jean*0183 #ifdef ALLOW_DEBUG
0184 IF (debugMode) CALL DEBUG_CALL('ALK_SURFFORCING',myThid)
0185 #endif
da9555d02d Jean*0186 CALL ALK_SURFFORCING(
0187 I PTR_ALK,
0188 O SURA,
0189 I bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0190 I myTime, myIter, myThid )
daab022f42 Step*0191
25bac1e456 Step*0192 #ifdef ALLOW_O2
6bf15b6a7c Jean*0193
5979b35251 Jean*0194 #ifdef ALLOW_DEBUG
0195 IF (debugMode) CALL DEBUG_CALL('O2_SURFFORCING',myThid)
0196 #endif
da9555d02d Jean*0197 CALL O2_SURFFORCING(
0198 I PTR_O2,
0199 O SURO,
0200 I bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0201 I myTime, myIter, myThid )
25bac1e456 Step*0202 #endif
daab022f42 Step*0203
0204 #ifdef ALLOW_FE
6bf15b6a7c Jean*0205
5979b35251 Jean*0206 #ifdef ALLOW_DEBUG
0207 IF (debugMode) CALL DEBUG_CALL('FE_CHEM',myThid)
0208 #endif
da9555d02d Jean*0209 CALL FE_CHEM( bi, bj, iMin, iMax, jMin, jMax,
0210 U PTR_FE,
0211 O freefe,
0212 I myIter, myThid )
daab022f42 Step*0213 #endif
0214
6bf15b6a7c Jean*0215
5979b35251 Jean*0216 #ifdef ALLOW_DEBUG
0217 IF (debugMode) CALL DEBUG_CALL('BIO_EXPORT',myThid)
0218 #endif
da9555d02d Jean*0219 CALL BIO_EXPORT(
2e3e8c330d Jona*0220 I PTR_PO4,
daab022f42 Step*0221 #ifdef ALLOW_FE
2e3e8c330d Jona*0222 I PTR_FE,
3c9c51750e Jean*0223 #endif
2e3e8c330d Jona*0224 O BIOac,
0225 I bi, bj, iMin, iMax, jMin, jMax,
0226 I myTime, myIter, myThid )
b26a461de7 Mart*0227 #ifdef ALLOW_AUTODIFF_TAMC
0228
0229 #endif
daab022f42 Step*0230
6bf15b6a7c Jean*0231
5979b35251 Jean*0232 #ifdef ALLOW_DEBUG
0233 IF (debugMode) CALL DEBUG_CALL('PHOS_FLUX',myThid)
0234 #endif
da9555d02d Jean*0235 CALL PHOS_FLUX(
2e3e8c330d Jona*0236 I BIOac,
0237 U pflux, exportflux,
0238 I bi, bj, iMin, iMax, jMin, jMax,
0239 I myTime, myIter, myThid )
daab022f42 Step*0240
e18333c42b Davi*0241
0242 DO k=1,Nr
da9555d02d Jean*0243 DO j=jMin,jMax
0244 DO i=iMin,iMax
e18333c42b Davi*0245 CAR_S(i,j,k)=BIOac(i,j,k)*R_CP*rain_ratio(i,j,bi,bj)*
3c9c51750e Jean*0246 & (1. _d 0-DOPfraction)
e18333c42b Davi*0247 ENDDO
0248 ENDDO
0249 ENDDO
0250
6bf15b6a7c Jean*0251
2e3e8c330d Jona*0252 #ifdef DIC_CALCITE_SAT
0253 IF ( useCalciteSaturation ) THEN
0254
0255
0256
0257
ae2be6150b Jona*0258 IF ( myIter.EQ.(nIter0 + 1) .OR.
0259 & DIFFERENT_MULTIPLE( calcOmegaCalciteFreq,
0260 & myTime, deltaTClock ) ) THEN
5979b35251 Jean*0261 #ifdef ALLOW_DEBUG
0262 IF (debugMode) CALL DEBUG_CALL('CALCITE_SATURATION',myThid)
0263 #endif
0264 CALL CALCITE_SATURATION(
da9555d02d Jean*0265 I PTR_DIC, PTR_ALK, PTR_PO4,
0266 I bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0267 I myTime, myIter, myThid )
4e9f2133df Step*0268 ENDIF
5979b35251 Jean*0269 #ifdef ALLOW_DEBUG
0270 IF (debugMode) CALL DEBUG_CALL('CAR_FLUX_OMEGA_TOP',myThid)
0271 #endif
da9555d02d Jean*0272 CALL CAR_FLUX_OMEGA_TOP(
0273 I BIOac,
0274 O cflux,
0275 I bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0276 I myTime, myIter, myThid )
0277 ELSE
0278 #endif /* DIC_CALCITE_SAT */
0279
0280
5979b35251 Jean*0281 #ifdef ALLOW_DEBUG
0282 IF (debugMode) CALL DEBUG_CALL('CAR_FLUX',myThid)
0283 #endif
2e3e8c330d Jona*0284 CALL CAR_FLUX(
da9555d02d Jean*0285 I CAR_S,
0286 U cflux,
0287 I bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0288 I myTime, myIter, myThid )
0289 #ifdef DIC_CALCITE_SAT
0290 ENDIF
0291 #endif /* DIC_CALCITE_SAT */
daab022f42 Step*0292
6bf15b6a7c Jean*0293
daab022f42 Step*0294 DO k=1,Nr
da9555d02d Jean*0295 DO j=jMin,jMax
0296 DO i=iMin,iMax
7e2ce5eae8 Davi*0297 #ifdef DIC_NO_NEG
0298 RDOP(i,j,k)= MAX(maskC(i,j,k,bi,bj)*KDOPRemin*PTR_DOP(i,j,k)
0299 & ,0. _d 0)
0300 #else
0301 RDOP(i,j,k)= maskC(i,j,k,bi,bj)*KDOPRemin*PTR_DOP(i,j,k)
0302 #endif
e18333c42b Davi*0303 GPO4(i,j,k)=-BIOac(i,j,k)+pflux(i,j,k) + RDOP(i,j,k)
ac7a11a12a Davi*0304
e18333c42b Davi*0305 car(i,j,k) = cflux(i,j,k) - CAR_S(i,j,k)
ac7a11a12a Davi*0306
e18333c42b Davi*0307 GDOP(i,j,k)=+BIOac(i,j,k)*DOPfraction - RDOP(i,j,k)
ac7a11a12a Davi*0308
0309 GALK(i,j,k)=+2. _d 0 *car(i,j,k)-R_NP*GPO4(i,j,k)
0310
0311 GDIC(i,j,k)=car(i,j,k)+R_CP*GPO4(i,j,k)
0312
25bac1e456 Step*0313 #ifdef ALLOW_O2
ac7a11a12a Davi*0314 if (PTR_O2(i,j,k).GT.O2crit) then
0315 GO2(i,j,k)= R_OP*GPO4(i,j,k)
daab022f42 Step*0316 else
ac7a11a12a Davi*0317 GO2(i,j,k)= 0. _d 0
daab022f42 Step*0318 endif
25bac1e456 Step*0319 #endif
daab022f42 Step*0320 #ifdef ALLOW_FE
e18333c42b Davi*0321 GFE(i,j,k) = R_FeP*GPO4(i,j,k)
0322 & -Kscav*freefe(i,j,k)
daab022f42 Step*0323 #endif
ac7a11a12a Davi*0324 ENDDO
0325 ENDDO
0326 ENDDO
0327
da9555d02d Jean*0328 DO j=jMin,jMax
0329 DO i=iMin,iMax
daab022f42 Step*0330 GALK(i,j,1)=GALK(i,j,1)+SURA(i,j)
0331 GDIC(i,j,1)=GDIC(i,j,1)+SURC(i,j)
25bac1e456 Step*0332 #ifdef ALLOW_O2
ac7a11a12a Davi*0333 GO2(i,j,1) =GO2(i,j,1)+SURO(i,j)
25bac1e456 Step*0334 #endif
daab022f42 Step*0335 #ifdef ALLOW_FE
0336 GFE(i,j,1)=GFE(i,j,1)+alpfe*
55d8dbd247 Step*0337 & InputFe(i,j,bi,bj)*recip_drF(1)
0338 & *recip_hFacC(i,j,1,bi,bj)
9b2642687a Jean*0339 # ifdef SEDFE
0340
0341 kBottom = MAX(kLowC(i,j,bi,bj),1)
0342 GFE(i,j,kBottom)=GFE(i,j,kBottom)
0343 & +( fesedflux_pcm*pflux(i,j,kBottom) + FeIntSec )
0344 & *recip_drF(kBottom)*recip_hFacC(i,j,kBottom,bi,bj)
0345 # endif
daab022f42 Step*0346 #endif
0347 ENDDO
da9555d02d Jean*0348 ENDDO
daab022f42 Step*0349
da9555d02d Jean*0350 IF ( useOBCS ) THEN
0351 DO k=1,Nr
0352 DO j=jMin,jMax
0353 DO i=iMin,iMax
0354 GDIC(i,j,k) = GDIC(i,j,k)*maskInC(i,j,bi,bj)
0355 GALK(i,j,k) = GALK(i,j,k)*maskInC(i,j,bi,bj)
0356 GPO4(i,j,k) = GPO4(i,j,k)*maskInC(i,j,bi,bj)
0357 GDOP(i,j,k) = GDOP(i,j,k)*maskInC(i,j,bi,bj)
0358 #ifdef ALLOW_O2
0359 GO2(i,j,k) = GO2(i,j,k)*maskInC(i,j,bi,bj)
0360 #endif
0361 #ifdef ALLOW_FE
0362 GFE(i,j,k) = GFE(i,j,k)*maskInC(i,j,bi,bj)
0363 #endif
0364 ENDDO
0365 ENDDO
0366 ENDDO
0367 ENDIF
daab022f42 Step*0368
0369
0370 DO k=1,Nr
da9555d02d Jean*0371 DO j=jMin,jMax
0372 DO i=iMin,iMax
daab022f42 Step*0373 PTR_DIC(i,j,k)=
c3ce348a09 Davi*0374 & PTR_DIC(i,j,k)+GDIC(i,j,k)*PTRACERS_dTLev(k)
daab022f42 Step*0375 PTR_ALK(i,j,k)=
c3ce348a09 Davi*0376 & PTR_ALK(i,j,k)+GALK(i,j,k)*PTRACERS_dTLev(k)
daab022f42 Step*0377 PTR_PO4(i,j,k)=
c3ce348a09 Davi*0378 & PTR_PO4(i,j,k)+GPO4(i,j,k)*PTRACERS_dTLev(k)
daab022f42 Step*0379 PTR_DOP(i,j,k)=
c3ce348a09 Davi*0380 & PTR_DOP(i,j,k)+GDOP(i,j,k)*PTRACERS_dTLev(k)
25bac1e456 Step*0381 #ifdef ALLOW_O2
daab022f42 Step*0382 PTR_O2(i,j,k)=
c3ce348a09 Davi*0383 & PTR_O2(i,j,k)+GO2(i,j,k)*PTRACERS_dTLev(k)
25bac1e456 Step*0384 #endif
daab022f42 Step*0385 #ifdef ALLOW_FE
0386 PTR_FE(i,j,k)=
c3ce348a09 Davi*0387 & PTR_FE(i,j,k)+GFE(i,j,k)*PTRACERS_dTLev(k)
daab022f42 Step*0388 #endif
0389 ENDDO
0390 ENDDO
0391 ENDDO
0392
9b8a71f139 Step*0393 #ifdef ALLOW_FE
0394 #ifdef MINFE
0395
5979b35251 Jean*0396 #ifdef ALLOW_DEBUG
0397 IF (debugMode) CALL DEBUG_CALL('FE_CHEM',myThid)
0398 #endif
da9555d02d Jean*0399 CALL FE_CHEM( bi, bj, iMin, iMax, jMin, jMax,
0400 U PTR_FE,
0401 O freefe,
0402 I myIter, myThid )
3c9c51750e Jean*0403 #endif
9b8a71f139 Step*0404 #endif
0405
3c9c51750e Jean*0406 #ifdef ALLOW_TIMEAVE
6bf15b6a7c Jean*0407
0955b89c88 Davi*0408 IF ( PTRACERS_taveFreq.GT.0. ) THEN
3c9c51750e Jean*0409 DO k=1,Nr
da9555d02d Jean*0410 DO j=jMin,jMax
0411 DO i=iMin,iMax
bcb0b0f435 Davi*0412 BIOave(i,j,k,bi,bj) =BIOave(i,j,k,bi,bj)+
85d94247b5 Jean*0413 & BIOac(i,j,k)*deltaTClock
bcb0b0f435 Davi*0414 CARave(i,j,k,bi,bj) =CARave(i,j,k,bi,bj)+
85d94247b5 Jean*0415 & CAR(i,j,k)*deltaTClock
bcb0b0f435 Davi*0416 pfluxave(i,j,k,bi,bj) =pfluxave(i,j,k,bi,bj) +
85d94247b5 Jean*0417 & pflux(i,j,k)*deltaTClock
bcb0b0f435 Davi*0418 epfluxave(i,j,k,bi,bj)=epfluxave(i,j,k,bi,bj) +
85d94247b5 Jean*0419 & exportflux(i,j,k)*deltaTClock
bcb0b0f435 Davi*0420 cfluxave(i,j,k,bi,bj) =cfluxave(i,j,k,bi,bj) +
85d94247b5 Jean*0421 & cflux(i,j,k)*deltaTClock
bcb0b0f435 Davi*0422 ENDDO
0423 ENDDO
3c9c51750e Jean*0424 ENDDO
da9555d02d Jean*0425 DO j=jMin,jMax
0426 DO i=iMin,iMax
bcb0b0f435 Davi*0427 SURave(i,j,bi,bj) =SURave(i,j,bi,bj)+
85d94247b5 Jean*0428 & SURC(i,j)*deltaTClock
25bac1e456 Step*0429 #ifdef ALLOW_O2
bcb0b0f435 Davi*0430 SUROave(i,j,bi,bj) =SUROave(i,j,bi,bj)+
85d94247b5 Jean*0431 & SURO(i,j)*deltaTClock
25bac1e456 Step*0432 #endif
bcb0b0f435 Davi*0433 pCO2ave(i,j,bi,bj) =pCO2ave(i,j,bi,bj)+
85d94247b5 Jean*0434 & pCO2(i,j,bi,bj)*deltaTClock
bcb0b0f435 Davi*0435 pHave(i,j,bi,bj) =pHave(i,j,bi,bj)+
85d94247b5 Jean*0436 & pH(i,j,bi,bj)*deltaTClock
6891e8b81c Step*0437 fluxCO2ave(i,j,bi,bj)=fluxCO2ave(i,j,bi,bj)+
85d94247b5 Jean*0438 & fluxCO2(i,j,bi,bj)*deltaTClock
daab022f42 Step*0439 ENDDO
0440 ENDDO
85d94247b5 Jean*0441 DIC_timeAve(bi,bj) = DIC_timeAve(bi,bj)+deltaTClock
3c9c51750e Jean*0442 ENDIF
bcb0b0f435 Davi*0443 #endif /* ALLOW_TIMEAVE*/
daab022f42 Step*0444
bcb0b0f435 Davi*0445
0446
0447 #ifdef ALLOW_DIAGNOSTICS
0448 IF ( useDiagnostics ) THEN
0449 CALL DIAGNOSTICS_FILL(BIOac ,'DICBIOA ',0,Nr,2,bi,bj,myThid)
0450 CALL DIAGNOSTICS_FILL(CAR ,'DICCARB ',0,Nr,2,bi,bj,myThid)
0451 CALL DIAGNOSTICS_FILL(pCO2 ,'DICPCO2 ',0,1 ,1,bi,bj,myThid)
0452 CALL DIAGNOSTICS_FILL(fluxCO2,'DICCFLX ',0,1 ,1,bi,bj,myThid)
0453 CALL DIAGNOSTICS_FILL(pH ,'DICPHAV ',0,1 ,1,bi,bj,myThid)
0454 CALL DIAGNOSTICS_FILL(SURC ,'DICTFLX ',0,1 ,2,bi,bj,myThid)
0455 #ifdef ALLOW_O2
0456 CALL DIAGNOSTICS_FILL(SURO ,'DICOFLX ',0,1 ,2,bi,bj,myThid)
daab022f42 Step*0457 #endif
bcb0b0f435 Davi*0458 ENDIF
0459 #endif /* ALLOW_DIAGNOSTICS */
0460
5979b35251 Jean*0461 #ifdef ALLOW_DEBUG
0462 IF (debugMode) CALL DEBUG_LEAVE('DIC_BIOTIC_FORCING',myThid)
0463 #endif
0464
bcb0b0f435 Davi*0465 #endif /* DIC_BIOTIC */
daab022f42 Step*0466
0467 RETURN
0468 END