advection Subroutine

subroutine advection()

Uses

  • proc~~advection~~UsesGraph proc~advection advection.f90::advection module~modfields modfields proc~advection->module~modfields module~modglobal modglobal proc~advection->module~modglobal module~modsubgriddata modsubgriddata proc~advection->module~modsubgriddata

Arguments

None

Calls

proc~~advection~~CallsGraph proc~advection advection.f90::advection proc~advecc_2nd advec_2nd.f90::advecc_2nd proc~advection->proc~advecc_2nd proc~advecc_kappa advec_kappa.f90::advecc_kappa proc~advection->proc~advecc_kappa proc~advecc_upw advec_upw.f90::advecc_upw proc~advection->proc~advecc_upw proc~advecu_2nd advec_2nd.f90::advecu_2nd proc~advection->proc~advecu_2nd proc~advecv_2nd advec_2nd.f90::advecv_2nd proc~advection->proc~advecv_2nd proc~advecw_2nd advec_2nd.f90::advecw_2nd proc~advection->proc~advecw_2nd proc~rlim advec_kappa.f90::rlim proc~advecc_kappa->proc~rlim

Called by

proc~~advection~~CalledByGraph proc~advection advection.f90::advection program~dalesurban DALESURBAN program~dalesurban->proc~advection

Contents

Source Code


Source Code

subroutine advection

   use modglobal, only:lmoist, nsv, iadv_mom, iadv_tke, iadv_thl, iadv_qt, iadv_sv, &
      iadv_cd2, iadv_kappa, iadv_upw, &
      ltempeq, ih, jh, kh, ihc, jhc, khc
   use modfields, only:u0, up, v0, vp, w0, wp, e120, e12p, thl0, thlp, qt0, qtp, sv0, svp
   use modsubgriddata, only:loneeqn
   implicit none
   integer :: n

   select case (iadv_mom)
   case (iadv_cd2)
      call advecu_2nd(u0, up)
      call advecv_2nd(v0, vp)
      call advecw_2nd(w0, wp)
   case default
      write(0, *) "ERROR: Unknown advection scheme"
      stop 1
   end select

   if (loneeqn) then
      select case (iadv_tke)
      case (iadv_cd2)
         call advecc_2nd(ih, jh, kh, e120, e12p)
      case default
         write(0, *) "ERROR: Unknown advection scheme"
         stop 1 
      end select
   end if

   select case (iadv_thl)
   case (iadv_cd2)
      if (ltempeq) call advecc_2nd(ih, jh, kh, thl0, thlp)
   case (iadv_kappa)
      call advecc_kappa(ihc, jhc, khc, thl0, thlp)
   case default
      write(0, *) "ERROR: Unknown advection scheme"
      stop 1
   end select

   if (lmoist) then
      select case (iadv_qt)
      case (iadv_cd2)
         call advecc_2nd(ih, jh, kh, qt0, qtp)
      case default
         write(0, *) "ERROR: Unknown advection scheme"
         stop 1
      end select
   end if
   do n = 1, nsv
      select case (iadv_sv (n))
      case (iadv_cd2)
         call advecc_2nd(ihc, jhc, khc, sv0(:, :, :, n), svp(:, :, :, n))
      case (iadv_kappa)
         call advecc_kappa(ihc, jhc, khc, sv0(:, :, :, n), svp(:, :, :, n))
      case (iadv_upw)
         call advecc_upw(ihc, jhc, khc, sv0(:, :, :, n), svp(:, :, :, n))
      case default
         write(0, *) "ERROR: Unknown advection scheme"
         stop 1
      end select
   end do

end subroutine advection