nudge Subroutine

public subroutine nudge()

Uses

  • proc~~nudge~~UsesGraph proc~nudge modforces::nudge module~modfields modfields proc~nudge->module~modfields module~modglobal modglobal proc~nudge->module~modglobal module~modmpi modmpi proc~nudge->module~modmpi mpi mpi module~modmpi->mpi

Arguments

None

Called by

proc~~nudge~~CalledByGraph proc~nudge modforces::nudge program~dalesurban DALESURBAN program~dalesurban->proc~nudge

Contents

Source Code


Source Code

  subroutine nudge
    use modglobal,  only : kb,ke,lmoist,ltempeq,lnudge,tnudge,nnudge,numol,nsv
    use modfields,  only : thlp,qtp,svp,sv0av,thl0av,qt0av
    use modmpi,     only : myid
    implicit none
    integer :: k
    real :: numoli

    numoli = 1/numol

    if (lnudge .eqv. .false.) return

    if (nsv>0) then
      do k=ke-nnudge,ke
        svp(:,:,k,1) = svp(:,:,k,1) - ( sv0av(k,1) - 0. ) / (tnudge/2 + (ke-k)*tnudge/nnudge)
      end do
    end if

    if (ltempeq) then
      do k=ke-nnudge,ke
        thlp(:,:,k) = thlp(:,:,k) - ( thl0av(k) - 288 ) / (tnudge/2 + (ke-k)*tnudge/nnudge)
      end do
    end if !ltempeq

    if (lmoist) then
      do k=ke-nnudge,ke
        qtp(:,:,k) = qtp(:,:,k) - ( qt0av(k) - 0. ) / (tnudge/2 +(ke-k)*tnudge/nnudge)
      end do
    end if !lmoist

  end subroutine nudge