


RAIN_FLUX: computes heat and momentum flux due to rain.
RAIN_FLUX computes heat flux and momentum flux due to rain. This
code follows the Fortran program bulk_v25b.f. For more details,
see Fairall et al. (1996), JGR, 101, 3751-3752.
INPUT: Ta - air temperature [C]
Pa - air pressure [mb]
rh - relative humidity [%]
rain - rain rate [mm/hr]
Ts - sea surface temperature [C]
sal - salinity [psu (PSS-78)]
u - wind speed [m/s]
zu - wind measurement height [m]
OUTPUT: tau_rain - momentum flux of rainfall [N/m^2]
heat_rain - heat flux of rainfall (OUT of ocean) [W/m^2]
USAGE: [tau_rain,heat_rain] = RAIN_FLUX(Ta,Pa,rh,rain,Ts,sal,u,zu)

0001 function [tau_rain,heat_rain] = rain_flux(Ta,Pa,rh,rain,Ts,sal,u,zu) 0002 % RAIN_FLUX: computes heat and momentum flux due to rain. 0003 % RAIN_FLUX computes heat flux and momentum flux due to rain. This 0004 % code follows the Fortran program bulk_v25b.f. For more details, 0005 % see Fairall et al. (1996), JGR, 101, 3751-3752. 0006 % 0007 % INPUT: Ta - air temperature [C] 0008 % Pa - air pressure [mb] 0009 % rh - relative humidity [%] 0010 % rain - rain rate [mm/hr] 0011 % Ts - sea surface temperature [C] 0012 % sal - salinity [psu (PSS-78)] 0013 % u - wind speed [m/s] 0014 % zu - wind measurement height [m] 0015 % 0016 % OUTPUT: tau_rain - momentum flux of rainfall [N/m^2] 0017 % heat_rain - heat flux of rainfall (OUT of ocean) [W/m^2] 0018 % 0019 % USAGE: [tau_rain,heat_rain] = RAIN_FLUX(Ta,Pa,rh,rain,Ts,sal,u,zu) 0020 0021 % NOTE: All input variables should be vectors (either row or column), zu 0022 % may also be a fixed scalar. Output variables are column vectors. 0023 0024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0025 % 4/3/99: version 1.2 (contributed by AA) 0026 % 8/5/99: version 2.0 0027 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0028 0029 % -> column vectors 0030 Ta = Ta(:); Pa = Pa(:); rh = rh(:); rain = rain(:); Ts = Ts(:); 0031 sal = sal(:); u = u(:); zu = zu(:); 0032 0033 % get constants 0034 as_consts; 0035 cpa = cp; 0036 0037 0038 o61 = 1/eps_air - 1; % ~0.61 (moisture correction for temp.) 0039 Qa = 0.01*rh.*qsat(Ta,Pa); % specific humidity of air [kg/kg] 0040 T = Ta + CtoK; % C -> K 0041 Tv = T.*(1 + o61*Qa); % air virtual temperature 0042 rhoa = (100*Pa)./(gas_const_R*Tv); % air density 0043 Le = (2.501-0.00237*Ts)*1e6; % latent heat of vaporization at Ts 0044 Qs = Qsat_coeff*qsat(Ts,Pa); % saturation specific humidity 0045 0046 0047 % compute heat flux of rainfall OUT of ocean 0048 dwat = 2.11e-5*(T./CtoK).^1.94; % water vapour diffusivity 0049 dtmp = (1+3.309e-3*Ta-1.44e-6*Ta.^2)*0.02411./(rhoa.*cpa); % heat diffusivity 0050 dqs_dt = Qa.*Le./(gas_const_R*T.^2); % Clausius-Clapeyron 0051 alfac = 1./(1+0.622*(dqs_dt.*Le.*dwat)./(cpa.*dtmp)); % wet bulb factor 0052 cpw = sw_cp(sal,Ts,0); % heat capacity of sea water 0053 0054 heat_rain = rain.*alfac.*cpw.*((Ts-Ta)+(Qs-Qa).*Le./cpa)/3600; 0055 0056 % compute momentum flux of rainfall 0057 [cd10,u10] = cdntc(u,zu,Ta);% use Smith's formula to compute wind speed at 10m 0058 tau_rain = rain.*u10/3600; 0059