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

Diff of /MITgcm/pkg/dic/dic_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.16 by dfer, Mon Aug 27 19:44:13 2007 UTC
# Line 56  C local variables for carbon chem Line 56  C local variables for carbon chem
56        _RL surfalk(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL surfalk(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
57        _RL surfphos(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL surfphos(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
58        _RL surfsi(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL surfsi(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
59    #ifdef ALLOW_OLD_VIRTUALFLUX
60        _RL VirtualFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL VirtualFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
61    #endif
62  CEOP  CEOP
63    
64  cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc  cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
# Line 69  c Co2 value passed from the coupler Line 71  c Co2 value passed from the coupler
71  C PRE-INDUSTRIAL STEADY STATE pCO2 = 278.0 ppmv  C PRE-INDUSTRIAL STEADY STATE pCO2 = 278.0 ppmv
72         DO j=1-OLy,sNy+OLy         DO j=1-OLy,sNy+OLy
73          DO i=1-OLx,sNx+OLx          DO i=1-OLx,sNx+OLx
74             AtmospCO2(i,j,bi,bj)=278.0d-6             AtmospCO2(i,j,bi,bj)=278.0 _d -6
75          ENDDO          ENDDO
76         ENDDO         ENDDO
77  #endif  #endif
# Line 87  cQQQQ check ptracer numbers Line 89  cQQQQ check ptracer numbers
89               surfphos(i,j)  = PTR_PO4(i,j,klev)               surfphos(i,j)  = PTR_PO4(i,j,klev)
90       &                          * maskC(i,j,kLev,bi,bj)       &                          * maskC(i,j,kLev,bi,bj)
91  #else  #else
92               surfalk(i,j) = 2.366595 * salt(i,j,kLev,bi,bj)/gsm_s               surfalk(i,j) = 2.366595 _d 0 * salt(i,j,kLev,bi,bj)/gsm_s
93       &                          * maskC(i,j,kLev,bi,bj)       &                          * maskC(i,j,kLev,bi,bj)
94               surfphos(i,j)  = 5.1225e-4 * maskC(i,j,kLev,bi,bj)               surfphos(i,j)  = 5.1225 _d -4 * maskC(i,j,kLev,bi,bj)
95  #endif  #endif
96  C FOR NON-INTERACTIVE Si  C FOR NON-INTERACTIVE Si
97               surfsi(i,j)   = SILICA(i,j,bi,bj) * maskC(i,j,kLev,bi,bj)               surfsi(i,j)   = SILICA(i,j,bi,bj) * maskC(i,j,kLev,bi,bj)
# Line 143  C to total pressure (in Atm) Line 145  C to total pressure (in Atm)
145  C Note: it is assumed the reference atmospheric pressure is 1Atm=1013mb  C Note: it is assumed the reference atmospheric pressure is 1Atm=1013mb
146  C       rather than the actual ref. pressure from Atm. model so that on  C       rather than the actual ref. pressure from Atm. model so that on
147  C       average AtmosP is about 1 Atm.  C       average AtmosP is about 1 Atm.
148                 AtmosP(i,j,bi,bj)= 1. _d 0 + pLoad(i,j,bi,bj)/Pa2Atm                  AtmosP(i,j,bi,bj)= 1. _d 0 + pLoad(i,j,bi,bj)/Pa2Atm
149  #endif  #endif
150    
151  C Determine surface flux (FDIC)  C Determine surface flux (FDIC)
# Line 152  C first correct pCO2at for surface atmos Line 154  C first correct pCO2at for surface atmos
154       &          AtmosP(i,j,bi,bj)*AtmospCO2(i,j,bi,bj)       &          AtmosP(i,j,bi,bj)*AtmospCO2(i,j,bi,bj)
155  c find exchange coefficient  c find exchange coefficient
156  c  account for schmidt number and and varible piston velocity  c  account for schmidt number and and varible piston velocity
157                pisvel(i,j,bi,bj)  =0.337*wind(i,j,bi,bj)**2/3.6d5                pisvel(i,j,bi,bj)=0.337 _d 0 *wind(i,j,bi,bj)**2/3.6 _d 5
158                Kwexch(i,j) =                Kwexch(i,j) =
159       &             pisvel(i,j,bi,bj)       &             pisvel(i,j,bi,bj)
160       &             / sqrt(SchmidtNoDIC(i,j)/660.0)       &             / sqrt(SchmidtNoDIC(i,j)/660.0 _d 0)
161  c OR use a constant  coeff  c OR use a constant  coeff
162  c             Kwexch(i,j) = 5e-5  c             Kwexch(i,j) = 5e-5
163  c ice influence  c ice influence
164                Kwexch(i,j)  =(1.d0-Fice(i,j,bi,bj))*Kwexch(i,j)                Kwexch(i,j)  =(1. _d 0 - FIce(i,j,bi,bj))*Kwexch(i,j)
165    
166    
167  C Calculate flux in terms of DIC units using K0, solubility  C Calculate flux in terms of DIC units using K0, solubility
# Line 172  C Converting pCO2 to [CO2] using ff, as Line 174  C Converting pCO2 to [CO2] using ff, as
174       &         ff(i,j,bi,bj)*pCO2(i,j,bi,bj)       &         ff(i,j,bi,bj)*pCO2(i,j,bi,bj)
175       &         )       &         )
176              ELSE              ELSE
177                 FluxCO2(i,j,bi,bj) = 0.                 FluxCO2(i,j,bi,bj) = 0. _d 0
178              ENDIF              ENDIF
179  C convert flux (mol kg-1 m s-1) to (mol m-2 s-1)  C convert flux (mol kg-1 m s-1) to (mol m-2 s-1)
180              FluxCO2(i,j,bi,bj) = FluxCO2(i,j,bi,bj)/permil              FluxCO2(i,j,bi,bj) = FluxCO2(i,j,bi,bj)/permil
181    
182    #ifdef ALLOW_OLD_VIRTUALFLUX
183              IF (maskC(i,j,kLev,bi,bj).NE.0.) THEN              IF (maskC(i,j,kLev,bi,bj).NE.0.) THEN
184  c calculate virtual flux  c calculate virtual flux
185  c EminusPforV = dS/dt*(1/Sglob)  c EminusPforV = dS/dt*(1/Sglob)
# Line 193  c Line 196  c
196              ELSE              ELSE
197                VirtualFlux(i,j)=0. _d 0                VirtualFlux(i,j)=0. _d 0
198              ENDIF              ENDIF
199    #endif /* ALLOW_OLD_VIRTUALFLUX */
200            ENDDO            ENDDO
201           ENDDO           ENDDO
202    
# Line 200  C update tendency Line 204  C update tendency
204           DO j=jmin,jmax           DO j=jmin,jmax
205            DO i=imin,imax            DO i=imin,imax
206             GDC(i,j)= maskC(i,j,kLev,bi,bj)*recip_drF(kLev)*             GDC(i,j)= maskC(i,j,kLev,bi,bj)*recip_drF(kLev)*
207       &                     recip_hFacC(i,j,kLev,bi,bj)*(       &                     recip_hFacC(i,j,kLev,bi,bj)
208       &                    FluxCO2(i,j,bi,bj) + VirtualFlux(i,j)       &                   *(FluxCO2(i,j,bi,bj)
209       &                                              )  #ifdef ALLOW_OLD_VIRTUALFLUX
210         &                   + VirtualFlux(i,j)
211    #endif
212         &                    )
213            ENDDO            ENDDO
214           ENDDO           ENDDO
215    

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

  ViewVC Help
Powered by ViewVC 1.1.22