function rh=relhumid(Td,Tw,P,p_typ)
%  RELHUMID: finds relative humidity from wet/dry thermometer readings.
%  rh=relhumid(Td,Tw,Pa,type) computes the relative humidity from
%  wt and dry-bulb temperature measurements using the psychrometric eqn.
%  and constants from Sargent (1980), Meteorol. Mag. 109, 238-246. The
%  latter two inputs are optional.
%
%  INPUTS : Td - dry bulb thermometer  [C]
%           Tw - wet thermometer  [C]
%           Pa - air pressure (optional)  [mb]
%           type - 'assman' for Assman-type forced ventilation
%                  'screen' for standard screen (natural ventilation)
%
%  OUTPUT:  rh - relative humidity  [%]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 8/28/98: version 1.1 (contributed by RP)
% 8/5/99: version 2.0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

as_consts;

if nargin==2,
 P=P_default;
 p_typ=psych_default;
elseif nargin==3,
 if isstr(P),
   p_typ=P;
   P=P_default;
 else
   p_typ=psych_default;
 end;
end;

% psychrometric coefficient

switch p_typ,
  case 'screen',
    A=0.000799;   % natural screens
  case 'assman',
    A = 0.000667; % Assmann-type with forced ventilation
  otherwise
    error(['unknown psychrometer type: ' p_typ]);
end;

% compute saturation vapour pressure for both temps.
ed=satvap(Td,P);
ewp=satvap(Tw,P);

% The psychrometric eqn!
e = ewp - A*P.*(Td-Tw);  % ambient vapour pressure

rh= e./ed * 100;

