m_abl_diagnostics Module

Horizontal/time profile diagnostics for the neutral ABL validation.

This is deliberately separate from abl_t: the ABL driver owns physics, while this case-owned object owns validation state and CSV output.


Uses

  • module~~m_abl_diagnostics~~UsesGraph module~m_abl_diagnostics m_abl_diagnostics m_mpi m_mpi module~m_abl_diagnostics->m_mpi module~m_base_backend m_base_backend module~m_abl_diagnostics->module~m_base_backend module~m_common m_common module~m_abl_diagnostics->module~m_common module~m_config m_config module~m_abl_diagnostics->module~m_config module~m_field m_field module~m_abl_diagnostics->module~m_field module~m_les m_les module~m_abl_diagnostics->module~m_les module~m_logger m_logger module~m_abl_diagnostics->module~m_logger module~m_mesh m_mesh module~m_abl_diagnostics->module~m_mesh 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_allocator m_allocator module~m_base_backend->module~m_allocator 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->m_mpi iso_fortran_env iso_fortran_env module~m_logger->iso_fortran_env 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_allocator->module~m_common module~m_allocator->module~m_field 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_diagnostics~~UsedByGraph module~m_abl_diagnostics m_abl_diagnostics module~m_case_abl m_case_abl module~m_case_abl->module~m_abl_diagnostics program~xcompact xcompact program~xcompact->module~m_case_abl

Interfaces

public interface abl_diagnostics_t

  • private function init(backend, mesh, cfg) result(diagnostics)

    Arguments

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

    Return Value type(abl_diagnostics_t)


Derived Types

type, public ::  abl_diagnostics_t

Components

Type Visibility Attributes Name Initial
class(base_backend_t), public, pointer :: backend => null()
type(mesh_t), public, pointer :: mesh => null()
type(abl_config_t), public :: cfg
real(kind=dp), public, allocatable :: profile_sum(:,:)
real(kind=dp), public :: wall_stress_sum(2) = 0._dp
real(kind=dp), public :: first_time = 0._dp
integer, public :: sample_count = 0
integer, public :: last_iter = -1

Constructor

private function init (backend, mesh, cfg)

Type-Bound Procedures

procedure, public :: sample

Functions

public pure function neutral_log_law(y, u_star, kappa, z0) result(u_log)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: y
real(kind=dp), intent(in) :: u_star
real(kind=dp), intent(in) :: kappa
real(kind=dp), intent(in) :: z0

Return Value real(kind=dp)

public pure function friction_velocity(tau_x, tau_z) result(u_star)

Friction velocity from the magnitude of a mean wall-stress vector.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: tau_x
real(kind=dp), intent(in) :: tau_z

Return Value real(kind=dp)