--- MITgcm_contrib/bling/pkg/bling_main.F 2014/05/23 17:33:43 1.1 +++ MITgcm_contrib/bling/pkg/bling_main.F 2016/02/28 21:49:24 1.3 @@ -1,11 +1,14 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm_contrib/bling/pkg/bling_main.F,v 1.1 2014/05/23 17:33:43 mmazloff Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm_contrib/bling/pkg/bling_main.F,v 1.3 2016/02/28 21:49:24 mmazloff Exp $ C $Name: $ #include "BLING_OPTIONS.h" CBOP - subroutine BLING_MAIN( PTR_DIC, PTR_ALK, PTR_NUT, - & PTR_DOM, PTR_O2, PTR_FE, + subroutine BLING_MAIN( PTR_DIC, PTR_ALK, PTR_O2, PTR_NO3, + & PTR_PO4, PTR_FE, PTR_DON, PTR_DOP, +#ifdef ADVECT_PHYTO + & PTR_PHY, +#endif & bi, bj, imin, imax, jmin, jmax, & myIter, myTime, myThid) @@ -28,7 +31,7 @@ #ifdef ALLOW_EXF # include "EXF_FIELDS.h" #endif -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF # include "tamc.h" #endif @@ -46,247 +49,203 @@ C === Input === C PTR_DIC :: dissolved inorganic carbon C PTR_ALK :: alkalinity -C PTR_NUT :: macro-nutrient concentration -C PTR_DOM :: dissolved organic matter concentration +C PTR_NO3 :: nitrate concentration +C PTR_PO4 :: phosphate concentration +C PTR_DON :: dissolved organic nitrogen concentration +C PTR_DOP :: dissolved organic phosphorus concentration C PTR_O2 :: oxygen concentration C PTR_FE :: iron concentration +C PTR_PHY :: total phytoplankton biomass _RL PTR_DIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL PTR_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL PTR_NUT(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL PTR_DOM(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL PTR_O2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL PTR_NO3(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL PTR_PO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL PTR_FE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - + _RL PTR_O2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL PTR_DON(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL PTR_DOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +#ifdef ADVECT_PHYTO + _RL PTR_PHY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +#endif C === Local variables === C i,j,k :: loop indices -C G* :: tendency term for the tracers -C SURC :: tendency of DIC due to air-sea exchange -C SURO :: tendency of O2 due to air-sea exchange -C NUT_uptake :: nutrient uptake for biological production -C POM_prod :: nutrient converted to particulate -C organic matter -C DOM_prod :: nutrient converted to dissolved organic -C matter -C DOM_remin :: DOM remineralization -C POM_remin :: POM sinking and instant remineralization -C NUT_remin :: Total nutrient remineralization -C NUT_recyc :: Fast nutrient recycling -C Fe_uptake :: iron converted to particulate organic or -C inorganic (colloidal) iron -C Fe_remin :: particulate iron converted to total iron -C CaCO3_prod :: uptake of carbonate ions for CaCO3 formation -C CaCO3_diss :: dissolution of CaCO3 -C Car :: carbonate ion biological production -C BioUp :: DIC biological production (<0) -C Remin :: DIC remineralization -C runoff* :: tendency due to river runoff +C G_xx :: tendency term for the tracers +C surf_DIC :: tendency of DIC due to air-sea exchange +C surf_O2 :: tendency of O2 due to air-sea exchange +C runoff_bgc :: tendency due to river runoff INTEGER i,j,k - _RL GDIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL GALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL GNUT(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL GDOM(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL GO2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL GFE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL NUT_uptake(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL NUT_remin (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL NUT_recyc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL POM_remin (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL POM_diss (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL POM_prod (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL DOM_prod (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL DOM_remin (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL CaCO3_prod(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL CaCO3_diss(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL Fe_uptake (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL Fe_remin (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL runoff_dic(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL runoff_alk(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL runoff_nut(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL runoff_dom(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL runoff_o2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL runoff_fe (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL BioUp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL Remin (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL Car (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - + _RL G_DIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL G_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL G_NO3(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL G_PO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL G_FE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL G_O2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL G_DON(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL G_DOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL G_CaCO3(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +#ifdef ADVECT_PHYTO + _RL G_PHY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +#endif + _RL bio_DIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL surf_DIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL surf_O2(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL irr_eff(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL mld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +cxx _RL runoff_bgc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,PTRACERS_num) + _RL runoff_bgc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,8) CEOP -C----------------------------------------------------------- -C Initialize local variables +c----------------------------------------------------------- +c Initialize local variables - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - GDIC(i,j,k) = 0. _d 0 - GALK(i,j,k) = 0. _d 0 - GNUT(i,j,k) = 0. _d 0 - GDOM(i,j,k) = 0. _d 0 - GO2(i,j,k) = 0. _d 0 - GFE(i,j,k) = 0. _d 0 - NUT_uptake(i,j,k) = 0. _d 0 - NUT_remin(i,j,k) = 0. _d 0 - NUT_recyc(i,j,k) = 0. _d 0 - DOM_remin(i,j,k) = 0. _d 0 - POM_remin(i,j,k) = 0. _d 0 - DOM_prod(i,j,k) = 0. _d 0 - POM_prod(i,j,k) = 0. _d 0 - CaCO3_prod(i,j,k) = 0. _d 0 - CaCO3_diss(i,j,k) = 0. _d 0 - Fe_uptake(i,j,k) = 0. _d 0 - Fe_remin(i,j,k) = 0. _d 0 - BioUp(i,j,k) = 0. _d 0 - Remin(i,j,k) = 0. _d 0 - Car(i,j,k) = 0. _d 0 - ENDDO - ENDDO - ENDDO - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - SURC(i,j) = 0. _d 0 - SURO(i,j) = 0. _d 0 - runoff_dic(i,j) = 0. _d 0 - runoff_alk(i,j) = 0. _d 0 - runoff_NUT(i,j) = 0. _d 0 - runoff_DOM(i,j) = 0. _d 0 - runoff_o2(i,j) = 0. _d 0 - runoff_fe(i,j) = 0. _d 0 - ENDDO + DO j=jmin,jmax + DO i=imin,imax + DO k=1,Nr + G_DIC(i,j,k) = 0. _d 0 + G_ALK(i,j,k) = 0. _d 0 + G_NO3(i,j,k) = 0. _d 0 + G_PO4(i,j,k) = 0. _d 0 + G_FE(i,j,k) = 0. _d 0 + G_O2(i,j,k) = 0. _d 0 + G_DON(i,j,k) = 0. _d 0 + G_DOP(i,j,k) = 0. _d 0 + G_CaCO3(i,j,k) = 0. _d 0 +#ifdef ADVECT_PHYTO + G_PHY(i,j,k) = 0. _d 0 +#endif + irr_eff(i,j,k) = 0. _d 0 + ENDDO +cxx DO k=1,PTRACERS_num + DO k=1,8 + runoff_bgc(i,j,k) = 0. _d 0 + ENDDO + bio_DIC(i,j,k) = 0. _d 0 + surf_DIC(i,j) = 0. _d 0 + surf_O2(i,j) = 0. _d 0 + mld(i,j) = 0. _d 0 ENDDO - -C----------------------------------------------------------- -C carbon and oxygen air-sea interaction + ENDDO + +c----------------------------------------------------------- +c carbon and oxygen air-sea interaction CALL BLING_AIRSEAFLUX( - I PTR_DIC, PTR_ALK, PTR_NUT, PTR_O2, - U SURC, SURO, + I PTR_DIC, PTR_ALK, PTR_O2, + I PTR_NO3, PTR_PO4, + U surf_DIC, surf_O2, I bi, bj, imin, imax, jmin, jmax, I myIter, myTime, myThid) -C$TAF STORE irr_mem = comlev1, key = ikey_dynamics, kind=isbyte -C$TAF STORE irr_inst = comlev1, key = ikey_dynamics, kind=isbyte -C$TAF STORE P_sm = comlev1, key = ikey_dynamics, kind=isbyte -C$TAF STORE P_lg = comlev1, key = ikey_dynamics, kind=isbyte +cxx C$TAF STORE irr_inst = comlev1, key = ikey_dynamics, kind=isbyte +C$TAF STORE irr_mem = comlev1, key = ikey_dynamics, kind=isbyte +#ifndef ADVECT_PHYTO +C$TAF STORE P_sm = comlev1, key = ikey_dynamics, kind=isbyte +C$TAF STORE P_lg = comlev1, key = ikey_dynamics, kind=isbyte +C$TAF STORE P_diaz = comlev1, key = ikey_dynamics, kind=isbyte +#endif -C----------------------------------------------------------- -C biological production of organic matter - CALL BLING_PROD( - I PTR_NUT, PTR_FE, PTR_DOM, PTR_O2, - U NUT_uptake, POM_prod, DOM_prod, - U Fe_uptake, CaCO3_prod, - I bi, bj, imin, imax, jmin, jmax, - I myIter, myTime, myThid) - -C----------------------------------------------------------- -C determine calcite saturation for use in bling_remin +c----------------------------------------------------------- +c determine calcite saturation for remineralization CALL BLING_CARBONATE_SYS( - I PTR_DIC, PTR_ALK, PTR_NUT, + I PTR_DIC, PTR_ALK, PTR_PO4, I bi, bj, imin, imax, jmin, jmax, I myIter, myTime, myThid) + C----------------------------------------------------------- -C flux of NUT, CaCO3, and Fe from remineralization - CALL BLING_REMIN( - I PTR_O2, PTR_FE, - U POM_prod, Fe_uptake, CaCO3_prod, - U POM_remin, POM_diss, Fe_remin, CaCO3_diss, - I bi, bj, imin, imax, jmin, jmax, - I myIter, myTime, myThid) +C biological activity + CALL BLING_PROD( + I PTR_NO3, PTR_PO4, PTR_FE, + I PTR_O2, PTR_DON, PTR_DOP, +#ifdef ADVECT_PHYTO + PTR_PHY, +#endif + U G_NO3, G_PO4, G_FE, + U G_O2, G_DON, G_DOP, G_CACO3, + I bi, bj, imin, imax, jmin, jmax, + I myIter, myTime, myThid) + +#ifndef ADVECT_PHYTO C$TAF STORE P_sm = comlev1, key = ikey_dynamics, kind=isbyte C$TAF STORE P_lg = comlev1, key = ikey_dynamics, kind=isbyte +C$TAF STORE P_diaz = comlev1, key = ikey_dynamics, kind=isbyte +#endif + C----------------------------------------------------------- C Calculate river runoff source C Tracers are already diluted by freswater input, P-E+R C This accounts for tracer concentration in river runoff - DO j=jmin,jmax - DO i=imin,imax -#ifdef ALLOW_EXF - runoff_dic(i,j) = riverconc_DIC*runoff(i,j,bi,bj) - & *recip_drF(1)*recip_hFacC(i,j,1,bi,bj) - runoff_alk(i,j) = riverconc_ALK*runoff(i,j,bi,bj) - & *recip_drF(1)*recip_hFacC(i,j,1,bi,bj) - runoff_nut(i,j) = riverconc_NUT*runoff(i,j,bi,bj) - & *recip_drF(1)*recip_hFacC(i,j,1,bi,bj) - runoff_dom(i,j) = riverconc_DOM*runoff(i,j,bi,bj) - & *recip_drF(1)*recip_hFacC(i,j,1,bi,bj) - runoff_o2(i,j) = riverconc_O2 *runoff(i,j,bi,bj) - & *recip_drF(1)*recip_hFacC(i,j,1,bi,bj) - runoff_fe(i,j) = riverconc_FE *runoff(i,j,bi,bj) - & *recip_drF(1)*recip_hFacC(i,j,1,bi,bj) -C else it is 0 as initialized -#endif - ENDDO - ENDDO -C----------------------------------------------------------- -C add all tendencies - DO k=1,Nr - DO j=jmin,jmax - DO i=imin,imax +cxx DO k=1,PTRACERS_num + DO k=1,8 + DO j=jmin,jmax + DO i=imin,imax + +c#ifdef ALLOW_EXF +c runoff_bgc(i,j,k) = river_conc_trac(k)*runoff(i,j,bi,bj) +c & *recip_drF(1)*recip_hFacC(i,j,1,bi,bj) +c#else +c runoff_bgc(i,j,k) = 0. _d 0 +c#endif -C Dissolved organic matter slow remineralization -#ifdef BLING_NO_NEG - DOM_remin(i,j,k) = MAX(maskC(i,j,k,bi,bj)*gamma_DOM - & *PTR_DOM(i,j,k),0. _d 0) -#else - DOM_remin(i,j,k) = maskC(i,j,k,bi,bj)*gamma_DOM - & *PTR_DOM(i,j,k) -#endif -C Total nutrient remin, recycling - NUT_remin(i,j,k) = POM_remin(i,j,k) + DOM_remin(i,j,k) - NUT_recyc(i,j,k) = NUT_uptake(i,j,k) - POM_prod(i,j,k) - & - DOM_prod(i,j,k) - -C Carbon system diagnostics -C Change in DIC from primary production, from recycling and -C remineralization, change in carbonate ions concentration -C from biological activity: - BioUp(i,j,k) = -NUT_uptake(i,j,k)*CtoP/NUTfac - Remin(i,j,k) = (DOM_remin(i,j,k) + NUT_recyc(i,j,k) - & + POM_remin(i,j,k))*CtoP/NUTfac - Car(i,j,k) = CaCO3_diss(i,j,k) - CaCO3_prod(i,j,k) - -C Tendencies - GNUT(i,j,k) = -NUT_uptake(i,j,k) + NUT_recyc(i,j,k) - & + DOM_remin(i,j,k) + POM_remin(i,j,k) - - GDOM(i,j,k) = DOM_prod(i,j,k) - DOM_remin(i,j,k) - & + POM_diss(i,j,k) - - GALK(i,j,k) = 2. _d 0*Car(i,j,k) - NtoP/NUTfac*GNUT(i,j,k) - - GDIC(i,j,k) = BioUp(i,j,k) + Remin(i,j,k) + Car(i,j,k) - - if ( PTR_O2(i,j,k) .GT. O2_min ) then - GO2(i,j,k) = O2toP/NUTfac*GNUT(i,j,k) - else - GO2(i,j,k) = 0. _d 0 - endif + ENDDO + ENDDO + ENDDO + + + +c --------------------------------------------------------------------- + + +c Carbon system +cxx check + + DO j=jmin,jmax + DO i=imin,imax + DO k=1,Nr + + IF (hFacC(i,j,k,bi,bj) .gt. 0. _d 0) THEN - GFE(i,j,k) = Fe_remin(i,j,k) - Fe_uptake(i,j,k) + G_ALK(i,j,k) = - G_NO3(i,j,k) + & + 2. _d 0*G_CaCO3(i,j,k) + + G_DIC(i,j,k) = CtoN * G_NO3(i,j,k) + & + G_CaCO3(i,j,k) + + +c For diagnostics + bio_DIC(i,j,k) = G_DIC(i,j,k) + + ENDIF + + ENDDO + ENDDO + ENDDO + - ENDDO - ENDDO - ENDDO C----------------------------------------------------------- C adding surface tendencies due to air-sea exchange C adding surface tendencies due to river runoff C adding aeolian iron source + DO j=jmin,jmax DO i=imin,imax - GDIC(i,j,1)=GDIC(i,j,1)+runoff_dic(i,j)+SURC(i,j) - GALK(i,j,1)=GALK(i,j,1)+runoff_alk(i,j) - GNUT(i,j,1)=GNUT(i,j,1)+runoff_nut(i,j) - GDOM(i,j,1)=GDOM(i,j,1)+runoff_dom(i,j) - GO2(i,j,1) =GO2(i,j,1) +runoff_o2(i,j) +SURO(i,j) - GFE(i,j,1) =GFE(i,j,1) +runoff_fe(i,j) - & +alpfe*InputFe(i,j,bi,bj)*recip_drF(1) - & *recip_hFacC(i,j,1,bi,bj) + G_DIC(i,j,1) = G_DIC(i,j,1) + runoff_bgc(i,j,1) + & + surf_DIC(i,j) + G_ALK(i,j,1) = G_ALK(i,j,1) + runoff_bgc(i,j,2) + G_NO3(i,j,1) = G_NO3(i,j,1) + runoff_bgc(i,j,3) + G_PO4(i,j,1) = G_PO4(i,j,1) + runoff_bgc(i,j,4) + G_FE(i,j,1) = G_FE(i,j,1) + runoff_bgc(i,j,5) + & + alpfe*InputFe(i,j,bi,bj)*recip_drF(1) + & * recip_hFacC(i,j,1,bi,bj) + G_O2(i,j,1) = G_O2(i,j,1) + runoff_bgc(i,j,6) + & + surf_O2(i,j) + G_DON(i,j,1) = G_DON(i,j,1) + runoff_bgc(i,j,7) + G_DOP(i,j,1) = G_DOP(i,j,1) + runoff_bgc(i,j,8) ENDDO ENDDO @@ -295,12 +254,17 @@ DO k=1,Nr DO j=jmin,jmax DO i=imin,imax - PTR_DIC(i,j,k)= PTR_DIC(i,j,k)+GDIC(i,j,k)*PTRACERS_dTLev(k) - PTR_ALK(i,j,k)= PTR_ALK(i,j,k)+GALK(i,j,k)*PTRACERS_dTLev(k) - PTR_NUT(i,j,k)= PTR_NUT(i,j,k)+GNUT(i,j,k)*PTRACERS_dTLev(k) - PTR_DOM(i,j,k)= PTR_DOM(i,j,k)+GDOM(i,j,k)*PTRACERS_dTLev(k) - PTR_O2(i,j,k) = PTR_O2(i,j,k) +GO2(i,j,k) *PTRACERS_dTLev(k) - PTR_FE(i,j,k) = PTR_FE(i,j,k) +GFE(i,j,k) *PTRACERS_dTLev(k) + PTR_DIC(i,j,k)=PTR_DIC(i,j,k)+G_DIC(i,j,k)*PTRACERS_dTLev(k) + PTR_ALK(i,j,k)=PTR_ALK(i,j,k)+G_ALK(i,j,k)*PTRACERS_dTLev(k) + PTR_NO3(i,j,k)=PTR_NO3(i,j,k)+G_NO3(i,j,k)*PTRACERS_dTLev(k) + PTR_PO4(i,j,k)=PTR_PO4(i,j,k)+G_PO4(i,j,k)*PTRACERS_dTLev(k) + PTR_FE (i,j,k)=PTR_FE (i,j,k)+G_FE (i,j,k)*PTRACERS_dTLev(k) + PTR_O2 (i,j,k)=PTR_O2 (i,j,k)+G_O2 (i,j,k)*PTRACERS_dTLev(k) + PTR_DON(i,j,k)=PTR_DON(i,j,k)+G_DON(i,j,k)*PTRACERS_dTLev(k) + PTR_DOP(i,j,k)=PTR_DOP(i,j,k)+G_DOP(i,j,k)*PTRACERS_dTLev(k) +#ifdef ADVECT_PHYTO + PTR_PHY(i,j,k)=PTR_PHY(i,j,k)+G_PHY(i,j,k)*PTRACERS_dTLev(k) +#endif ENDDO ENDDO ENDDO @@ -308,15 +272,13 @@ C----------------------------------------------------------- #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN - CALL DIAGNOSTICS_FILL(BioUp ,'BLGBIOA ',0,Nr,2,bi,bj,myThid) - CALL DIAGNOSTICS_FILL(Remin ,'BLGREMI ',0,Nr,2,bi,bj,myThid) - CALL DIAGNOSTICS_FILL(Car ,'BLGCARB ',0,Nr,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(bio_DIC ,'BLGBIOA ',0,Nr,2,bi,bj,myThid) CALL DIAGNOSTICS_FILL(pH ,'BLGPH3D ',0,Nr,1,bi,bj,myThid) CALL DIAGNOSTICS_FILL(OmegaAr ,'BLGOMAR ',0,Nr,1,bi,bj,myThid) CALL DIAGNOSTICS_FILL(pCO2 ,'BLGPCO2 ',0,1 ,1,bi,bj,myThid) CALL DIAGNOSTICS_FILL(fluxCO2 ,'BLGCFLX ',0,1 ,1,bi,bj,myThid) - CALL DIAGNOSTICS_FILL(SURC ,'BLGTFLX ',0,1 ,2,bi,bj,myThid) - CALL DIAGNOSTICS_FILL(SURO ,'BLGOFLX ',0,1 ,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(surf_DIC,'BLGTFLX ',0,1 ,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(surf_O2 ,'BLGOFLX ',0,1 ,2,bi,bj,myThid) ENDIF #endif /* ALLOW_DIAGNOSTICS */