Contact: Reviewers: Tags/Status
Computes or sets the ocean surface roughness.
This version calculates the ocean roughness from the magnitude of the wind stress components using the formulation of Beljaars (1994) or the standard Charnock relation. There is also an option for using a uniform roughness (the default).
utilities_mod constants_mod
use ocean_rough_mod [, only: ocean_rough_init, compute_ocean_roughness, fixed_ocean_roughness ] compute_ocean_roughness: Computes ocean roughness for heat, moisture, and momentum using wind stress or assigns a uniform value depending on a flag set through the namelist. This routine calls fixed_ocean_roughness. fixed_ocean_roughness: Sets a uniform roughnesses for heat, moisture, and momentum. The roughness values may be modified through the namelist. Users should use the routine compute_ocean_roughness if possible.
call compute_ocean_roughness ( ocean, tau_x, tau_y, rough_mom, rough_heat, rough_moist ) INPUT ocean Sea/Land mask, ocean=.true. for ocean points. [logical, dimension(:,:)] tau_x Zonal wind stress (Pascals) [real dimension(:,:)] tau_y Meridional wind stress (Pascals) [real dimension(:,:)] OUTPUT rough_mom Surface roughness felt by momentum fields (meters) [real dimension(:,:)] rough_heat Surface roughness felt by heat (temperature) fields (meters) [real dimension(:,:)] rough_moist Surface roughness felt by moisture (specific humidity) fields (meters) [real dimension(:,:)] ---------------------------------------------------------------- call fixed_ocean_roughness ( ocean, rough_mom, rough_heat ) INPUT ocean Sea/Land mask, ocean=.true. for ocean points. [logical, dimension(:,:)] OUTPUT rough_mom Surface roughness felt by momentum fields (meters) [real dimension(:,:)] rough_heat Surface roughness felt by heat (temperature) fields (meters) [real dimension(:,:)] rough_moist Surface roughness felt by moisture (specific humidity) fields (meters) [real dimension(:,:)]
&ocean_rough_nml real :: charnock = 0.032 ! constant for the Charnock relation (see notes) real :: roughness_init = 0.00044 ! not used in this version real :: roughness_min = 1.e-6 ! smallest allowable roughness real :: rho_atm = 1.13 ! reference density character :: rough_scheme = 'fixed' ! possible values include: ! = 'fixed' --> use fixed roughness values ! = 'beljaars' --> use Beljaars (1994) scheme ! = 'charnock' --> use simple Charnock relation logical :: use_fixed_rough = .true. ! OBSOLETE: use rough_scheme real :: roughness_mom = 5.8e-5 ! momentum roughness when use_fixed_rough = .true. real :: roughness_heat = 5.8e-5 ! heat/moisture roughness when use_fixed_rough = .true. real :: roughness_moist = 5.8e-5 ! heat/moisture roughness when use_fixed_rough = .true.
Revision history changes prior to 10/6/1999 MPP version created. Minor changes for open_file, error_mesg, and Fortran write statements. Answers should reproduce the previous version.
FATAL error in ocean_rough_mod namelist option USE_FIXED_ROUGH should be replaced with variable ROUGH_SCHEME Do not use namelist variable USE_FIXED_ROUGH. This variable will be phased out in future revisions. The variable ROUGH_SCHEME (a character string) should be use instead. See the namelist documentation for details.
Miller, M.J., et. al., 1992. J. of Climate, 418-434. Beljaars, A. C. M., 1994. QJRMS, 255-270.
There are no known bugs.
u_star**2 is computed from wind stress components (Tx,Ty) as u_star**2 = SQRT ( Tx**2 + Ty**2 ) / rho_atm u_star**2 = MAX ( gnu**2 , u_star**2 ) where: rho_atm is a constant reference density (see namelist) gnu is the kinematic viscosity for air in m/s2 (1.5e-5)
None.