From ee31c3de0e12332edb377c20391269c877e5840d Mon Sep 17 00:00:00 2001 From: Andrey Debolskiy <and.debol@gmail.com> Date: Fri, 14 Feb 2025 17:08:48 +0300 Subject: [PATCH] cntrgradient rework --- src/pbl_dry_contrgradient.f90 | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/pbl_dry_contrgradient.f90 b/src/pbl_dry_contrgradient.f90 index ff89bbe..9cdaf07 100644 --- a/src/pbl_dry_contrgradient.f90 +++ b/src/pbl_dry_contrgradient.f90 @@ -39,7 +39,7 @@ module pbl_dry_contrgradient end subroutine allocate_cbl subroutine deallocate_cbl(cbl) - type(pblContrGradDataType), intent(out):: cbl + type(pblContrGradDataType), intent(inout):: cbl deallocate(cbl%entr) deallocate(cbl%theta_up) @@ -49,7 +49,7 @@ module pbl_dry_contrgradient deallocate(cbl%va_up) deallocate(cbl%wu) end subroutine deallocate_cbl - subroutine get_entrainment(cbl, turb, bl, fluid, grid) + subroutine get_entrainment(cbl, bl, fluid, grid) use scm_state_data, only : stateBLDataType use pbl_turb_data, only : turbBLDataType use phys_fluid, only: fluidParamsDataType @@ -57,7 +57,6 @@ module pbl_dry_contrgradient implicit none type(pblContrGradDataType) :: cbl type(stateBLDataType), intent(inout):: bl - type(turbBLDataType), intent(in):: turb type(fluidParamsDataType), intent(in) :: fluid type(pblgridDataType), intent(in) :: grid @@ -147,7 +146,9 @@ module pbl_dry_contrgradient real wu, phys_beta, umod, ustr, rhs, a, b, dz integer k, kmax kmax = grid%kmax - cbl%wu = 0.0 + cbl%wu(:) = 0.0 + + umod = sqrt(bl%u(kmax)*bl%u(kmax) + bl%v(kmax)*bl%v(kmax)) ustr = sqrt(bl%surf%cm2u /bl%rho(kmax) * umod) phys_beta = 0.5 * fluid%g /(bl%theta_v(kmax) + bl%theta_v(kmax-1)) @@ -181,7 +182,7 @@ module pbl_dry_contrgradient use phys_fluid, only: fluidParamsDataType use pbl_grid, only : pblgridDataType implicit none - type(pblContrGradDataType) :: cbl + type(pblContrGradDataType), intent(inout) :: cbl type(stateBLDataType), intent(inout):: bl type(fluidParamsDataType), intent(in) :: fluid type(pblgridDataType), intent(in) :: grid @@ -194,6 +195,11 @@ module pbl_dry_contrgradient kmax = grid%kmax kpbl = bl%kpbl a0w0 = 0.15 * cbl%wu(kpbl) + + + call get_entrainment(cbl, bl, fluid, grid) + call get_up(cbl, bl, fluid, grid) + call get_wu(cbl, bl, fluid, grid) !apply upwind rhs_up(:) = 0 do k = kmax-1, 1, -1 -- GitLab