diff --git a/prec/impl/psb_c_prec_type_impl.f90 b/prec/impl/psb_c_prec_type_impl.f90 index 68cf95da..a4bf60cd 100644 --- a/prec/impl/psb_c_prec_type_impl.f90 +++ b/prec/impl/psb_c_prec_type_impl.f90 @@ -153,12 +153,11 @@ subroutine psb_c_apply1_vect(prec,x,desc_data,info,trans,work) goto 9999 end if - call psb_geall(ww,desc_data,info) - if (info == 0) call psb_geasb(ww,desc_data,info,mold=x%v) + call psb_geasb(ww,desc_data,info,mold=x%v,scratch=.true.) if (info == 0) call prec%prec%apply(cone,x,czero,ww,desc_data,info,& & trans=trans_,work=work_) if (info == 0) call psb_geaxpby(cone,ww,czero,x,desc_data,info) - + call psb_gefree(ww,desc_data,info) if (present(work)) then else deallocate(work_,stat=info) diff --git a/prec/impl/psb_d_prec_type_impl.f90 b/prec/impl/psb_d_prec_type_impl.f90 index dab79bcd..844c22ce 100644 --- a/prec/impl/psb_d_prec_type_impl.f90 +++ b/prec/impl/psb_d_prec_type_impl.f90 @@ -153,12 +153,11 @@ subroutine psb_d_apply1_vect(prec,x,desc_data,info,trans,work) goto 9999 end if - call psb_geall(ww,desc_data,info) - if (info == 0) call psb_geasb(ww,desc_data,info,mold=x%v) + call psb_geasb(ww,desc_data,info,mold=x%v,scratch=.true.) if (info == 0) call prec%prec%apply(done,x,dzero,ww,desc_data,info,& & trans=trans_,work=work_) if (info == 0) call psb_geaxpby(done,ww,dzero,x,desc_data,info) - + call psb_gefree(ww,desc_data,info) if (present(work)) then else deallocate(work_,stat=info) diff --git a/prec/impl/psb_s_prec_type_impl.f90 b/prec/impl/psb_s_prec_type_impl.f90 index e04bb1b7..a82957f0 100644 --- a/prec/impl/psb_s_prec_type_impl.f90 +++ b/prec/impl/psb_s_prec_type_impl.f90 @@ -153,12 +153,11 @@ subroutine psb_s_apply1_vect(prec,x,desc_data,info,trans,work) goto 9999 end if - call psb_geall(ww,desc_data,info) - if (info == 0) call psb_geasb(ww,desc_data,info,mold=x%v) + call psb_geasb(ww,desc_data,info,mold=x%v,scratch=.true.) if (info == 0) call prec%prec%apply(sone,x,szero,ww,desc_data,info,& & trans=trans_,work=work_) if (info == 0) call psb_geaxpby(sone,ww,szero,x,desc_data,info) - + call psb_gefree(ww,desc_data,info) if (present(work)) then else deallocate(work_,stat=info) diff --git a/prec/impl/psb_z_prec_type_impl.f90 b/prec/impl/psb_z_prec_type_impl.f90 index 887ba10a..6670dd5d 100644 --- a/prec/impl/psb_z_prec_type_impl.f90 +++ b/prec/impl/psb_z_prec_type_impl.f90 @@ -153,12 +153,11 @@ subroutine psb_z_apply1_vect(prec,x,desc_data,info,trans,work) goto 9999 end if - call psb_geall(ww,desc_data,info) - if (info == 0) call psb_geasb(ww,desc_data,info,mold=x%v) + call psb_geasb(ww,desc_data,info,mold=x%v,scratch=.true.) if (info == 0) call prec%prec%apply(zone,x,zzero,ww,desc_data,info,& & trans=trans_,work=work_) if (info == 0) call psb_geaxpby(zone,ww,zzero,x,desc_data,info) - + call psb_gefree(ww,desc_data,info) if (present(work)) then else deallocate(work_,stat=info)