4 |
#include "CPP_OPTIONS.h" |
#include "CPP_OPTIONS.h" |
5 |
subroutine bulkf_formula_lanl( |
subroutine bulkf_formula_lanl( |
6 |
I uw, vw, us, Ta, Qa, nc, tsf_in, |
I uw, vw, us, Ta, Qa, nc, tsf_in, |
7 |
I flwup, flha, fsha, df0dT, |
I flwupa, flha, fsha, df0dT, |
8 |
I ust, vst, evp, ssq, iceornot, windread |
I ust, vst, evp, ssq, iceornot, windread |
9 |
& ) |
& ) |
10 |
|
|
35 |
integer iceornot ! 0=open water, 1=ice cover |
integer iceornot ! 0=open water, 1=ice cover |
36 |
logical windread ! |
logical windread ! |
37 |
c output |
c output |
38 |
_RL flwup ! upward long wave radiation |
_RL flwupa ! upward long wave radiation |
39 |
_RL flha ! latent heat flux |
_RL flha ! latent heat flux |
40 |
_RL fsha ! sensible heat flux |
_RL fsha ! sensible heat flux |
41 |
_RL df0dT ! derivative of heat flux with respect to Tsf |
_RL df0dT ! derivative of heat flux with respect to Tsf |
179 |
c up long wave radiation |
c up long wave radiation |
180 |
cQQ mixratio=Qa/(1-Qa) |
cQQ mixratio=Qa/(1-Qa) |
181 |
cQQ ea=p0*mixratio/(0.62197+mixratio) |
cQQ ea=p0*mixratio/(0.62197+mixratio) |
182 |
cQQ flwup=-0.985*stefan*tsf**4 |
cQQ flwupa=-0.985*stefan*tsf**4 |
183 |
cQQ & *(0.39-0.05*sqrt(ea)) |
cQQ & *(0.39-0.05*sqrt(ea)) |
184 |
cQQ & *(1-0.6*nc**2) |
cQQ & *(1-0.6*nc**2) |
185 |
if (iceornot.eq.0) then |
if (iceornot.eq.0) then |
186 |
flwup=-ocean_emissivity*stefan*tsf**4 |
flwupa=-ocean_emissivity*stefan*tsf**4 |
187 |
else |
else |
188 |
if (iceornot.eq.2) then |
if (iceornot.eq.2) then |
189 |
flwup=-snow_emissivity*stefan*tsf**4 |
flwupa=-snow_emissivity*stefan*tsf**4 |
190 |
else |
else |
191 |
flwup=-ice_emissivity*stefan*tsf**4 |
flwupa=-ice_emissivity*stefan*tsf**4 |
192 |
endif |
endif |
193 |
endif |
endif |
194 |
#ifdef ALLOW_THERM_SEAICE |
#ifdef ALLOW_THERM_SEAICE |