/[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.29 by dfer, Fri Oct 7 21:36:39 2011 UTC revision 1.30 by jmc, Sun Jan 11 20:02:41 2015 UTC
# Line 9  C !ROUTINE: DIC_SURFFORCING Line 9  C !ROUTINE: DIC_SURFFORCING
9    
10  C !INTERFACE: ==========================================================  C !INTERFACE: ==========================================================
11        SUBROUTINE DIC_SURFFORCING( PTR_CO2 , PTR_ALK, PTR_PO4, GDC,        SUBROUTINE DIC_SURFFORCING( PTR_CO2 , PTR_ALK, PTR_PO4, GDC,
12       I           bi,bj,imin,imax,jmin,jmax,       I           bi,bj,iMin,iMax,jMin,jMax,
13       I           myIter,myTime,myThid)       I           myIter,myTime,myThid)
14    
15  C !DESCRIPTION:  C !DESCRIPTION:
# Line 80  c        ENDDO Line 80  c        ENDDO
80  c       ENDDO  c       ENDDO
81  c#endif  c#endif
82    
   
83  C =================================================================  C =================================================================
84  C determine inorganic carbon chem coefficients  C determine inorganic carbon chem coefficients
85          DO j=jmin,jmax          DO j=jMin,jMax
86           DO i=imin,imax           DO i=iMin,iMax
87    
88  #ifdef DIC_BIOTIC  #ifdef DIC_BIOTIC
89  cQQQQ check ptracer numbers  cQQQQ check ptracer numbers
90  #ifdef DIC_BOUNDS  #ifdef DIC_BOUNDS
91               surfalk(i,j) = max(0.4 _d 0,               surfalk(i,j) = max(0.4 _d 0,
92       &                          min(10. _d 0,PTR_ALK(i,j,klev)))       &                          min(10. _d 0,PTR_ALK(i,j,klev)))
93       &                          * maskC(i,j,kLev,bi,bj)       &                          * maskC(i,j,kLev,bi,bj)
94               surfphos(i,j)  = max(1.0 _d -11,               surfphos(i,j)  = max(1.0 _d -11,
95       &                          min(1._d -1, PTR_PO4(i,j,klev)))       &                          min(1. _d -1,PTR_PO4(i,j,klev)))
96       &                          * maskC(i,j,kLev,bi,bj)       &                          * maskC(i,j,kLev,bi,bj)
97  #else  #else
98               surfalk(i,j) = PTR_ALK(i,j,klev)               surfalk(i,j) = PTR_ALK(i,j,klev)
# Line 109  cQQQQ check ptracer numbers Line 108  cQQQQ check ptracer numbers
108  C FOR NON-INTERACTIVE Si  C FOR NON-INTERACTIVE Si
109               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)
110  #ifdef DIC_BOUNDS  #ifdef DIC_BOUNDS
111              surftemp(i,j) = max(-4. _d 0,              surftemp(i,j) = max(-4. _d 0,
112       &                          min(50. _d 0, theta(i,j,kLev,bi,bj)))       &                          min(50. _d 0, theta(i,j,kLev,bi,bj)))
113              surfsalt(i,j) = max(4. _d 0,              surfsalt(i,j) = max(4. _d 0,
114       &                          min(50. _d 0, salt(i,j,kLev,bi,bj)))       &                          min(50. _d 0, salt(i,j,kLev,bi,bj)))
115              surfdic(i,j)  = max(0.4 _d 0,              surfdic(i,j)  = max(0.4 _d 0,
116       &                          min(10. _d 0, PTR_CO2(i,j,kLev)))       &                          min(10. _d 0, PTR_CO2(i,j,kLev)))
117  #else  #else
118              surftemp(i,j) = theta(i,j,kLev,bi,bj)              surftemp(i,j) = theta(i,j,kLev,bi,bj)
# Line 128  C FOR NON-INTERACTIVE Si Line 127  C FOR NON-INTERACTIVE Si
127       I                       bi,bj,iMin,iMax,jMin,jMax,myThid)       I                       bi,bj,iMin,iMax,jMin,jMax,myThid)
128  C====================================================================  C====================================================================
129    
130         DO j=jmin,jmax         DO j=jMin,jMax
131          DO i=imin,imax          DO i=iMin,iMax
132  C Compute AtmosP and Kwexch_Pre which are re-used for flux of O2  C Compute AtmosP and Kwexch_Pre which are re-used for flux of O2
133    
134  #ifdef USE_PLOAD  #ifdef USE_PLOAD
# Line 152  C Schmidt number is accounted for later Line 151  C Schmidt number is accounted for later
151    
152  c pCO2 solver...  c pCO2 solver...
153  C$TAF LOOP = parallel  C$TAF LOOP = parallel
154         DO j=jmin,jmax         DO j=jMin,jMax
155  C$TAF LOOP = parallel  C$TAF LOOP = parallel
156          DO i=imin,imax          DO i=iMin,iMax
157    
158            IF ( maskC(i,j,kLev,bi,bj).NE.0. _d 0 ) THEN            IF ( maskC(i,j,kLev,bi,bj).NE.0. _d 0 ) THEN
159              CALL CALC_PCO2_APPROX(              CALL CALC_PCO2_APPROX(
# Line 176  C$TAF LOOP = parallel Line 175  C$TAF LOOP = parallel
175          ENDDO          ENDDO
176         ENDDO         ENDDO
177    
178         DO j=jmin,jmax         DO j=jMin,jMax
179          DO i=imin,imax          DO i=iMin,iMax
180    
181            IF ( maskC(i,j,kLev,bi,bj).NE.0. _d 0 ) THEN            IF ( maskC(i,j,kLev,bi,bj).NE.0. _d 0 ) THEN
182  C calculate SCHMIDT NO. for CO2  C calculate SCHMIDT NO. for CO2
# Line 248  c Line 247  c
247           ENDDO           ENDDO
248    
249  C update tendency  C update tendency
250           DO j=jmin,jmax           DO j=jMin,jMax
251            DO i=imin,imax            DO i=iMin,iMax
252             GDC(i,j)= recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)             GDC(i,j)= recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj)
253       &              *(FluxCO2(i,j,bi,bj)       &              *(FluxCO2(i,j,bi,bj)
254  #ifdef ALLOW_OLD_VIRTUALFLUX  #ifdef ALLOW_OLD_VIRTUALFLUX

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30

  ViewVC Help
Powered by ViewVC 1.1.22