A two-sided logistic trough: ~0 within |y - Ly/2| < w_c (the
trough floor) rising to d_c on both side walls over the
f_c transition. Note the paper’s own caveat (their Fig. 1b):
By is an OFFSET relative to the trough, not a transect — the
bed is Bx + By, and Bx is never zero.
y and y_len are METRES. y_len is the model’s own domain
width, which for the prescribed ISOMIP+ box (0 <= y <= 80 km)
is the paper’s Ly — taking it from the grid rather than
hard-coding 80 km keeps the trough centred in whatever box the
caller actually built.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
real(kind=wp),
private
::
yc
Source Code
pure function isomip_plus_by(y,y_len)result(by)!! Across-flow bedrock elevation, Asay-Davis et al. (2016) Eq. (4):!!!! By(y) = d_c/(1 + exp(-2*(y - Ly/2 - w_c)/f_c))!! + d_c/(1 + exp( 2*(y - Ly/2 + w_c)/f_c))!!!! A two-sided logistic trough: ~0 within `|y - Ly/2| < w_c` (the!! trough floor) rising to `d_c` on both side walls over the!! `f_c` transition. Note the paper's own caveat (their Fig. 1b):!! `By` is an OFFSET relative to the trough, not a transect — the!! bed is `Bx + By`, and `Bx` is never zero.!!!! `y` and `y_len` are METRES. `y_len` is the model's own domain!! width, which for the prescribed ISOMIP+ box (`0 <= y <= 80 km`)!! is the paper's `Ly` — taking it from the grid rather than!! hard-coding 80 km keeps the trough centred in whatever box the!! caller actually built.real(wp),intent(in)::y,y_lenreal(wp)::byreal(wp)::ycyc=y-0.5_wp*y_lenby=ISOMIP_DC*isomip_logistic(-2.0_wp*(yc-ISOMIP_WC)/ISOMIP_FC)&+ISOMIP_DC*isomip_logistic(2.0_wp*(yc+ISOMIP_WC)/ISOMIP_FC)end function isomip_plus_by