6 |
subroutine bulkf_formula_lanl( |
subroutine bulkf_formula_lanl( |
7 |
I uw, vw, us, Ta, Qa, nc, tsf_in, |
I uw, vw, us, Ta, Qa, nc, tsf_in, |
8 |
O flwupa, flha, fsha, df0dT, |
O flwupa, flha, fsha, df0dT, |
9 |
O ust, vst, evp, ssq, |
O ust, vst, evp, ssq, dEvdT, |
10 |
I iceornot, windread ) |
I iceornot, windread ) |
11 |
|
|
12 |
c swd -- bulkf formula used in bulkf and ice pkgs |
c swd -- bulkf formula used in bulkf and ice pkgs |
39 |
_RL df0dT ! derivative of heat flux with respect to Tsf |
_RL df0dT ! derivative of heat flux with respect to Tsf |
40 |
_RL ust ! zonal wind stress (at grid center) |
_RL ust ! zonal wind stress (at grid center) |
41 |
_RL vst ! meridional wind stress (at grid center) |
_RL vst ! meridional wind stress (at grid center) |
42 |
_RL evp ! evaporation rate (over open water) |
_RL evp ! evaporation rate (over open water) [kg/m2/s] |
43 |
_RL ssq ! surface specific humidity (kg/kg) |
_RL ssq ! surface specific humidity (kg/kg) |
44 |
|
_RL dEvdT ! derivative of evap. with respect to Tsf [kg/m2/s/K] |
45 |
|
|
46 |
#ifdef ALLOW_BULK_FORCE |
#ifdef ALLOW_BULK_FORCE |
47 |
|
|
87 |
_RL csha |
_RL csha |
88 |
_RL clha |
_RL clha |
89 |
_RL zice |
_RL zice |
90 |
|
_RL ssq0, ssq1, ssq2 ! constant used in surface specific humidity |
91 |
integer niter_bulk, iter |
integer niter_bulk, iter |
92 |
|
|
93 |
c --- external functions --- |
c --- external functions --- |
98 |
c _RL exf_BulkRhn |
c _RL exf_BulkRhn |
99 |
c external exf_BulkRhn |
c external exf_BulkRhn |
100 |
|
|
101 |
|
DATA ssq0, ssq1, ssq2 |
102 |
|
& / 3.797915 _d 0 , 7.93252 _d -6 , 2.166847 _d -3 / |
103 |
|
|
104 |
cQQQQQQQQQQQQQQQQQQQQq |
cQQQQQQQQQQQQQQQQQQQQq |
105 |
c -- compute turbulent surface fluxes |
c -- compute turbulent surface fluxes |
106 |
ht = 2. _d 0 |
ht = 2. _d 0 |
129 |
t0 = Ta*(1. _d 0 + humid_fac*Qa) |
t0 = Ta*(1. _d 0 + humid_fac*Qa) |
130 |
cQQ ssq = 0.622*6.11*exp(22.47*(1.d0-Tf0kel/tsf))/p0 |
cQQ ssq = 0.622*6.11*exp(22.47*(1.d0-Tf0kel/tsf))/p0 |
131 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
132 |
ssq = 3.797915 _d 0*exp( |
c ssq = 3.797915 _d 0*exp( |
133 |
& lath*(7.93252 _d -6 - 2.166847 _d -3/Tsf) |
c & lath*(7.93252 _d -6 - 2.166847 _d -3/Tsf) |
134 |
& )/p0 |
c & )/p0 |
135 |
|
ssq = ssq0*exp( lath*(ssq1-ssq2/Tsf) ) / p0 |
136 |
cBB debugging |
cBB debugging |
137 |
cBB print*,'ice, ssq', ssq |
cBB print*,'ice, ssq', ssq |
138 |
c |
c |
181 |
c |
c |
182 |
fsha = csha*deltap |
fsha = csha*deltap |
183 |
flha = clha*delq |
flha = clha*delq |
184 |
evp = -flha/lath/rhofw |
evp = -flha/lath |
185 |
c |
c |
186 |
c up long wave radiation |
c up long wave radiation |
187 |
cQQ mixratio=Qa/(1-Qa) |
cQQ mixratio=Qa/(1-Qa) |
203 |
endif |
endif |
204 |
cQQ dflhdT = -clha*Tf0kel*ssq*22.47/(tsf**2) |
cQQ dflhdT = -clha*Tf0kel*ssq*22.47/(tsf**2) |
205 |
c dflhdT = -clha*Lath*ssq/(Rvap*tsf**2) |
c dflhdT = -clha*Lath*ssq/(Rvap*tsf**2) |
206 |
dflhdT = -clha*ssq*Lath*2.166847 _d -3/(Tsf**2) |
c dflhdT = -clha*ssq*Lath*2.166847 _d -3/(Tsf**2) |
207 |
|
dEvdT = clha*ssq*ssq2/(Tsf*Tsf) |
208 |
|
dflhdT = -lath*dEvdT |
209 |
dfshdT = -csha |
dfshdT = -csha |
210 |
cQQ dflwupdT= 4.*0.985*stefan*tsf**3 |
cQQ dflwupdT= 4.*0.985*stefan*tsf**3 |
211 |
cQQ & *(0.39-0.05*sqrt(ea)) |
cQQ & *(0.39-0.05*sqrt(ea)) |