function lwest = blwhf(Ts,Ta,rh,Fc,bulk_f) % BLWHF: estimates net long-wave heat flux using bulk formulas % lwest = BLWHF(Ts,Ta,rh,Fc,bulk_f) estimates the net longwave % heat flux into the ocean using one of a number of bulk formulas % evaluated by Fung et al (1984), Rev. Geophys. Space Physics, % 22,177-193. % % INPUT: Ts - sea surface temperature [C] % Ta - air temperature [C] % rh - relative humidity [%] % Fc - cloudiness correction factor F(C) (=1 for clear sky) % (see cloudcor.m for more information) % bulk_f - bulk formulas to be used % (see Fung et al, 1984) for details). % Options are: % 'brunt' % 'berliand' - probably the best one (default) % 'clark' % 'hastenrath' % 'efimova' % 'bunker' % 'anderson' % 'swinbank' - does not use rh % % OUTPUT: lwest - net downward longwave flux [W/m^2] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 8/31/98: version 1.1 (contributed by RP) % 8/5/99: version 2.0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % load constants and defaults as_consts; if nargin<5, bulk_f=bulkf_default; end; % compute vapour pressure from relative humidity (using formulas % from Gill, 1982) ew=satvap(Ta); rw=eps_air*ew./(P_default-ew); r=(rh/100).*rw; e_a=r*P_default./(eps_air+r); % convert to K ta=Ta+CtoK; ts=Ts+CtoK; % signs for flux INTO ocean switch bulk_f, case {'brunt',1} lwest = -emiss_lw*sigmaSB.*ts.^4.*(0.39 - 0.05*sqrt(e_a)).*Fc; case {'berliand',2} lwest = -emiss_lw*sigmaSB.*ta.^4.*(0.39 - 0.05*sqrt(e_a)).*Fc ... - 4*emiss_lw*sigmaSB.*ta.^3.*(Ts - Ta); case {'clark',3} lwest = -emiss_lw*sigmaSB.*ts.^4.*(0.39 - 0.05*sqrt(e_a)).*Fc ... - 4*emiss_lw*sigmaSB.*ts.^3.*(Ts - Ta); case {'hastenrath',4} q_a = e_a*eps_air./P_default; lwest = -emiss_lw*sigmaSB.*ts.^4.*(0.39 - 0.056*sqrt(q_a)).*Fc ... - 4*emiss_lw*sigmaSB.*ts.^3.*(Ts - Ta); case {'efimova',5} lwest = -emiss_lw*sigmaSB.*ta.^4.*(0.254 - 0.00495*(e_a)).*Fc ; case {'bunker',6} lwest = -0.022*emiss_lw*sigmaSB.*ta.^4.*(11.7 - 0.23*(e_a)).*Fc ... - 4*emiss_lw*sigmaSB.*ta.^3.*(Ts - Ta); case {'anderson',5} lwest = -emiss_lw*sigmaSB.*(ts.^4 - ta.^4.*(0.74+0.0049*(e_a))).*Fc ; case {'swinbank',5} lwest = -emiss_lw*sigmaSB.*(ts.^4 - 9.36e-6*ta.^6).*Fc ; otherwise error(['Unrecognized bulk formula specified: ' bulk_f]); end;