reassure_fluxtop_boundary Subroutine

private subroutine reassure_fluxtop_boundary()

Uses

  • proc~~reassure_fluxtop_boundary~~UsesGraph proc~reassure_fluxtop_boundary reassure_fluxtop_boundary module~modfields modfields proc~reassure_fluxtop_boundary->module~modfields module~modglobal modglobal proc~reassure_fluxtop_boundary->module~modglobal module~modsubgriddata modsubgriddata proc~reassure_fluxtop_boundary->module~modsubgriddata module~modsurfdata modsurfdata proc~reassure_fluxtop_boundary->module~modsurfdata decomp_2d decomp_2d module~modfields->decomp_2d

Arguments

None

Calls

proc~~reassure_fluxtop_boundary~~CallsGraph proc~reassure_fluxtop_boundary reassure_fluxtop_boundary proc~fluxtop fluxtop proc~reassure_fluxtop_boundary->proc~fluxtop proc~fluxtopscal fluxtopscal proc~reassure_fluxtop_boundary->proc~fluxtopscal

Called by

proc~~reassure_fluxtop_boundary~~CalledByGraph proc~reassure_fluxtop_boundary reassure_fluxtop_boundary proc~closurebc closurebc proc~closurebc->proc~reassure_fluxtop_boundary proc~closure closure proc~closure->proc~closurebc proc~subgrid subgrid proc~subgrid->proc~closure program~udales uDALES program~udales->proc~subgrid

Source Code

   subroutine reassure_fluxtop_boundary
    use modglobal,      only : ltempeq, lmoist, nsv, &
                               BCtopm, BCtopT, BCtopq, BCtops, &
                               BCtopm_freeslip, BCtopm_pressure, &
                               BCtopT_flux, BCtopq_flux, BCtops_flux
    use modfields,      only : u0, v0, um, vm, thl0, thlm, qt0, qtm
    use modsubgriddata, only : ekh, ekm
    use modsurfdata,    only : wttop, wqtop, wsvtop
    implicit none

    select case(BCtopm)
      case(BCtopm_freeslip)
        !free-slip = zero-flux
        call fluxtop(um, ekm, 0.0)
        call fluxtop(u0, ekm, 0.0)
        call fluxtop(vm, ekm, 0.0)
        call fluxtop(v0, ekm, 0.0)
      case(BCtopm_pressure)
        call fluxtop(um, ekm, 0.0)
        call fluxtop(u0, ekm, 0.0)
        call fluxtop(vm, ekm, 0.0)
        call fluxtop(v0, ekm, 0.0)
      case default
    end select

    if (ltempeq .and. (BCtopT .eq. BCtopT_flux)) then
      call fluxtop(thlm, ekh, wttop)
      call fluxtop(thl0, ekh, wttop)
    end if

    if (lmoist .and. (BCtopq .eq. BCtopq_flux)) then
      call fluxtop(qtm, ekh, wqtop)
      call fluxtop(qt0, ekh, wqtop)
    end if

    if (nsv > 0 .and. (BCtops .eq. BCtops_flux)) then
      call fluxtopscal(wsvtop)
      call fluxtopscal(wsvtop)
    end if
   end subroutine reassure_fluxtop_boundary