91 |
|
|
92 |
C-- Local variables: |
C-- Local variables: |
93 |
C CDENVV :: surf. heat flux (sens.,lat.) coeff including stability effect |
C CDENVV :: surf. heat flux (sens.,lat.) coeff including stability effect |
94 |
|
C ALHevp :: Latent Heat of evaporation |
95 |
_RL CDENVV(NGP), RDTH, FSSICE |
_RL CDENVV(NGP), RDTH, FSSICE |
96 |
_RL Fstb0, dTstb, dFstb |
_RL ALHevp, Fstb0, dTstb, dFstb |
97 |
_RL QSAT0(NGP,2) |
_RL QSAT0(NGP,2) |
98 |
_RL QDUMMY(1), RDUMMY(1), TS2 |
_RL QDUMMY(1), RDUMMY(1), TS2 |
99 |
INTEGER J |
INTEGER J |
100 |
|
|
101 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
102 |
|
|
103 |
|
ALHevp = ALHC |
104 |
|
C Evap of snow/ice: account for Latent Heat of freezing : |
105 |
|
IF ( aim_energPrecip ) ALHevp = ALHC + ALHF |
106 |
|
|
107 |
C 1.5 Define effective skin temperature to compensate for |
C 1.5 Define effective skin temperature to compensate for |
108 |
C non-linearity of heat/moisture fluxes during the daily cycle |
C non-linearity of heat/moisture fluxes during the daily cycle |
109 |
|
|
114 |
TSFC(J)=273.16 _d 0 |
TSFC(J)=273.16 _d 0 |
115 |
ENDDO |
ENDDO |
116 |
|
|
|
|
|
117 |
C-- 2. Computation of fluxes over land and sea |
C-- 2. Computation of fluxes over land and sea |
118 |
|
|
119 |
C 2.1 Stability correction |
C 2.1 Stability correction |
131 |
C the derivative using the discrete form: F(Ts+dTstab)-F(Ts-dTstab)/2.dTstab |
C the derivative using the discrete form: F(Ts+dTstab)-F(Ts-dTstab)/2.dTstab |
132 |
DO J=1,NGP |
DO J=1,NGP |
133 |
Fstb0 = 1.+MIN(DTHETA,MAX(-DTHETA,TSFC(J) -T1(J)))*RDTH |
Fstb0 = 1.+MIN(DTHETA,MAX(-DTHETA,TSFC(J) -T1(J)))*RDTH |
134 |
Shf0(J) = CHL*DENVV(J)*Fstb0 |
Shf0(J) = CHS*DENVV(J)*Fstb0 |
135 |
dTstb = ( DTHETA+dTstab-ABS(TSKIN(J)-T1(J)) )/dTstab |
dTstb = ( DTHETA+dTstab-ABS(TSKIN(J)-T1(J)) )/dTstab |
136 |
dFstb = RDTH*MIN(1. _d 0, MAX(0. _d 0, dTstb*0.5 _d 0)) |
dFstb = RDTH*MIN(1. _d 0, MAX(0. _d 0, dTstb*0.5 _d 0)) |
137 |
dShf(J) = CHL*DENVV(J)*dFstb |
dShf(J) = CHS*DENVV(J)*dFstb |
138 |
ENDDO |
ENDDO |
139 |
|
C- deBug part: |
140 |
|
c J = 6 + (17-1)*sNx |
141 |
|
c IF ( bi.EQ.3 .AND. J.LE.NGP ) |
142 |
|
c & WRITE(6,1020)'SUFLUX_SICE: Stab=',Shf0(J),CDENVV(J),dShf(J) |
143 |
ENDIF |
ENDIF |
144 |
|
|
145 |
C 2.2 Evaporation |
C 2.2 Evaporation |
174 |
Shf0(J) = Shf0(J)*CP*(TSFC(J) -T0(J)) |
Shf0(J) = Shf0(J)*CP*(TSFC(J) -T0(J)) |
175 |
dShf(J) = CDENVV(J)*CP |
dShf(J) = CDENVV(J)*CP |
176 |
& + dShf(J)*CP*(TSKIN(J)-T0(J)) |
& + dShf(J)*CP*(TSKIN(J)-T0(J)) |
177 |
|
dShf(J) = MAX( dShf(J), 0. _d 0 ) |
178 |
|
C-- do not allow negative derivative vs Ts of Sensible+Latent H.flux: |
179 |
|
C a) quiet unrealistic ; |
180 |
|
C b) garantee positive deriv. of total H.flux (needed for implicit solver) |
181 |
|
dEvp(J) = MAX( dEvp(J), -dShf(J)/ALHevp ) |
182 |
ENDDO |
ENDDO |
183 |
ELSE |
ELSE |
184 |
DO J=1,NGP |
DO J=1,NGP |
185 |
SHF(J) = CDENVV(J)*CP*(TSKIN(J)-T0(J)) |
SHF(J) = CDENVV(J)*CP*(TSKIN(J)-T0(J)) |
186 |
Shf0(J) = CDENVV(J)*CP*(TSFC(J) -T0(J)) |
Shf0(J) = CDENVV(J)*CP*(TSFC(J) -T0(J)) |
187 |
dShf(J) = CDENVV(J)*CP |
dShf(J) = CDENVV(J)*CP |
|
dShf(J) = MAX( dShf(J), 0. _d 0 ) |
|
188 |
ENDDO |
ENDDO |
189 |
ENDIF |
ENDIF |
190 |
|
|
201 |
C-- Compute net surface heat flux and its derivative ./. surf. temp. |
C-- Compute net surface heat flux and its derivative ./. surf. temp. |
202 |
DO J=1,NGP |
DO J=1,NGP |
203 |
sFlx(J,0)= ( SLRD(J) - EMISloc*Slr0(J) ) |
sFlx(J,0)= ( SLRD(J) - EMISloc*Slr0(J) ) |
204 |
& - ( Shf0(J) + ALHC*Evp0(J) ) |
& - ( Shf0(J) + ALHevp*Evp0(J) ) |
205 |
sFlx(J,1)= ( SLRD(J) - EMISloc*SLRU(J) ) |
sFlx(J,1)= ( SLRD(J) - EMISloc*SLRU(J) ) |
206 |
& - ( SHF(J) + ALHC*EVAP(J) ) |
& - ( SHF(J) + ALHevp*EVAP(J) ) |
207 |
sFlx(J,2)= -EMISloc*dSlr(J) |
sFlx(J,2)= -EMISloc*dSlr(J) |
208 |
& - ( dShf(J) + ALHC*dEvp(J) ) |
& - ( dShf(J) + ALHevp*dEvp(J) ) |
209 |
ENDDO |
ENDDO |
210 |
IF ( aim_energPrecip ) THEN |
|
211 |
C- Evap of snow/ice: substract Latent Heat of freezing from heatFlux |
C- deBug part: ----------------- |
212 |
DO J=1,NGP |
c1010 FORMAT(A,I3,2F10.3,F10.4) |
213 |
sFlx(J,0) = sFlx(J,0) - ALHF*Evp0(J) |
c1020 FORMAT(A,1P4E11.3) |
214 |
sFlx(J,1) = sFlx(J,1) - ALHF*EVAP(J) |
c J = 6 + (17-1)*sNx |
215 |
sFlx(J,2) = sFlx(J,2) - ALHF*dEvp(J) |
c IF ( bi.EQ.3 .AND. J.LE.NGP ) THEN |
216 |
ENDDO |
c WRITE(6,1010) 'SUFLUX_SICE: 1,sFlx=', 1, |
217 |
ENDIF |
c & sFlx(J,0),sFlx(J,1),sFlx(J,2) |
218 |
|
c WRITE(6,1010) 'SUFLUX_SICE: 0,Evap=', 0,Evp0(J),EVAP(J),dEvp(J) |
219 |
|
c WRITE(6,1010) 'SUFLUX_SICE: -,LWup=',-1,Slr0(J),SLRU(J),dSlr(J) |
220 |
|
c WRITE(6,1010) 'SUFLUX_SICE: -, SHF=',-1,Shf0(J),SHF(J), dShf(J) |
221 |
|
c WRITE(6,1010) 'SUFLUX_SICE: -, LAT=',-1, |
222 |
|
c & ALHevp*Evp0(J),ALHevp*EVAP(J),ALHevp*dEvp(J) |
223 |
|
c ENDIF |
224 |
|
|
225 |
C-- 3. Adjustment of skin temperature and fluxes over land |
C-- 3. Adjustment of skin temperature and fluxes over land |
226 |
C-- based on energy balance (to be implemented) |
C-- based on energy balance (to be implemented) |