Pure corner-coordinate generator for the bipolar Arctic cap of a
TRIPOLAR ocean grid (Murray 1996, J. Comput. Phys. 126, 251-273).
Ordinary lon-lat for lat <= phi_join; a conformal BIPOLAR cap for
lat > phi_join. Two grid poles sit ON the join latitude at antipodal
longitudes lon_pole and lon_pole+180, so the join circle is a
coordinate line and the grid is C0-continuous across it.
Map: stereographic projection from the south pole
(Z = tan((90-lat)/2)exp(i lon)), de-rotate by lon_pole, Mobius
w = (Zp-A)/(Zp+A) with A = tan((90-phi_join)/2). Conformal coords
(mu, xi) = (log|w|, arg w) are orthogonal by construction. The logical
parameterisation makes the join a coordinate line and continuous with
the lon-lat grid: i sets mu = log|tan((lam-lon_pole)/2)| (lon = lam on
the join ring); j (s in [0,1]) rotates xi = sgn(pi/2 + s pi/2) from
the join (s=0) to the self-conjugate fold line (s=1). Inverse:
w = exp(mu+ixi), Zp = A (1+w)/(1-w), Z = Zpexp(i lon_pole).
module~~rdb_ocean_bipolar~~UsesGraph
module~rdb_ocean_bipolar
rdb_ocean_bipolar
module~rdb_constants
rdb_constants
module~rdb_ocean_bipolar->module~rdb_constants
pic_types
pic_types
module~rdb_constants->pic_types
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
module~~rdb_ocean_bipolar~~UsedByGraph
module~rdb_ocean_bipolar
rdb_ocean_bipolar
module~rdb_ocean_metrics
rdb_ocean_metrics
module~rdb_ocean_metrics->module~rdb_ocean_bipolar
module~rdb_barotropic_coupling
rdb_barotropic_coupling
module~rdb_barotropic_coupling->module~rdb_ocean_metrics
module~rdb_coriolis_adv
rdb_coriolis_adv
module~rdb_barotropic_coupling->module~rdb_coriolis_adv
module~rdb_ocean_bottom_drag
rdb_ocean_bottom_drag
module~rdb_barotropic_coupling->module~rdb_ocean_bottom_drag
module~rdb_ocean_horizontal_viscosity
rdb_ocean_horizontal_viscosity
module~rdb_barotropic_coupling->module~rdb_ocean_horizontal_viscosity
module~rdb_ocean_pressure_force
rdb_ocean_pressure_force
module~rdb_barotropic_coupling->module~rdb_ocean_pressure_force
module~rdb_barotropic_substep
rdb_barotropic_substep
module~rdb_barotropic_substep->module~rdb_ocean_metrics
module~rdb_continuity
rdb_continuity
module~rdb_continuity->module~rdb_ocean_metrics
module~rdb_ocean_gm
rdb_ocean_gm
module~rdb_continuity->module~rdb_ocean_gm
module~rdb_ocean_mle
rdb_ocean_mle
module~rdb_continuity->module~rdb_ocean_mle
module~rdb_coriolis_adv->module~rdb_ocean_metrics
module~rdb_ice_evp
rdb_ice_evp
module~rdb_ice_evp->module~rdb_ocean_metrics
module~rdb_ice_init
rdb_ice_init
module~rdb_ice_init->module~rdb_ocean_metrics
module~rdb_ice_ocean_coupler
rdb_ice_ocean_coupler
module~rdb_ice_ocean_coupler->module~rdb_ocean_metrics
module~rdb_ice_transport
rdb_ice_transport
module~rdb_ice_transport->module~rdb_ocean_metrics
module~rdb_ice_transport->module~rdb_continuity
module~rdb_ocean_bottom_drag->module~rdb_ocean_metrics
module~rdb_ocean_bt_wide
rdb_ocean_bt_wide
module~rdb_ocean_bt_wide->module~rdb_ocean_metrics
module~rdb_ocean_bt_wide->module~rdb_barotropic_substep
module~rdb_ocean_cavity_flux
rdb_ocean_cavity_flux
module~rdb_ocean_cavity_flux->module~rdb_ocean_metrics
module~rdb_ocean_console_stats
rdb_ocean_console_stats
module~rdb_ocean_console_stats->module~rdb_ocean_metrics
module~rdb_ocean_dyn
rdb_ocean_dyn
module~rdb_ocean_dyn->module~rdb_ocean_metrics
module~rdb_ocean_dyn->module~rdb_barotropic_coupling
module~rdb_ocean_dyn->module~rdb_barotropic_substep
module~rdb_ocean_dyn->module~rdb_continuity
module~rdb_ocean_dyn->module~rdb_coriolis_adv
module~rdb_ocean_dyn->module~rdb_ocean_bottom_drag
module~rdb_ocean_dyn->module~rdb_ocean_bt_wide
module~rdb_ocean_dyn->module~rdb_ocean_cavity_flux
module~rdb_ocean_dyn->module~rdb_ocean_console_stats
module~rdb_ocean_dyn->module~rdb_ocean_gm
module~rdb_ocean_hdiff_tracer
rdb_ocean_hdiff_tracer
module~rdb_ocean_dyn->module~rdb_ocean_hdiff_tracer
module~rdb_ocean_dyn->module~rdb_ocean_horizontal_viscosity
module~rdb_ocean_isopycnal_slopes
rdb_ocean_isopycnal_slopes
module~rdb_ocean_dyn->module~rdb_ocean_isopycnal_slopes
module~rdb_ocean_ke_probe
rdb_ocean_ke_probe
module~rdb_ocean_dyn->module~rdb_ocean_ke_probe
module~rdb_ocean_lateral_mix
rdb_ocean_lateral_mix
module~rdb_ocean_dyn->module~rdb_ocean_lateral_mix
module~rdb_ocean_meke
rdb_ocean_meke
module~rdb_ocean_dyn->module~rdb_ocean_meke
module~rdb_ocean_dyn->module~rdb_ocean_mle
module~rdb_ocean_dyn->module~rdb_ocean_pressure_force
module~rdb_ocean_redi
rdb_ocean_redi
module~rdb_ocean_dyn->module~rdb_ocean_redi
module~rdb_ocean_varmix
rdb_ocean_varmix
module~rdb_ocean_dyn->module~rdb_ocean_varmix
module~rdb_ocean_wave_speed
rdb_ocean_wave_speed
module~rdb_ocean_dyn->module~rdb_ocean_wave_speed
module~rdb_ocean_bt_budget_probe
rdb_ocean_bt_budget_probe
module~rdb_ocean_dyn->module~rdb_ocean_bt_budget_probe
module~rdb_ocean_engine
rdb_ocean_engine
module~rdb_ocean_engine->module~rdb_ocean_metrics
module~rdb_ocean_engine->module~rdb_ice_evp
module~rdb_ocean_engine->module~rdb_ice_init
module~rdb_ocean_engine->module~rdb_ice_ocean_coupler
module~rdb_ocean_engine->module~rdb_ice_transport
module~rdb_ocean_engine->module~rdb_ocean_cavity_flux
module~rdb_ocean_engine->module~rdb_ocean_dyn
module~rdb_ocean_setup
rdb_ocean_setup
module~rdb_ocean_engine->module~rdb_ocean_setup
module~rdb_ocean_stability_audit
rdb_ocean_stability_audit
module~rdb_ocean_engine->module~rdb_ocean_stability_audit
module~rdb_ocean_state
rdb_ocean_state
module~rdb_ocean_engine->module~rdb_ocean_state
module~rdb_config
rdb_config
module~rdb_ocean_engine->module~rdb_config
module~rdb_ocean_diag_derived
rdb_ocean_diag_derived
module~rdb_ocean_engine->module~rdb_ocean_diag_derived
module~rdb_ocean_diag_fills
rdb_ocean_diag_fills
module~rdb_ocean_engine->module~rdb_ocean_diag_fills
module~rdb_decomp
rdb_decomp
module~rdb_ocean_engine->module~rdb_decomp
module~rdb_ocean_data_forcing
rdb_ocean_data_forcing
module~rdb_ocean_engine->module~rdb_ocean_data_forcing
module~rdb_ocean_data_input
rdb_ocean_data_input
module~rdb_ocean_engine->module~rdb_ocean_data_input
module~rdb_state
rdb_state
module~rdb_ocean_engine->module~rdb_state
module~rdb_ocean_gm->module~rdb_ocean_metrics
module~rdb_ocean_gm->module~rdb_ocean_isopycnal_slopes
module~rdb_ocean_hdiff_tracer->module~rdb_ocean_metrics
module~rdb_ocean_horizontal_viscosity->module~rdb_ocean_metrics
module~rdb_ocean_horizontal_viscosity->module~rdb_ocean_lateral_mix
module~rdb_ocean_isopycnal_slopes->module~rdb_ocean_metrics
module~rdb_ocean_ke_probe->module~rdb_ocean_metrics
module~rdb_ocean_ke_probe->module~rdb_coriolis_adv
module~rdb_ocean_lateral_mix->module~rdb_ocean_metrics
module~rdb_ocean_meke->module~rdb_ocean_metrics
module~rdb_ocean_meke->module~rdb_ocean_gm
module~rdb_ocean_meke->module~rdb_ocean_varmix
module~rdb_ocean_meke->module~rdb_ocean_wave_speed
module~rdb_ocean_mle->module~rdb_ocean_metrics
module~rdb_ocean_pressure_force->module~rdb_ocean_metrics
module~rdb_ocean_redi->module~rdb_ocean_metrics
module~rdb_ocean_setup->module~rdb_ocean_metrics
module~rdb_ocean_setup->module~rdb_coriolis_adv
module~rdb_ocean_setup->module~rdb_ocean_bottom_drag
module~rdb_ocean_setup->module~rdb_ocean_dyn
module~rdb_ocean_setup->module~rdb_ocean_horizontal_viscosity
module~rdb_ocean_setup->module~rdb_ocean_lateral_mix
module~rdb_ocean_setup->module~rdb_ocean_pressure_force
module~rdb_ocean_setup->module~rdb_ocean_state
module~rdb_ocean_setup->module~rdb_config
module~rdb_ocean_setup->module~rdb_decomp
module~rdb_ocean_stability_audit->module~rdb_ocean_metrics
module~rdb_ocean_stability_audit->module~rdb_config
module~rdb_ocean_state->module~rdb_ocean_metrics
module~rdb_ocean_state->module~rdb_continuity
module~rdb_ocean_state->module~rdb_coriolis_adv
module~rdb_ocean_state->module~rdb_ocean_bottom_drag
module~rdb_ocean_state->module~rdb_ocean_cavity_flux
module~rdb_ocean_state->module~rdb_ocean_dyn
module~rdb_ocean_state->module~rdb_ocean_gm
module~rdb_ocean_state->module~rdb_ocean_hdiff_tracer
module~rdb_ocean_state->module~rdb_ocean_horizontal_viscosity
module~rdb_ocean_state->module~rdb_ocean_isopycnal_slopes
module~rdb_ocean_state->module~rdb_ocean_lateral_mix
module~rdb_ocean_state->module~rdb_ocean_meke
module~rdb_ocean_state->module~rdb_ocean_mle
module~rdb_ocean_state->module~rdb_ocean_pressure_force
module~rdb_ocean_state->module~rdb_ocean_redi
module~rdb_ocean_state->module~rdb_ocean_varmix
module~rdb_ocean_state->module~rdb_ocean_wave_speed
module~rdb_ocean_state->module~rdb_config
module~rdb_ocean_state->module~rdb_decomp
module~rdb_ocean_state->module~rdb_ocean_data_forcing
module~rdb_ocean_state->module~rdb_ocean_data_input
module~rdb_ocean_z_init
rdb_ocean_z_init
module~rdb_ocean_state->module~rdb_ocean_z_init
module~rdb_ocean_varmix->module~rdb_ocean_metrics
module~rdb_ocean_varmix->module~rdb_ocean_isopycnal_slopes
module~rdb_ocean_varmix->module~rdb_ocean_wave_speed
module~rdb_ocean_wave_speed->module~rdb_ocean_metrics
module~rdb_config->module~rdb_ice_init
module~rdb_driver
rdb_driver
module~rdb_driver->module~rdb_ocean_console_stats
module~rdb_driver->module~rdb_ocean_dyn
module~rdb_driver->module~rdb_ocean_engine
module~rdb_driver->module~rdb_ocean_state
module~rdb_driver->module~rdb_config
module~rdb_handle
rdb_handle
module~rdb_handle->module~rdb_ocean_engine
module~rdb_handle->module~rdb_ocean_state
module~rdb_handle->module~rdb_config
module~rdb_ocean_api
rdb_ocean_api
module~rdb_ocean_api->module~rdb_ocean_dyn
module~rdb_ocean_api->module~rdb_ocean_engine
module~rdb_ocean_api->module~rdb_config
module~rdb_ocean_api->module~rdb_handle
module~rdb_ocean_api->module~rdb_ocean_diag_derived
module~rdb_ocean_api->module~rdb_ocean_diag_fills
module~rdb_ocean_halo_width
rdb_ocean_halo_width
module~rdb_ocean_api->module~rdb_ocean_halo_width
module~rdb_ocean_bt_budget_probe->module~rdb_coriolis_adv
module~rdb_ocean_bt_budget_probe->module~rdb_ocean_bottom_drag
module~rdb_ocean_bt_budget_probe->module~rdb_ocean_horizontal_viscosity
module~rdb_ocean_bt_budget_probe->module~rdb_ocean_pressure_force
module~rdb_ocean_diag_derived->module~rdb_ocean_state
module~rdb_ocean_diag_derived->module~rdb_ocean_diag_fills
module~rdb_ocean_diag_fills->module~rdb_ocean_state
module~rdb_ocean_halo_width->module~rdb_coriolis_adv
proc~validate_config
validate_config
proc~validate_config->module~rdb_coriolis_adv
proc~validate_config->module~rdb_ocean_bottom_drag
proc~validate_config->module~rdb_ocean_horizontal_viscosity
proc~validate_config->module~rdb_ocean_lateral_mix
proc~validate_config->module~rdb_ocean_pressure_force
module~rdb_config_schema
rdb_config_schema
module~rdb_config_schema->module~rdb_config
module~rdb_decomp->module~rdb_config
module~rdb_ocean_data_forcing->module~rdb_config
module~rdb_ocean_data_forcing->module~rdb_ocean_data_input
module~rdb_ocean_data_input->module~rdb_config
module~rdb_ocean_z_init->module~rdb_config
module~rdb_state->module~rdb_config
module~rdb_halo
rdb_halo
module~rdb_halo->module~rdb_decomp
module~rdb_ocean_fold_exchange
rdb_ocean_fold_exchange
module~rdb_ocean_fold_exchange->module~rdb_decomp
module~rdb_ocean_halo
rdb_ocean_halo
module~rdb_ocean_halo->module~rdb_decomp
module~rdb_ocean_restart_io
rdb_ocean_restart_io
module~rdb_ocean_restart_io->module~rdb_decomp
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Functions
Latitude (deg) of the two cap poles — they sit ON the join
latitude, so this is simply phi_join.
Arguments
Type
Intent Optional Attributes
Name
real(kind=wp),
intent(in)
::
phi_join
Return Value
real(kind=wp)
Subroutines
Map a logical cap location to geographic (lat, lon) in degrees.
lam_deg : pseudo-longitude (geographic lon at the join ring),
any real (wrapped internally); the i-direction.
s : cap-row fraction, 0 = join ring (lat = phi_join),
1 = fold line; the j-direction.
phi_join: join latitude (deg); cap covers lat > phi_join.
lon_pole: longitude (deg) of the first cap pole; partner at
lon_pole + 180.
Arguments
Type
Intent Optional Attributes
Name
real(kind=wp),
intent(in)
::
lam_deg
real(kind=wp),
intent(in)
::
s
real(kind=wp),
intent(in)
::
phi_join
real(kind=wp),
intent(in)
::
lon_pole
real(kind=wp),
intent(out)
::
lat
real(kind=wp),
intent(out)
::
lon