📄 rain_flux.m
字号:
function [tau_rain,heat_rain] = rain_flux(Ta,Pa,rh,rain,Ts,sal,u,zu)
% 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)
% NOTE: All input variables should be vectors (either row or column), zu
% may also be a fixed scalar. Output variables are column vectors.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 4/3/99: version 1.2 (contributed by AA)
% 8/5/99: version 2.0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% -> column vectors
Ta = Ta(:); Pa = Pa(:); rh = rh(:); rain = rain(:); Ts = Ts(:);
sal = sal(:); u = u(:); zu = zu(:);
% get constants
as_consts;
cpa = cp;
o61 = 1/eps_air - 1; % ~0.61 (moisture correction for temp.)
Qa = 0.01*rh.*qsat(Ta,Pa); % specific humidity of air [kg/kg]
T = Ta + CtoK; % C -> K
Tv = T.*(1 + o61*Qa); % air virtual temperature
rhoa = (100*Pa)./(gas_const_R*Tv); % air density
Le = (2.501-0.00237*Ts)*1e6; % latent heat of vaporization at Ts
Qs = Qsat_coeff*qsat(Ts,Pa); % saturation specific humidity
% compute heat flux of rainfall OUT of ocean
dwat = 2.11e-5*(T./CtoK).^1.94; % water vapour diffusivity
dtmp = (1+3.309e-3*Ta-1.44e-6*Ta.^2)*0.02411./(rhoa.*cpa); % heat diffusivity
dqs_dt = Qa.*Le./(gas_const_R*T.^2); % Clausius-Clapeyron
alfac = 1./(1+0.622*(dqs_dt.*Le.*dwat)./(cpa.*dtmp)); % wet bulb factor
cpw = sw_cp(sal,Ts,0); % heat capacity of sea water
heat_rain = rain.*alfac.*cpw.*((Ts-Ta)+(Qs-Qa).*Le./cpa)/3600;
% compute momentum flux of rainfall
[cd10,u10] = cdntc(u,zu,Ta);% use Smith's formula to compute wind speed at 10m
tau_rain = rain.*u10/3600;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -