• VTF
  • FSI
  • AMROC
  • SFC
  • Motion
  • STLIB
  • Main Page
  • src/generic/Input.f90

    subroutine in1eu(qi,mxi,lbi,ubi,q,mx,lb,ub, &
         lbr,ubr,shaper,meqn,nc,t)
      !     ==========================================================
      !
      !     # Computes conserved quantities from primitives for 
      !     # Euler equations. The inverse to flgout2eu.f.
      !
    
      ! ---- share variables
      USE method_parms
    
      implicit none
    
      !
      integer meqn, mx, mxi
      double precision t, q(meqn,mx), qi(mxi)
      !
      integer  lb(1), ub(1), lbi(1), ubi(1), lbr(1), ubr(1), shaper(1), &
           stride, imin(1), imax(1), i, getindx, d, nc
      !
      stride = (ub(1) - lb(1))/(mx-1)
      do d = 1, 1
         imin(d) = max(lb(d), lbr(d))
         imax(d) = min(ub(d), ubr(d))
         
         if (mod(imin(d)-lb(d),stride) .ne. 0) then
            imin(d) = imin(d) + stride - mod(imin(d)-lb(d),stride) 
         endif
         imin(d) = getindx(imin(d), lb(d), stride)  
         
         if (mod(imax(d)-lb(d),stride) .ne. 0) then
            imax(d) = imax(d) - mod(imax(d)-lb(d),stride) 
         endif
         imax(d) = getindx(imax(d), lb(d), stride)  
      enddo
      
      do i = imin(1), imax(1)
         ! Density
         if (nc.eq.1) q(1,i) = qi(i) 
         ! Velocity u
         if (nc.eq.2) then
            q(2,i) = q(1,i)*qi(i)
            q(3,i) = 0.0d0
            q(4,i) = 0.0d0
         endif
         ! Total energy density
         if (nc.eq.3) q(5,i) = qi(i)
         ! Temperature 
         if (nc.eq.4) q(nvars+1,i) = qi(i)
         ! Scalars 
         IF (nc.ge.(nvars-nscal+2) .and. nc.le.(nvars+1)) &
              q(nc-1,i) = q(1,i)*qi(i)
      enddo
      
      return
    end subroutine in1eu
    
    subroutine in2eu(qi,mxi,myi,lbi,ubi,q,mx,my,lb,ub, &
         lbr,ubr,shaper,meqn,nc,t)
      !     ==========================================================
      !
      !     # Computes conserved quantities from primitives for 
      !     # Euler equations. The inverse to flgout2eu.f.
      !
    
      ! ---- share variables
      USE method_parms
    
      implicit none
    
      !
      integer meqn, mx, my, mxi, myi
      double precision t, q(meqn,mx,my), qi(mxi,myi)
      !
      integer  lb(2), ub(2), lbi(2), ubi(2), lbr(2), ubr(2), shaper(2), &
           stride, imin(2), imax(2), i, j, getindx, d, nc
      !
      stride = (ub(1) - lb(1))/(mx-1)
      do d = 1, 2
         imin(d) = max(lb(d), lbr(d))
         imax(d) = min(ub(d), ubr(d))
         
         if (mod(imin(d)-lb(d),stride) .ne. 0) then
            imin(d) = imin(d) + stride - mod(imin(d)-lb(d),stride) 
         endif
         imin(d) = getindx(imin(d), lb(d), stride)  
         
         if (mod(imax(d)-lb(d),stride) .ne. 0) then
            imax(d) = imax(d) - mod(imax(d)-lb(d),stride) 
         endif
         imax(d) = getindx(imax(d), lb(d), stride)  
      enddo
      
      do i = imin(1), imax(1)
         do j = imin(2), imax(2)
            ! Density
            if (nc.eq.1) q(1,i,j) = qi(i,j) 
            ! Velocity u
            if (nc.eq.2) q(2,i,j) = q(1,i,j)*qi(i,j)
            ! Velocity v
            if (nc.eq.3) then
               q(3,i,j) = q(1,i,j)*qi(i,j)
               q(4,i,j) = 0.0d0
            endif
            ! Total energy density
            if (nc.eq.4) q(5,i,j) = qi(i,j)
            ! Temperature 
            if (nc.eq.5) q(nvars+1,i,j) = qi(i,j)
            ! Scalars 
            IF (nc.ge.(nvars-nscal+3) .and. nc.le.(nvars+2) ) &
                 q(nc-2,i,j) = q(1,i,j)*qi(i,j)
         enddo
      enddo
      
      return
    end subroutine in2eu
    
    subroutine in3eu(qi,mxi,myi,mzi,lbi,ubi,q,mx,my,mz,lb,ub, &
         lbr,ubr,shaper,meqn,nc,t)
      !     ==========================================================
      !
      !     # Computes conserved quantities from primitives for 
      !     # Euler equations. The inverse to flgout2eu.f.
      !
    
      ! ---- share variables
      USE method_parms
    
      implicit none
    
      include 'cles.i'
    
      !
      integer meqn, mx, my, mz,mxi, myi,mzi
      double precision t, q(meqn,mx,my,mz), qi(mxi,myi,mz)
      !
      integer  lb(3), ub(3), lbi(3), ubi(3), lbr(3), ubr(3), shaper(3), &
           stride, imin(3), imax(3), i, j, k, getindx, d, nc
      !
      stride = (ub(1) - lb(1))/(mx-1)
      do d = 1, 3
         imin(d) = max(lb(d), lbr(d))
         imax(d) = min(ub(d), ubr(d))
         
         if (mod(imin(d)-lb(d),stride) .ne. 0) then
            imin(d) = imin(d) + stride - mod(imin(d)-lb(d),stride) 
         endif
         imin(d) = getindx(imin(d), lb(d), stride)  
         
         if (mod(imax(d)-lb(d),stride) .ne. 0) then
            imax(d) = imax(d) - mod(imax(d)-lb(d),stride) 
         endif
         imax(d) = getindx(imax(d), lb(d), stride)  
      enddo
      
      do i = imin(1), imax(1)
         do j = imin(2), imax(2)
            do k = imin(3), imax(3)
               ! Density
               if (nc.eq.1) q(1,i,j,k) = qi(i,j,k) 
               ! Velocity u
               if (nc.eq.2) q(2,i,j,k) = q(1,i,j,k)*qi(i,j,k)
               ! Velocity v
               if (nc.eq.3) q(3,i,j,k) = q(1,i,j,k)*qi(i,j,k)
               ! Velocity w
               if (nc.eq.4) q(4,i,j,k) = q(1,i,j,k)*qi(i,j,k)
               ! Total energy density
               if (nc.eq.5) q(5,i,j,k) = qi(i,j,k)
               ! Temperature 
               if (nc.eq.6) q(nvars+1,i,j,k) = qi(i,j,k)
               ! Scalars 
               IF (nc.ge.(nvars-nscal+4) .and. nc.le.(nvars+3) ) &
                    q(nc-3,i,j,k) = q(1,i,j,k)*qi(i,j,k)
               IF (nc.eq.(nvars+5) .and. useLES .eq. CLES_TRUE) &
                    q(nvars+3,i,j,k) = q(1,i,j,k)*qi(i,j,k)
               
            enddo
         enddo
      enddo
      return
    end subroutine in3eu
    

<