FMS  2024.03
Flexible Modeling System
gaussian_topog_mod

Routines for creating Gaussian-shaped land surface topography for latitude-longitude grids. More...

Data Types

interface  get_gaussian_topog
 

Functions/Subroutines

subroutine gaussian_topog_init_ (lon, lat, zsurf)
 Returns a simple surface height field that consists of a single Gaussian-shaped mountain. More...
 
 gaussian_topog_init_r4
 
 gaussian_topog_init_r8
 
real(kind=fms_top_kind_) function, dimension(size(lon, 1), size(lat, 1)) get_gaussian_topog_ (lon, lat, height, olond, olatd, wlond, wlatd, rlond, rlatd)
 The height, position, width, and elongation of the mountain is controlled by optional arguments. More...
 
 get_gaussian_topog_r4
 
 get_gaussian_topog_r8
 
subroutine read_namelist
 

Variables

logical do_nml = .true.
 
real(kind=r8_kind), dimension(maxmts) height = 0.0_r8_kind
 height in meters of the gaussian mountiains
 
integer, parameter maxmts = 10
 
logical module_is_initialized = .FALSE.
 
real(kind=r8_kind), dimension(maxmts) olat = 0.0_r8_kind
 Latitude of mountain origins (degrees)
 
real(kind=r8_kind), dimension(maxmts) olon = 0.0_r8_kind
 longitude of mountain origins (degrees)
 
real(kind=r8_kind), dimension(maxmts) rlat = 0.0_r8_kind
 Latitude of half-width mountain ridges (degrees) for "standard" gaussian mountain set, rlon/rlat = 0.
 
real(kind=r8_kind), dimension(maxmts) rlon = 0.0_r8_kind
 Longitude of half-width mountain ridges (degrees) for "standard" gaussian mountain set, rlon/rlat = 0.
 
real(kind=r8_kind), dimension(maxmts) wlat = 0.0_r8_kind
 Latitude of half-width mountain trails (degrees)
 
real(kind=r8_kind), dimension(maxmts) wlon = 0.0_r8_kind
 Longitude of half-width mountain trails (degrees)
 

Detailed Description

Routines for creating Gaussian-shaped land surface topography for latitude-longitude grids.

Author
Bruce Wyman

Interfaces generate simple Gaussian-shaped mountains from parameters specified by either argument list or namelist input. The mountain shapes are controlled by the height, half-width, and ridge-width parameters.


Data Type Documentation

◆ gaussian_topog_mod::get_gaussian_topog

interface gaussian_topog_mod::get_gaussian_topog

Definition at line 54 of file gaussian_topog.F90.

Private Member Functions

 get_gaussian_topog_r4
 
 get_gaussian_topog_r8
 

Function/Subroutine Documentation

◆ gaussian_topog_init_()

subroutine gaussian_topog_init_ ( real(kind=fms_top_kind_), dimension(:), intent(in)  lon,
real(kind=fms_top_kind_), dimension(:), intent(in)  lat,
real(kind=fms_top_kind_), dimension(:,:), intent(out)  zsurf 
)

Returns a simple surface height field that consists of a single Gaussian-shaped mountain.

Returns a surface height field that consists of the sum of one or more Gaussian-shaped mountains.

Parameters
[in]lonThe mean grid box longitude in radians
[in]latThe mean grid box latitude in radians
[out]zsurfThe surface height (meters). Size must be size(lon) by size(lat)

Definition at line 40 of file gaussian_topog.inc.

◆ get_gaussian_topog_()

real(kind=fms_top_kind_) function, dimension(size(lon,1),size(lat,1)) get_gaussian_topog_ ( real(kind=fms_top_kind_), dimension(:), intent(in)  lon,
real(kind=fms_top_kind_), dimension(:), intent(in)  lat,
real(kind=fms_top_kind_), intent(in)  height,
real(kind=fms_top_kind_), intent(in), optional  olond,
real(kind=fms_top_kind_), intent(in), optional  olatd,
real(kind=fms_top_kind_), intent(in), optional  wlond,
real(kind=fms_top_kind_), intent(in), optional  wlatd,
real(kind=fms_top_kind_), intent(in), optional  rlond,
real(kind=fms_top_kind_), intent(in), optional  rlatd 
)

The height, position, width, and elongation of the mountain is controlled by optional arguments.

Parameters
reallon The mean grid box longitude in radians.
reallat The mean grid box latitude in radians.
realheight Maximum surface height in meters.
realolond, olatd Position/origin of mountain in degrees longitude and latitude. This is the location of the maximum height.
realwlond, wlatd Gaussian half-width of mountain in degrees longitude and latitude.
realrlond, rlatd Ridge half-width of mountain in degrees longitude and latitude. This is the elongation of the maximum height.
realzsurf The surface height (in meters). The size of the returned field is size(lon) by size(lat). </OUT>
Exceptions
FATALshape(zsurf) is not equal to (/size(lon),size(lat)/) Check the input grid size and output field size. The input grid is defined at the midpoint of grid boxes.
Note
Mountains do not wrap around the poles. Returns a land surface topography that consists of a "set" of simple Gaussian-shaped mountains. The height, position, width, and elongation of the mountains can be controlled by variables in the namelist.

Definition at line 100 of file gaussian_topog.inc.

◆ read_namelist()

subroutine gaussian_topog_mod::read_namelist
private

read namelist

write version and namelist to log file

Definition at line 124 of file gaussian_topog.F90.