PrimVariable Subroutine

subroutine PrimVariable()

Uses

  • proc~~primvariable~~UsesGraph proc~primvariable PrimVariable module~basicmod basicmod proc~primvariable->module~basicmod module~eosmod eosmod proc~primvariable->module~eosmod module~config config module~basicmod->module~config

Arguments

None

Source Code

      subroutine PrimVariable
      use basicmod
      use eosmod  
      implicit none
      integer::i,j,k,n
!$acc kernels      
!$acc loop collapse(3) independent private(n)
      do k=ks,ke
      do j=js,je
      do i=is,ie
          v1(i,j,k) = mv1(i,j,k)/d(i,j,k)
          v2(i,j,k) = mv2(i,j,k)/d(i,j,k)
          v3(i,j,k) = mv3(i,j,k)/d(i,j,k)

          ei(i,j,k) =  et(i,j,k)          &
     &          -0.5d0*d(i,j,k)*(         &
     &                    +v1(i,j,k)**2   &
     &                    +v2(i,j,k)**2   &
     &                    +v3(i,j,k)**2)  &
     &          -0.5d0*(                  &
     &                    +b1(i,j,k)**2   &
     &                    +b2(i,j,k)**2   &
     &                    +b3(i,j,k)**2)
! adiabatic
           p(i,j,k) =  ei(i,j,k)*(gam-1.0d0)
           cs(i,j,k) =  sqrt(gam*p(i,j,k)/d(i,j,k))
! isotermal
!           p(i,j,k) =  d(i,j,k)*csiso**2
!          cs(i,j,k) =  csiso
           
          do n=1,ncomp
             DXcomp(n,i,j,k) = max(0.0d0,DXcomp(n,i,j,k))
          enddo
          Xcomp(1:ncomp,i,j,k) = DXcomp(1:ncomp,i,j,k)/d(i,j,k)
      enddo
      enddo
      enddo
!$acc end kernels

      return
      end subroutine PrimVariable