rdb_recon_weno Module


Uses

  • module~~rdb_recon_weno~~UsesGraph module~rdb_recon_weno rdb_recon_weno module~rdb_constants rdb_constants module~rdb_recon_weno->module~rdb_constants module~rdb_grid rdb_grid module~rdb_recon_weno->module~rdb_grid pic_types pic_types module~rdb_constants->pic_types module~rdb_grid->module~rdb_constants

Used by

  • module~~rdb_recon_weno~~UsedByGraph module~rdb_recon_weno rdb_recon_weno module~rdb_continuity rdb_continuity module~rdb_continuity->module~rdb_recon_weno module~rdb_ocean_halo_width rdb_ocean_halo_width module~rdb_ocean_halo_width->module~rdb_recon_weno module~rdb_ocean_setup rdb_ocean_setup module~rdb_ocean_setup->module~rdb_recon_weno module~rdb_ocean_dyn rdb_ocean_dyn module~rdb_ocean_setup->module~rdb_ocean_dyn module~rdb_ocean_state rdb_ocean_state module~rdb_ocean_setup->module~rdb_ocean_state proc~validate_config validate_config proc~validate_config->module~rdb_recon_weno module~rdb_ice_transport rdb_ice_transport module~rdb_ice_transport->module~rdb_continuity module~rdb_ocean_api rdb_ocean_api module~rdb_ocean_api->module~rdb_ocean_halo_width module~rdb_ocean_api->module~rdb_ocean_dyn module~rdb_ocean_engine rdb_ocean_engine module~rdb_ocean_api->module~rdb_ocean_engine module~rdb_handle rdb_handle module~rdb_ocean_api->module~rdb_handle module~rdb_ocean_diag_derived rdb_ocean_diag_derived module~rdb_ocean_api->module~rdb_ocean_diag_derived module~rdb_ocean_diag_fills rdb_ocean_diag_fills module~rdb_ocean_api->module~rdb_ocean_diag_fills module~rdb_ocean_dyn->module~rdb_continuity module~rdb_ocean_engine->module~rdb_ocean_setup module~rdb_ocean_engine->module~rdb_ice_transport module~rdb_ocean_engine->module~rdb_ocean_dyn module~rdb_ocean_engine->module~rdb_ocean_state module~rdb_ocean_engine->module~rdb_ocean_diag_derived module~rdb_ocean_engine->module~rdb_ocean_diag_fills module~rdb_ocean_state->module~rdb_continuity module~rdb_ocean_state->module~rdb_ocean_dyn module~rdb_driver rdb_driver module~rdb_driver->module~rdb_ocean_dyn module~rdb_driver->module~rdb_ocean_engine module~rdb_driver->module~rdb_ocean_state module~rdb_handle->module~rdb_ocean_engine module~rdb_handle->module~rdb_ocean_state 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

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: TRACER_RECON_OK = 0

Config honours the requested tracer_recon code.

integer, public, parameter :: TRACER_RECON_PPM = 0

Use PPM (the default path — does not call this module).

integer, public, parameter :: TRACER_RECON_REJECT_NO_ML = 4

weno* requested on a coastal run without multilayer tracers.

integer, public, parameter :: TRACER_RECON_REJECT_OCEAN = 3

weno* requested on sim_type=’ocean’ (coastal-only in wave 1).

integer, public, parameter :: TRACER_RECON_REJECT_PQM = 1

“pqm” requested — deferred, not implemented on any config.

integer, public, parameter :: TRACER_RECON_REJECT_UNKNOWN = 2

Unrecognised tracer_recon string.

integer, public, parameter :: TRACER_RECON_WENO5 = 1

WENO5-Z (Jiang-Shu 1996 + Borges 2008 Z-weights), nghost >= 3.

integer, public, parameter :: TRACER_RECON_WENO7 = 2

WENO7-Z (Balsara-Shu 2000), nghost >= 4.

integer, public, parameter :: TRACER_RECON_WENO9 = 3

WENO9-Z (Balsara-Shu 2000), nghost >= 5.


Functions

public pure function parse_tracer_recon(str) result(code)

Map a namelist string onto a TRACER_RECON_* code.

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: str

Return Value integer

public pure function plm_face_swept(qm1, q0, qp1, sigma) result(face)

