basin_builder module reference

An idealized topography building system.

More…

Functions/Subroutines

basin_builder_topography()

Constructs idealized topography from simple functions.

cone()

Returns the value of a triangular function centered at x=x0 with value 1 and linearly decreasing to 0 at x=x0+/-L, and 0 otherwise.

scurve()

Returns an s-curve s(x) s.t.

cstprof()

Returns a “coastal” profile.

dist_line_fixed_x()

Distance between points x,y and a line segment (x0,y0) and (x0,y1).

dist_line_fixed_y()

Distance between points x,y and a line segment (x0,y0) and (x1,y0).

angled_coast()

An “angled coast profile”.

ns_coast()

A “coast profile” applied in an N-S line from lonC,lat0 to lonC,lat1.

ew_coast()

A “coast profile” applied in an E-W line from lon0,latC to lon1,latC.

ns_conic_ridge()

A NS ridge with a cone profile.

ns_scurve_ridge()

A NS ridge with an scurve profile.

circ_conic_ridge()

A circular ridge with cutoff conic profile.

circ_scurve_ridge()

A circular ridge with cutoff scurve profile.

Detailed Description

An idealized topography building system.

Function/Subroutine Documentation

subroutine basin_builder/basin_builder_topography(D, G, param_file, max_depth)

Constructs idealized topography from simple functions.

Parameters
  • g :: [in] The dynamic horizontal grid type

  • d :: [out] Ocean bottom depth in the units of depth_max

  • param_file :: [in] Parameter file structure

  • max_depth :: [in] Maximum ocean depth in arbitrary units

Call to

angled_coast circ_conic_ridge circ_scurve_ridge ew_coast mom_string_functions::lowercase mdl mom_error_handler::mom_error mom_error_handler::mom_mesg ns_coast ns_conic_ridge ns_scurve_ridge

Called from

mom_fixed_initialization::mom_initialize_topography

function basin_builder/cone(x, x0, L, clip) [real]

Returns the value of a triangular function centered at x=x0 with value 1 and linearly decreasing to 0 at x=x0+/-L, and 0 otherwise. If clip is present the top of the cone is cut off at “clip”, which effectively defaults to 1.

Parameters
  • x :: [in] non-dimensional coordinate [nondim]

  • x0 :: [in] position of peak [nondim]

  • l :: [in] half-width of base of cone [nondim]

  • clip :: [in] clipping height of cone [nondim]

Called from

circ_conic_ridge ns_conic_ridge

function basin_builder/scurve(x, x0, L) [real]

Returns an s-curve s(x) s.t. s(x0)<=0, s(x0+L)>=1 and cubic in between.

Parameters
  • x :: [in] non-dimensional coordinate [nondim]

  • x0 :: [in] position of peak [nondim]

  • l :: [in] half-width of base of cone [nondim]

Called from

circ_scurve_ridge cstprof ns_scurve_ridge

function basin_builder/cstprof(x, x0, L, lf, bf, sf, sh) [real]

Returns a “coastal” profile.

Parameters
  • x :: [in] non-dimensional coordinate [nondim]

  • x0 :: [in] position of peak [nondim]

  • l :: [in] width of profile [nondim]

  • lf :: [in] fraction of width that is “land” [nondim]

  • bf :: [in] fraction of width that is “beach” [nondim]

  • sf :: [in] fraction of width that is “continental slope” [nondim]

  • sh :: [in] depth of shelf as fraction of full depth [nondim]

Call to

scurve

Called from

angled_coast ew_coast ns_coast

function basin_builder/dist_line_fixed_x(x, y, x0, y0, y1) [real]

Distance between points x,y and a line segment (x0,y0) and (x0,y1).

Parameters
  • x :: [in] non-dimensional x-coordinate [nondim]

  • y :: [in] non-dimensional y-coordinate [nondim]

  • x0 :: [in] x-position of line segment [nondim]

  • y0 :: [in] y-position of line segment end[nondim]

  • y1 :: [in] y-position of line segment end[nondim]

Called from

dist_line_fixed_y ns_coast ns_conic_ridge ns_scurve_ridge

function basin_builder/dist_line_fixed_y(x, y, x0, x1, y0) [real]

Distance between points x,y and a line segment (x0,y0) and (x1,y0).

Parameters
  • x :: [in] non-dimensional x-coordinate [nondim]

  • y :: [in] non-dimensional y-coordinate [nondim]

  • x0 :: [in] x-position of line segment end[nondim]

  • x1 :: [in] x-position of line segment end[nondim]

  • y0 :: [in] y-position of line segment [nondim]

Call to

dist_line_fixed_x

Called from

ew_coast

function basin_builder/angled_coast(lon, lat, lon_eq, lat_mer, dr, sh) [real]

