neverworld_initialization module reference

Initialization for the “Neverworld” configuration.

More…

Functions/Subroutines

neverworld_initialize_topography()

This subroutine sets up the Neverworld test case topography.

cosbell()

Returns the value of a cosine-bell function evaluated at x/L.

spike()

Returns the value of a sin-spike function evaluated at x/L.

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).

ns_coast()

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

ew_coast()

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

ns_ridge()

A NS ridge.

circ_ridge()

A circular ridge.

neverworld_initialize_thickness()

This subroutine initializes layer thicknesses for the Neverworld test case, by finding the depths of interfaces in a specified latitude-dependent temperature profile with an exponentially decaying thermocline on top of a linear stratification.

Detailed Description

Initialization for the “Neverworld” configuration.

Function/Subroutine Documentation

subroutine neverworld_initialization/neverworld_initialize_topography(D, G, param_file, max_depth)

This subroutine sets up the Neverworld test case topography.

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

cosbell mom_error_handler::mom_mesg spike

Called from

mom_fixed_initialization::mom_initialize_topography

function neverworld_initialization/cosbell(x, L) [real]

Returns the value of a cosine-bell function evaluated at x/L.

Parameters
  • x :: [in] non-dimensional position

  • l :: [in] non-dimensional width

Called from

neverworld_initialize_topography

function neverworld_initialization/spike(x, L) [real]

Returns the value of a sin-spike function evaluated at x/L.

Parameters
  • x :: [in] non-dimensional position

  • l :: [in] non-dimensional width

Called from

neverworld_initialize_thickness neverworld_initialize_topography

function neverworld_initialization/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_ridge ns_ridge

function neverworld_initialization/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

cstprof

function neverworld_initialization/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

ew_coast ns_coast

function neverworld_initialization/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_ridge

function neverworld_initialization/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 neverworld_initialization/ns_coast(lon, lat, lon0, lat0, lat1, dlon, sh) [real]

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

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

  • lat :: [in] Latitude [degrees_N]

  • lon0 :: [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

function neverworld_initialization/ew_coast(lon, lat, lon0, lon1, lat0, dlat, sh) [real]

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

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

  • lat :: [in] Latitude [degrees_N]

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

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

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

  • 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

function neverworld_initialization/ns_ridge(lon, lat, lon0, lat0, lat1, dlon, rh) [real]

A NS ridge.

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

  • lat :: [in] Latitude [degrees_N]

  • lon0 :: [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

function neverworld_initialization/circ_ridge(lon, lat, lon0, lat0, ring_radius, ring_thickness, ridge_height) [real]

A circular ridge.

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

subroutine neverworld_initialization/neverworld_initialize_thickness(h, depth_tot, G, GV, US, param_file, eqn_of_state, P_ref)

This subroutine initializes layer thicknesses for the Neverworld test case, by finding the depths of interfaces in a specified latitude-dependent temperature profile with an exponentially decaying thermocline on top of a linear stratification.

Parameters
  • g :: [in] The ocean’s grid structure.

  • gv :: [in] The ocean’s vertical grid structure.

  • us :: [in] A dimensional unit scaling type

  • h :: [out] The thickness that is being initialized [H ~> m or kg m-2].

  • depth_tot :: [in] The nominal total depth of the ocean [Z ~> m]

  • param_file :: [in] A structure indicating the open file to parse for model parameter values.

  • eqn_of_state :: Equation of state structure

  • p_ref :: [in] The coordinate-density reference pressure [R L2 T-2 ~> Pa].

Call to

mom_error_handler::mom_mesg spike

Called from

mom_state_initialization::mom_initialize_state