xmi_driver Subroutine

private subroutine xmi_driver()

Uses

  • proc~~xmi_driver~~UsesGraph proc~xmi_driver xmi_driver module~modfields modfields proc~xmi_driver->module~modfields module~modglobal modglobal proc~xmi_driver->module~modglobal module~modinletdata modinletdata proc~xmi_driver->module~modinletdata module~modsubgriddata modsubgriddata proc~xmi_driver->module~modsubgriddata decomp_2d decomp_2d module~modfields->decomp_2d

Arguments

None

Called by

proc~~xmi_driver~~CalledByGraph proc~xmi_driver xmi_driver proc~boundary boundary proc~boundary->proc~xmi_driver program~dalesurban DALESURBAN program~dalesurban->proc~boundary

Source Code

     subroutine xmi_driver
       use modglobal,      only : ib, ie, jb, je, kb, ke
       use modinletdata,   only : u0driver, umdriver, v0driver, vmdriver, w0driver, wmdriver
       use modfields,      only : u0, um, v0, vm, w0, wm, e120, e12m, e12prof
       use modsubgriddata, only : loneeqn

       integer j, k

       do j = jb - 1, je + 1
         do k = kb, ke !tg3315 removed +1 following above...
           u0(ib,j,k) = u0driver(j,k) !max(0.,u0driver(j,k))
           um(ib,j,k) = umdriver(j,k) !max(0.,umdriver(j,k))
           u0(ib-1,j,k) = u0driver(j,k) !max(0.,u0driver(j,k))
           um(ib-1,j,k) = umdriver(j,k) !max(0.,umdriver(j,k))
           ! u0(ib-1,j,k)= 2*u0(ib, j, k) - u0(ib + 1, j, k) ! (u(ib+1)+u(ib-1))/2 = u(ib)
           ! um(ib-1,j,k)= 2*um(ib, j, k) - um(ib + 1, j, k) ! (u(ib+1)+u(ib-1))/2 = u(ib)

           !v0(ib,j,k)   = v0driver(j,k) !max(0.,v0driver(j,k))
           !vm(ib,j,k)   = vmdriver(j,k) !max(0.,vmdriver(j,k))
           v0(ib-1,j,k)   = v0driver(j,k) !max(0.,v0driver(j,k))
           vm(ib-1,j,k)   = vmdriver(j,k) !max(0.,vmdriver(j,k))
         end do

         do k=kb,ke+1
           !w0(ib,j,k)   = w0driver(j,k) !max(0.,w0driver(j,k))
           !wm(ib,j,k)   = wmdriver(j,k) !max(0.,wmdriver(j,k))
           w0(ib-1,j,k) = w0driver(j,k) !max(0.,w0driver(j,k))
           wm(ib-1,j,k) = wmdriver(j,k) !max(0.,wmdriver(j,k))
         end do
       end do

       if (loneeqn) then
         do j = jb - 1, je + 1
           do k = kb, ke + 1
             ! to be changed in the future: e12 should be taken from recycle plane!
             !e120(ib-1,j,k) = e120driver(j,k)      ! extrapolate e12 from interior
             !e12m(ib-1,j,k) = e12mdriver(j,k)      ! extrapolate e12 from interior
             e120(ib - 1, j, k) = e120(ib, j, k) ! (e12(ib)+e12(ib-1))/2=e12prof
             e12m(ib - 1, j, k) = e12m(ib, j, k) ! (e12(ib)+e12(ib-1))/2=e12prof
           end do
         end do
       end if

     end subroutine xmi_driver