advance_FP3Dinterp_vars Subroutine

public subroutine advance_FP3Dinterp_vars(params, X_X, X_Y, X_Z, V_X, V_Y, V_Z, g, m_cache, B_X, B_Y, B_Z, E_X, E_Y, E_Z, flag_cache, P, F, PSIp)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(inout) :: params

Core KORC simulation parameters.

real(kind=rp), intent(in), DIMENSION(8):: X_X
real(kind=rp), intent(in), DIMENSION(8):: X_Y
real(kind=rp), intent(in), DIMENSION(8):: X_Z
real(kind=rp), intent(inout), DIMENSION(8):: V_X
real(kind=rp), intent(inout), DIMENSION(8):: V_Y
real(kind=rp), intent(inout), DIMENSION(8):: V_Z
real(kind=rp), intent(inout), DIMENSION(8):: g
real(kind=rp), intent(in) :: m_cache
real(kind=rp), intent(in), DIMENSION(8):: B_X
real(kind=rp), intent(in), DIMENSION(8):: B_Y
real(kind=rp), intent(in), DIMENSION(8):: B_Z
real(kind=rp), intent(in), DIMENSION(8):: E_X
real(kind=rp), intent(in), DIMENSION(8):: E_Y
real(kind=rp), intent(in), DIMENSION(8):: E_Z
integer(kind=is), intent(inout), DIMENSION(8):: flag_cache
type(PROFILES), intent(in) :: P
type(FIELDS), intent(in) :: F
real(kind=rp), intent(in), DIMENSION(8):: PSIp

Contents


Source Code

  subroutine advance_FP3Dinterp_vars(params,X_X,X_Y,X_Z,V_X,V_Y,V_Z,g, &
       m_cache,B_X,B_Y,B_Z,E_X,E_Y,E_Z,flag_cache,P,F,PSIp)    
    TYPE(KORC_PARAMS), INTENT(INOUT)                              :: params
    !! Core KORC simulation parameters.
    TYPE(PROFILES), INTENT(IN)                                 :: P
    TYPE(FIELDS), INTENT(IN)      :: F
    INTEGER                                                    :: cc
    !! Chunk iterator.
    INTEGER(ip)                                                    :: tt
    !! time iterator.
    REAL(rp),DIMENSION(8), INTENT(IN)  :: X_X,X_Y,X_Z
    REAL(rp),DIMENSION(8)  :: Y_R,Y_PHI,Y_Z
    REAL(rp),DIMENSION(8), INTENT(IN)  :: E_X,E_Y,E_Z,PSIp
    REAL(rp),DIMENSION(8), INTENT(IN)  :: B_X,B_Y,B_Z
    REAL(rp),DIMENSION(8) :: U_X,U_Y,U_Z
    REAL(rp),DIMENSION(8), INTENT(INOUT)  :: V_X,V_Y,V_Z
    REAL(rp),DIMENSION(8) :: ne,Te,Zeff
    REAL(rp),DIMENSION(8),INTENT(INOUT) :: g
    INTEGER(is),DIMENSION(8),INTENT(INOUT) :: flag_cache
    REAL(rp),intent(in) :: m_cache
    
      
    
    !$OMP SIMD
    !    !$OMP& aligned(U_X,U_Y,U_Z,V_X,V_Y,V_Z,g)
    do cc=1_idef,8_idef
       U_X(cc)=V_X(cc)*g(cc)
       U_Y(cc)=V_Y(cc)*g(cc)
       U_Z(cc)=V_Z(cc)*g(cc)
    end do
    !$OMP END SIMD
    
    do tt=1_ip,params%t_skip
          
       call include_CoulombCollisions_FO_p(tt,params,X_X,X_Y,X_Z, &
            U_X,U_Y,U_Z,B_X,B_Y,B_Z,m_cache,P,F,flag_cache,PSIp)
       
    end do

    !$OMP SIMD
    !    !$OMP& aligned(U_X,U_Y,U_Z,V_X,V_Y,V_Z,g)
    do cc=1_idef,8_idef

       g(cc)=sqrt(1._rp+U_X(cc)*U_X(cc)+U_Y(cc)*U_Y(cc)+U_Z(cc)*U_Z(cc))
          
       V_X(cc)=U_X(cc)/g(cc)
       V_Y(cc)=U_Y(cc)/g(cc)
       V_Z(cc)=U_Z(cc)/g(cc)
    end do
    !$OMP END SIMD

  end subroutine advance_FP3Dinterp_vars