surface_fluxes Module

Parametrization of surface fluxes


Uses

  • module~~surface_fluxes~~UsesGraph module~surface_fluxes surface_fluxes module~geometry geometry module~surface_fluxes->module~geometry module~types types module~surface_fluxes->module~types module~params params module~surface_fluxes->module~params module~geometry->module~types module~geometry->module~params iso_fortran_env iso_fortran_env module~types->iso_fortran_env module~params->module~types

Used by

  • module~~surface_fluxes~~UsedByGraph module~surface_fluxes surface_fluxes proc~set_forcing set_forcing proc~set_forcing->module~surface_fluxes proc~get_physical_tendencies get_physical_tendencies proc~get_physical_tendencies->module~surface_fluxes

Contents


Variables

TypeVisibility AttributesNameInitial
real(kind=p), private, parameter:: fwind0 =0.95

Ratio of near-sfc wind to lowest-level wind

real(kind=p), private, parameter:: ftemp0 =1.0

Weight for near-sfc temperature extrapolation (0-1) : 1 : linear extrapolation from two lowest levels 0 : constant potential temperature ( = lowest level)

real(kind=p), private, parameter:: fhum0 =0.0

Weight for near-sfc specific humidity extrapolation (0-1) : 1 : extrap. with constant relative hum. ( = lowest level) 0 : constant specific hum. ( = lowest level)

real(kind=p), private, parameter:: cdl =2.4e-3

Drag coefficient for momentum over land

real(kind=p), private, parameter:: cds =1.0e-3

Drag coefficient for momentum over sea

real(kind=p), private, parameter:: chl =1.2e-3

Heat exchange coefficient over land

real(kind=p), private, parameter:: chs =0.9e-3

Heat exchange coefficient over sea

real(kind=p), private, parameter:: vgust =5.0

Wind speed for sub-grid-scale gusts

real(kind=p), private, parameter:: ctday =1.0e-2

Daily-cycle correction (dTskin/dSSRad)

real(kind=p), private, parameter:: dtheta =3.0

Potential temp. gradient for stability correction

real(kind=p), private, parameter:: fstab =0.67

Amplitude of stability correction (fraction)

real(kind=p), private, parameter:: hdrag =2000.0

Height scale for orographic correction

real(kind=p), private, parameter:: clambda =7.0

Heat conductivity in skin-to-root soil layer

real(kind=p), private, parameter:: clambsn =7.0

Heat conductivity in soil for snow cover = 1


Subroutines

public subroutine get_surface_fluxes(psa, ua, va, ta, qa, rh, phi, phi0, fmask, forog, tsea, ssrd, slrd, ustr, vstr, shf, evap, slru, hfluxn, tsfc, tskin, u0, v0, t0, lfluxland, alb_land, alb_sea, snowc, land_temp, soil_avail_water, coa, sigl, wvi)

Compute surface fluxes of momentum, energy and moisture, and define surface skin temperature from energy balance

Arguments

Type IntentOptional AttributesName
real(kind=p), intent(in) :: psa(ix,il)

Normalised surface pressure

real(kind=p), intent(in) :: ua(ix,il,kx)

u-wind

real(kind=p), intent(in) :: va(ix,il,kx)

v-wind

real(kind=p), intent(in) :: ta(ix,il,kx)

Temperature

real(kind=p), intent(in) :: qa(ix,il,kx)

Specific humidity [g/kg]

real(kind=p), intent(in) :: rh(ix,il,kx)

Relative humidity

real(kind=p), intent(in) :: phi(ix,il,kx)

Geopotential

real(kind=p), intent(in) :: phi0(ix,il)

Surface geopotential

real(kind=p), intent(in) :: fmask(ix,il)

Fractional land-sea mask

real(kind=p), intent(in) :: forog(ix,il)

Orographic factor for land surface drag

real(kind=p), intent(in) :: tsea(ix,il)

Sea-surface temperature

real(kind=p), intent(in) :: ssrd(ix,il)

Downward flux of short-wave radiation at the surface

real(kind=p), intent(in) :: slrd(ix,il)

Downward flux of long-wave radiation at the surface

real(kind=p), intent(out) :: ustr(ix,il,3)

u-stress

real(kind=p), intent(out) :: vstr(ix,il,3)

v-stress

real(kind=p), intent(out) :: shf(ix,il,3)

Sensible heat flux

real(kind=p), intent(out) :: evap(ix,il,3)

Evaporation

real(kind=p), intent(out) :: slru(ix,il,3)

Upward flux of long-wave radiation at the surface

real(kind=p), intent(out) :: hfluxn(ix,il,2)

Net downward heat flux

real(kind=p), intent(out) :: tsfc(ix,il)

Surface temperature

real(kind=p), intent(out) :: tskin(ix,il)

Skin surface temperature

real(kind=p), intent(out) :: u0(ix,il)

Near-surface u-wind

real(kind=p), intent(out) :: v0(ix,il)

Near-surface v-wind

real(kind=p), intent(out) :: t0(ix,il)

Near-surface temperature

logical, intent(in) :: lfluxland
real(kind=p), intent(in) :: alb_land(ix,il)

Daily-mean albedo over land (bare-land + snow)

real(kind=p), intent(in) :: alb_sea(ix,il)

Daily-mean albedo over sea (open sea + sea ice)

real(kind=p), intent(in) :: snowc(ix,il)

Effective snow cover (fraction)

real(kind=p), intent(in) :: land_temp(ix,il)

Land surface temperature

real(kind=p), intent(in) :: soil_avail_water(ix,il)

Soil water availability

real(kind=p), intent(in) :: coa(il)

cosine(latitude)

real(kind=p), intent(in) :: sigl(kx)

Logarithm of full-level sigma

real(kind=p), intent(in) :: wvi(kx,2)

Weights for vertical interpolation

public subroutine set_orog_land_sfc_drag(phi0, forog)

Compute orographic factor for land surface drag Input: phi0 = surface geopotential

Arguments

Type IntentOptional AttributesName
real(kind=p), intent(in) :: phi0(ix,il)
real(kind=p), intent(inout) :: forog(ix,il)

Orographic factor for land surface drag