An “angled coast profile”.

Parameters
  • lon :: [in] Longitude [degrees_E]

  • lat :: [in] Latitude [degrees_N]

  • lon_eq :: [in] Longitude intersection with Equator [degrees_E]

  • lat_mer :: [in] Latitude intersection with Prime Meridian [degrees_N]

  • dr :: [in] “Radius” of coast profile [degrees]

  • sh :: [in] depth of shelf as fraction of full depth [nondim]

Call to

cstprof

Called from

basin_builder_topography

function basin_builder/ns_coast(lon, lat, lonC, lat0, lat1, dlon, sh) [real]

A “coast profile” applied in an N-S line from lonC,lat0 to lonC,lat1.

Parameters
  • lon :: [in] Longitude [degrees_E]

  • lat :: [in] Latitude [degrees_N]

  • lonc :: [in] Longitude of coast [degrees_E]

  • lat0 :: [in] Latitude of coast end [degrees_N]

  • lat1 :: [in] Latitude of coast end [degrees_N]

  • dlon :: [in] “Radius” of coast profile [degrees]

  • sh :: [in] depth of shelf as fraction of full depth [nondim]

Call to

cstprof dist_line_fixed_x

Called from

basin_builder_topography

function basin_builder/ew_coast(lon, lat, latC, lon0, lon1, dlat, sh) [real]

A “coast profile” applied in an E-W line from lon0,latC to lon1,latC.

Parameters
  • lon :: [in] Longitude [degrees_E]

  • lat :: [in] Latitude [degrees_N]

  • latc :: [in] Latitude of coast [degrees_N]

  • lon0 :: [in] Longitude of coast end [degrees_E]

  • lon1 :: [in] Longitude of coast end [degrees_E]

  • dlat :: [in] “Radius” of coast profile [degrees]

  • sh :: [in] depth of shelf as fraction of full depth [nondim]

Call to

cstprof dist_line_fixed_y

Called from

basin_builder_topography

function basin_builder/ns_conic_ridge(lon, lat, lonC, lat0, lat1, dlon, rh) [real]

A NS ridge with a cone profile.

Parameters
  • lon :: [in] Longitude [degrees_E]

  • lat :: [in] Latitude [degrees_N]

  • lonc :: [in] Longitude of ridge center [degrees_E]

  • lat0 :: [in] Latitude of ridge end [degrees_N]

  • lat1 :: [in] Latitude of ridge end [degrees_N]

  • dlon :: [in] “Radius” of ridge profile [degrees]

  • rh :: [in] depth of ridge as fraction of full depth [nondim]

Call to

cone dist_line_fixed_x

Called from

basin_builder_topography

function basin_builder/ns_scurve_ridge(lon, lat, lonC, lat0, lat1, dlon, rh) [real]

A NS ridge with an scurve profile.

Parameters
  • lon :: [in] Longitude [degrees_E]

  • lat :: [in] Latitude [degrees_N]

  • lonc :: [in] Longitude of ridge center [degrees_E]

  • lat0 :: [in] Latitude of ridge end [degrees_N]

  • lat1 :: [in] Latitude of ridge end [degrees_N]

  • dlon :: [in] “Radius” of ridge profile [degrees]

  • rh :: [in] depth of ridge as fraction of full depth [nondim]

Call to

dist_line_fixed_x scurve

Called from

basin_builder_topography

function basin_builder/circ_conic_ridge(lon, lat, lon0, lat0, ring_radius, ring_thickness, ridge_height) [real]

A circular ridge with cutoff conic profile.

Parameters
  • lon :: [in] Longitude [degrees_E]

  • lat :: [in] Latitude [degrees_N]

  • lon0 :: [in] Longitude of center of ring [degrees_E]

  • lat0 :: [in] Latitude of center of ring [degrees_N]

  • ring_radius :: [in] Radius of ring [degrees]

  • ring_thickness :: [in] Radial thickness of ring [degrees]

  • ridge_height :: [in] Ridge height as fraction of full depth [nondim]

Call to

cone

Called from

basin_builder_topography

function basin_builder/circ_scurve_ridge(lon, lat, lon0, lat0, ring_radius, ring_thickness, ridge_height) [real]

A circular ridge with cutoff scurve profile.

Parameters
  • lon :: [in] Longitude [degrees_E]

  • lat :: [in] Latitude [degrees_N]

  • lon0 :: [in] Longitude of center of ring [degrees_E]

  • lat0 :: [in] Latitude of center of ring [degrees_N]

  • ring_radius :: [in] Radius of ring [degrees]

  • ring_thickness :: [in] Radial thickness of ring [degrees]

  • ridge_height :: [in] Ridge height as fraction of full depth [nondim]

Call to

scurve

Called from

basin_builder_topography