Back to home page

MITgcm

 
 

    


File indexing completed on 2024-08-30 05:10:51 UTC

view on githubraw file Latest commit ae2be615 on 2024-08-29 19:00:27 UTC
6d54cf9ca1 Ed H*0001 #include "DIC_OPTIONS.h"
daab022f42 Step*0002 
08536d17ba Step*0003 CBOP
                0004 C !ROUTINE: DIC_BIOTIC_FORCING
                0005 
                0006 C !INTERFACE: ==========================================================
da9555d02d Jean*0007       SUBROUTINE DIC_BIOTIC_FORCING(
                0008      U                      PTR_DIC, PTR_ALK, PTR_PO4, PTR_DOP,
25bac1e456 Step*0009 #ifdef ALLOW_O2
da9555d02d Jean*0010      U                      PTR_O2,
25bac1e456 Step*0011 #endif
daab022f42 Step*0012 #ifdef ALLOW_FE
da9555d02d Jean*0013      U                      PTR_FE,
daab022f42 Step*0014 #endif
da9555d02d Jean*0015      I                      bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0016      I                      myTime, myIter, myThid )
daab022f42 Step*0017 
08536d17ba Step*0018 C !DESCRIPTION:
                0019 C updates all the tracers for the effects of air-sea exchange, biological
                0020 c activity and remineralization
daab022f42 Step*0021 
08536d17ba Step*0022 C !USES: ===============================================================
                0023       IMPLICIT NONE
daab022f42 Step*0024 #include "SIZE.h"
                0025 #include "EEPARAMS.h"
                0026 #include "PARAMS.h"
                0027 #include "GRID.h"
da9555d02d Jean*0028 #include "DYNVARS.h"
2ef8966791 Davi*0029 #include "DIC_VARS.h"
c3ce348a09 Davi*0030 #include "PTRACERS_SIZE.h"
                0031 #include "PTRACERS_PARAMS.h"
daab022f42 Step*0032 
da9555d02d Jean*0033 C !INPUT/OUTPUT PARAMETERS: ===================================================
08536d17ba Step*0034 C  PTR_DIC              :: dissolced inorganic carbon
                0035 C  PTR_ALK              :: alkalinity
                0036 C  PTR_PO4              :: phosphate
                0037 c  PTR_DOP              :: dissolve organic phosphurous
                0038 c  PTR_O2               :: oxygen
                0039 C  PTR_FE               :: iron
da9555d02d Jean*0040 c  bi, bj               :: current tile indices
                0041 C  myTime               :: current time
2e3e8c330d Jona*0042 C  myIter               :: current timestep
da9555d02d Jean*0043 C  myThid               :: thread number
daab022f42 Step*0044       _RL  PTR_DIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0045       _RL  PTR_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0046       _RL  PTR_PO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0047       _RL  PTR_DOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
25bac1e456 Step*0048 #ifdef ALLOW_O2
daab022f42 Step*0049       _RL  PTR_O2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
25bac1e456 Step*0050 #endif
daab022f42 Step*0051 #ifdef ALLOW_FE
                0052       _RL  PTR_FE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0053 #endif
da9555d02d Jean*0054       INTEGER bi, bj, iMin, iMax, jMin, jMax
                0055       _RL myTime
2e3e8c330d Jona*0056       INTEGER myIter
da9555d02d Jean*0057       INTEGER myThid
daab022f42 Step*0058 
                0059 #ifdef DIC_BIOTIC
2e3e8c330d Jona*0060 C !FUNCTIONS:       ====================================================
                0061       LOGICAL  DIFFERENT_MULTIPLE
                0062       EXTERNAL DIFFERENT_MULTIPLE
08536d17ba Step*0063 
                0064 C !LOCAL VARIABLES: ====================================================
                0065 C  i,j,k                  :: loop indices
                0066 C  G*                     :: tendency term for the tracers
                0067 C  SURA                   :: tendency of alkalinity due to freshwater
                0068 C  SURC                   :: tendency of DIC due to air-sea exchange
                0069 C                            and virtual flux
                0070 C  SURO                   :: tendency of O2 due to air-sea exchange
