PUBLIC INTERFACE ~ PUBLIC DATA ~ PUBLIC ROUTINES ~ NAMELIST ~ DIAGNOSTIC FIELDS ~ ERROR MESSAGES ~ REFERENCES ~ NOTES

## Module surface_flux_mod

Contact: Steve Klein , Isaac Held , Bruce Wyman
Reviewers: V. Balaji , Sergey Malyshev , Elena Shevliakova
Change History: WebCVS Log

#### OVERVIEW

Driver program for the calculation of fluxes on the exchange grids.

#### OTHER MODULES USED

               fms_mod
     monin_obukhov_mod
    sat_vapor_pres_mod
         constants_mod

#### PUBLIC INTERFACE

surface_flux:
  For the calculation of fluxes on the exchange grids.

#### PUBLIC DATA

None.

#### PUBLIC ROUTINES

1. #### surface_flux

       subroutine surface_flux (                                           &
            t_atm,     q_atm_in,   u_atm,     v_atm,     p_atm,     z_atm,    &
            p_surf,    t_surf,     t_ca,      q_surf,                         &
            u_surf,    v_surf,                                                &
            rough_mom, rough_heat, rough_moist, rough_scale, gust,            &
            flux_t, flux_q, flux_r, flux_u, flux_v,                           &
            cd_m,      cd_t,       cd_q,                                      &
            w_atm,     u_star,     b_star,     q_star,                        &
            dhdt_surf, dedt_surf,  dedq_surf,  drdt_surf,                     &
            dhdt_atm,  dedq_atm,   dtaudu_atm, dtaudv_atm,                    &
            dt,        land,      seawater,     avail  )

   DESCRIPTION
     For the calculation of fluxes on the exchange grids.
   INPUT

     `t_atm` | Air temp lowest atmospheric level. [real, dimension(:)]
     `q_atm` | Mixing ratio at lowest atmospheric level (kg/kg). [real, dimension(:)]
     `u_atm` | Zonal wind velocity at lowest atmospheric level. [real, dimension(:)]
     `v_atm` | Meridional wind velocity at lowest atmospheric level. [real, dimension(:)]
     `p_atm` | Pressure lowest atmospheric level. [real, dimension(:)]
     `z_atm` | Height lowest atmospheric level. [real, dimension(:)]
     `p_surf` | Pressure at the earth's surface [real, dimension(:)]
     `t_surf` | Temp at the earth's surface [real, dimension(:)]
     `t_ca` | Air temp at the canopy [real, dimension(:)]
     `u_surf` | Zonal wind velocity at earth surface. [real, dimension(:)]
     `v_surf` | Meridional wind velocity at earth surface. [real, dimension(:)]
     `rough_mom` | Momentum roughness length [real, dimension(:)]
     `rough_heat` | Heat roughness length [real, dimension(:)]
     `rough_moist` | <Moisture roughness length [real, dimension(:)]
     `rough_scale` | Scale factor used to topographic roughness calculation [real, dimension(:)]
     `gust` | Gustiness factor [real, dimension(:)]
     `land` | Indicates where land exists (true if exchange cell is on land). [logical, dimension(:)]
     `seawater` | Indicates where liquid ocean water exists (true if exchange cell is on liquid ocean water). [logical, dimension(:)]
     `avail` | True where the exchange cell is active. [logical, dimension(:)]

   OUTPUT

     `q_surf` | Mixing ratio at earth surface (kg/kg). [real, dimension(:)]
     `flux_t` | Sensible heat flux [real, dimension(:)]
     `flux_q` | Evaporative water flux [real, dimension(:)]
     `flux_r` | Radiative energy flux [real, dimension(:)]
     `flux_u` | Zonal momentum flux [real, dimension(:)]
     `flux_v` | Meridional momentum flux [real, dimension(:)]
     `cd_m` | Momentum exchange coefficient [real, dimension(:)]
     `cd_t` | Heat exchange coefficient [real, dimension(:)]
     `cd_q` | Moisture exchange coefficient [real, dimension(:)]
     `w_atm` | Absolute wind at the lowest atmospheric level [real, dimension(:)]
     `u_star` | Turbulent velocity scale [real, dimension(:)]
     `b_star` | Turbulent buoyant scale [real, dimension(:)]
     `q_star` | Turbulent moisture scale [real, dimension(:)]
     `dhdt_surf` | Sensible heat flux temperature sensitivity [real, dimension(:)]
     `dedt_surf` | Moisture flux temperature sensitivity [real, dimension(:)]
     `dedq_surf` | Moisture flux humidity sensitivity [real, dimension(:)]
     `drdt_surf` | Radiative energy flux temperature sensitivity [real, dimension(:)]
     `dhdt_atm` | Derivative of sensible heat flux over temp at the lowest atmos level. [real, dimension(:)]
     `dedq_atm` | Derivative of water vapor flux over temp at the lowest atmos level. [real, dimension(:)]
     `dtaudu_atm` | Derivative of zonal wind stress w.r.t the lowest level zonal wind speed of the atmos [real, dimension(:)]
     `dtaudv_atm` | Derivative of meridional wind stress w.r.t the lowest level meridional wind speed of the atmos [real, dimension(:)]
     `dt` | Time step (it is not used presently) [real]

#### NAMELIST

&surface_flux_nml

`no_neg_q`

If q_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.
[logical, default: .false.]

`use_virtual_temp`

If true, use virtual potential temp to calculate the stability of the surface layer. if false, use potential temp.
[logical, default: .true.]

`alt_gustiness`

An alternative formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations, with the bound equal to gust_const
[logical, default: .false.]

`old_dtaudv`

The derivative of surface wind stress w.r.t. the zonal wind and meridional wind are approximated by the same tendency.
[logical, default: .false.]

`use_mixing_ratio`

An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes).
[logical, default: .false.]

`gust_const`

Constant for alternative gustiness calculation.
[, default: 1.0]

`gust_min`

Minimum gustiness used when alt_gustiness = false.
[, default: 0.0]

`ncar_ocean_flux`

Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004
[logical, default: .false.]

`ncar_ocean_flux_orig`

Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments.
[logical, default: .false.]

`raoult_sat_vap`

Reduce saturation vapor pressures to account for seawater salinity.
[logical, default: .false.]

#### DATA SETS

None.

#### ERROR MESSAGES

None.

top