From 19cb363501ee7bf641c4bb99ce913a943a43a004 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Fri, 18 May 2012 10:26:51 +0000 Subject: [PATCH] psblas3: psb_c_base_mat_impl.F90 psb_d_base_mat_impl.F90 psb_s_base_mat_impl.F90 psb_z_base_mat_impl.F90 Further fixes for conditional compilation on MOLD. Step 2. --- base/serial/impl/psb_c_base_mat_impl.F90 | 13 +++++++++---- base/serial/impl/psb_d_base_mat_impl.F90 | 13 +++++++++---- base/serial/impl/psb_s_base_mat_impl.F90 | 13 +++++++++---- base/serial/impl/psb_z_base_mat_impl.F90 | 13 +++++++++---- 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/base/serial/impl/psb_c_base_mat_impl.F90 b/base/serial/impl/psb_c_base_mat_impl.F90 index e515d415..294b7aa9 100644 --- a/base/serial/impl/psb_c_base_mat_impl.F90 +++ b/base/serial/impl/psb_c_base_mat_impl.F90 @@ -1554,9 +1554,11 @@ subroutine psb_c_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) call psb_errpush(info,name,i_err=ierr) goto 9999 end if - +#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) - ! allocate(tmp(nac),stat=info) +#else + call y%mold(tmpv,info) +#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call tmpv%mlt(cone,d%v(1:nac),x,czero,info) if (info == psb_success_)& @@ -1579,10 +1581,13 @@ subroutine psb_c_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) if (beta == czero) then call a%inner_cssm(alpha,x,czero,y,info,trans) if (info == psb_success_) call y%mlt(d%v(1:nar),info) -!!$ if (info == psb_success_) call inner_vscal1(nar,d,y) + else - ! allocate(tmp(nar),stat=info) +#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) +#else + call y%mold(tmpv,info) +#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_)& & call a%inner_cssm(alpha,x,czero,tmpv,info,trans) diff --git a/base/serial/impl/psb_d_base_mat_impl.F90 b/base/serial/impl/psb_d_base_mat_impl.F90 index bffd4302..de2bb1ce 100644 --- a/base/serial/impl/psb_d_base_mat_impl.F90 +++ b/base/serial/impl/psb_d_base_mat_impl.F90 @@ -1554,9 +1554,11 @@ subroutine psb_d_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) call psb_errpush(info,name,i_err=ierr) goto 9999 end if - +#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) - ! allocate(tmp(nac),stat=info) +#else + call y%mold(tmpv,info) +#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call tmpv%mlt(done,d%v(1:nac),x,dzero,info) if (info == psb_success_)& @@ -1579,10 +1581,13 @@ subroutine psb_d_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) if (beta == dzero) then call a%inner_cssm(alpha,x,dzero,y,info,trans) if (info == psb_success_) call y%mlt(d%v(1:nar),info) -!!$ if (info == psb_success_) call inner_vscal1(nar,d,y) + else - ! allocate(tmp(nar),stat=info) +#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) +#else + call y%mold(tmpv,info) +#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_)& & call a%inner_cssm(alpha,x,dzero,tmpv,info,trans) diff --git a/base/serial/impl/psb_s_base_mat_impl.F90 b/base/serial/impl/psb_s_base_mat_impl.F90 index 089bb93d..7e0cfc98 100644 --- a/base/serial/impl/psb_s_base_mat_impl.F90 +++ b/base/serial/impl/psb_s_base_mat_impl.F90 @@ -1554,9 +1554,11 @@ subroutine psb_s_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) call psb_errpush(info,name,i_err=ierr) goto 9999 end if - +#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) - ! allocate(tmp(nac),stat=info) +#else + call y%mold(tmpv,info) +#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call tmpv%mlt(sone,d%v(1:nac),x,szero,info) if (info == psb_success_)& @@ -1579,10 +1581,13 @@ subroutine psb_s_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) if (beta == szero) then call a%inner_cssm(alpha,x,szero,y,info,trans) if (info == psb_success_) call y%mlt(d%v(1:nar),info) -!!$ if (info == psb_success_) call inner_vscal1(nar,d,y) + else - ! allocate(tmp(nar),stat=info) +#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) +#else + call y%mold(tmpv,info) +#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_)& & call a%inner_cssm(alpha,x,szero,tmpv,info,trans) diff --git a/base/serial/impl/psb_z_base_mat_impl.F90 b/base/serial/impl/psb_z_base_mat_impl.F90 index 7058f8b9..fb9f80d4 100644 --- a/base/serial/impl/psb_z_base_mat_impl.F90 +++ b/base/serial/impl/psb_z_base_mat_impl.F90 @@ -1554,9 +1554,11 @@ subroutine psb_z_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) call psb_errpush(info,name,i_err=ierr) goto 9999 end if - +#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) - ! allocate(tmp(nac),stat=info) +#else + call y%mold(tmpv,info) +#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call tmpv%mlt(zone,d%v(1:nac),x,zzero,info) if (info == psb_success_)& @@ -1579,10 +1581,13 @@ subroutine psb_z_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) if (beta == zzero) then call a%inner_cssm(alpha,x,zzero,y,info,trans) if (info == psb_success_) call y%mlt(d%v(1:nar),info) -!!$ if (info == psb_success_) call inner_vscal1(nar,d,y) + else - ! allocate(tmp(nar),stat=info) +#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) +#else + call y%mold(tmpv,info) +#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_)& & call a%inner_cssm(alpha,x,zzero,tmpv,info,trans)