scalSIRANE Subroutine

private subroutine scalSIRANE()

Uses

  • proc~~scalsirane~~UsesGraph proc~scalsirane modboundary::scalSIRANE module~modfields modfields proc~scalsirane->module~modfields module~modglobal modglobal proc~scalsirane->module~modglobal module~modinletdata modinletdata proc~scalsirane->module~modinletdata module~modmpi modmpi proc~scalsirane->module~modmpi mpi mpi module~modmpi->mpi

Arguments

None

Called by

proc~~scalsirane~~CalledByGraph proc~scalsirane modboundary::scalSIRANE proc~boundary modboundary::boundary proc~boundary->proc~scalsirane proc~readinitfiles modstartup::readinitfiles proc~readinitfiles->proc~boundary program~dalesurban DALESURBAN program~dalesurban->proc~boundary proc~startup modstartup::startup program~dalesurban->proc~startup proc~startup->proc~readinitfiles

Contents

Source Code


Source Code

   subroutine scalSIRANE
    use modglobal, only : ib,ie,jb,je,ih,jh,kb,ke,kh,nsv,dt,lscalrec,lmoistinout,ltempinout,rk3step,dxhi,ltempeq,&
         ihc, jhc, khc, lSIRANEinout, dy
      use modfields, only:sv0, svm, svprof
      use modinletdata, only:ubulk
      use modmpi, only:myid, nprocs
      real rk3coef
      integer k, n, m
      if (nsv > 0) then
         !rk3coef = dt / (4. - dble(rk3step))
         do n = 1, nsv
            do m = 1, ihc
               do k = kb, ke + 1
                  sv0(ib - m, :, k, n) = 2*svprof(k, n) - sv0(ib - m + 1, :, k, n) !scalars have two ghost cells...???
                  svm(ib - m, :, k, n) = 2*svprof(k, n) - svm(ib - m + 1, :, k, n)
               end do
!              sv0(ie+m,:,:,n)= sv0(ie+m-1,:,:,n) - (sv0(ie+m,:,:,n)-sv0(ie+m-1,:,:,n))*dxhi(ie+m)*rk3coef*ubulk
!              svm(ie+m,:,:,n)= svm(ie+m-1,:,:,n) - (svm(ie+m,:,:,n)-svm(ie+m-1,:,:,n))*dxhi(ie+m)*rk3coef*ubulk !changed from uouttot to ubulk here !tg3315 08/11/2017
!              sv0(ie+m,:,:,n)= sv0(ie+m-1,:,:,n) - (sv0(ie+m,:,:,n)-sv0(ie+m-1,:,:,n))*dxhi(ie+m)*rk3coef*u0(ie+m,:,:)
!              svm(ie+m,:,:,n)= svm(ie+m-1,:,:,n) - (svm(ie+m,:,:,n)-svm(ie+m-1,:,:,n))*dxhi(ie+m)*rk3coef*um(ie+m,:,:) !changed from uouttot to ubulk here !tg3315 08/11/2017
               svm(ie + m, :, :, n) = svm(ie + m - 1, :, :, n)
               sv0(ie + m, :, :, n) = sv0(ie + m - 1, :, :, n)
            end do !m, ihc
         end do !n, nsv

         do m = 1, jhc
            do n = 1, nsv
            if (myid == 0) then
               do k = kb, ke + 1
                  sv0(:, jb - m, k, n) = 2*svprof(k, n) - sv0(:, jb - m + 1, k, n)
                  svm(:, jb - m, k, n) = 2*svprof(k, n) - svm(:, jb - m + 1, k, n)
               end do
            end if
            if (myid == nprocs - 1) then
               !sv0(:,je+m,:,n)= sv0(:,je+m-1,:,n) - (sv0(:,je+m,:,n)-sv0(:,je+m-1,:,n))*dy*rk3coef*ubulk
               !svm(:,je+m,:,n)= svm(:,je+m-1,:,n) - (svm(:,je+m,:,n)-svm(:,je+m-1,:,n))*dy*rk3coef*ubulk !changed from uouttot to ubulk here !tg3315 08/11/2017
               !      sv0(:,je+m,:,n)= sv0(:,je+m-1,:,n) - (sv0(:,je+m,:,n)-sv0(:,je+m-1,:,n))*dy*rk3coef*v0(:,je+m,:)
               !      svm(:,je+m,:,n)= svm(:,je+m-1,:,n) - (svm(:,je+m,:,n)-svm(:,je+m-1,:,n))*dy*rk3coef*vm(:,je+m,:) !changed from uouttot to ubulk here !tg3315 08/11/2017
               svm(:, je + m, :, n) = svm(:, je + m - 1, :, n)
               sv0(:, je + m, :, n) = sv0(:, je + m - 1, :, n)
            end if
            end do !n, nsv
         end do !m, jhc

      end if !nsv>0
      return
   end subroutine scalSIRANE