diff --git a/src/science/canopy/cable_canopy.F90 b/src/science/canopy/cable_canopy.F90 index 96073e6dc..cccf13365 100644 --- a/src/science/canopy/cable_canopy.F90 +++ b/src/science/canopy/cable_canopy.F90 @@ -260,9 +260,9 @@ SUBROUTINE define_canopy(bal,rad,rough,air,met,dels,ssnow,soil,veg, canopy,clima ! AERODYNAMIC PROPERTIES: friction velocity us, thence turbulent ! resistances rt0, rt1 (elements of dispersion matrix): ! See CSIRO SCAM, Raupach et al 1997, eq. 3.46: - CALL comp_friction_vel(canopy%us, iter, mp, CVONK, CUMIN, CPI_C, & - canopy%zetar, rough%zref_uv, rough%zref_tq, & - rough%z0m, met%ua ) + CALL comp_friction_vel( canopy%us, mp, CVONK, CUMIN, CPI_C, & + canopy%zetar(:,iter), rough%zref_uv, & + rough%zref_tq, rough%z0m, met%ua ) ! E.Kowalczyk 2014 IF (cable_user%l_new_roughness_soil) & diff --git a/src/science/canopy/cbl_friction_vel.F90 b/src/science/canopy/cbl_friction_vel.F90 index 164391a31..60103021a 100644 --- a/src/science/canopy/cbl_friction_vel.F90 +++ b/src/science/canopy/cbl_friction_vel.F90 @@ -16,7 +16,7 @@ MODULE cbl_friction_vel_module CONTAINS -SUBROUTINE comp_friction_vel(friction_vel, iter, mp, CVONK, CUMIN, CPI_C, & +SUBROUTINE comp_friction_vel(friction_vel, mp, CVONK, CUMIN, CPI_C, & zetar, zref_uv, zref_tq, z0m, ua ) !*## Purpose ! @@ -69,14 +69,13 @@ SUBROUTINE comp_friction_vel(friction_vel, iter, mp, CVONK, CUMIN, CPI_C, & INTEGER, INTENT(IN) :: mp !! size of cable vector of land points (-) REAL, INTENT(OUT) :: friction_vel(mp) !! friction velocity (ms\(^{-1}\)) -INTEGER, INTENT(IN) :: iter !! MO iteration counter (-) ! physical constants REAL, INTENT(IN) :: CVONK !! von Karman constant (-) REAL, INTENT(IN):: CUMIN !! minimum value of wind speed (ms\(^{-1}\)) ! maths & other constants REAL, INTENT(IN) :: CPI_C !! \(\pi\) (-) -REAL, INTENT(IN) :: zetar(mp,iter) !! stability parameter - see [[update_zetar]] `canopy%zetar` (-) +REAL, INTENT(IN) :: zetar(mp) !! stability parameter - see [[update_zetar]] `canopy%zetar` (-) REAL, INTENT(IN) :: zref_uv(mp) !! reference height for wind `rough%zref_uv` (m) REAL, INTENT(IN) :: zref_tq(mp) !! reference height for temperature and humidity `rough%zref_tq` (m) REAL, INTENT(IN) :: z0m(mp) !! roughness length `rough%z0m` (m) @@ -91,13 +90,13 @@ SUBROUTINE comp_friction_vel(friction_vel, iter, mp, CVONK, CUMIN, CPI_C, & ! but zetar based on rough%zref_tq - changes to ensure consistency !NB no RSL incorporated here -psim_1 = psim( zetar(:,iter) * zref_uv/zref_tq, mp, CPI_C ) +psim_1 = psim( zetar(:) * zref_uv/zref_tq, mp, CPI_C ) !rescale = CVONK * MAX( ua, SPREAD(CUMIN,1,mp ) ) rescale = CVONK * MAX( ua, CUMIN ) z_eff = zref_uv / z0m -psim_arg = zetar(:,iter) * z0m / zref_tq +psim_arg = zetar(:) * z0m / zref_tq psim_2 = psim( psim_arg, mp, CPI_C ) lower_limit = rescale / ( LOG(z_eff) - psim_1 + psim_2 )