rdb_ocean_boundary_data Module

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.


Uses

  • module~~rdb_ocean_boundary_data~~UsesGraph module~rdb_ocean_boundary_data rdb_ocean_boundary_data module~rdb_constants rdb_constants module~rdb_ocean_boundary_data->module~rdb_constants module~rdb_ocean_boundary_types rdb_ocean_boundary_types module~rdb_ocean_boundary_data->module~rdb_ocean_boundary_types pic_types pic_types module~rdb_constants->pic_types module~rdb_ocean_boundary_types->module~rdb_constants iso_fortran_env iso_fortran_env module~rdb_ocean_boundary_types->iso_fortran_env module~rdb_grid rdb_grid module~rdb_ocean_boundary_types->module~rdb_grid module~rdb_mem_report rdb_mem_report module~rdb_ocean_boundary_types->module~rdb_mem_report module~rdb_ocean_status rdb_ocean_status module~rdb_ocean_boundary_types->module~rdb_ocean_status module~rdb_ocean_tide_astro rdb_ocean_tide_astro module~rdb_ocean_boundary_types->module~rdb_ocean_tide_astro pic_ascii pic_ascii module~rdb_ocean_boundary_types->pic_ascii pic_logger pic_logger module~rdb_ocean_boundary_types->pic_logger module~rdb_grid->module~rdb_constants module~rdb_mem_report->module~rdb_constants module~rdb_mem_report->iso_fortran_env module~rdb_mem_report->pic_logger pic_strings pic_strings module~rdb_mem_report->pic_strings module~rdb_ocean_tide_astro->module~rdb_constants module~rdb_ocean_tide_astro->iso_fortran_env

Used by

  • module~~rdb_ocean_boundary_data~~UsedByGraph module~rdb_ocean_boundary_data rdb_ocean_boundary_data module~rdb_ocean_engine rdb_ocean_engine module~rdb_ocean_engine->module~rdb_ocean_boundary_data module~rdb_driver rdb_driver module~rdb_driver->module~rdb_ocean_engine module~rdb_handle rdb_handle module~rdb_handle->module~rdb_ocean_engine module~rdb_ocean_api rdb_ocean_api module~rdb_ocean_api->module~rdb_ocean_engine module~rdb_ocean_api->module~rdb_handle

Abstract Interfaces

abstract interface

  • private subroutine boundary_data_destroy_iface(this)

    Arguments

    Type IntentOptional Attributes Name
    class(ocean_boundary_data_source_t), intent(inout) :: this

abstract interface

  • private subroutine boundary_data_update_iface(this, t, bc)

    Refresh bc%data_* (and any other time-varying fields) for the current outer-step wall time t (s).

    Arguments

    Type IntentOptional 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

Derived Types

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.

Components

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

Type-Bound Procedures

procedure, public :: destroy => constant_destroy
procedure, public :: update => constant_update

type, public, abstract ::  ocean_boundary_data_source_t

Polymorphic base. Concrete backends extend this and provide update + destroy.

Type-Bound Procedures

procedure(boundary_data_destroy_iface), public, deferred :: destroy
procedure(boundary_data_update_iface), public, deferred :: update

Subroutines

private subroutine constant_destroy(this)

Arguments

Type IntentOptional Attributes Name
class(ocean_boundary_data_constant_t), intent(inout) :: this

private subroutine constant_update(this, t, bc)

Arguments

Type IntentOptional 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