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 |
|
|
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. |
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 |
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 |
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 |
|
|
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 |