--- MITgcm/pkg/dic/dic_surfforcing.F 2003/10/09 04:19:19 1.4 +++ MITgcm/pkg/dic/dic_surfforcing.F 2004/08/06 19:50:52 1.8 @@ -1,20 +1,24 @@ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/dic/dic_surfforcing.F,v 1.8 2004/08/06 19:50:52 stephd Exp $ +C $Name: $ + #include "DIC_OPTIONS.h" #include "PTRACERS_OPTIONS.h" #include "GCHEM_OPTIONS.h" -CStartOfInterFace +CBOP +C !ROUTINE: DIC_SURFFORCING + +C !INTERFACE: ========================================================== SUBROUTINE DIC_SURFFORCING( PTR_CO2 , GDC, I bi,bj,imin,imax,jmin,jmax, I myIter,myTime,myThid) -C /==========================================================\ -C | SUBROUTINE DIC_SURFFORCING | -C | o Calculate the carbon air-sea flux terms | -C | o following external_forcing_dic.F from Mick | -C |==========================================================| - IMPLICIT NONE +C !DESCRIPTION: +C Calculate the carbon air-sea flux terms +C following external_forcing_dic.F (OCMIP run) from Mick -C == GLobal variables == +C !USES: =============================================================== + IMPLICIT NONE #include "SIZE.h" #include "DYNVARS.h" #include "EEPARAMS.h" @@ -23,18 +27,27 @@ #include "FFIELDS.h" #include "DIC_ABIOTIC.h" #ifdef DIC_BIOTIC +#include "PTRACERS_SIZE.h" #include "PTRACERS.h" #endif -C == Routine arguments == +C !INPUT PARAMETERS: =================================================== +C myThid :: thread number +C myIter :: current timestep +C myTime :: current time +c PTR_CO2 :: DIC tracer field INTEGER myIter, myThid _RL myTime _RL PTR_CO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL GDC(1-OLx:sNx+OLx,1-OLy:sNy+OLy) INTEGER iMin,iMax,jMin,jMax, bi, bj +C !OUTPUT PARAMETERS: =================================================== +c GDC :: tendency due to air-sea exchange + _RL GDC(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + #ifdef ALLOW_PTRACERS -C == Local variables == + +C !LOCAL VARIABLES: ==================================================== INTEGER I,J, kLev, it C Number of iterations for pCO2 solvers... C Solubility relation coefficients @@ -46,6 +59,7 @@ _RL surfphos(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL surfsi(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL VirtualFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +CEOP cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc @@ -158,7 +172,7 @@ C in salinity. Thus, also increase in other surface tracers C (i.e. positive virtual flux into surface layer) C ...so here, VirtualFLux = dC/dt! - VirtualFlux(i,j)=gsm_DIC*surfaceTendencyS(i,j,bi,bj)/gsm_s + VirtualFlux(i,j)=gsm_DIC*surfaceForcingS(i,j,bi,bj)/gsm_s c OR c let virtual flux be zero c VirtualFlux(i,j)=0.d0 @@ -172,9 +186,8 @@ C update tendency DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - GDC(i,j)= maskC(i,j,kLev,bi,bj)*( - & FluxCO2(i,j,bi,bj)*recip_drF(kLev) - & + VirtualFlux(i,j) + GDC(i,j)= maskC(i,j,kLev,bi,bj)*recip_drF(kLev)*( + & FluxCO2(i,j,bi,bj) + VirtualFlux(i,j) & ) ENDDO ENDDO