Polymorphic interface for populating ocean_bc_state_t’s per-edge
data_* buffers each outer step via a single update(t, bc) entry
point. Concrete backends (file, callback, tidal table, constant)
handle the data plumbing; the driver invokes update once per step.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ocean_boundary_data_source_t), | intent(inout) | :: | this |
Refresh bc%data_* (and any other time-varying fields)
for the current outer-step wall time t (s).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ocean_boundary_data_source_t), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | t | |||
| type(ocean_bc_state_t), | intent(inout) | :: | bc |
Trivial backend: writes user-supplied constant scalars straight
to bc%west/east/south/north’s clamped_* fields. For
fixed-inflow tests and as a polymorphic-dispatch sanity check.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | public | :: | eta_east | = | 0.0_wp | ||
| real(kind=wp), | public | :: | eta_north | = | 0.0_wp | ||
| real(kind=wp), | public | :: | eta_south | = | 0.0_wp | ||
| real(kind=wp), | public | :: | eta_west | = | 0.0_wp | ||
| real(kind=wp), | public | :: | u_east | = | 0.0_wp | ||
| real(kind=wp), | public | :: | u_west | = | 0.0_wp | ||
| real(kind=wp), | public | :: | v_north | = | 0.0_wp | ||
| real(kind=wp), | public | :: | v_south | = | 0.0_wp |
| procedure, public :: destroy => constant_destroy | |
| procedure, public :: update => constant_update |
Polymorphic base. Concrete backends extend this and provide
update + destroy.
| procedure(boundary_data_destroy_iface), public, deferred :: destroy | |
| procedure(boundary_data_update_iface), public, deferred :: update |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ocean_boundary_data_constant_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ocean_boundary_data_constant_t), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | t | |||
| type(ocean_bc_state_t), | intent(inout) | :: | bc |