/[MITgcm]/MITgcm/pkg/aim_v23/phy_suflux_sice.F
ViewVC logotype

Diff of /MITgcm/pkg/aim_v23/phy_suflux_sice.F

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

revision 1.3 by jmc, Fri May 21 17:43:04 2004 UTC revision 1.4 by jmc, Thu Jun 24 23:43:11 2004 UTC
# Line 9  C     !INTERFACE: Line 9  C     !INTERFACE:
9        SUBROUTINE SUFLUX_SICE(        SUBROUTINE SUFLUX_SICE(
10       I                   PSA, FMASK, EMISloc,       I                   PSA, FMASK, EMISloc,
11       I                   Tsurf, dTskin, SSR, SLRD,       I                   Tsurf, dTskin, SSR, SLRD,
12       I                   T0, Q0, CDENVV,       I                   T1, T0, Q0, DENVV,
13       O                   SHF, EVAP, SLRU,       O                   SHF, EVAP, SLRU,
14       O                   Evp0, dEvp, Slr0, dSlr, sFlx,       O                   Shf0, dShf, Evp0, dEvp, Slr0, dSlr, sFlx,
15       O                   TSFC, TSKIN,       O                   TSFC, TSKIN,
16       I                   bi,bj,myThid)       I                   bi,bj,myThid)
17    
# Line 52  C    Tsurf  :: surface temperature Line 52  C    Tsurf  :: surface temperature
52  C    dTskin :: temp. correction for daily-cycle heating [K]  C    dTskin :: temp. correction for daily-cycle heating [K]
53  C    SSR    :: sfc sw radiation (net flux)     (2-dim)  C    SSR    :: sfc sw radiation (net flux)     (2-dim)
54  C    SLRD   :: sfc lw radiation (downward flux)(2-dim)  C    SLRD   :: sfc lw radiation (downward flux)(2-dim)
55    C    T1     :: near-surface air temperature (from Pot.temp)
56  C    T0     :: near-surface air temperature    (2-dim)  C    T0     :: near-surface air temperature    (2-dim)
57  C    Q0     :: near-surface sp. humidity [g/kg](2-dim)  C    Q0     :: near-surface sp. humidity [g/kg](2-dim)
58  C    CDENVV :: sensible heat flux coefficient  (2-dim)  C    DENVV  :: surface flux (sens,lat.) coeff. (=Rho*|V|) [kg/m2/s]
59  C--   Output:  C--   Output:
60  C    SHF    :: sensible heat flux              (2-dim)  C    SHF    :: sensible heat flux              (2-dim)
61  C    EVAP   :: evaporation [g/(m^2 s)]         (2-dim)  C    EVAP   :: evaporation [g/(m^2 s)]         (2-dim)
62  C    SLRU   :: sfc lw radiation (upward flux)  (2-dim)  C    SLRU   :: sfc lw radiation (upward flux)  (2-dim)
63    C    Shf0   :: sensible heat flux over freezing surf.
64    C    dShf   :: sensible heat flux derivative relative to surf. temp
65  C    Evp0   :: evaporation computed over freezing surface (Ts=0.oC)  C    Evp0   :: evaporation computed over freezing surface (Ts=0.oC)
66  C    dEvp   :: evaporation derivative relative to surf. temp  C    dEvp   :: evaporation derivative relative to surf. temp
67  C    Slr0   :: upward long wave radiation over freezing surf.  C    Slr0   :: upward long wave radiation over freezing surf.
# Line 74  C-- Line 77  C--
77        _RL  PSA(NGP), FMASK(NGP), EMISloc        _RL  PSA(NGP), FMASK(NGP), EMISloc
78        _RL  Tsurf(NGP), dTskin(NGP)        _RL  Tsurf(NGP), dTskin(NGP)
79        _RL  SSR(NGP), SLRD(NGP)        _RL  SSR(NGP), SLRD(NGP)
80        _RL  T0(NGP), Q0(NGP), CDENVV(NGP)        _RL  T1(NGP), T0(NGP), Q0(NGP), DENVV(NGP)
81    
82        _RL  SHF(NGP), EVAP(NGP), SLRU(NGP)        _RL  SHF(NGP), EVAP(NGP), SLRU(NGP)
83        _RL  Evp0(NGP), dEvp(NGP), Slr0(NGP), dSlr(NGP), sFlx(NGP,0:2)        _RL  Shf0(NGP), dShf(NGP), Evp0(NGP), dEvp(NGP)
84          _RL  Slr0(NGP), dSlr(NGP), sFlx(NGP,0:2)
85        _RL  TSFC(NGP), TSKIN(NGP)        _RL  TSFC(NGP), TSKIN(NGP)
86    
87        INTEGER bi,bj,myThid        INTEGER bi,bj,myThid
# Line 86  CEOP Line 90  CEOP
90  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
91    
92  C-- Local variables:  C-- Local variables:
93    C    CDENVV :: surf. heat flux (sens.,lat.) coeff including stability effect
94          _RL CDENVV(NGP), RDTH, FSSICE
95          _RL Fstb0, dTstb, dFstb
96        _RL QSAT0(NGP,2)        _RL QSAT0(NGP,2)
97        _RL QDUMMY(1), RDUMMY(1), TS2        _RL QDUMMY(1), RDUMMY(1), TS2
98        INTEGER J        INTEGER J
# Line 105  c       TSFC(J)=273.16 _d 0 + dTskin(J) Line 112  c       TSFC(J)=273.16 _d 0 + dTskin(J)
112    
113  C--   2. Computation of fluxes over land and sea  C--   2. Computation of fluxes over land and sea
114    
115  C     2.1 Wind stress  C     2.1 Stability correction
116    
117  C     2.2 Sensible heat flux (from clim. TS over land)        RDTH = FSTAB/DTHETA
118    
119        DO J=1,NGP        DO J=1,NGP
120          SHF(J)   =  CDENVV(J)*CP*(TSKIN(J)-T0(J))          FSSICE=1.+MIN(DTHETA,MAX(-DTHETA,TSKIN(J)-T1(J)))*RDTH
121          sFlx(J,0)= -CDENVV(J)*CP*(TSFC(J) -T0(J))          CDENVV(J)=CHS*DENVV(J)*FSSICE
         sFlx(J,1)= -SHF(J)  
         sFlx(J,2)= -CDENVV(J)*CP  
