Parent-state ingestion + interpolation state for nesting a regional
ocean run inside a global/basin parent. Distinct from coastal
BC_NESTED: parent state on a coarser mesh (ingest + remap onto our
vertical grid), tides composed in via rdb_ocean_tides, mandatory
T/S clamp, and a Flow-Relaxation-Scheme (FRS) zone of nrelax cells
rather than a hard clamp. Scaffold (kernels not yet implemented).
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public, | parameter | :: | OBC_EDGE_EAST | = | 2 | |
| integer, | public, | parameter | :: | OBC_EDGE_NORTH | = | 4 | |
| integer, | public, | parameter | :: | OBC_EDGE_SOUTH | = | 3 | |
| integer, | public, | parameter | :: | OBC_EDGE_WEST | = | 1 |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | clamp_tracers | = | .true. |
Apply the FRS clamp to T, S (not just SSH/UV). |
|
| real(kind=wp), | public | :: | dt_ingest | = | 3600.0_wp |
Cadence at which the next parent slab is read (s). |
|
| logical, | public | :: | enabled | = | .false. |
Master OBC switch. Falls back to coastal BCs if false. |
|
| logical, | public | :: | is_init | = | .false. |
True between |
|
| integer, | public | :: | nrelax | = | 8 |
Width (in cells) of the Flow-Relaxation zone. |
|
| real(kind=wp), | public, | allocatable | :: | parent_S_east(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_S_north(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_S_south(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_S_west(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_T_east(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_T_north(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_T_south(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_T_west(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_eta_east(:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_eta_north(:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_eta_south(:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_eta_west(:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_u_east(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_u_west(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_v_north(:,:,:) | |||
| real(kind=wp), | public, | allocatable | :: | parent_v_south(:,:,:) | |||
| real(kind=wp), | public | :: | relax_inner | = | 0.0_wp |
Relaxation timescale (1/s) at the interior edge of FRS. |
|
| real(kind=wp), | public | :: | relax_outer | = | 1.0_wp/600.0_wp |
Relaxation timescale at the outer (boundary) edge. |
|
| real(kind=wp), | public | :: | t_next_ingest | = | 0.0_wp |
| procedure, public, non_overridable :: bytes => ocean_obc_bytes | |
| procedure, public, non_overridable :: destroy => ocean_obc_destroy | |
| procedure, public, non_overridable :: init => ocean_obc_init |
Counted allocatable footprint of the open boundary condition slot (0 when unallocated).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ocean_obc_t), | intent(in) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ocean_obc_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ocean_obc_t), | intent(inout) | :: | this | |||
| type(hgrid_t), | intent(in) | :: | grid |