wallawinlet Subroutine

public subroutine wallawinlet(utan, dx, visc, tau)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: utan
real, intent(in) :: dx
real, intent(in) :: visc
real, intent(out) :: tau

Called by

proc~~wallawinlet~~CalledByGraph proc~wallawinlet wallawinlet proc~inletgen inletgen proc~inletgen->proc~wallawinlet proc~inletgennotemp inletgennotemp proc~inletgennotemp->proc~wallawinlet

Source Code

  subroutine wallawinlet(utan,dx,visc,tau)
! this should be the same as wallaw in modboundary!!! This routine is just
! copied to avoid circular dependencies
    implicit none

      real, intent(in)  :: utan,dx,visc
      real, intent(out) :: tau

      real    const1, const2, const3, const4
      real    tausub, taupow
      real    sub, dutan, utankr,utanabs
      real    aaa,bbb
      real    dxi

      parameter(aaa = 8.3)
      parameter(bbb = 0.1428571429)

      dxi = 1./dx
      const1 = 0.5 * (1. - bbb) * aaa ** ((1. + bbb) / (1. - bbb))
      const2 = (1. + bbb) / aaa
      const3 = aaa ** (2. / (1. - bbb))
      const4 = 2. / (1. + bbb)

      utanabs=abs(utan)
      utankr = 0.5 * visc * dxi * const3
      dutan  = utankr - utanabs
      sub    = max (sign(1.,dutan),0.)

      tausub    = 2. * visc * utanabs * dxi
!      taupow3   =   const1 * (visc * dxi)**(1.+bbb) + (const2 * (visc *
!      dxi)**bbb) * utanabs
      taupow    = ( const1 * (visc * dxi)**(1.+bbb) + (const2 * (visc * dxi)**bbb) * utanabs)** const4

!      if (taupow3<=0) then
!        write(6,*) 'taupow3 <=0!!!'
!      end if
      tau = sub * tausub + (1.- sub) * taupow
      tau = sign(tau,utan)  ! give tau the same sign as utan
      return
    end subroutine wallawinlet