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.