ac7a11a12a Davi*0071 C  GPO4                   :: tendency of PO4 due to biological productivity,
08536d17ba Step*0072 C                            exchange with DOP pool and reminerization
3c9c51750e Jean*0073 C  CAR                    :: carbonate changes due to biological
e18333c42b Davi*0074 C                             productivity and remineralization
bcb0b0f435 Davi*0075 C  BIOac                  :: biological productivity
e18333c42b Davi*0076 C  RDOP                   :: DOP sink due to remineralization
                0077 C  pflux                  :: changes to PO4 due to flux and remineralization
3c9c51750e Jean*0078 C  CAR_S                  :: carbonate sink
e18333c42b Davi*0079 C  cflux                  :: carbonate changes due to flux and remineralization
                0080 C  freefe                 :: iron not bound to ligand
daab022f42 Step*0081       _RL  GDIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0082       _RL  GALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0083       _RL  GPO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0084       _RL  GDOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0085       _RL  SURA(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0086       _RL  SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0087       _RL  SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0088       _RL  CAR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
bcb0b0f435 Davi*0089       _RL  BIOac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
e18333c42b Davi*0090       _RL  RDOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
daab022f42 Step*0091       _RL  pflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
65132eb687 Step*0092       _RL  exportflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
e18333c42b Davi*0093       _RL  CAR_S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
daab022f42 Step*0094       _RL  cflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
25bac1e456 Step*0095 #ifdef ALLOW_O2
                0096       _RL  GO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0097 #endif
daab022f42 Step*0098 #ifdef ALLOW_FE
                0099       _RL  GFE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0100       _RL  freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0101 #endif
5979b35251 Jean*0102       INTEGER i,j,k
9b2642687a Jean*0103 #ifdef ALLOW_FE
                0104 # ifdef SEDFE
5979b35251 Jean*0105       INTEGER kBottom
9b2642687a Jean*0106 # endif
                0107 #endif
08536d17ba Step*0108 CEOP
daab022f42 Step*0109 
5979b35251 Jean*0110 #ifdef ALLOW_DEBUG
                0111       IF (debugMode) CALL DEBUG_ENTER('DIC_BIOTIC_FORCING',myThid)
                0112 #endif
                0113 
f18a542536 Jean*0114       IF ( useThSIce .OR. useSEAICE .OR. useCoupler ) THEN
                0115 #ifdef ALLOW_DEBUG
                0116         IF (debugMode) CALL DEBUG_CALL('DIC_FIELDS_UPDATE',myThid)
                0117 #endif
                0118         CALL DIC_FIELDS_UPDATE(
                0119      I                    bi, bj, myTime, myIter, myThid )
                0120       ENDIF
                0121 
daab022f42 Step*0122        DO k=1,Nr
                0123          DO j=1-OLy,sNy+OLy
                0124           DO i=1-OLx,sNx+OLx
e18333c42b Davi*0125            RDOP(i,j,k) =0. _d 0
bcb0b0f435 Davi*0126            GDIC(i,j,k) =0. _d 0
                0127            GALK(i,j,k) =0. _d 0
                0128            GPO4(i,j,k) =0. _d 0
                0129            GDOP(i,j,k) =0. _d 0
                0130            CAR(i,j,k)  =0. _d 0
                0131            BIOac(i,j,k)   =0. _d 0
                0132            pflux(i,j,k)   =0. _d 0
                0133            exportflux(i,j,k)=0. _d 0
                0134            cflux(i,j,k)   =0. _d 0
e18333c42b Davi*0135            CAR_S(i,j,k)   =0. _d 0
25bac1e456 Step*0136 #ifdef ALLOW_O2
bcb0b0f435 Davi*0137            GO2(i,j,k)     =0. _d 0
25bac1e456 Step*0138 #endif
daab022f42 Step*0139 #ifdef ALLOW_FE
bcb0b0f435 Davi*0140            GFE(i,j,k)     =0. _d 0
85d94247b5 Jean*0141 C  no longer needed after adding full initialisation of freefe in S/R FE_CHEM
                0142 c          freefe(i,j,k)  =0. _d 0
daab022f42 Step*0143 #endif
                0144           ENDDO
                0145          ENDDO
                0146        ENDDO
da9555d02d Jean*0147        DO j=1-OLy,sNy+OLy
                0148          DO i=1-OLx,sNx+OLx
ac7a11a12a Davi*0149            SURA(i,j)   =0. _d 0
                0150            SURC(i,j)   =0. _d 0
                0151            SURO(i,j)   =0. _d 0
                0152          ENDDO
da9555d02d Jean*0153        ENDDO
daab022f42 Step*0154 
6bf15b6a7c Jean*0155 C carbon air-sea interaction
5979b35251 Jean*0156 #ifdef ALLOW_DEBUG
                0157        IF (debugMode) CALL DEBUG_CALL('DIC_SURFFORCING',myThid)
                0158 #endif
da9555d02d Jean*0159        CALL DIC_SURFFORCING(
                0160      I                    PTR_DIC, PTR_ALK, PTR_PO4,
                0161      O                    SURC,
                0162      I                    bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0163      I                    myTime, myIter, myThid )
daab022f42 Step*0164 
6bf15b6a7c Jean*0165 C alkalinity air-sea interaction
5979b35251 Jean*0166 #ifdef ALLOW_DEBUG
                0167        IF (debugMode) CALL DEBUG_CALL('ALK_SURFFORCING',myThid)
                0168 #endif
da9555d02d Jean*0169        CALL ALK_SURFFORCING(
                0170      I                    PTR_ALK,
                0171      O                    SURA,
                0172      I                    bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0173      I                    myTime, myIter, myThid )
daab022f42 Step*0174 
25bac1e456 Step*0175 #ifdef ALLOW_O2
6bf15b6a7c Jean*0176 C oxygen air-sea interaction
5979b35251 Jean*0177 #ifdef ALLOW_DEBUG
                0178        IF (debugMode) CALL DEBUG_CALL('O2_SURFFORCING',myThid)
                0179 #endif
da9555d02d Jean*0180        CALL O2_SURFFORCING(
                0181      I                    PTR_O2,
                0182      O                    SURO,
                0183      I                    bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0184      I                    myTime, myIter, myThid )
25bac1e456 Step*0185 #endif
daab022f42 Step*0186 
                0187 #ifdef ALLOW_FE
6bf15b6a7c Jean*0188 C find free iron
5979b35251 Jean*0189 #ifdef ALLOW_DEBUG
                0190        IF (debugMode) CALL DEBUG_CALL('FE_CHEM',myThid)
                0191 #endif
da9555d02d Jean*0192        CALL FE_CHEM( bi, bj, iMin, iMax, jMin, jMax,
                0193      U               PTR_FE,
                0194      O               freefe,
                0195      I               myIter, myThid )
daab022f42 Step*0196 #endif
                0197 
6bf15b6a7c Jean*0198 C biological activity
5979b35251 Jean*0199 #ifdef ALLOW_DEBUG
                0200        IF (debugMode) CALL DEBUG_CALL('BIO_EXPORT',myThid)
                0201 #endif
da9555d02d Jean*0202        CALL BIO_EXPORT(
2e3e8c330d Jona*0203      I                    PTR_PO4,
daab022f42 Step*0204 #ifdef ALLOW_FE
2e3e8c330d Jona*0205      I                    PTR_FE,
3c9c51750e Jean*0206 #endif
2e3e8c330d Jona*0207      O                    BIOac,
                0208      I                    bi, bj, iMin, iMax, jMin, jMax,
                0209      I                    myTime, myIter, myThid )
daab022f42 Step*0210 
6bf15b6a7c Jean*0211 C flux of po4 from layers with biological activity
5979b35251 Jean*0212 #ifdef ALLOW_DEBUG
                0213        IF (debugMode) CALL DEBUG_CALL('PHOS_FLUX',myThid)
                0214 #endif
da9555d02d Jean*0215        CALL PHOS_FLUX(
2e3e8c330d Jona*0216      I                    BIOac,
                0217      U                    pflux, exportflux,
                0218      I                    bi, bj, iMin, iMax, jMin, jMax,
                0219      I                    myTime, myIter, myThid )
daab022f42 Step*0220 
e18333c42b Davi*0221 C- Carbonate sink
                0222        DO k=1,Nr
da9555d02d Jean*0223          DO j=jMin,jMax
                0224           DO i=iMin,iMax
e18333c42b Davi*0225              CAR_S(i,j,k)=BIOac(i,j,k)*R_CP*rain_ratio(i,j,bi,bj)*
3c9c51750e Jean*0226      &                    (1. _d 0-DOPfraction)
e18333c42b Davi*0227           ENDDO
                0228          ENDDO
                0229        ENDDO
                0230 
6bf15b6a7c Jean*0231 C carbonate
2e3e8c330d Jona*0232 #ifdef DIC_CALCITE_SAT
                0233        IF ( useCalciteSaturation ) THEN
                0234 C calcite dissolution occurs only below saturation horizon
                0235 C    code following method by Karsten Friis
                0236 C could be expensive, so find out if it is time to update the omega calcite
                0237 C    field (requires 3-d computation of pH).
ae2be6150b Jona*0238         IF ( myIter.EQ.(nIter0 + 1) .OR.
                0239      &       DIFFERENT_MULTIPLE( calcOmegaCalciteFreq,
                0240      &                           myTime, deltaTClock ) ) THEN
5979b35251 Jean*0241 #ifdef ALLOW_DEBUG
                0242           IF (debugMode) CALL DEBUG_CALL('CALCITE_SATURATION',myThid)
                0243 #endif
                0244           CALL CALCITE_SATURATION(
da9555d02d Jean*0245      I                    PTR_DIC, PTR_ALK, PTR_PO4,
                0246      I                    bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0247      I                    myTime, myIter, myThid )
4e9f2133df Step*0248         ENDIF
5979b35251 Jean*0249 #ifdef ALLOW_DEBUG
                0250         IF (debugMode) CALL DEBUG_CALL('CAR_FLUX_OMEGA_TOP',myThid)
                0251 #endif
da9555d02d Jean*0252         CALL CAR_FLUX_OMEGA_TOP(
                0253      I                    BIOac,
                0254      O                    cflux,
                0255      I                    bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0256      I                    myTime, myIter, myThid )
                0257        ELSE
                0258 #endif /* DIC_CALCITE_SAT */
                0259 C calcite dissolution occurs according to a power law scaled by zca
                0260 C    code follwing the old OCMIP way
5979b35251 Jean*0261 #ifdef ALLOW_DEBUG
                0262         IF (debugMode) CALL DEBUG_CALL('CAR_FLUX',myThid)
                0263 #endif
2e3e8c330d Jona*0264          CALL CAR_FLUX(
da9555d02d Jean*0265      I                    CAR_S,
                0266      U                    cflux,
                0267      I                    bi, bj, iMin, iMax, jMin, jMax,
2e3e8c330d Jona*0268      I                    myTime, myIter, myThid )
                0269 #ifdef DIC_CALCITE_SAT
                0270        ENDIF
                0271 #endif /* DIC_CALCITE_SAT */
daab022f42 Step*0272 
6bf15b6a7c Jean*0273 C add all tendencies for PO4, DOP, ALK, DIC
daab022f42 Step*0274        DO k=1,Nr
da9555d02d Jean*0275          DO j=jMin,jMax
                0276           DO i=iMin,iMax
7e2ce5eae8 Davi*0277 #ifdef DIC_NO_NEG
                0278            RDOP(i,j,k)= MAX(maskC(i,j,k,bi,bj)*KDOPRemin*PTR_DOP(i,j,k)
                0279      &                     ,0. _d 0)
                0280 #else
                0281            RDOP(i,j,k)= maskC(i,j,k,bi,bj)*KDOPRemin*PTR_DOP(i,j,k)
                0282 #endif
e18333c42b Davi*0283            GPO4(i,j,k)=-BIOac(i,j,k)+pflux(i,j,k) + RDOP(i,j,k)
ac7a11a12a Davi*0284 
e18333c42b Davi*0285            car(i,j,k) = cflux(i,j,k) - CAR_S(i,j,k)
ac7a11a12a Davi*0286 
e18333c42b Davi*0287            GDOP(i,j,k)=+BIOac(i,j,k)*DOPfraction - RDOP(i,j,k)
ac7a11a12a Davi*0288 
                0289            GALK(i,j,k)=+2. _d 0 *car(i,j,k)-R_NP*GPO4(i,j,k)
                0290 
                0291            GDIC(i,j,k)=car(i,j,k)+R_CP*GPO4(i,j,k)
                0292 
25bac1e456 Step*0293 #ifdef ALLOW_O2
ac7a11a12a Davi*0294            if (PTR_O2(i,j,k).GT.O2crit) then
                0295              GO2(i,j,k)= R_OP*GPO4(i,j,k)
daab022f42 Step*0296            else
ac7a11a12a Davi*0297              GO2(i,j,k)= 0. _d 0
daab022f42 Step*0298            endif
25bac1e456 Step*0299 #endif
daab022f42 Step*0300 #ifdef ALLOW_FE
e18333c42b Davi*0301            GFE(i,j,k) = R_FeP*GPO4(i,j,k)
                0302      &                 -Kscav*freefe(i,j,k)
daab022f42 Step*0303 #endif
ac7a11a12a Davi*0304           ENDDO
                0305          ENDDO
                0306        ENDDO
                0307 
da9555d02d Jean*0308        DO j=jMin,jMax
                0309          DO i=iMin,iMax
daab022f42 Step*0310                GALK(i,j,1)=GALK(i,j,1)+SURA(i,j)
                0311                GDIC(i,j,1)=GDIC(i,j,1)+SURC(i,j)
25bac1e456 Step*0312 #ifdef ALLOW_O2
ac7a11a12a Davi*0313                GO2(i,j,1) =GO2(i,j,1)+SURO(i,j)
25bac1e456 Step*0314 #endif
daab022f42 Step*0315 #ifdef ALLOW_FE
                0316                GFE(i,j,1)=GFE(i,j,1)+alpfe*
55d8dbd247 Step*0317      &                    InputFe(i,j,bi,bj)*recip_drF(1)
                0318      &                       *recip_hFacC(i,j,1,bi,bj)
9b2642687a Jean*0319 # ifdef SEDFE
                0320 C include iron sediment source using the flux of po4 into bottom layer
                0321                kBottom   = MAX(kLowC(i,j,bi,bj),1)
                0322                GFE(i,j,kBottom)=GFE(i,j,kBottom)
                0323      &              +( fesedflux_pcm*pflux(i,j,kBottom) + FeIntSec )
                0324      &              *recip_drF(kBottom)*recip_hFacC(i,j,kBottom,bi,bj)
                0325 # endif
daab022f42 Step*0326 #endif
                0327          ENDDO
da9555d02d Jean*0328        ENDDO
daab022f42 Step*0329 
da9555d02d Jean*0330        IF ( useOBCS ) THEN
                0331         DO k=1,Nr
                0332          DO j=jMin,jMax
                0333           DO i=iMin,iMax
                0334             GDIC(i,j,k) = GDIC(i,j,k)*maskInC(i,j,bi,bj)
                0335             GALK(i,j,k) = GALK(i,j,k)*maskInC(i,j,bi,bj)
                0336             GPO4(i,j,k) = GPO4(i,j,k)*maskInC(i,j,bi,bj)
                0337             GDOP(i,j,k) = GDOP(i,j,k)*maskInC(i,j,bi,bj)
                0338 #ifdef ALLOW_O2
                0339             GO2(i,j,k)  =  GO2(i,j,k)*maskInC(i,j,bi,bj)
                0340 #endif
                0341 #ifdef ALLOW_FE
                0342             GFE(i,j,k)  =  GFE(i,j,k)*maskInC(i,j,bi,bj)
                0343 #endif
                0344           ENDDO
                0345          ENDDO
                0346         ENDDO
                0347        ENDIF
daab022f42 Step*0348 
                0349 C update
                0350        DO k=1,Nr
da9555d02d Jean*0351          DO j=jMin,jMax
                0352           DO i=iMin,iMax
daab022f42 Step*0353            PTR_DIC(i,j,k)=
c3ce348a09 Davi*0354      &      PTR_DIC(i,j,k)+GDIC(i,j,k)*PTRACERS_dTLev(k)
daab022f42 Step*0355            PTR_ALK(i,j,k)=
c3ce348a09 Davi*0356      &      PTR_ALK(i,j,k)+GALK(i,j,k)*PTRACERS_dTLev(k)
daab022f42 Step*0357            PTR_PO4(i,j,k)=
c3ce348a09 Davi*0358      &      PTR_PO4(i,j,k)+GPO4(i,j,k)*PTRACERS_dTLev(k)
daab022f42 Step*0359            PTR_DOP(i,j,k)=
c3ce348a09 Davi*0360      &      PTR_DOP(i,j,k)+GDOP(i,j,k)*PTRACERS_dTLev(k)
25bac1e456 Step*0361 #ifdef ALLOW_O2
daab022f42 Step*0362            PTR_O2(i,j,k)=
c3ce348a09 Davi*0363      &      PTR_O2(i,j,k)+GO2(i,j,k)*PTRACERS_dTLev(k)
25bac1e456 Step*0364 #endif
daab022f42 Step*0365 #ifdef ALLOW_FE
                0366            PTR_FE(i,j,k)=
c3ce348a09 Davi*0367      &      PTR_FE(i,j,k)+GFE(i,j,k)*PTRACERS_dTLev(k)
daab022f42 Step*0368 #endif
                0369           ENDDO
                0370          ENDDO
                0371        ENDDO
                0372 
9b8a71f139 Step*0373 #ifdef ALLOW_FE
                0374 #ifdef MINFE
                0375 c find free iron and get rid of insoluble part
5979b35251 Jean*0376 #ifdef ALLOW_DEBUG
                0377        IF (debugMode) CALL DEBUG_CALL('FE_CHEM',myThid)
                0378 #endif
da9555d02d Jean*0379        CALL FE_CHEM( bi, bj, iMin, iMax, jMin, jMax,
                0380      U               PTR_FE,
                0381      O               freefe,
                0382      I               myIter, myThid )
3c9c51750e Jean*0383 #endif
9b8a71f139 Step*0384 #endif
                0385 
3c9c51750e Jean*0386 #ifdef ALLOW_TIMEAVE
6bf15b6a7c Jean*0387 C save averages
0955b89c88 Davi*0388        IF ( PTRACERS_taveFreq.GT.0. ) THEN
3c9c51750e Jean*0389         DO k=1,Nr
da9555d02d Jean*0390          DO j=jMin,jMax
                0391           DO i=iMin,iMax
bcb0b0f435 Davi*0392             BIOave(i,j,k,bi,bj)   =BIOave(i,j,k,bi,bj)+
85d94247b5 Jean*0393      &                             BIOac(i,j,k)*deltaTClock
bcb0b0f435 Davi*0394             CARave(i,j,k,bi,bj)   =CARave(i,j,k,bi,bj)+
85d94247b5 Jean*0395      &                             CAR(i,j,k)*deltaTClock
bcb0b0f435 Davi*0396             pfluxave(i,j,k,bi,bj) =pfluxave(i,j,k,bi,bj) +
85d94247b5 Jean*0397      &                             pflux(i,j,k)*deltaTClock
bcb0b0f435 Davi*0398             epfluxave(i,j,k,bi,bj)=epfluxave(i,j,k,bi,bj) +
85d94247b5 Jean*0399      &                             exportflux(i,j,k)*deltaTClock
bcb0b0f435 Davi*0400             cfluxave(i,j,k,bi,bj) =cfluxave(i,j,k,bi,bj) +
85d94247b5 Jean*0401      &                             cflux(i,j,k)*deltaTClock
bcb0b0f435 Davi*0402           ENDDO
                0403          ENDDO
3c9c51750e Jean*0404         ENDDO
da9555d02d Jean*0405          DO j=jMin,jMax
                0406           DO i=iMin,iMax
bcb0b0f435 Davi*0407               SURave(i,j,bi,bj)    =SURave(i,j,bi,bj)+
85d94247b5 Jean*0408      &                              SURC(i,j)*deltaTClock
25bac1e456 Step*0409 #ifdef ALLOW_O2
bcb0b0f435 Davi*0410               SUROave(i,j,bi,bj)   =SUROave(i,j,bi,bj)+
85d94247b5 Jean*0411      &                              SURO(i,j)*deltaTClock
25bac1e456 Step*0412 #endif
bcb0b0f435 Davi*0413               pCO2ave(i,j,bi,bj)   =pCO2ave(i,j,bi,bj)+
85d94247b5 Jean*0414      &                              pCO2(i,j,bi,bj)*deltaTClock
bcb0b0f435 Davi*0415               pHave(i,j,bi,bj)     =pHave(i,j,bi,bj)+
85d94247b5 Jean*0416      &                              pH(i,j,bi,bj)*deltaTClock
6891e8b81c Step*0417               fluxCO2ave(i,j,bi,bj)=fluxCO2ave(i,j,bi,bj)+
85d94247b5 Jean*0418      &                           fluxCO2(i,j,bi,bj)*deltaTClock
daab022f42 Step*0419           ENDDO
                0420          ENDDO
85d94247b5 Jean*0421          DIC_timeAve(bi,bj) = DIC_timeAve(bi,bj)+deltaTClock
3c9c51750e Jean*0422        ENDIF
bcb0b0f435 Davi*0423 #endif /* ALLOW_TIMEAVE*/
daab022f42 Step*0424 
bcb0b0f435 Davi*0425 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0426 
                0427 #ifdef ALLOW_DIAGNOSTICS
                0428       IF ( useDiagnostics ) THEN
                0429         CALL DIAGNOSTICS_FILL(BIOac  ,'DICBIOA ',0,Nr,2,bi,bj,myThid)
                0430         CALL DIAGNOSTICS_FILL(CAR    ,'DICCARB ',0,Nr,2,bi,bj,myThid)
                0431         CALL DIAGNOSTICS_FILL(pCO2   ,'DICPCO2 ',0,1 ,1,bi,bj,myThid)
                0432         CALL DIAGNOSTICS_FILL(fluxCO2,'DICCFLX ',0,1 ,1,bi,bj,myThid)
                0433         CALL DIAGNOSTICS_FILL(pH     ,'DICPHAV ',0,1 ,1,bi,bj,myThid)
                0434         CALL DIAGNOSTICS_FILL(SURC   ,'DICTFLX ',0,1 ,2,bi,bj,myThid)
                0435 #ifdef ALLOW_O2
                0436         CALL DIAGNOSTICS_FILL(SURO   ,'DICOFLX ',0,1 ,2,bi,bj,myThid)
daab022f42 Step*0437 #endif
bcb0b0f435 Davi*0438       ENDIF
                0439 #endif /* ALLOW_DIAGNOSTICS */
                0440 
5979b35251 Jean*0441 #ifdef ALLOW_DEBUG
                0442       IF (debugMode) CALL DEBUG_LEAVE('DIC_BIOTIC_FORCING',myThid)
                0443 #endif
                0444 
bcb0b0f435 Davi*0445 #endif /* DIC_BIOTIC */
daab022f42 Step*0446 
                0447        RETURN
                0448        END