122        ENDDO        ENDDO
123    
124  C     2.3 Evaporation        IF ( dTstab.GT.0. _d 0 ) THEN
125    C-    account for stability function derivative relative to Tsurf:
126    C note: to avoid discontinuity in the derivative (because of min,max), compute
127    C   the derivative using the discrete form: F(Ts+dTstab)-F(Ts-dTstab)/2.dTstab
128           DO J=1,NGP
129            Fstb0 = 1.+MIN(DTHETA,MAX(-DTHETA,TSFC(J) -T1(J)))*RDTH
130            Shf0(J) = CHL*DENVV(J)*Fstb0
131            dTstb = ( DTHETA+dTstab-ABS(TSKIN(J)-T1(J)) )/dTstab
132            dFstb = RDTH*MIN(1. _d 0, MAX(0. _d 0, dTstb*0.5 _d 0))
133            dShf(J) = CHL*DENVV(J)*dFstb
134           ENDDO
135          ENDIF
136    
137    C     2.2 Evaporation
138    
139        CALL SHTORH (2, NGP, TSKIN, PSA, 1. _d 0, QDUMMY, dEvp,        CALL SHTORH (2, NGP, TSKIN, PSA, 1. _d 0, QDUMMY, dEvp,
140       &                QSAT0(1,1), myThid)       &                QSAT0(1,1), myThid)
141        CALL SHTORH (0, NGP, TSFC, PSA, 1. _d 0, QDUMMY, RDUMMY,        CALL SHTORH (0, NGP, TSFC, PSA, 1. _d 0, QDUMMY, RDUMMY,
142       &                QSAT0(1,2), myThid)       &                QSAT0(1,2), myThid)
143    
144        DO J=1,NGP        IF ( dTstab.GT.0. _d 0 ) THEN
145    C-    account for stability function derivative relative to Tsurf:
146           DO J=1,NGP
147            EVAP(J) = CDENVV(J)*(QSAT0(J,1)-Q0(J))
148            Evp0(J) =   Shf0(J)*(QSAT0(J,2)-Q0(J))
149            dEvp(J) = CDENVV(J)*dEvp(J)
150         &            + dShf(J)*(QSAT0(J,1)-Q0(J))
151           ENDDO
152          ELSE
153           DO J=1,NGP
154          EVAP(J) = CDENVV(J)*(QSAT0(J,1)-Q0(J))          EVAP(J) = CDENVV(J)*(QSAT0(J,1)-Q0(J))
155          Evp0(J) = CDENVV(J)*(QSAT0(J,2)-Q0(J))          Evp0(J) = CDENVV(J)*(QSAT0(J,2)-Q0(J))
156          dEvp(J) = CDENVV(J)*dEvp(J)          dEvp(J) = CDENVV(J)*dEvp(J)
157        ENDDO         ENDDO
158          ENDIF
159    
160    C     2.3 Sensible heat flux
161    
162          IF ( dTstab.GT.0. _d 0 ) THEN
163    C-    account for stability function derivative relative to Tsurf:
164           DO J=1,NGP
165            SHF(J)  = CDENVV(J)*CP*(TSKIN(J)-T0(J))
166            Shf0(J) =   Shf0(J)*CP*(TSFC(J) -T0(J))
167            dShf(J) = CDENVV(J)*CP
168         &            + dShf(J)*CP*(TSKIN(J)-T0(J))
169           ENDDO
170          ELSE
171           DO J=1,NGP
172            SHF(J)  = CDENVV(J)*CP*(TSKIN(J)-T0(J))
173            Shf0(J) = CDENVV(J)*CP*(TSFC(J) -T0(J))
174            dShf(J) = CDENVV(J)*CP
175            dShf(J) = MAX( dShf(J), 0. _d 0 )
176           ENDDO
177          ENDIF
178    
179  C     2.4 Emission of lw radiation from the surface  C     2.4 Emission of lw radiation from the surface
180    
# Line 141  C     2.4 Emission of lw radiation from Line 188  C     2.4 Emission of lw radiation from
188    
189  C--   Compute net surface heat flux and its derivative ./. surf. temp.  C--   Compute net surface heat flux and its derivative ./. surf. temp.
190        DO J=1,NGP        DO J=1,NGP
191          sFlx(J,0)= sFlx(J,0)          sFlx(J,0)= ( SLRD(J) - EMISloc*Slr0(J) )
192       &           - ALHC*Evp0(J) - EMISloc*Slr0(J) + SLRD(J)       &           - ( Shf0(J) + ALHC*Evp0(J) )
193          sFlx(J,1)= sFlx(J,1)          sFlx(J,1)= ( SLRD(J) - EMISloc*SLRU(J) )
194       &           - ALHC*EVAP(J) - EMISloc*SLRU(J) + SLRD(J)       &           - ( SHF(J) + ALHC*EVAP(J) )
195          sFlx(J,2)= sFlx(J,2)          sFlx(J,2)=            -EMISloc*dSlr(J)
196       &           - ALHC*dEvp(J) - EMISloc*dSlr(J)       &           - ( dShf(J) + ALHC*dEvp(J) )
197        ENDDO        ENDDO
198        IF ( aim_energPrecip ) THEN        IF ( aim_energPrecip ) THEN
199  C-     Evap of snow/ice: substract Latent Heat of freezing from heatFlux  C-     Evap of snow/ice: substract Latent Heat of freezing from heatFlux

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22