diff --git a/base/modules/serial/psb_c_base_vect_mod.F90 b/base/modules/serial/psb_c_base_vect_mod.F90 index 793df3bc..a4772103 100644 --- a/base/modules/serial/psb_c_base_vect_mod.F90 +++ b/base/modules/serial/psb_c_base_vect_mod.F90 @@ -1155,10 +1155,17 @@ contains complex(psb_spk_), intent (in) :: alpha, beta, gamma, delta integer(psb_ipk_), intent(out) :: info - if (x%is_dev()) call x%sync() - - call y%axpby(m,alpha,x,beta,info) - call z%axpby(m,gamma,y,delta,info) + if (.false.) then + if (x%is_dev()) call x%sync() + + call y%axpby(m,alpha,x,beta,info) + call z%axpby(m,gamma,y,delta,info) + else + if (x%is_dev().and.(alpha/=czero))) call x%sync() + if (y%is_dev().and.(beta/=czero)) call y%sync() + if (z%is_dev().and.(delta/=czero)) call z%sync() + call psi_cabgdxyz(m,alpha, beta, gamma,delta,x%v, y%v, z%v, info) + end if end subroutine c_base_abgdxyz diff --git a/base/modules/serial/psb_c_vect_mod.F90 b/base/modules/serial/psb_c_vect_mod.F90 index 8b2941ff..2eebb0da 100644 --- a/base/modules/serial/psb_c_vect_mod.F90 +++ b/base/modules/serial/psb_c_vect_mod.F90 @@ -1152,7 +1152,7 @@ contains end if end function c_vect_nrm2_weight - + function c_vect_nrm2_weight_mask(n,x,w,id,info,aux) result(res) use psi_serial_mod implicit none diff --git a/base/modules/serial/psb_d_base_vect_mod.F90 b/base/modules/serial/psb_d_base_vect_mod.F90 index 29a2ccd8..59b43fce 100644 --- a/base/modules/serial/psb_d_base_vect_mod.F90 +++ b/base/modules/serial/psb_d_base_vect_mod.F90 @@ -1162,10 +1162,17 @@ contains real(psb_dpk_), intent (in) :: alpha, beta, gamma, delta integer(psb_ipk_), intent(out) :: info - if (x%is_dev()) call x%sync() - - call y%axpby(m,alpha,x,beta,info) - call z%axpby(m,gamma,y,delta,info) + if (.false.) then + if (x%is_dev()) call x%sync() + + call y%axpby(m,alpha,x,beta,info) + call z%axpby(m,gamma,y,delta,info) + else + if (x%is_dev().and.(alpha/=dzero))) call x%sync() + if (y%is_dev().and.(beta/=dzero)) call y%sync() + if (z%is_dev().and.(delta/=dzero)) call z%sync() + call psi_dabgdxyz(m,alpha, beta, gamma,delta,x%v, y%v, z%v, info) + end if end subroutine d_base_abgdxyz diff --git a/base/modules/serial/psb_d_vect_mod.F90 b/base/modules/serial/psb_d_vect_mod.F90 index ef75be87..bbb966ed 100644 --- a/base/modules/serial/psb_d_vect_mod.F90 +++ b/base/modules/serial/psb_d_vect_mod.F90 @@ -1159,7 +1159,7 @@ contains end if end function d_vect_nrm2_weight - + function d_vect_nrm2_weight_mask(n,x,w,id,info,aux) result(res) use psi_serial_mod implicit none diff --git a/base/modules/serial/psb_s_base_vect_mod.F90 b/base/modules/serial/psb_s_base_vect_mod.F90 index 61ae27d2..dee48ca5 100644 --- a/base/modules/serial/psb_s_base_vect_mod.F90 +++ b/base/modules/serial/psb_s_base_vect_mod.F90 @@ -1162,10 +1162,17 @@ contains real(psb_spk_), intent (in) :: alpha, beta, gamma, delta integer(psb_ipk_), intent(out) :: info - if (x%is_dev()) call x%sync() - - call y%axpby(m,alpha,x,beta,info) - call z%axpby(m,gamma,y,delta,info) + if (.false.) then + if (x%is_dev()) call x%sync() + + call y%axpby(m,alpha,x,beta,info) + call z%axpby(m,gamma,y,delta,info) + else + if (x%is_dev().and.(alpha/=szero))) call x%sync() + if (y%is_dev().and.(beta/=szero)) call y%sync() + if (z%is_dev().and.(delta/=szero)) call z%sync() + call psi_sabgdxyz(m,alpha, beta, gamma,delta,x%v, y%v, z%v, info) + end if end subroutine s_base_abgdxyz diff --git a/base/modules/serial/psb_s_vect_mod.F90 b/base/modules/serial/psb_s_vect_mod.F90 index 34479856..0ffd199f 100644 --- a/base/modules/serial/psb_s_vect_mod.F90 +++ b/base/modules/serial/psb_s_vect_mod.F90 @@ -1159,7 +1159,7 @@ contains end if end function s_vect_nrm2_weight - + function s_vect_nrm2_weight_mask(n,x,w,id,info,aux) result(res) use psi_serial_mod implicit none diff --git a/base/modules/serial/psb_z_base_vect_mod.F90 b/base/modules/serial/psb_z_base_vect_mod.F90 index 53f3ea8e..0ab2f945 100644 --- a/base/modules/serial/psb_z_base_vect_mod.F90 +++ b/base/modules/serial/psb_z_base_vect_mod.F90 @@ -1155,10 +1155,17 @@ contains complex(psb_dpk_), intent (in) :: alpha, beta, gamma, delta integer(psb_ipk_), intent(out) :: info - if (x%is_dev()) call x%sync() - - call y%axpby(m,alpha,x,beta,info) - call z%axpby(m,gamma,y,delta,info) + if (.false.) then + if (x%is_dev()) call x%sync() + + call y%axpby(m,alpha,x,beta,info) + call z%axpby(m,gamma,y,delta,info) + else + if (x%is_dev().and.(alpha/=zzero))) call x%sync() + if (y%is_dev().and.(beta/=zzero)) call y%sync() + if (z%is_dev().and.(delta/=zzero)) call z%sync() + call psi_zabgdxyz(m,alpha, beta, gamma,delta,x%v, y%v, z%v, info) + end if end subroutine z_base_abgdxyz diff --git a/base/modules/serial/psb_z_vect_mod.F90 b/base/modules/serial/psb_z_vect_mod.F90 index 54ddfebe..1ea1fd4a 100644 --- a/base/modules/serial/psb_z_vect_mod.F90 +++ b/base/modules/serial/psb_z_vect_mod.F90 @@ -1152,7 +1152,7 @@ contains end if end function z_vect_nrm2_weight - + function z_vect_nrm2_weight_mask(n,x,w,id,info,aux) result(res) use psi_serial_mod implicit none diff --git a/base/serial/psi_c_serial_impl.F90 b/base/serial/psi_c_serial_impl.F90 index 129e8484..557220e5 100644 --- a/base/serial/psi_c_serial_impl.F90 +++ b/base/serial/psi_c_serial_impl.F90 @@ -1616,7 +1616,7 @@ subroutine psi_cabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) call fcpsb_errpush(info,name,int_err) goto 9999 endif - + if (beta == czero) then if (gamma == czero) then if (alpha == czero) then @@ -1773,7 +1773,7 @@ subroutine psi_cabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) end do else if (delta /= czero) then - ! a n b n g n d 0 + ! a n b n g n d n !$omp parallel do private(i) do i=1,m y(i) = alpha*x(i)+beta*y(i) diff --git a/base/serial/psi_d_serial_impl.F90 b/base/serial/psi_d_serial_impl.F90 index bd0c82df..d423b401 100644 --- a/base/serial/psi_d_serial_impl.F90 +++ b/base/serial/psi_d_serial_impl.F90 @@ -1616,7 +1616,7 @@ subroutine psi_dabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) call fcpsb_errpush(info,name,int_err) goto 9999 endif - + if (beta == dzero) then if (gamma == dzero) then if (alpha == dzero) then @@ -1773,7 +1773,7 @@ subroutine psi_dabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) end do else if (delta /= dzero) then - ! a n b n g n d 0 + ! a n b n g n d n !$omp parallel do private(i) do i=1,m y(i) = alpha*x(i)+beta*y(i) diff --git a/base/serial/psi_e_serial_impl.F90 b/base/serial/psi_e_serial_impl.F90 index 8b17aeb8..c7977c35 100644 --- a/base/serial/psi_e_serial_impl.F90 +++ b/base/serial/psi_e_serial_impl.F90 @@ -1616,7 +1616,7 @@ subroutine psi_eabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) call fcpsb_errpush(info,name,int_err) goto 9999 endif - + if (beta == ezero) then if (gamma == ezero) then if (alpha == ezero) then @@ -1773,7 +1773,7 @@ subroutine psi_eabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) end do else if (delta /= ezero) then - ! a n b n g n d 0 + ! a n b n g n d n !$omp parallel do private(i) do i=1,m y(i) = alpha*x(i)+beta*y(i) diff --git a/base/serial/psi_i2_serial_impl.F90 b/base/serial/psi_i2_serial_impl.F90 index 9a2c36c6..ce4aff80 100644 --- a/base/serial/psi_i2_serial_impl.F90 +++ b/base/serial/psi_i2_serial_impl.F90 @@ -1616,7 +1616,7 @@ subroutine psi_i2abgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) call fcpsb_errpush(info,name,int_err) goto 9999 endif - + if (beta == i2zero) then if (gamma == i2zero) then if (alpha == i2zero) then @@ -1773,7 +1773,7 @@ subroutine psi_i2abgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) end do else if (delta /= i2zero) then - ! a n b n g n d 0 + ! a n b n g n d n !$omp parallel do private(i) do i=1,m y(i) = alpha*x(i)+beta*y(i) diff --git a/base/serial/psi_m_serial_impl.F90 b/base/serial/psi_m_serial_impl.F90 index dd114a45..8d9d19f4 100644 --- a/base/serial/psi_m_serial_impl.F90 +++ b/base/serial/psi_m_serial_impl.F90 @@ -1616,7 +1616,7 @@ subroutine psi_mabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) call fcpsb_errpush(info,name,int_err) goto 9999 endif - + if (beta == mzero) then if (gamma == mzero) then if (alpha == mzero) then @@ -1773,7 +1773,7 @@ subroutine psi_mabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) end do else if (delta /= mzero) then - ! a n b n g n d 0 + ! a n b n g n d n !$omp parallel do private(i) do i=1,m y(i) = alpha*x(i)+beta*y(i) diff --git a/base/serial/psi_s_serial_impl.F90 b/base/serial/psi_s_serial_impl.F90 index 8e2dda0f..df251b27 100644 --- a/base/serial/psi_s_serial_impl.F90 +++ b/base/serial/psi_s_serial_impl.F90 @@ -1616,7 +1616,7 @@ subroutine psi_sabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) call fcpsb_errpush(info,name,int_err) goto 9999 endif - + if (beta == szero) then if (gamma == szero) then if (alpha == szero) then @@ -1773,7 +1773,7 @@ subroutine psi_sabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) end do else if (delta /= szero) then - ! a n b n g n d 0 + ! a n b n g n d n !$omp parallel do private(i) do i=1,m y(i) = alpha*x(i)+beta*y(i) diff --git a/base/serial/psi_z_serial_impl.F90 b/base/serial/psi_z_serial_impl.F90 index c6a7e01d..44ea5ae7 100644 --- a/base/serial/psi_z_serial_impl.F90 +++ b/base/serial/psi_z_serial_impl.F90 @@ -1616,7 +1616,7 @@ subroutine psi_zabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) call fcpsb_errpush(info,name,int_err) goto 9999 endif - + if (beta == zzero) then if (gamma == zzero) then if (alpha == zzero) then @@ -1773,7 +1773,7 @@ subroutine psi_zabgdxyz(m,alpha, beta, gamma,delta,x, y, z, info) end do else if (delta /= zzero) then - ! a n b n g n d 0 + ! a n b n g n d n !$omp parallel do private(i) do i=1,m y(i) = alpha*x(i)+beta*y(i)