diffe Subroutine

public subroutine diffe(putout)

Uses

  • proc~~diffe~~UsesGraph proc~diffe modsubgrid::diffe module~modfields modfields proc~diffe->module~modfields module~modglobal modglobal proc~diffe->module~modglobal module~modmpi modmpi proc~diffe->module~modmpi mpi mpi module~modmpi->mpi

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: putout(ib-ih:ie+ih,jb-jh:je+jh,kb:ke+kh)

Called by

proc~~diffe~~CalledByGraph proc~diffe modsubgrid::diffe proc~subgrid modsubgrid::subgrid proc~subgrid->proc~diffe program~dalesurban DALESURBAN program~dalesurban->proc~subgrid

Contents

Source Code


Source Code

  subroutine diffe(putout)

    use modglobal, only : ib,ie,ih,jb,je,jh,kb,ke,kh,dxf,dxfi,dxh2i,dzf,dzfi,&
         dy2i,dzhi,dzh2i,jmax
    use modfields, only : e120
    use modmpi,    only : myid
    implicit none

    real, intent(inout) :: putout(ib-ih:ie+ih,jb-jh:je+jh,kb:ke+kh)
    integer             :: i,j,k,jm,jp,km,kp

    do k=kb,ke
       kp=k+1
       km=k-1

       do j=jb,je
          jp=j+1
          jm=j-1

          do i=ib,ie

             putout(i,j,k) = putout(i,j,k) &
                  +  1.0 *  ( &
                  ( (ekm(i+1,j,k)*dxf(i)+ekm(i,j,k)*dxf(i+1)) * (e120(i+1,j,k)-e120(i,j,k))*dxh2i(i+1) &
                  -(ekm(i,j,k)*dxf(i-1)+ekm(i-1,j,k)*dxf(i))*(e120(i,j,k)-e120(i-1,j,k))*dxh2i(i)) * dxfi(i) &
                  + &
                  ((ekm(i,jp,k)+ekm(i,j,k)) *(e120(i,jp,k)-e120(i,j,k)) &
                  -(ekm(i,j,k)+ekm(i,jm,k)) *(e120(i,j,k)-e120(i,jm,k)) )*dy2i &
                  + &
                  ((dzf(kp)*ekm(i,j,k) + dzf(k)*ekm(i,j,kp)) &
                  *(e120(i,j,kp)-e120(i,j,k)) *dzh2i(kp) &
                  -(dzf(km)*ekm(i,j,k) + dzf(k)*ekm(i,j,km)) &
                  *(e120(i,j,k)-e120(i,j,km)) *dzh2i(k)        )*dzfi(k) &
                  )      
          end do
       end do
    end do


  end subroutine diffe