|
|
|
|
@ -29,6 +29,97 @@
|
|
|
|
|
! POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
!
|
|
|
|
|
!
|
|
|
|
|
subroutine psi_i2_exscanv(n,x,info,shift,ibase)
|
|
|
|
|
use psi_i2_serial_mod, psb_protect_name => psi_i2_exscanv
|
|
|
|
|
use psb_const_mod
|
|
|
|
|
use psb_error_mod
|
|
|
|
|
#if defined(OPENMP)
|
|
|
|
|
use omp_lib
|
|
|
|
|
#endif
|
|
|
|
|
implicit none
|
|
|
|
|
integer(psb_ipk_), intent(in) :: n
|
|
|
|
|
integer(psb_i2pk_), intent (inout) :: x(:)
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_i2pk_), intent(in), optional :: shift
|
|
|
|
|
integer(psb_ipk_), intent(in), optional :: ibase
|
|
|
|
|
|
|
|
|
|
integer(psb_i2pk_) :: shift_, tp, ts
|
|
|
|
|
integer(psb_i2pk_), allocatable :: suma(:)
|
|
|
|
|
integer(psb_ipk_) :: i,ithread,nthreads,first_idx,last_idx,wrk, ibase_
|
|
|
|
|
|
|
|
|
|
if (present(shift)) then
|
|
|
|
|
shift_ = shift
|
|
|
|
|
else
|
|
|
|
|
shift_ = i2zero
|
|
|
|
|
end if
|
|
|
|
|
if (present(ibase)) then
|
|
|
|
|
ibase_ = ibase
|
|
|
|
|
else
|
|
|
|
|
ibase_ = ione
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
#if defined(OPENMP)
|
|
|
|
|
|
|
|
|
|
!$OMP PARALLEL default(none) &
|
|
|
|
|
!$OMP shared(suma,nthreads,n,x,shift_,ibase_) &
|
|
|
|
|
!$OMP private(ithread,wrk,i,first_idx,last_idx)
|
|
|
|
|
|
|
|
|
|
!$OMP SINGLE
|
|
|
|
|
nthreads = omp_get_num_threads()
|
|
|
|
|
allocate(suma(nthreads+1))
|
|
|
|
|
suma(:) = 0
|
|
|
|
|
!suma(1) = 1
|
|
|
|
|
!$OMP END SINGLE
|
|
|
|
|
ithread = omp_get_thread_num()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wrk = (n)/nthreads
|
|
|
|
|
if (ithread < MOD((n),nthreads)) then
|
|
|
|
|
wrk = wrk + 1
|
|
|
|
|
first_idx = ithread*wrk + ibase_
|
|
|
|
|
else
|
|
|
|
|
first_idx = ithread*wrk + MOD((n),nthreads) + ibase_
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
last_idx = min(first_idx + wrk - 1,n - (ibase_-ione))
|
|
|
|
|
if (first_idx<=last_idx) then
|
|
|
|
|
suma(ithread+2) = suma(ithread+2) + x(first_idx)
|
|
|
|
|
do i=first_idx+1,last_idx
|
|
|
|
|
suma(ithread+2) = suma(ithread+2) + x(i)
|
|
|
|
|
x(i) = x(i)+x(i-1)
|
|
|
|
|
end do
|
|
|
|
|
end if
|
|
|
|
|
!$OMP BARRIER
|
|
|
|
|
!$OMP SINGLE
|
|
|
|
|
do i=2,nthreads+1
|
|
|
|
|
suma(i) = suma(i) + suma(i-1)
|
|
|
|
|
end do
|
|
|
|
|
!$OMP END SINGLE
|
|
|
|
|
|
|
|
|
|
!$OMP BARRIER
|
|
|
|
|
|
|
|
|
|
!$OMP DO SCHEDULE(STATIC)
|
|
|
|
|
do i=1,n
|
|
|
|
|
x(i) = suma(ithread+1) + x(i) + shift_
|
|
|
|
|
end do
|
|
|
|
|
!$OMP END DO
|
|
|
|
|
!$OMP SINGLE
|
|
|
|
|
x(1) = shift_
|
|
|
|
|
!$OMP END SINGLE
|
|
|
|
|
|
|
|
|
|
!$OMP END PARALLEL
|
|
|
|
|
#else
|
|
|
|
|
tp = shift_
|
|
|
|
|
do i=1,n
|
|
|
|
|
ts = x(i)
|
|
|
|
|
x(i) = tp
|
|
|
|
|
tp = tp + ts
|
|
|
|
|
end do
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
end subroutine psi_i2_exscanv
|
|
|
|
|
|
|
|
|
|
subroutine psb_m_i2gelp(trans,iperm,x,info)
|
|
|
|
|
use psb_serial_mod, psb_protect_name => psb_m_i2gelp
|
|
|
|
|
use psb_const_mod
|
|
|
|
|
@ -441,9 +532,9 @@ subroutine psi_i2axpby(m,n,alpha, x, beta, y, info)
|
|
|
|
|
integer(psb_i2pk_), intent (in) :: alpha, beta
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_ipk_) :: err_act
|
|
|
|
|
integer(psb_ipk_) :: lx, ly
|
|
|
|
|
integer(psb_ipk_) :: lx, ly, i
|
|
|
|
|
integer(psb_ipk_) :: ierr(5)
|
|
|
|
|
character(len=20) :: name, ch_err
|
|
|
|
|
character(len=20) :: name, ch_err
|
|
|
|
|
|
|
|
|
|
name='psb_geaxpby'
|
|
|
|
|
info=psb_success_
|
|
|
|
|
@ -502,7 +593,8 @@ subroutine psi_i2axpbyv(m,alpha, x, beta, y, info)
|
|
|
|
|
integer(psb_ipk_) :: err_act
|
|
|
|
|
integer(psb_ipk_) :: lx, ly
|
|
|
|
|
integer(psb_ipk_) :: ierr(5)
|
|
|
|
|
character(len=20) :: name, ch_err
|
|
|
|
|
integer(psb_ipk_) :: i
|
|
|
|
|
character(len=20) :: name, ch_err
|
|
|
|
|
|
|
|
|
|
name='psb_geaxpby'
|
|
|
|
|
info=psb_success_
|
|
|
|
|
@ -532,7 +624,106 @@ subroutine psi_i2axpbyv(m,alpha, x, beta, y, info)
|
|
|
|
|
goto 9999
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
if (m>0) call i2axpby(m,ione,alpha,x,lx,beta,y,ly,info)
|
|
|
|
|
! if (m>0) call i2axpby(m,ione,alpha,x,lx,beta,y,ly,info)
|
|
|
|
|
|
|
|
|
|
if (alpha.eq.i2zero) then
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = i2zero
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
!
|
|
|
|
|
! Do nothing!
|
|
|
|
|
!
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = - y(i)
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = beta*y(i)
|
|
|
|
|
enddo
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
else if (alpha.eq.i2one) then
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = x(i)
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = x(i) + y(i)
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = x(i) - y(i)
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = x(i) + beta*y(i)
|
|
|
|
|
enddo
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
else if (alpha.eq.-i2one) then
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = -x(i)
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = -x(i) + y(i)
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = -x(i) - y(i)
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = -x(i) + beta*y(i)
|
|
|
|
|
enddo
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = alpha*x(i)
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = alpha*x(i) + y(i)
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = alpha*x(i) - y(i)
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i) = alpha*x(i) + beta*y(i)
|
|
|
|
|
enddo
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
return
|
|
|
|
|
@ -555,7 +746,7 @@ subroutine psi_i2axpbyv2(m,alpha, x, beta, y, z, info)
|
|
|
|
|
integer(psb_i2pk_), intent (in) :: alpha, beta
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_ipk_) :: err_act
|
|
|
|
|
integer(psb_ipk_) :: lx, ly, lz
|
|
|
|
|
integer(psb_ipk_) :: lx, ly, lz, i
|
|
|
|
|
integer(psb_ipk_) :: ierr(5)
|
|
|
|
|
character(len=20) :: name, ch_err
|
|
|
|
|
|
|
|
|
|
@ -594,7 +785,105 @@ subroutine psi_i2axpbyv2(m,alpha, x, beta, y, z, info)
|
|
|
|
|
goto 9999
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
if (m>0) call i2axpbyv2(m,ione,alpha,x,lx,beta,y,ly,z,lz,info)
|
|
|
|
|
if (alpha.eq.i2zero) then
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = i2zero
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
!
|
|
|
|
|
! Do nothing!
|
|
|
|
|
!
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = - y(i)
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = beta*y(i)
|
|
|
|
|
enddo
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
else if (alpha.eq.i2one) then
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = x(i)
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = x(i) + y(i)
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = x(i) - y(i)
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = x(i) + beta*y(i)
|
|
|
|
|
enddo
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
else if (alpha.eq.-i2one) then
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = -x(i)
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = -x(i) + y(i)
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = -x(i) - y(i)
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = -x(i) + beta*y(i)
|
|
|
|
|
enddo
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = alpha*x(i)
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = alpha*x(i) + y(i)
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = alpha*x(i) - y(i)
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i) = alpha*x(i) + beta*y(i)
|
|
|
|
|
enddo
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
return
|
|
|
|
|
@ -942,6 +1231,7 @@ subroutine i2axpby(m, n, alpha, X, lldx, beta, Y, lldy, info)
|
|
|
|
|
if (alpha.eq.i2zero) then
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
do j=1, n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = i2zero
|
|
|
|
|
enddo
|
|
|
|
|
@ -953,12 +1243,14 @@ subroutine i2axpby(m, n, alpha, X, lldx, beta, Y, lldy, info)
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = - y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = beta*y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -969,12 +1261,14 @@ subroutine i2axpby(m, n, alpha, X, lldx, beta, Y, lldy, info)
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = x(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = x(i,j) + y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -982,12 +1276,14 @@ subroutine i2axpby(m, n, alpha, X, lldx, beta, Y, lldy, info)
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = x(i,j) - y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = x(i,j) + beta*y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -998,12 +1294,14 @@ subroutine i2axpby(m, n, alpha, X, lldx, beta, Y, lldy, info)
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = -x(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = -x(i,j) + y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -1011,12 +1309,14 @@ subroutine i2axpby(m, n, alpha, X, lldx, beta, Y, lldy, info)
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = -x(i,j) - y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = -x(i,j) + beta*y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -1027,12 +1327,14 @@ subroutine i2axpby(m, n, alpha, X, lldx, beta, Y, lldy, info)
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = alpha*x(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = alpha*x(i,j) + y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -1040,12 +1342,14 @@ subroutine i2axpby(m, n, alpha, X, lldx, beta, Y, lldy, info)
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = alpha*x(i,j) - y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
y(i,j) = alpha*x(i,j) + beta*y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -1131,12 +1435,14 @@ subroutine i2axpbyv2(m, n, alpha, X, lldx, beta, Y, lldy, Z, lldz, info)
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = - y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = beta*y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -1147,12 +1453,14 @@ subroutine i2axpbyv2(m, n, alpha, X, lldx, beta, Y, lldy, Z, lldz, info)
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = x(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = x(i,j) + y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -1160,12 +1468,14 @@ subroutine i2axpbyv2(m, n, alpha, X, lldx, beta, Y, lldy, Z, lldz, info)
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = x(i,j) - y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = x(i,j) + beta*y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -1176,12 +1486,14 @@ subroutine i2axpbyv2(m, n, alpha, X, lldx, beta, Y, lldy, Z, lldz, info)
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = -x(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = -x(i,j) + y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -1189,12 +1501,14 @@ subroutine i2axpbyv2(m, n, alpha, X, lldx, beta, Y, lldy, Z, lldz, info)
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = -x(i,j) - y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = -x(i,j) + beta*y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -1205,12 +1519,14 @@ subroutine i2axpbyv2(m, n, alpha, X, lldx, beta, Y, lldy, Z, lldz, info)
|
|
|
|
|
|
|
|
|
|
if (beta.eq.i2zero) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = alpha*x(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else if (beta.eq.i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = alpha*x(i,j) + y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
@ -1218,12 +1534,14 @@ subroutine i2axpbyv2(m, n, alpha, X, lldx, beta, Y, lldy, Z, lldz, info)
|
|
|
|
|
|
|
|
|
|
else if (beta.eq.-i2one) then
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = alpha*x(i,j) - y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
enddo
|
|
|
|
|
else
|
|
|
|
|
do j=1,n
|
|
|
|
|
!$omp parallel do private(i)
|
|
|
|
|
do i=1,m
|
|
|
|
|
Z(i,j) = alpha*x(i,j) + beta*y(i,j)
|
|
|
|
|
enddo
|
|
|
|
|
|