PLM (piecewise-linear) swept-average face value.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: qm1
real(kind=wp), intent(in) :: q0
real(kind=wp), intent(in) :: qp1
real(kind=wp), intent(in) :: sigma

Return Value real(kind=wp)

public pure function recon_rung_for_face(avail_up, avail_down, rung_max) result(rung)

Return the highest feasible reconstruction rung for one face.

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: avail_up

Interior cells from domain-west to face (including upwind cell c).

integer, intent(in) :: avail_down

Interior cells from face downwind side to domain-east.

integer, intent(in) :: rung_max

Maximum internal rung allowed (4 = WENO9, 3 = WENO7, 2 = WENO5).

Return Value integer

public pure function tracer_recon_required_nghost(code) result(ng)

Minimum nghost required for a given TRACER_RECON_* code.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: code

TRACER_RECON_* constant.

Return Value integer

public pure function tracer_recon_support_status(recon_code, is_ocean, has_multilayer_tracers) result(status)

Decide whether a parsed tracer_recon code is honoured on this config, independent of the multilayer nghost/use_ppm_tracer quality guards (those apply only once this returns OK for a weno rung). Factored out as a pure predicate so the fail-loud decision is unit-testable without triggering error stop.

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: recon_code

parse_tracer_recon(cfg%tracer_recon) result.

logical, intent(in) :: is_ocean

.true. when sim_type == ‘ocean’.

logical, intent(in) :: has_multilayer_tracers

cfg%use_multilayer — the coastal multilayer tracer registry.

Return Value integer

public pure function weno5_face_swept(qm2, qm1, q0, qp1, qp2, sigma) result(face)

WENO5-Z swept-average face value (u > 0, upwind cell = q0).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: qm2

Cell averages at i-2, i-1, i, i+1, i+2.

real(kind=wp), intent(in) :: qm1

Cell averages at i-2, i-1, i, i+1, i+2.

real(kind=wp), intent(in) :: q0

Cell averages at i-2, i-1, i, i+1, i+2.

real(kind=wp), intent(in) :: qp1

Cell averages at i-2, i-1, i, i+1, i+2.

real(kind=wp), intent(in) :: qp2

Cell averages at i-2, i-1, i, i+1, i+2.

real(kind=wp), intent(in) :: sigma

CFL of upwind cell: |u_eff|*dt/dx.

Return Value real(kind=wp)

public pure function weno7_face_swept(qm3, qm2, qm1, q0, qp1, qp2, qp3, sigma) result(face)

WENO7-Z swept-average face value (u > 0, upwind cell = q0).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: qm3

Cell averages at i-3 through i+3.

real(kind=wp), intent(in) :: qm2

Cell averages at i-3 through i+3.

real(kind=wp), intent(in) :: qm1

Cell averages at i-3 through i+3.

real(kind=wp), intent(in) :: q0

Cell averages at i-3 through i+3.

real(kind=wp), intent(in) :: qp1

Cell averages at i-3 through i+3.

real(kind=wp), intent(in) :: qp2

Cell averages at i-3 through i+3.

real(kind=wp), intent(in) :: qp3

Cell averages at i-3 through i+3.

real(kind=wp), intent(in) :: sigma

CFL of upwind cell: |u_eff|*dt/dx.

Return Value real(kind=wp)

public pure function weno9_face_swept(qm4, qm3, qm2, qm1, q0, qp1, qp2, qp3, qp4, sigma) result(face)

WENO9-Z swept-average face value (u > 0, upwind cell = q0).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: qm4

Cell averages at i-4 through i+4.

real(kind=wp), intent(in) :: qm3

Cell averages at i-4 through i+4.

real(kind=wp), intent(in) :: qm2

Cell averages at i-4 through i+4.

real(kind=wp), intent(in) :: qm1

Cell averages at i-4 through i+4.

real(kind=wp), intent(in) :: q0

Cell averages at i-4 through i+4.

real(kind=wp), intent(in) :: qp1

Cell averages at i-4 through i+4.

real(kind=wp), intent(in) :: qp2

Cell averages at i-4 through i+4.

real(kind=wp), intent(in) :: qp3

Cell averages at i-4 through i+4.

real(kind=wp), intent(in) :: qp4

Cell averages at i-4 through i+4.

real(kind=wp), intent(in) :: sigma

CFL of upwind cell: |u_eff|*dt/dx.

Return Value real(kind=wp)