Heat and momentum fluxes according to Fairall et al.


INTERFACE:

   subroutine fairall(sst,airt,u10,v10,precip,evap,taux,tauy,qe,qh)
DESCRIPTION:

The surface momentum flux vector, $ (\tau_x^s,\tau_y^s)$, in [Nm$ ^{-2}$], the latent heat flux, $ Q_e$, and the sensible heat flux, $ Q_h$, both in [Wm$ ^{-2}$] are calculated here according to the Fairall et al. (1996b) bulk formulae, which are build on the Liu-Katsaros-Businger (Liu et al. (1979)) method. Cool skin and warm layer effects are considered according to the suggestions of Fairall et al. (1996a).

The air temperature airt and the sea surface temperature sst may be given in Kelvin or Celcius: if they are $ >$ 100 - Kelvin is assumed.

This piece of code has been adapted from the COARE code originally written by David Rutgers and Frank Bradley - see http://www.coaps.fsu.edu/COARE/flux_algor/flux.html.


USES:

   use airsea_variables, only: kelvin,const06,rgas,rho_0,g,rho_0,kappa
   use airsea_variables, only: qs,qa,rhoa
   use airsea_variables, only: cpa,cpw
   use airsea, only: rain_impact,calc_evaporation
   IMPLICIT NONE
INPUT PARAMETERS:
   REALTYPE, intent(in)                :: sst,airt,u10,v10,precip
INPUT/OUTPUT PARAMETERS:
   REALTYPE, intent(inout)             :: evap
OUTPUT PARAMETERS:
   REALTYPE, intent(out)               :: taux,tauy,qe,qh
REVISION HISTORY:
   Original author(s): Adolf Stips
DEFINED PARAMETERS:
   Fairall LKB roughness Reynolds number to Von Karman
   REALTYPE,parameter        :: fdg = 1.0            non-dimensional
 
   Beta parameter evaluated from Fairall low windspeed turbulence data.
   REALTYPE,parameter        :: beta = 1.2           non-dimensional
 
   Zabl      Height (m) of atmospheric boundary layer.
   REALTYPE,parameter        :: Zabl = 600.0         in [m]
 
   REALTYPE, parameter       :: r3 = 1.0/3.0
   Liu et al. (1979) look-up table coefficients to compute roughness
   Reynolds number for temperature (rt) and moisture (rq) as a
   function of wind Reynolds number (rr):
        rt = Liu_a(:,1) * Rr   ** Liu_b(:,1)    temperature
        rq = Liu_a(:,2) * Rr   ** Liu_b(:,2)    moisture
   REALTYPE,parameter, dimension(8,2) :: Liu_a = reshape ( &
                 (/ 0.177,  1.376,    1.026,      1.625,   &
                    4.661, 34.904, 1667.190, 588000.0,     &
                    0.292,  1.808,    1.393,      1.956,   &
                    4.994, 30.709, 1448.680, 298000.0 /),  &
                 (/ 8, 2 /) )
 
   REALTYPE,parameter, dimension(8,2) :: Liu_b = reshape ( &
                 (/  0.0,    0.929, -0.599, -1.018,        &
                    -1.475, -2.067, -2.907, -3.935,        &
                     0.0,    0.826, -0.528, -0.870,        &
                    -1.297, -1.845, -2.682, -3.616 /),     &
                 (/ 8, 2 /) )
 
   REALTYPE,parameter, dimension(9) :: Liu_Rr =            &
                 (/    0.0,  0.11,   0.825,   3.0,         &
                      10.0, 30.0,  100.0,   300.0,         &
                    1000.0 /)
   Height (m) of surface air temperature measurement.
   REALTYPE, parameter       ::  zt= 2.0
   Height (m) of surface air humidity measurement
   REALTYPE, parameter       ::  zq= 2.0
   Height (m) of surface winds measurement
   REALTYPE, parameter       ::  zw= 10.0
   integer,  parameter       :: itermax = 20
 ifdef GUSTINESS
   REALTYPE, parameter       :: wgust=0.2
 else
   REALTYPE, parameter       :: wgust=0.0
 endif
 
   REALTYPE,external         :: psi
LOCAL VARIABLES:
   REALTYPE                  :: tmp,cff,wgus
   REALTYPE                  :: L
   REALTYPE                  :: Cd
   REALTYPE                  :: ta,ta_k,tw,tw_k
   integer                   :: ier,iter,k
   REALTYPE                  :: vis_air
   REALTYPE                  :: tpsi,qpsi,wpsi,ZWoL,oL,ZToL,ZQoL,ZoW,ZoT, ZoQ
   REALTYPE                  :: Wstar,Tstar, Qstar, delQ, delT, rr,rt,rq
   REALTYPE                  :: TVstar,Bf, upvel,delw,Wspeed, w
   REALTYPE                  :: ri,cd_rain
   REALTYPE                  :: x1,x2,x3
   REALTYPE                  :: x
   REALTYPE                  :: rainfall
   REALTYPE, parameter       :: eps=1.0e-12



Karsten Bolding 2012-12-28