m_abl Module

Reusable, backend-agnostic Atmospheric Boundary Layer driver.

Ported from Incompact3d's Case-ABL.f90 (itype=10). The driver owns the ABL physics and is owned by a case; it never uses m_solver/m_base_case, taking fields/mesh/coords in (same pattern as m_ibm).

The neutral rough-wall model is configured here and evaluated as part of the LES SGS divergence, where it can replace the bottom-plane SGS flux without overwriting other momentum terms.


Uses

  • module~~m_abl~~UsesGraph module~m_abl m_abl iso_fortran_env iso_fortran_env module~m_abl->iso_fortran_env m_mpi m_mpi module~m_abl->m_mpi module~m_allocator m_allocator module~m_abl->module~m_allocator module~m_base_backend m_base_backend module~m_abl->module~m_base_backend module~m_common m_common module~m_abl->module~m_common module~m_config m_config module~m_abl->module~m_config module~m_field m_field module~m_abl->module~m_field module~m_les m_les module~m_abl->module~m_les module~m_logger m_logger module~m_abl->module~m_logger module~m_mesh m_mesh module~m_abl->module~m_mesh module~m_allocator->module~m_common module~m_allocator->module~m_field module~m_base_backend->module~m_allocator module~m_base_backend->module~m_common module~m_base_backend->module~m_field module~m_base_backend->module~m_logger module~m_base_backend->module~m_mesh iso_c_binding iso_c_binding module~m_base_backend->iso_c_binding module~m_poisson_fft m_poisson_fft module~m_base_backend->module~m_poisson_fft module~m_tdsops m_tdsops module~m_base_backend->module~m_tdsops module~m_common->m_mpi module~m_common->module~m_logger module~m_config->module~m_common module~m_config->module~m_logger module~m_field->module~m_common module~m_field->iso_c_binding module~m_les->module~m_base_backend module~m_les->module~m_common module~m_les->module~m_config module~m_les->module~m_field module~m_les->module~m_logger module~m_les->module~m_mesh module~m_les->module~m_tdsops module~m_logger->iso_fortran_env module~m_logger->m_mpi module~m_mesh->m_mpi module~m_mesh->module~m_common module~m_mesh->module~m_field module~m_mesh->module~m_logger module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content module~m_mesh_content->module~m_common module~m_mesh_content->module~m_logger module~m_poisson_fft->module~m_common module~m_poisson_fft->module~m_field module~m_poisson_fft->module~m_logger module~m_poisson_fft->module~m_mesh module~m_poisson_fft->module~m_tdsops module~m_tdsops->module~m_common module~m_tdsops->module~m_logger

Used by

  • module~~m_abl~~UsedByGraph module~m_abl m_abl module~m_case_abl m_case_abl module~m_case_abl->module~m_abl program~xcompact xcompact program~xcompact->module~m_case_abl

Interfaces

public interface abl_t

  • private function init(backend, mesh, host_allocator, cfg) result(abl)

    Arguments

    Type IntentOptional Attributes Name
    class(base_backend_t), intent(inout), target :: backend
    type(mesh_t), intent(inout), target :: mesh
    type(allocator_t), intent(inout), target :: host_allocator
    type(abl_config_t), intent(in) :: cfg

    Return Value type(abl_t)


Derived Types

type, public ::  abl_t

Components

Type Visibility Attributes Name Initial
class(base_backend_t), public, pointer :: backend => null()
class(mesh_t), public, pointer :: mesh => null()
type(allocator_t), public, pointer :: host_allocator => null()
type(abl_config_t), public :: cfg
class(field_t), public, pointer :: damp_coeff => null()

Constructor

private function init (backend, mesh, host_allocator, cfg)

Type-Bound Procedures

procedure, public :: initialise
procedure, public :: apply_forcing
procedure, public :: configure_wall_boundary_correction
procedure, public :: apply_damping
procedure, public :: build_damping