diff --git a/src/pbl_dry_contrgradient.f90 b/src/pbl_dry_contrgradient.f90 index ff89bbee78b68fc368d2415485f2738733e6064d..9cdaf07bdbaa92ab8bec6e819fb172ce450db75e 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