|
|
@ -2228,16 +2228,14 @@ subroutine psb_c_mv_csc_from_coo(a,b,info)
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(OPENMP)
|
|
|
|
#if defined(OPENMP)
|
|
|
|
|
|
|
|
|
|
|
|
!$OMP PARALLEL default(none) &
|
|
|
|
!$OMP PARALLEL default(shared)
|
|
|
|
!$OMP shared(nr,a,itemp,nza) &
|
|
|
|
|
|
|
|
!$OMP private(i,info)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!$OMP WORKSHARE
|
|
|
|
!$OMP WORKSHARE
|
|
|
|
a%icp(:) = 0
|
|
|
|
a%icp(:) = 0
|
|
|
|
!$OMP END WORKSHARE
|
|
|
|
!$OMP END WORKSHARE
|
|
|
|
|
|
|
|
|
|
|
|
!$OMP DO schedule(STATIC) &
|
|
|
|
!$OMP DO schedule(STATIC) &
|
|
|
|
!$OMP private(k)
|
|
|
|
!$OMP private(k,i)
|
|
|
|
do k=1,nza
|
|
|
|
do k=1,nza
|
|
|
|
i = itemp(k)
|
|
|
|
i = itemp(k)
|
|
|
|
!$OMP ATOMIC UPDATE
|
|
|
|
!$OMP ATOMIC UPDATE
|
|
|
@ -2245,16 +2243,16 @@ subroutine psb_c_mv_csc_from_coo(a,b,info)
|
|
|
|
!$OMP END ATOMIC
|
|
|
|
!$OMP END ATOMIC
|
|
|
|
end do
|
|
|
|
end do
|
|
|
|
!$OMP END DO
|
|
|
|
!$OMP END DO
|
|
|
|
|
|
|
|
call psi_exscan(nc+1,a%icp,info,shift=ione,ibase=ione)
|
|
|
|
!$OMP END PARALLEL
|
|
|
|
!$OMP END PARALLEL
|
|
|
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
a%icp(:) = 0
|
|
|
|
a%icp(:) = 0
|
|
|
|
do k=1,nza
|
|
|
|
do k=1,nza
|
|
|
|
i = itemp(k)
|
|
|
|
i = itemp(k)
|
|
|
|
a%icp(i) = a%icp(i) + 1
|
|
|
|
a%icp(i) = a%icp(i) + 1
|
|
|
|
end do
|
|
|
|
end do
|
|
|
|
#endif
|
|
|
|
|
|
|
|
call psi_exscan(nc+1,a%icp,info,shift=ione,ibase=ione)
|
|
|
|
call psi_exscan(nc+1,a%icp,info,shift=ione,ibase=ione)
|
|
|
|
|
|
|
|
#endif
|
|
|
|
call a%set_host()
|
|
|
|
call a%set_host()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|