Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(inout) | :: | output | |||
real, | intent(in) | :: | ustar | |||
real, | intent(in) | :: | lmo |
subroutine blthicknessmo(output,ustar,lmo) ! This routine compute the BL thicknes for a buoyancy affected boundary layer: ! Newton-Raphson method is used use modglobal, only : numol,Uinf implicit none real, intent(in) :: ustar ! friction velocity real, intent(in) :: lmo ! Obukhov length real, intent(inout) :: output !< BL thickness based on law of the wake ! real, dimension(kb:ke) :: mthick ! real :: ucrit ! real :: umax ! integer :: k real :: B = 5.0 ! Wake parameter real :: C = 0.5 ! Coles parameter real :: kappa = 0.41 ! Von k�r�n constant real :: cmo = 0.702 ! Constant in MO theory (0.135*5.2) real :: lam ! = Uinf/ustar real :: func,dfunc,utaunu integer :: n utaunu = ustar / numol lam = Uinf / ustar ! write(6,*) 'Initial delta, Lmo =', output,lmo do n=1,10 func = log(output) + (cmo*output/lmo) + log(utaunu) - kappa*(lam-B) +2.*C ! func = log(output) + log(utaunu) - kappa*(lam-B) +2.*C dfunc = 1./output + cmo/lmo output = output - (func / dfunc) if (output <= 0.) then output = di end if end do ! write(6,*) 'Computed delta, Lmo =', output,lmo end subroutine blthicknessmo