cart_to_tor_check_if_confined_p Subroutine

public subroutine cart_to_tor_check_if_confined_p(pchunk, ar, R0, X_X, X_Y, X_Z, T_R, T_T, T_Z, flag_cache)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: pchunk
real(kind=rp), intent(in) :: ar
real(kind=rp), intent(in) :: R0
real(kind=rp), intent(in), DIMENSION(pchunk):: X_X
real(kind=rp), intent(in), DIMENSION(pchunk):: X_Y
real(kind=rp), intent(in), DIMENSION(pchunk):: X_Z
real(kind=rp), intent(out), DIMENSION(pchunk):: T_R
real(kind=rp), intent(out), DIMENSION(pchunk):: T_T
real(kind=rp), intent(out), DIMENSION(pchunk):: T_Z
integer(kind=is), intent(inout), DIMENSION(pchunk):: flag_cache

Called by

proc~~cart_to_tor_check_if_confined_p~~CalledByGraph proc~cart_to_tor_check_if_confined_p cart_to_tor_check_if_confined_p proc~analytical_fields_p analytical_fields_p proc~analytical_fields_p->proc~cart_to_tor_check_if_confined_p proc~fo_init FO_init proc~fo_init->proc~analytical_fields_p proc~adv_foeqn_top adv_FOeqn_top proc~adv_foeqn_top->proc~analytical_fields_p program~main main program~main->proc~fo_init program~main->proc~adv_foeqn_top

Contents


Source Code

  subroutine cart_to_tor_check_if_confined_p(pchunk,ar,R0,X_X,X_Y,X_Z, &
       T_R,T_T,T_Z,flag_cache)
    INTEGER, INTENT(IN)  :: pchunk
    REAL(rp),  INTENT(IN)      :: R0,ar
    REAL(rp),  INTENT(IN),DIMENSION(pchunk)      :: X_X,X_Y,X_Z
    REAL(rp),  INTENT(OUT),DIMENSION(pchunk)      :: T_R,T_T,T_Z
    INTEGER(is),  INTENT(INOUT),DIMENSION(pchunk)      :: flag_cache
    REAL(rp),DIMENSION(pchunk)   :: RR
    INTEGER                                      :: cc
    !! Particle chunk iterator.

    !$OMP SIMD
!    !$OMP& aligned(RR,X_X,X_Y,T_R,T_T,T_Z,X_Z)
    do cc=1_idef,pchunk
       RR(cc)=SQRT(X_X(cc)*X_X(cc) + X_Y(cc)*X_Y(cc)) - R0


       T_R(cc) = SQRT( RR(cc)*RR(cc) + X_Z(cc)*X_Z(cc) )
       T_T(cc) = ATAN2(X_Z(cc), RR(cc))
       T_T(cc) = MODULO(T_T(cc),2.0_rp*C_PI)
       T_Z(cc) = ATAN2(X_X(cc),X_Y(cc))
       T_Z(cc) = MODULO(T_Z(cc),2.0_rp*C_PI)
    end do
    !$OMP END SIMD

    !$OMP SIMD
    do cc=1_idef,pchunk
       if (T_R(cc) .GT. ar) then
          flag_cache(cc) = 0_is
       end if
    end do
    !$OMP END SIMD
    
  end subroutine cart_to_tor_check_if_confined_p