/[MITgcm]/MITgcm/pkg/dic/o2_surfforcing.F
ViewVC logotype

Diff of /MITgcm/pkg/dic/o2_surfforcing.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.14 by dfer, Mon Aug 13 02:29:40 2007 UTC revision 1.18 by dfer, Fri Feb 29 22:36:13 2008 UTC
# Line 54  C Solubility relation coefficients Line 54  C Solubility relation coefficients
54        _RL O2sat(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL O2sat(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
55        _RL Kwexch(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL Kwexch(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
56        _RL FluxO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL FluxO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
       _RL AtmosO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy)  
57        _RL  aTT        _RL  aTT
58        _RL  aTK        _RL  aTK
59        _RL  aTS        _RL  aTS
# Line 74  CEOP Line 73  CEOP
73  C calculate SCHMIDT NO. for O2  C calculate SCHMIDT NO. for O2
74          DO j=jmin,jmax          DO j=jmin,jmax
75            DO i=imin,imax            DO i=imin,imax
76              IF (hFacC(i,j,k,bi,bj).NE.0.) THEN              IF (maskC(i,j,k,bi,bj).NE.0.) THEN
77                  ttemp = theta(i,j,k,bi,bj)
78                  stemp = salt(i,j,k,bi,bj)
79    
80                SchmidtNoO2(i,j) =                SchmidtNoO2(i,j) =
81       &            sox1       &            sox1
82       &          + sox2 * theta(i,j,k,bi,bj)       &          + sox2 * ttemp
83       &          + sox3 * theta(i,j,k,bi,bj)*theta(i,j,k,bi,bj)         &          + sox3 * ttemp*ttemp  
84       &          + sox4 * theta(i,j,k,bi,bj)*theta(i,j,k,bi,bj)       &          + sox4 * ttemp*ttemp*ttemp
      &                *theta(i,j,k,bi,bj)  
85    
86  C Determine surface flux of O2  C Determine surface flux of O2
87  C exchange coeff, accounting for ice cover and Schmidt no.  C exchange coeff accounting for ice cover and Schmidt no.
88                pisvel(i,j,bi,bj)  =0.337*wind(i,j,bi,bj)**2/3.6d5  C Kwexch_Pre= pisvel*(1-fice): previously computed in dic_surfforcing.F
89                Kwexch(i,j) =  
90       &             pisvel(i,j,bi,bj)                Kwexch(i,j) = Kwexch_Pre(i,j,bi,bj)
91       &             / sqrt(SchmidtNoO2(i,j)/660.0)       &                    / sqrt(SchmidtNoO2(i,j)/660.0 _d 0)
 c ice influence  
               Kwexch(i,j)  =(1.d0-Fice(i,j,bi,bj))*Kwexch(i,j)  
92    
               ttemp = theta(i,j,k,bi,bj)  
               stemp = salt(i,j,k,bi,bj)  
93  C determine saturation O2  C determine saturation O2
94  C using Garcia and Gordon (1992), L&O (mistake in original???)  C using Garcia and Gordon (1992), L&O (mistake in original???)
95                aTT  = 298.15-ttemp                aTT  = 298.15 _d 0 -ttemp
96                aTK  = 273.15+ttemp                aTK  = 273.15 _d 0 +ttemp
97                aTS  = log(aTT/aTK)                aTS  = log(aTT/aTK)
98                aTS2 = aTS*aTS                aTS2 = aTS*aTS
99                aTS3 = aTS2*aTS                aTS3 = aTS2*aTS
# Line 111  C using Garcia and Gordon (1992), L&O (m Line 108  C using Garcia and Gordon (1992), L&O (m
108                o2s = EXP(oCnew)                o2s = EXP(oCnew)
109    
110  c Convert from ml/l to mol/m^3  c Convert from ml/l to mol/m^3
111                O2sat(i,j) = o2s/22391.6*1000.0                O2sat(i,j) = o2s/22391.6 _d 0 * 1. _d 3
   
 #ifdef USE_PLOAD  
 C Convert anomalous pressure pLoad (in Pa) from atmospheric model  
 C to total pressure (in Atm)  
 C Note: it is assumed the reference atmospheric pressure is 1Atm=1013mb  
 C       rather than the actual ref. pressure from Atm. model so that on  
 C       average AtmosP is about 1 Atm.  
                AtmosP(i,j,bi,bj)= 1. _d 0 + pLoad(i,j,bi,bj)/Pa2Atm  
 #endif  
112    
113  c Determine flux, inc. correction for local atmos surface pressure  C Determine flux, inc. correction for local atmos surface pressure
114  cQQ PTR_O2?                FluxO2(i,j) = Kwexch(i,j)*
               FluxO2(i,j) = maskC(i,j,k,bi,bj)*Kwexch(i,j)*  
115       &                     (AtmosP(i,j,bi,bj)*O2sat(i,j)       &                     (AtmosP(i,j,bi,bj)*O2sat(i,j)
116       &                      - PTR_O2(i,j,1))       &                      - PTR_O2(i,j,K))
117              ELSE              ELSE
118                FluxO2(i,j) = 0.d0                FluxO2(i,j) = 0. _d 0
119              ENDIF              ENDIF
120    
121    
# Line 138  cQQ PTR_O2? Line 125  cQQ PTR_O2?
125  C update surface tendencies        C update surface tendencies      
126          DO j=jmin,jmax          DO j=jmin,jmax
127            DO i=imin,imax            DO i=imin,imax
128             SGO2(i,j)= maskC(i,j,1,bi,bj)*FluxO2(i,j)             SGO2(i,j)= FluxO2(i,j)
129       &         *recip_drF(1) * recip_hFacC(i,j,1,bi,bj)       &         *recip_drF(K) * recip_hFacC(i,j,K,bi,bj)
130            ENDDO            ENDDO
131           ENDDO           ENDDO
132  #endif  #endif

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.18

  ViewVC Help
Powered by ViewVC 1.1.22