diff --git a/base/auxil/Makefile b/base/auxil/Makefile index 1bb3f105..9e8597e6 100644 --- a/base/auxil/Makefile +++ b/base/auxil/Makefile @@ -16,7 +16,7 @@ MODDIR=../modules FINCLUDES=$(FMFLAG). $(FMFLAG)$(MODDIR) $(FMFLAG)$(INCDIR) CINCLUDES=-I. -objs: mpfobjs $(FOBJS) $(FOBJS2) $(COBJS) $(MPFOBJS2) $(MPFOBJS) +objs: mpfobjs $(FOBJS) $(FOBJS2) $(COBJS) $(MPFOBJS2) lib: objs $(AR) $(LIBDIR)/$(LIBNAME) $(MPFOBJS) $(MPFOBJS2) $(FOBJS) $(FOBJS2) $(COBJS) $(RANLIB) $(LIBDIR)/$(LIBNAME) diff --git a/base/comm/internals/Makefile b/base/comm/internals/Makefile index f8055544..2d0278f6 100644 --- a/base/comm/internals/Makefile +++ b/base/comm/internals/Makefile @@ -31,7 +31,7 @@ MODDIR=../../modules FINCLUDES=$(FMFLAG). $(FMFLAG)$(MODDIR) $(FMFLAG)$(INCDIR) CINCLUDES=-I. -objs: mpfobjs $(FOBJS) $(MPFOBJS) +objs: mpfobjs $(FOBJS) lib: objs $(AR) $(LIBDIR)/$(LIBNAME) $(MPFOBJS) $(MPFOBJS2) $(FOBJS) $(FOBJS2) $(COBJS) $(RANLIB) $(LIBDIR)/$(LIBNAME) diff --git a/base/comm/internals/psi_cswapdata.F90 b/base/comm/internals/psi_cswapdata.F90 index 4d6be418..657c9de6 100644 --- a/base/comm/internals/psi_cswapdata.F90 +++ b/base/comm/internals/psi_cswapdata.F90 @@ -77,7 +77,6 @@ ! beta - complex Choose overwrite or sum. ! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -92,7 +91,7 @@ submodule (psi_c_comm_v_mod) psi_c_swapdata_impl use psb_base_mod contains - subroutine psi_cswapdata_vect(flag,beta,y,desc_a,work,info,data) + subroutine psi_cswapdata_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -103,11 +102,10 @@ contains #endif integer(psb_ipk_), intent(in) :: flag + class(psb_c_base_vect_type) :: y + complex(psb_spk_) :: beta + type(psb_desc_type), target :: desc_a integer(psb_ipk_), intent(out) :: info - class(psb_c_base_vect_type) :: y - complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) - type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data ! locals @@ -117,8 +115,8 @@ contains class(psb_i_base_vect_type), pointer :: d_vidx character(len=20) :: name - info=psb_success_ - name='psi_swap_datav' + info = psb_success_ + name = 'psi_cswapdata_vect' call psb_erractionsave(err_act) ctxt = desc_a%get_context() @@ -148,7 +146,7 @@ contains goto 9999 end if - call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -174,7 +172,7 @@ contains ! ! module subroutine psi_cswap_vidx_vect(ctxt,flag,beta,y,idx, & - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -189,7 +187,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv @@ -207,7 +204,7 @@ contains character(len=20) :: name info=psb_success_ - name='psi_swap_datav' + name='psi_cswap_vidx_vect' call psb_erractionsave(err_act) call psb_info(ctxt,me,np) if (np == -1) then @@ -420,7 +417,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_cswapdata_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_cswapdata_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi #endif @@ -433,7 +430,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_c_base_multivect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data @@ -475,7 +471,7 @@ contains goto 9999 end if - call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -501,7 +497,7 @@ contains ! ! module subroutine psi_cswap_vidx_multivect(ctxt,flag,beta,y,idx, & - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -516,7 +512,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_c_base_multivect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv diff --git a/base/comm/internals/psi_cswaptran.F90 b/base/comm/internals/psi_cswaptran.F90 index 92b9f326..56985264 100644 --- a/base/comm/internals/psi_cswaptran.F90 +++ b/base/comm/internals/psi_cswaptran.F90 @@ -80,7 +80,6 @@ ! beta - complex Choose overwrite or sum. ! y - type(psb_c_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -94,7 +93,7 @@ submodule (psi_c_comm_v_mod) psi_c_swaptran_impl use psb_base_mod contains - module subroutine psi_cswaptran_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_cswaptran_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -108,7 +107,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) type(psb_desc_type),target :: desc_a integer(psb_ipk_), optional :: data @@ -150,7 +148,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -175,7 +173,7 @@ contains ! ! module subroutine psi_ctran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -190,7 +188,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv @@ -430,7 +427,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_cswaptran_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_cswaptran_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -444,7 +441,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_c_base_multivect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) type(psb_desc_type),target :: desc_a integer(psb_ipk_), optional :: data @@ -486,7 +482,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -512,7 +508,7 @@ contains ! ! module subroutine psi_ctran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -527,7 +523,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_c_base_multivect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv diff --git a/base/comm/internals/psi_dswapdata.F90 b/base/comm/internals/psi_dswapdata.F90 index 6dcc4eea..4ed8cb48 100644 --- a/base/comm/internals/psi_dswapdata.F90 +++ b/base/comm/internals/psi_dswapdata.F90 @@ -91,7 +91,7 @@ submodule (psi_d_comm_v_mod) psi_d_swapdata_impl use psb_desc_const_mod, only: psb_swap_start_, psb_swap_wait_ use psb_base_mod contains - module subroutine psi_dswapdata_vect(flag,beta,y,desc_a,info,data,work) + module subroutine psi_dswapdata_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -101,13 +101,12 @@ contains include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_vect_type) :: y - real(psb_dpk_) :: beta - type(psb_desc_type), target :: desc_a - real(psb_dpk_), optional, target :: work(:) - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + class(psb_d_base_vect_type), intent(inout) :: y + real(psb_dpk_), intent(in) :: beta + type(psb_desc_type), target :: desc_a ! TODO: should this be intent(in)? + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt @@ -209,15 +208,15 @@ contains #endif type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_mpk_) :: icomm integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_vect_type) :: y real(psb_dpk_), intent(in) :: beta + class(psb_d_base_vect_type), intent(inout) :: y class(psb_i_base_vect_type), intent(inout) :: comm_indexes - integer(psb_ipk_), intent(in) :: num_neighbors,total_send, total_recv + integer(psb_ipk_), intent(in) :: num_neighbors, total_send, total_recv + integer(psb_ipk_), intent(out) :: info ! locals + integer(psb_mpk_) :: icomm integer(psb_mpk_) :: np, me integer(psb_mpk_) :: proc_to_comm, p2ptag, p2pstat(mpi_status_size),& & iret, nesd, nerv @@ -449,15 +448,15 @@ contains #endif type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_mpk_) :: icomm - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_vect_type) :: y real(psb_dpk_), intent(in) :: beta + integer(psb_ipk_), intent(in) :: flag + class(psb_d_base_vect_type), intent(inout) :: y class(psb_i_base_vect_type), intent(inout) :: comm_indexes integer(psb_ipk_), intent(in) :: num_neighbors,total_send,total_recv + integer(psb_ipk_), intent(out) :: info ! locals + integer(psb_mpk_) :: icomm integer(psb_mpk_) :: np, me integer(psb_mpk_) :: iret, p2pstat(mpi_status_size) integer(psb_ipk_) :: err_act, topology_total_send, topology_total_recv, buffer_size @@ -606,7 +605,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_dswapdata_multivect(flag,beta,y,desc_a,info,data,work) + module subroutine psi_dswapdata_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi #endif @@ -615,13 +614,12 @@ contains include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_multivect_type) :: y - real(psb_dpk_) :: beta - type(psb_desc_type), target :: desc_a - real(psb_dpk_), optional, target :: work(:) - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + class(psb_d_base_multivect_type), intent(inout) :: y + real(psb_dpk_), intent(in) :: beta + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data ! local variables used to detect the communication scheme logical :: swap_mpi, swap_sync, swap_send, swap_recv, swap_start, swap_wait @@ -722,16 +720,16 @@ subroutine psi_dswap_baseline_multivect(ctxt,flag,beta,y,comm_indexes, & include 'mpif.h' #endif - type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_mpk_) :: icomm - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_multivect_type) :: y - real(psb_dpk_), intent(in) :: beta - class(psb_i_base_vect_type), intent(inout) :: comm_indexes - integer(psb_ipk_), intent(in) :: num_neighbors,total_send, total_recv + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + class(psb_d_base_multivect_type), intent(inout) :: y + class(psb_i_base_vect_type), intent(inout) :: comm_indexes + integer(psb_ipk_), intent(in) :: num_neighbors,total_send, total_recv + integer(psb_ipk_), intent(out) :: info ! locals + integer(psb_mpk_) :: icomm integer(psb_mpk_) :: np, me, nesd, nerv, n integer(psb_mpk_) :: proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret integer(psb_mpk_), allocatable :: prcid(:) @@ -964,26 +962,27 @@ subroutine psi_dswap_neighbor_topology_multivect(ctxt,flag,beta,y,comm_indexes,n include 'mpif.h' #endif - type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_mpk_) :: icomm - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_multivect_type) :: y - real(psb_dpk_), intent(in) :: beta - class(psb_i_base_vect_type), intent(inout) :: comm_indexes - integer(psb_ipk_), intent(in) :: num_neighbors,total_send, total_recv + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + class(psb_d_base_multivect_type), intent(inout) :: y + class(psb_i_base_vect_type), intent(inout) :: comm_indexes + integer(psb_ipk_), intent(in) :: num_neighbors,total_send, total_recv + integer(psb_ipk_), intent(out) :: info + ! locals - integer(psb_mpk_) :: np, me - integer(psb_mpk_) :: iret, p2pstat(mpi_status_size) - integer(psb_ipk_) :: err_act, topology_total_send, topology_total_recv, buffer_size - logical :: do_start, do_wait - logical, parameter :: debug = .false. - character(len=30) :: name + integer(psb_mpk_) :: icomm + integer(psb_mpk_) :: np, me + integer(psb_mpk_) :: iret, p2pstat(mpi_status_size) + integer(psb_ipk_) :: err_act, topology_total_send, topology_total_recv, buffer_size + logical :: do_start, do_wait + logical, parameter :: debug = .false. + character(len=30) :: name info = psb_success_ - name = 'psi_dswap_nbr_vect' + name = 'psi_dswap_neighbor_topology_multivect' call psb_erractionsave(err_act) call psb_info(ctxt,me,np) if (np == -1) then diff --git a/base/comm/internals/psi_dswapdata_a.F90 b/base/comm/internals/psi_dswapdata_a.F90 index 2b10ea2d..fae1a711 100644 --- a/base/comm/internals/psi_dswapdata_a.F90 +++ b/base/comm/internals/psi_dswapdata_a.F90 @@ -97,13 +97,14 @@ contains include 'mpif.h' #endif - integer(psb_mpk_), intent(in) :: n - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info -real(psb_dpk_) :: y(:,:), beta -real(psb_dpk_), target :: work(:) - type(psb_desc_type),target :: desc_a - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + integer(psb_mpk_), intent(in) :: n + real(psb_dpk_), intent(in) :: beta + real(psb_dpk_), intent(inout) :: y(:,:) + type(psb_desc_type),target :: desc_a + real(psb_dpk_), target :: work(:) + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt @@ -165,12 +166,13 @@ real(psb_dpk_), target :: work(:) #endif type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_mpk_), intent(in) :: n integer(psb_ipk_), intent(in) :: flag + integer(psb_mpk_), intent(in) :: n integer(psb_ipk_), intent(out) :: info -real(psb_dpk_) :: y(:,:), beta -real(psb_dpk_), target :: work(:) - integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv + real(psb_dpk_), intent(in) :: beta + real(psb_dpk_), intent(inout) :: y(:,:) + real(psb_dpk_), target :: work(:) + integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv ! locals @@ -565,12 +567,13 @@ real(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:), beta - real(psb_dpk_), target :: work(:) - type(psb_desc_type),target :: desc_a - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + real(psb_dpk_), intent(inout) :: y(:) + type(psb_desc_type),target :: desc_a + real(psb_dpk_), target :: work(:) + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt @@ -648,7 +651,8 @@ real(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:), beta + real(psb_dpk_), intent(in) :: beta + real(psb_dpk_), intent(inout) :: y(:) real(psb_dpk_), target :: work(:) integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv diff --git a/base/comm/internals/psi_dswaptran.F90 b/base/comm/internals/psi_dswaptran.F90 index ee4a1a73..75e18f2a 100644 --- a/base/comm/internals/psi_dswaptran.F90 +++ b/base/comm/internals/psi_dswaptran.F90 @@ -80,7 +80,6 @@ ! beta - real Choose overwrite or sum. ! y - type(psb_d_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -94,7 +93,7 @@ submodule (psi_d_comm_v_mod) psi_d_swaptran_impl use psb_base_mod contains - module subroutine psi_dswaptran_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_dswaptran_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -104,13 +103,12 @@ contains include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_vect_type) :: y - real(psb_dpk_) :: beta - real(psb_dpk_), target :: work(:) - type(psb_desc_type),target :: desc_a - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + class(psb_d_base_vect_type), intent(inout) :: y + type(psb_desc_type),target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt @@ -119,8 +117,8 @@ contains class(psb_i_base_vect_type), pointer :: d_vidx character(len=20) :: name - info=psb_success_ - name='psi_swap_tranv' + info = psb_success_ + name = 'psi_dswaptran_vect' call psb_erractionsave(err_act) ctxt = desc_a%get_context() @@ -150,7 +148,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -175,7 +173,7 @@ contains ! ! module subroutine psi_dtran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -185,14 +183,13 @@ contains include 'mpif.h' #endif - type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_vect_type) :: y - real(psb_dpk_) :: beta - real(psb_dpk_), target :: work(:) - class(psb_i_base_vect_type), intent(inout) :: idx - integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + class(psb_d_base_vect_type), intent(inout) :: y + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + integer(psb_ipk_), intent(out) :: info ! locals integer(psb_mpk_) :: np, me, nesd, nerv, n @@ -206,8 +203,8 @@ contains logical, parameter :: usersend=.false., debug=.false. character(len=20) :: name - info=psb_success_ - name='psi_swap_tran' + info = psb_success_ + name = 'psi_dtran_vidx_vect' call psb_erractionsave(err_act) call psb_info(ctxt,me,np) if (np == -1) then @@ -430,7 +427,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_dswaptran_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_dswaptran_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -440,13 +437,12 @@ contains include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_multivect_type) :: y - real(psb_dpk_) :: beta - real(psb_dpk_), target :: work(:) - type(psb_desc_type),target :: desc_a - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + class(psb_d_base_multivect_type), intent(inout) :: y + type(psb_desc_type),target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt @@ -486,7 +482,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -512,7 +508,7 @@ contains ! ! module subroutine psi_dtran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -522,14 +518,13 @@ contains include 'mpif.h' #endif - type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_multivect_type) :: y - real(psb_dpk_) :: beta - real(psb_dpk_), target :: work(:) - class(psb_i_base_vect_type), intent(inout) :: idx - integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_ipk_), intent(in) :: flag + integer(psb_ipk_), intent(out) :: info + class(psb_d_base_multivect_type), intent(inout) :: y + real(psb_dpk_), intent(in) :: beta + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv ! locals integer(psb_mpk_) :: np, me, nesd, nerv, n @@ -543,8 +538,8 @@ contains logical, parameter :: usersend=.false., debug=.false. character(len=20) :: name - info=psb_success_ - name='psi_swap_tran' + info = psb_success_ + name = 'psi_dtran_vidx_multivect' call psb_erractionsave(err_act) call psb_info(ctxt,me,np) if (np == -1) then diff --git a/base/comm/internals/psi_dswaptran_a.F90 b/base/comm/internals/psi_dswaptran_a.F90 index bd89d814..e8e991e4 100644 --- a/base/comm/internals/psi_dswaptran_a.F90 +++ b/base/comm/internals/psi_dswaptran_a.F90 @@ -30,7 +30,7 @@ ! ! ! -! File: psi_dswaptran.F90 +! File: psi_dswaptran_a.F90 ! ! Subroutine: psi_dswaptranm ! Implements the data exchange among processes. This is similar to Xswapdata, but @@ -101,13 +101,14 @@ contains include 'mpif.h' #endif - integer(psb_mpk_), intent(in) :: n - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:,:), beta - real(psb_dpk_), target :: work(:) - type(psb_desc_type),target :: desc_a - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + integer(psb_mpk_), intent(in) :: n + real(psb_dpk_), intent(in) :: beta + real(psb_dpk_), intent(inout) :: y(:,:) + type(psb_desc_type),target :: desc_a + real(psb_dpk_), target :: work(:) + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt @@ -149,7 +150,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,n,beta,y,d_idx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,n,beta,y,d_idx,totxch,idxs,idxr,work,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -174,7 +175,8 @@ contains integer(psb_mpk_), intent(in) :: n integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:,:), beta + real(psb_dpk_), intent(inout) :: y(:,:) + real(psb_dpk_), intent(in) :: beta real(psb_dpk_), target :: work(:) integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv @@ -579,12 +581,13 @@ contains include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:), beta - real(psb_dpk_), target :: work(:) - type(psb_desc_type),target :: desc_a - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + real(psb_dpk_), intent(inout) :: y(:) + type(psb_desc_type),target :: desc_a + real(psb_dpk_), target :: work(:) + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt @@ -659,7 +662,8 @@ contains type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:), beta + real(psb_dpk_), intent(inout) :: y(:) + real(psb_dpk_), intent(in) :: beta real(psb_dpk_), target :: work(:) integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv diff --git a/base/comm/internals/psi_eswaptran_a.F90 b/base/comm/internals/psi_eswaptran_a.F90 index b5f375ff..c095f708 100644 --- a/base/comm/internals/psi_eswaptran_a.F90 +++ b/base/comm/internals/psi_eswaptran_a.F90 @@ -30,7 +30,7 @@ ! ! ! -! File: psi_eswaptran.F90 +! File: psi_eswaptran_a.F90 ! ! Subroutine: psi_eswaptranm ! Implements the data exchange among processes. This is similar to Xswapdata, but diff --git a/base/comm/internals/psi_iswapdata.F90 b/base/comm/internals/psi_iswapdata.F90 index 23c6d1da..8d659f9b 100644 --- a/base/comm/internals/psi_iswapdata.F90 +++ b/base/comm/internals/psi_iswapdata.F90 @@ -77,8 +77,6 @@ ! beta - integer Choose overwrite or sum. ! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - integer Buffer space. If not sufficient, will do -! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data ! default psb_comm_halo_ @@ -92,7 +90,7 @@ submodule (psi_i_comm_v_mod) psi_i_swapdata_impl use psb_base_mod contains - subroutine psi_iswapdata_vect(flag,beta,y,desc_a,work,info,data) + subroutine psi_iswapdata_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -106,7 +104,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data @@ -148,7 +145,7 @@ contains goto 9999 end if - call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -174,7 +171,7 @@ contains ! ! module subroutine psi_iswap_vidx_vect(ctxt,flag,beta,y,idx, & - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -189,7 +186,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv @@ -206,8 +202,8 @@ contains logical, parameter :: usersend=.false., debug=.false. character(len=20) :: name - info=psb_success_ - name='psi_swap_datav' + info = psb_success_ + name = 'psi_iswap_vidx_vect' call psb_erractionsave(err_act) call psb_info(ctxt,me,np) if (np == -1) then @@ -420,7 +416,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_iswapdata_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_iswapdata_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi #endif @@ -433,7 +429,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_i_base_multivect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data @@ -475,7 +470,7 @@ contains goto 9999 end if - call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -501,7 +496,7 @@ contains ! ! module subroutine psi_iswap_vidx_multivect(ctxt,flag,beta,y,idx, & - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -516,7 +511,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_i_base_multivect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv diff --git a/base/comm/internals/psi_iswaptran.F90 b/base/comm/internals/psi_iswaptran.F90 index ce4e64e7..0454bc1e 100644 --- a/base/comm/internals/psi_iswaptran.F90 +++ b/base/comm/internals/psi_iswaptran.F90 @@ -80,7 +80,6 @@ ! beta - integer Choose overwrite or sum. ! y - type(psb_i_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -94,7 +93,7 @@ submodule (psi_i_comm_v_mod) psi_i_swaptran_impl use psb_base_mod contains - module subroutine psi_iswaptran_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_iswaptran_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -108,7 +107,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) type(psb_desc_type),target :: desc_a integer(psb_ipk_), optional :: data @@ -119,8 +117,8 @@ contains class(psb_i_base_vect_type), pointer :: d_vidx character(len=20) :: name - info=psb_success_ - name='psi_swap_tranv' + info = psb_success_ + name = 'psi_iswaptran_vect' call psb_erractionsave(err_act) ctxt = desc_a%get_context() @@ -150,7 +148,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -175,7 +173,7 @@ contains ! ! module subroutine psi_itran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -190,7 +188,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv @@ -430,7 +427,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_iswaptran_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_iswaptran_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -444,7 +441,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_i_base_multivect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) type(psb_desc_type),target :: desc_a integer(psb_ipk_), optional :: data @@ -486,7 +482,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -512,7 +508,7 @@ contains ! ! module subroutine psi_itran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -527,7 +523,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_i_base_multivect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv diff --git a/base/comm/internals/psi_lswapdata.F90 b/base/comm/internals/psi_lswapdata.F90 index 7d9e13a4..46b607df 100644 --- a/base/comm/internals/psi_lswapdata.F90 +++ b/base/comm/internals/psi_lswapdata.F90 @@ -77,8 +77,6 @@ ! beta - integer Choose overwrite or sum. ! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - integer Buffer space. If not sufficient, will do -! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data ! default psb_comm_halo_ @@ -92,7 +90,7 @@ submodule (psi_l_comm_v_mod) psi_l_swapdata_impl use psb_base_mod contains - subroutine psi_lswapdata_vect(flag,beta,y,desc_a,work,info,data) + subroutine psi_lswapdata_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -106,7 +104,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_l_base_vect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data @@ -148,7 +145,7 @@ contains goto 9999 end if - call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -174,7 +171,7 @@ contains ! ! module subroutine psi_lswap_vidx_vect(ctxt,flag,beta,y,idx, & - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -189,7 +186,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_l_base_vect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv @@ -420,7 +416,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_lswapdata_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_lswapdata_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi #endif @@ -433,7 +429,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_l_base_multivect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data @@ -475,7 +470,7 @@ contains goto 9999 end if - call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -501,7 +496,7 @@ contains ! ! module subroutine psi_lswap_vidx_multivect(ctxt,flag,beta,y,idx, & - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -516,7 +511,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_l_base_multivect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv diff --git a/base/comm/internals/psi_lswaptran.F90 b/base/comm/internals/psi_lswaptran.F90 index 094fc574..ff7d3400 100644 --- a/base/comm/internals/psi_lswaptran.F90 +++ b/base/comm/internals/psi_lswaptran.F90 @@ -80,8 +80,6 @@ ! beta - integer Choose overwrite or sum. ! y - type(psb_l_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - integer Buffer space. If not sufficient, will do -! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data ! default psb_comm_halo_ @@ -94,7 +92,7 @@ submodule (psi_l_comm_v_mod) psi_l_swaptran_impl use psb_base_mod contains - module subroutine psi_lswaptran_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_lswaptran_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -108,7 +106,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_l_base_vect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) type(psb_desc_type),target :: desc_a integer(psb_ipk_), optional :: data @@ -150,7 +147,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -175,7 +172,7 @@ contains ! ! module subroutine psi_ltran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -190,7 +187,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_l_base_vect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv @@ -430,7 +426,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_lswaptran_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_lswaptran_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -444,7 +440,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_l_base_multivect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) type(psb_desc_type),target :: desc_a integer(psb_ipk_), optional :: data @@ -486,7 +481,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -512,7 +507,7 @@ contains ! ! module subroutine psi_ltran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -527,7 +522,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_l_base_multivect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv diff --git a/base/comm/internals/psi_s_comm_v_mod@psi_s_ovrl_restr_v_impl.smod0 b/base/comm/internals/psi_s_comm_v_mod@psi_s_ovrl_restr_v_impl.smod0 deleted file mode 100644 index 5767f7ca..00000000 Binary files a/base/comm/internals/psi_s_comm_v_mod@psi_s_ovrl_restr_v_impl.smod0 and /dev/null differ diff --git a/base/comm/internals/psi_sswapdata.F90 b/base/comm/internals/psi_sswapdata.F90 index d36a34e3..87bc2718 100644 --- a/base/comm/internals/psi_sswapdata.F90 +++ b/base/comm/internals/psi_sswapdata.F90 @@ -77,7 +77,6 @@ ! beta - real Choose overwrite or sum. ! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -93,7 +92,7 @@ submodule (psi_s_comm_v_mod) psi_s_swapdata_impl use psb_desc_const_mod, only: psb_swap_start_, psb_swap_wait_ use psb_base_mod contains - module subroutine psi_sswapdata_vect(flag,beta,y,desc_a,info,data,work) + module subroutine psi_sswapdata_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -103,13 +102,12 @@ contains include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_vect_type) :: y - real(psb_spk_), intent(in) :: beta - type(psb_desc_type), target :: desc_a - real(psb_spk_), target, optional :: work(:) - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + integer(psb_ipk_), intent(out) :: info + class(psb_s_base_vect_type), intent(inout) :: y + real(psb_spk_), intent(in) :: beta + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt @@ -127,8 +125,8 @@ contains character(len=30) :: name - info=psb_success_ - name='psi_sswapdata_vect' + info = psb_success_ + name = 'psi_sswapdata_vect' call psb_erractionsave(err_act) ctxt = desc_a%get_context() @@ -223,8 +221,8 @@ subroutine psi_sswap_baseline_vect(ctxt,flag,beta,y,idx, & type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info - class(psb_s_base_vect_type) :: y - real(psb_spk_) :: beta + class(psb_s_base_vect_type), intent(inout) :: y + real(psb_spk_), intent(in) :: beta class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: num_neighbors,total_send, total_recv @@ -464,7 +462,7 @@ subroutine psi_sswap_neighbor_topology_vect(ctxt,flag,beta,y,idx, & integer(psb_mpk_) :: icomm integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info - class(psb_s_base_vect_type) :: y + class(psb_s_base_vect_type), intent(inout) :: y real(psb_spk_), intent(in) :: beta class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: num_neighbors,total_send, total_recv @@ -620,7 +618,7 @@ end subroutine psi_sswap_neighbor_topology_vect ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_sswapdata_multivect(flag,beta,y,desc_a,info,data,work) + module subroutine psi_sswapdata_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi #endif @@ -629,13 +627,12 @@ end subroutine psi_sswap_neighbor_topology_vect include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_multivect_type) :: y - real(psb_spk_), intent(in) :: beta - type(psb_desc_type), target :: desc_a - real(psb_spk_), target, optional :: work(:) - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + integer(psb_ipk_), intent(out) :: info + class(psb_s_base_multivect_type), intent(inout) :: y + real(psb_spk_), intent(in) :: beta + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt diff --git a/base/comm/internals/psi_sswaptran.F90 b/base/comm/internals/psi_sswaptran.F90 index 60babfcd..8d739dcb 100644 --- a/base/comm/internals/psi_sswaptran.F90 +++ b/base/comm/internals/psi_sswaptran.F90 @@ -80,7 +80,6 @@ ! beta - real Choose overwrite or sum. ! y - type(psb_s_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -94,7 +93,7 @@ submodule (psi_s_comm_v_mod) psi_s_swaptran_impl use psb_base_mod contains - module subroutine psi_sswaptran_vect(flag,beta,y,desc_a,info,data,work) + module subroutine psi_sswaptran_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -104,13 +103,12 @@ contains include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_vect_type) :: y - real(psb_spk_), intent(in) :: beta - real(psb_spk_), target, optional :: work(:) - type(psb_desc_type),target :: desc_a - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + real(psb_spk_), intent(in) :: beta + class(psb_s_base_vect_type), intent(inout) :: y + type(psb_desc_type),target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt @@ -119,8 +117,8 @@ contains class(psb_i_base_vect_type), pointer :: d_vidx character(len=20) :: name - info=psb_success_ - name='psi_swap_tranv' + info = psb_success_ + name = 'psi_sswaptran_vect' call psb_erractionsave(err_act) ctxt = desc_a%get_context() @@ -150,7 +148,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -175,7 +173,7 @@ contains ! ! module subroutine psi_stran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -188,9 +186,8 @@ contains type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info - class(psb_s_base_vect_type) :: y + class(psb_s_base_vect_type), intent(inout) :: y real(psb_spk_), intent(in) :: beta - real(psb_spk_), target, optional :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv @@ -430,7 +427,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_sswaptran_multivect(flag,beta,y,desc_a,info,data,work) + module subroutine psi_sswaptran_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -440,13 +437,12 @@ contains include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_multivect_type) :: y - real(psb_spk_), intent(in) :: beta - real(psb_spk_), target, optional :: work(:) - type(psb_desc_type),target :: desc_a - integer(psb_ipk_), optional :: data + integer(psb_ipk_), intent(in) :: flag + real(psb_spk_), intent(in) :: beta + class(psb_s_base_multivect_type), intent(inout) :: y + type(psb_desc_type),target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data ! locals type(psb_ctxt_type) :: ctxt @@ -486,7 +482,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -512,7 +508,7 @@ contains ! ! module subroutine psi_stran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -522,14 +518,14 @@ contains include 'mpif.h' #endif - type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_multivect_type) :: y - real(psb_spk_), intent(in) :: beta - real(psb_spk_), target, optional :: work(:) - class(psb_i_base_vect_type), intent(inout) :: idx - integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_ipk_), intent(in) :: flag + real(psb_spk_), intent(in) :: beta + class(psb_s_base_multivect_type), intent(inout) :: y + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd,totrcv + integer(psb_ipk_), intent(out) :: info + ! locals integer(psb_mpk_) :: np, me, nesd, nerv, n diff --git a/base/comm/internals/psi_sswaptran_a.F90 b/base/comm/internals/psi_sswaptran_a.F90 index 4987450e..ff392aa0 100644 --- a/base/comm/internals/psi_sswaptran_a.F90 +++ b/base/comm/internals/psi_sswaptran_a.F90 @@ -30,7 +30,7 @@ ! ! ! -! File: psi_sswaptran.F90 +! File: psi_sswaptran_a.F90 ! ! Subroutine: psi_sswaptranm ! Implements the data exchange among processes. This is similar to Xswapdata, but diff --git a/base/comm/internals/psi_zswapdata.F90 b/base/comm/internals/psi_zswapdata.F90 index 93fc1edf..e525a45d 100644 --- a/base/comm/internals/psi_zswapdata.F90 +++ b/base/comm/internals/psi_zswapdata.F90 @@ -77,8 +77,6 @@ ! beta - complex Choose overwrite or sum. ! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - complex Buffer space. If not sufficient, will do -! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data ! default psb_comm_halo_ @@ -92,7 +90,7 @@ submodule (psi_z_comm_v_mod) psi_z_swapdata_impl use psb_base_mod contains - subroutine psi_zswapdata_vect(flag,beta,y,desc_a,work,info,data) + subroutine psi_zswapdata_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -106,7 +104,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data @@ -148,7 +145,7 @@ contains goto 9999 end if - call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -174,7 +171,7 @@ contains ! ! module subroutine psi_zswap_vidx_vect(ctxt,flag,beta,y,idx, & - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -189,7 +186,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv @@ -420,7 +416,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_zswapdata_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_zswapdata_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi #endif @@ -433,7 +429,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_z_base_multivect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data @@ -475,7 +470,7 @@ contains goto 9999 end if - call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swapdata(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -501,7 +496,7 @@ contains ! ! module subroutine psi_zswap_vidx_multivect(ctxt,flag,beta,y,idx, & - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -516,7 +511,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_z_base_multivect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv diff --git a/base/comm/internals/psi_zswaptran.F90 b/base/comm/internals/psi_zswaptran.F90 index 465337a5..7011cf39 100644 --- a/base/comm/internals/psi_zswaptran.F90 +++ b/base/comm/internals/psi_zswaptran.F90 @@ -80,8 +80,6 @@ ! beta - complex Choose overwrite or sum. ! y - type(psb_z_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - complex Buffer space. If not sufficient, will do -! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data ! default psb_comm_halo_ @@ -94,7 +92,7 @@ submodule (psi_z_comm_v_mod) psi_z_swaptran_impl use psb_base_mod contains - module subroutine psi_zswaptran_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_zswaptran_vect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -108,7 +106,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) type(psb_desc_type),target :: desc_a integer(psb_ipk_), optional :: data @@ -150,7 +147,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -175,7 +172,7 @@ contains ! ! module subroutine psi_ztran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -190,7 +187,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv @@ -430,7 +426,7 @@ contains ! Takes care of Y an encaspulated multivector. ! ! - module subroutine psi_zswaptran_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_zswaptran_multivect(flag,beta,y,desc_a,info,data) #ifdef PSB_MPI_MOD use mpi @@ -444,7 +440,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_z_base_multivect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) type(psb_desc_type),target :: desc_a integer(psb_ipk_), optional :: data @@ -486,7 +481,7 @@ contains goto 9999 end if - call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,work,info) + call psi_swaptran(ctxt,flag,beta,y,d_vidx,totxch,idxs,idxr,info) if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) @@ -512,7 +507,7 @@ contains ! ! module subroutine psi_ztran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) #ifdef PSB_MPI_MOD use mpi @@ -527,7 +522,6 @@ contains integer(psb_ipk_), intent(out) :: info class(psb_z_base_multivect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv diff --git a/base/comm/psb_chalo.f90 b/base/comm/psb_chalo.f90 index 7eca2d12..4972afdd 100644 --- a/base/comm/psb_chalo.f90 +++ b/base/comm/psb_chalo.f90 @@ -41,7 +41,6 @@ ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - complex(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,33 +51,32 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data) +subroutine psb_chalo_vect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_chalo_vect use psi_mod implicit none - type(psb_c_vect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_c_vect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode, data_ integer(psb_lpk_) :: m, n, ix, ijx - complex(psb_spk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_chalov' - info=psb_success_ + name = 'psb_chalo_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 + info = psb_err_internal_error_ + goto 9999 end if ctxt=desc_a%get_context() @@ -129,39 +127,11 @@ subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - liwork=nrow - if (present(work)) then - if(size(work) >= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(imode,czero,x%v,& - & desc_a,iwork,info,data=data_) + call psi_swapdata(imode,czero,x%v,desc_a,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(imode,cone,x%v,& - & desc_a,iwork,info) + call psi_swaptran(imode,cone,x%v,desc_a,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -174,9 +144,6 @@ subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return @@ -196,7 +163,6 @@ end subroutine psb_chalo_vect ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - complex(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -207,36 +173,34 @@ end subroutine psb_chalo_vect ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_chalo_multivect(x,desc_a,info,work,tran,mode,data) +subroutine psb_chalo_multivect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_chalo_multivect use psi_mod implicit none - type(psb_c_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a + type(psb_c_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), target, optional, intent(inout) :: work(:) integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + character, intent(in), optional :: tran ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode, data_ integer(psb_lpk_) :: m, n, ix, ijx - complex(psb_spk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_chalov' - info=psb_success_ + name = 'psb_chalo_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -285,39 +249,11 @@ subroutine psb_chalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - liwork=nrow - if (present(work)) then - if(size(work) >= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(imode,czero,x%v,& - & desc_a,iwork,info,data=data_) + call psi_swapdata(imode,czero,x%v,desc_a,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(imode,cone,x%v,& - & desc_a,iwork,info) + call psi_swaptran(imode,cone,x%v,desc_a,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -325,14 +261,11 @@ subroutine psb_chalo_multivect(x,desc_a,info,work,tran,mode,data) end if if (info /= psb_success_) then - ch_err='PSI_swapdata' + ch_err = 'PSI_swapdata' call psb_errpush(psb_err_from_subroutine_,name,a_err=ch_err) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_chalo_a.f90 b/base/comm/psb_chalo_a.f90 index 30d47ba0..d2e3480c 100644 --- a/base/comm/psb_chalo_a.f90 +++ b/base/comm/psb_chalo_a.f90 @@ -29,7 +29,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -! File: psb_chalo.f90 +! File: psb_chalo_a.f90 ! ! Subroutine: psb_chalom ! This subroutine performs the exchange of the halo elements in a @@ -52,7 +52,7 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_chalom(x,desc_a,info,jx,ik,work,tran,mode,data) +subroutine psb_chalom(x,desc_a,info,jx,ik,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_chalom use psi_mod implicit none diff --git a/base/comm/psb_covrl.f90 b/base/comm/psb_covrl.f90 index 6ae6ce9f..91355415 100644 --- a/base/comm/psb_covrl.f90 +++ b/base/comm/psb_covrl.f90 @@ -42,7 +42,6 @@ ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - complex(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -63,7 +62,7 @@ ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_covrl_vect(x,desc_a,info,work,update,mode) +subroutine psb_covrl_vect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_covrl_vect use psi_mod implicit none @@ -71,27 +70,25 @@ subroutine psb_covrl_vect(x,desc_a,info,work,update,mode) type(psb_c_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), optional, target, intent(inout) :: work(:) integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - complex(psb_spk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_covrlv' - info=psb_success_ + name = 'psb_covrl_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -137,41 +134,15 @@ subroutine psb_covrl_vect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(mode_,cone,x%v,& - & desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(mode_,cone,x%v,desc_a,info,data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') goto 9999 end if - - if (aliw) deallocate(iwork) - nullify(iwork) call psb_erractionrestore(err_act) return @@ -192,7 +163,6 @@ end subroutine psb_covrl_vect ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - complex(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -213,29 +183,27 @@ end subroutine psb_covrl_vect ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_covrl_multivect(x,desc_a,info,work,update,mode) +subroutine psb_covrl_multivect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_covrl_multivect use psi_mod implicit none type(psb_c_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - complex(psb_spk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_covrlv' - info=psb_success_ + name = 'psb_covrl_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 @@ -289,32 +257,9 @@ subroutine psb_covrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(mode_,cone,x%v,& - & desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(mode_,cone,x%v, desc_a,info,data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then @@ -322,9 +267,6 @@ subroutine psb_covrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_covrl_a.f90 b/base/comm/psb_covrl_a.f90 index 2d389438..d42bcd94 100644 --- a/base/comm/psb_covrl_a.f90 +++ b/base/comm/psb_covrl_a.f90 @@ -30,7 +30,7 @@ ! ! ! -! File: psb_covrl.f90 +! File: psb_covrl_a.f90 ! ! Subroutine: psb_covrlm ! This subroutine performs the exchange of the overlap elements in a diff --git a/base/comm/psb_dhalo.f90 b/base/comm/psb_dhalo.f90 index 4a585be6..8a182d45 100644 --- a/base/comm/psb_dhalo.f90 +++ b/base/comm/psb_dhalo.f90 @@ -41,7 +41,6 @@ ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - real(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,7 +51,7 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data) +subroutine psb_dhalo_vect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_dhalo_vect use psi_mod implicit none @@ -60,16 +59,14 @@ subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data) type(psb_d_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data character, intent(in), optional :: tran + integer(psb_ipk_), intent(in), optional :: mode,data ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode,data_ integer(psb_lpk_) :: m, n, ix, ijx - real(psb_dpk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw @@ -129,38 +126,12 @@ subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - liwork=nrow - if (present(work)) then - if(size(work) >= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(flag=imode, info=info, y=x%v, beta=dzero, desc_a=desc_a, & - & data=data_, work=iwork) + call psi_swapdata(imode,dzero,x%v,desc_a,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(imode,done,x%v,desc_a,iwork,info) + call psi_swaptran(imode,done,x%v,desc_a,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -168,14 +139,11 @@ subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data) end if if (info /= psb_success_) then - ch_err='PSI_swapdata' + ch_err = 'PSI_swapdata' call psb_errpush(psb_err_from_subroutine_,name,a_err=ch_err) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return @@ -195,7 +163,6 @@ end subroutine psb_dhalo_vect ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - real(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -206,36 +173,34 @@ end subroutine psb_dhalo_vect ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_dhalo_multivect(x,desc_a,info,work,tran,mode,data) +subroutine psb_dhalo_multivect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_dhalo_multivect use psi_mod implicit none - type(psb_d_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_d_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + character, intent(in), optional :: tran + integer(psb_ipk_), intent(in), optional :: mode,data ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode, data_ integer(psb_lpk_) :: m, n, ix, ijx - real(psb_dpk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_dhalov' - info=psb_success_ + name = 'psb_dhalo_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -284,38 +249,11 @@ subroutine psb_dhalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - liwork=nrow - if (present(work)) then - if(size(work) >= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(flag=imode, info=info, y=x%v, beta=dzero, desc_a=desc_a, data=data_, work=iwork) + call psi_swapdata(imode,dzero,x%v,desc_a,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(imode,done,x%v,& - & desc_a,iwork,info) + call psi_swaptran(imode,done,x%v,desc_a,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -328,9 +266,6 @@ subroutine psb_dhalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_dhalo_a.f90 b/base/comm/psb_dhalo_a.f90 index d802ead5..f068db27 100644 --- a/base/comm/psb_dhalo_a.f90 +++ b/base/comm/psb_dhalo_a.f90 @@ -52,7 +52,7 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_dhalom(x,desc_a,info,jx,ik,work,tran,mode,data) +subroutine psb_dhalom(x,desc_a,info,jx,ik,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_dhalom use psi_mod implicit none diff --git a/base/comm/psb_dovrl.f90 b/base/comm/psb_dovrl.f90 index ccbcce6c..a252d658 100644 --- a/base/comm/psb_dovrl.f90 +++ b/base/comm/psb_dovrl.f90 @@ -42,7 +42,6 @@ ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - real(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -63,35 +62,33 @@ ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_dovrl_vect(x,desc_a,info,work,update,mode) +subroutine psb_dovrl_vect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_dovrl_vect use psi_mod implicit none - type(psb_d_vect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_d_vect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - real(psb_dpk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_dovrlv' - info=psb_success_ + name = 'psb_dovrl_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -137,41 +134,15 @@ subroutine psb_dovrl_vect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(flag=mode_, beta=done, y=x%v, desc_a=desc_a, & - & data=psb_comm_ovr_, info=info, work=iwork) + call psi_swapdata(mode_, done, x%v, desc_a, info, data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') goto 9999 end if - - if (aliw) deallocate(iwork) - nullify(iwork) call psb_erractionrestore(err_act) return @@ -192,7 +163,6 @@ end subroutine psb_dovrl_vect ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - real(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -213,29 +183,27 @@ end subroutine psb_dovrl_vect ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_dovrl_multivect(x,desc_a,info,work,update,mode) +subroutine psb_dovrl_multivect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_dovrl_multivect use psi_mod implicit none - type(psb_d_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_d_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - real(psb_dpk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_dovrlv' - info=psb_success_ + name = 'psb_dovrl_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 @@ -289,32 +257,9 @@ subroutine psb_dovrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(flag=mode_, beta=done, y=x%v, desc_a=desc_a, & - & data=psb_comm_ovr_, info=info, work=iwork) + call psi_swapdata(mode_, done, x%v, desc_a, info, data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then @@ -322,9 +267,6 @@ subroutine psb_dovrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_ehalo_a.f90 b/base/comm/psb_ehalo_a.f90 index d5431e69..712ae961 100644 --- a/base/comm/psb_ehalo_a.f90 +++ b/base/comm/psb_ehalo_a.f90 @@ -52,7 +52,7 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_ehalom(x,desc_a,info,jx,ik,work,tran,mode,data) +subroutine psb_ehalom(x,desc_a,info,jx,ik,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_ehalom use psi_mod implicit none @@ -174,7 +174,7 @@ subroutine psb_ehalom(x,desc_a,info,jx,ik,work,tran,mode,data) & desc_a,iwork,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then call psi_swaptran(imode,k,eone,xp,& - &desc_a,iwork,info) + & desc_a,iwork,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -254,7 +254,7 @@ end subroutine psb_ehalom ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_ehalov(x,desc_a,info,work,tran,mode,data) +subroutine psb_ehalov(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_ehalov use psi_mod implicit none diff --git a/base/comm/psb_ihalo.f90 b/base/comm/psb_ihalo.f90 index 57e52958..9ca4080c 100644 --- a/base/comm/psb_ihalo.f90 +++ b/base/comm/psb_ihalo.f90 @@ -41,7 +41,6 @@ ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - integer(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,36 +51,34 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_ihalo_vect(x,desc_a,info,work,tran,mode,data) +subroutine psb_ihalo_vect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_ihalo_vect use psi_mod implicit none type(psb_i_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data character, intent(in), optional :: tran ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode,data_ integer(psb_lpk_) :: m, n, ix, ijx - integer(psb_ipk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_ihalov' - info=psb_success_ + name = 'psb_ihalo_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -129,39 +126,11 @@ subroutine psb_ihalo_vect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - liwork=nrow - if (present(work)) then - if(size(work) >= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(imode,izero,x%v,& - & desc_a,iwork,info,data=data_) + call psi_swapdata(imode,izero,x%v,desc_a,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(imode,ione,x%v,& - & desc_a,iwork,info) + call psi_swaptran(imode,ione,x%v,desc_a,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -174,9 +143,6 @@ subroutine psb_ihalo_vect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return @@ -196,7 +162,6 @@ end subroutine psb_ihalo_vect ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - integer(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -207,36 +172,34 @@ end subroutine psb_ihalo_vect ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_ihalo_multivect(x,desc_a,info,work,tran,mode,data) +subroutine psb_ihalo_multivect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_ihalo_multivect use psi_mod implicit none - type(psb_i_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_i_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode, data_ integer(psb_lpk_) :: m, n, ix, ijx - integer(psb_ipk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_ihalov' - info=psb_success_ + name = 'psb_ihalo_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -285,39 +248,11 @@ subroutine psb_ihalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - liwork=nrow - if (present(work)) then - if(size(work) >= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(imode,izero,x%v,& - & desc_a,iwork,info,data=data_) + call psi_swapdata(imode,izero,x%v,desc_a,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(imode,ione,x%v,& - & desc_a,iwork,info) + call psi_swaptran(imode,ione,x%v,desc_a,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -330,9 +265,6 @@ subroutine psb_ihalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_iovrl.f90 b/base/comm/psb_iovrl.f90 index 3dd459f1..f1b9767a 100644 --- a/base/comm/psb_iovrl.f90 +++ b/base/comm/psb_iovrl.f90 @@ -42,7 +42,6 @@ ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - integer(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -63,35 +62,33 @@ ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_iovrl_vect(x,desc_a,info,work,update,mode) +subroutine psb_iovrl_vect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_iovrl_vect use psi_mod implicit none - type(psb_i_vect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_i_vect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - integer(psb_ipk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_iovrlv' - info=psb_success_ + name = 'psb_iovrl_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -137,41 +134,15 @@ subroutine psb_iovrl_vect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(mode_,ione,x%v,& - & desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(mode_,ione,x%v,desc_a,info,data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') goto 9999 end if - - if (aliw) deallocate(iwork) - nullify(iwork) call psb_erractionrestore(err_act) return @@ -192,7 +163,6 @@ end subroutine psb_iovrl_vect ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - integer(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -213,35 +183,34 @@ end subroutine psb_iovrl_vect ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_iovrl_multivect(x,desc_a,info,work,update,mode) +subroutine psb_iovrl_multivect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_iovrl_multivect use psi_mod implicit none type(psb_i_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - integer(psb_ipk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_iovrlv' - info=psb_success_ + name = 'psb_iovrl_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 + info = psb_err_internal_error_ + goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -289,32 +258,9 @@ subroutine psb_iovrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(mode_,ione,x%v,& - & desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(mode_,ione,x%v,desc_a,info,data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then @@ -322,9 +268,6 @@ subroutine psb_iovrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_lhalo.f90 b/base/comm/psb_lhalo.f90 index 3a188561..322ba72a 100644 --- a/base/comm/psb_lhalo.f90 +++ b/base/comm/psb_lhalo.f90 @@ -41,7 +41,6 @@ ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - integer(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,36 +51,35 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_lhalo_vect(x,desc_a,info,work,tran,mode,data) +subroutine psb_lhalo_vect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_lhalo_vect use psi_mod implicit none type(psb_l_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_lpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data character, intent(in), optional :: tran ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode, data_ integer(psb_lpk_) :: m, n, ix, ijx - integer(psb_lpk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_lhalov' - info=psb_success_ + name = 'psb_lhalo_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 + info = psb_err_internal_error_ + goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -124,44 +122,17 @@ subroutine psb_lhalo_vect(x,desc_a,info,work,tran,mode,data) if ((info == 0).and.(lldx= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(imode,lzero,x%v,& - & desc_a,iwork,info,data=data_) + call psi_swapdata(imode,lzero,x%v,desc_a,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(imode,lone,x%v,& - & desc_a,iwork,info) + call psi_swaptran(imode,lone,x%v,desc_a,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -174,9 +145,6 @@ subroutine psb_lhalo_vect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return @@ -196,7 +164,6 @@ end subroutine psb_lhalo_vect ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - integer(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -207,36 +174,35 @@ end subroutine psb_lhalo_vect ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_lhalo_multivect(x,desc_a,info,work,tran,mode,data) +subroutine psb_lhalo_multivect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_lhalo_multivect use psi_mod implicit none - type(psb_l_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_lpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_l_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode, data_ integer(psb_lpk_) :: m, n, ix, ijx - integer(psb_lpk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_lhalov' - info=psb_success_ + name = 'psb_lhalo_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 + info = psb_err_internal_error_ + goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -285,39 +251,11 @@ subroutine psb_lhalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - liwork=nrow - if (present(work)) then - if(size(work) >= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(imode,lzero,x%v,& - & desc_a,iwork,info,data=data_) + call psi_swapdata(imode,lzero,x%v,desc_a,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(imode,lone,x%v,& - & desc_a,iwork,info) + call psi_swaptran(imode,lone,x%v,desc_a,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -330,9 +268,6 @@ subroutine psb_lhalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_lovrl.f90 b/base/comm/psb_lovrl.f90 index 43de77bb..b669e31e 100644 --- a/base/comm/psb_lovrl.f90 +++ b/base/comm/psb_lovrl.f90 @@ -42,7 +42,6 @@ ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - integer(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -63,35 +62,33 @@ ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_lovrl_vect(x,desc_a,info,work,update,mode) +subroutine psb_lovrl_vect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_lovrl_vect use psi_mod implicit none - type(psb_l_vect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_lpk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_l_vect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - integer(psb_lpk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_lovrlv' - info=psb_success_ + name = 'psb_lovrl_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -137,41 +134,15 @@ subroutine psb_lovrl_vect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(mode_,lone,x%v,& - & desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(mode_,lone,x%v,desc_a,info,data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') goto 9999 end if - - if (aliw) deallocate(iwork) - nullify(iwork) call psb_erractionrestore(err_act) return @@ -192,7 +163,6 @@ end subroutine psb_lovrl_vect ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - integer(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -213,29 +183,27 @@ end subroutine psb_lovrl_vect ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_lovrl_multivect(x,desc_a,info,work,update,mode) +subroutine psb_lovrl_multivect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_lovrl_multivect use psi_mod implicit none - type(psb_l_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_lpk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_l_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - integer(psb_lpk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_lovrlv' - info=psb_success_ + name = 'psb_lovrl_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 @@ -289,32 +257,9 @@ subroutine psb_lovrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(mode_,lone,x%v,& - & desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(mode_,lone,x%v,desc_a,info,data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then @@ -322,9 +267,6 @@ subroutine psb_lovrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_shalo.f90 b/base/comm/psb_shalo.f90 index a0671d4d..366f3713 100644 --- a/base/comm/psb_shalo.f90 +++ b/base/comm/psb_shalo.f90 @@ -41,7 +41,6 @@ ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - real(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,36 +51,34 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data) +subroutine psb_shalo_vect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_shalo_vect use psi_mod implicit none type(psb_s_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_spk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data character, intent(in), optional :: tran ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode, data_ integer(psb_lpk_) :: m, n, ix, ijx - real(psb_spk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_shalov' - info=psb_success_ + name = 'psb_shalo_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -124,44 +121,17 @@ subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data) if ((info == 0).and.(lldx= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(flag=imode, beta=szero, y=x%v, desc_a=desc_a, & - & data=data_, info=info, work=iwork) + call psi_swapdata(imode, szero, x%v, desc_a, info, data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(flag=imode, beta=sone, y=x%v, desc_a=desc_a, & - & info=info, work=iwork) + call psi_swaptran(imode, sone, x%v, desc_a, info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -174,9 +144,6 @@ subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return @@ -196,7 +163,6 @@ end subroutine psb_shalo_vect ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - real(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -207,36 +173,34 @@ end subroutine psb_shalo_vect ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_shalo_multivect(x,desc_a,info,work,tran,mode,data) +subroutine psb_shalo_multivect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_shalo_multivect use psi_mod implicit none - type(psb_s_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_spk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_s_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode, data_ integer(psb_lpk_) :: m, n, ix, ijx - real(psb_spk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_shalov' - info=psb_success_ + name = 'psb_shalo_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -285,37 +249,11 @@ subroutine psb_shalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - liwork=nrow - if (present(work)) then - if(size(work) >= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(flag=imode, beta=szero, y=x%v, desc_a=desc_a, info=info, data=data_, work=iwork) + call psi_swapdata(imode, szero, x%v, desc_a, info, data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(flag=imode, beta=sone, y=x%v, desc_a=desc_a, info=info, work=iwork) + call psi_swaptran(imode, sone, x%v, desc_a, info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -328,9 +266,6 @@ subroutine psb_shalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_shalo_a.f90 b/base/comm/psb_shalo_a.f90 index 23cc464d..21ec8e81 100644 --- a/base/comm/psb_shalo_a.f90 +++ b/base/comm/psb_shalo_a.f90 @@ -29,7 +29,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -! File: psb_shalo.f90 +! File: psb_shalo_a.f90 ! ! Subroutine: psb_shalom ! This subroutine performs the exchange of the halo elements in a @@ -52,7 +52,7 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_shalom(x,desc_a,info,jx,ik,work,tran,mode,data) +subroutine psb_shalom(x,desc_a,info,jx,ik,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_shalom use psi_mod implicit none diff --git a/base/comm/psb_sovrl.f90 b/base/comm/psb_sovrl.f90 index b164b967..9ca9c6b4 100644 --- a/base/comm/psb_sovrl.f90 +++ b/base/comm/psb_sovrl.f90 @@ -42,7 +42,6 @@ ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - real(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -63,35 +62,33 @@ ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_sovrl_vect(x,desc_a,info,work,update,mode) +subroutine psb_sovrl_vect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_sovrl_vect use psi_mod implicit none - type(psb_s_vect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_spk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_s_vect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - real(psb_spk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_sovrlv' - info=psb_success_ + name = 'psb_sovrl_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -137,31 +134,9 @@ subroutine psb_sovrl_vect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(flag=mode_, beta=sone, y=x%v, desc_a=desc_a, info=info, data=psb_comm_ovr_, work=iwork) + call psi_swapdata(mode_, sone, x%v, desc_a, info, data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then @@ -169,9 +144,6 @@ subroutine psb_sovrl_vect(x,desc_a,info,work,update,mode) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return @@ -191,7 +163,6 @@ end subroutine psb_sovrl_vect ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - real(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -212,35 +183,33 @@ end subroutine psb_sovrl_vect ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_sovrl_multivect(x,desc_a,info,work,update,mode) +subroutine psb_sovrl_multivect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_sovrl_multivect use psi_mod implicit none type(psb_s_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_spk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - real(psb_spk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_sovrlv' - info=psb_success_ + name = 'psb_sovrl_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -288,32 +257,9 @@ subroutine psb_sovrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(mode_,sone,x%v,& - & desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(mode_, sone, x%v, desc_a, info, data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then @@ -321,9 +267,6 @@ subroutine psb_sovrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_zhalo.f90 b/base/comm/psb_zhalo.f90 index 2bf1aef2..b3e37d02 100644 --- a/base/comm/psb_zhalo.f90 +++ b/base/comm/psb_zhalo.f90 @@ -41,7 +41,6 @@ ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - complex(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,36 +51,34 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data) +subroutine psb_zhalo_vect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_zhalo_vect use psi_mod implicit none type(psb_z_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data character, intent(in), optional :: tran ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode, data_ integer(psb_lpk_) :: m, n, ix, ijx - complex(psb_dpk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_zhalov' - info=psb_success_ + name = 'psb_zhalo_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -129,39 +126,11 @@ subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - liwork=nrow - if (present(work)) then - if(size(work) >= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(imode,zzero,x%v,& - & desc_a,iwork,info,data=data_) + call psi_swapdata(imode,zzero,x%v,desc_a,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(imode,zone,x%v,& - & desc_a,iwork,info) + call psi_swaptran(imode,zone,x%v,desc_a,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -174,9 +143,6 @@ subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return @@ -196,7 +162,6 @@ end subroutine psb_zhalo_vect ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - complex(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -207,36 +172,34 @@ end subroutine psb_zhalo_vect ! psb_comm_mov_ use ovr_mst_idx ! ! -subroutine psb_zhalo_multivect(x,desc_a,info,work,tran,mode,data) +subroutine psb_zhalo_multivect(x,desc_a,info,tran,mode,data) use psb_base_mod, psb_protect_name => psb_zhalo_multivect use psi_mod implicit none - type(psb_z_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_z_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, iix, jjx, & - & nrow, ncol, lldx, imode, liwork,data_ + & nrow, ncol, lldx, imode, data_ integer(psb_lpk_) :: m, n, ix, ijx - complex(psb_dpk_),pointer :: iwork(:) character :: tran_ character(len=20) :: name, ch_err logical :: aliw - name='psb_zhalov' - info=psb_success_ + name = 'psb_zhalo_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -285,39 +248,11 @@ subroutine psb_zhalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - liwork=nrow - if (present(work)) then - if(size(work) >= liwork) then - iwork => work - aliw=.false. - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - else - aliw=.true. - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - ! exchange halo elements if(tran_ == 'N') then - call psi_swapdata(imode,zzero,x%v,& - & desc_a,iwork,info,data=data_) + call psi_swapdata(imode,zzero,x%v,desc_a,info,data=data_) else if((tran_ == 'T').or.(tran_ == 'C')) then - call psi_swaptran(imode,zone,x%v,& - & desc_a,iwork,info) + call psi_swaptran(imode,zone,x%v,desc_a,info) else info = psb_err_internal_error_ call psb_errpush(info,name,a_err='invalid tran') @@ -330,9 +265,6 @@ subroutine psb_zhalo_multivect(x,desc_a,info,work,tran,mode,data) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/comm/psb_zovrl.f90 b/base/comm/psb_zovrl.f90 index 02a2a73d..60a8a76a 100644 --- a/base/comm/psb_zovrl.f90 +++ b/base/comm/psb_zovrl.f90 @@ -42,7 +42,6 @@ ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - complex(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -63,29 +62,27 @@ ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_zovrl_vect(x,desc_a,info,work,update,mode) +subroutine psb_zovrl_vect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_zovrl_vect use psi_mod implicit none - type(psb_z_vect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_z_vect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - complex(psb_dpk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_zovrlv' - info=psb_success_ + name = 'psb_zovrl_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 @@ -137,41 +134,15 @@ subroutine psb_zovrl_vect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(mode_,zone,x%v,& - & desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(mode_,zone,x%v,desc_a,info,data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') goto 9999 end if - - if (aliw) deallocate(iwork) - nullify(iwork) call psb_erractionrestore(err_act) return @@ -192,7 +163,6 @@ end subroutine psb_zovrl_vect ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix ! ik - integer(optional). The number of columns to gather. -! work - complex(optional). A work area. ! update - integer(optional). Type of update: ! psb_none_ do nothing ! psb_sum_ sum of overlaps @@ -213,35 +183,33 @@ end subroutine psb_zovrl_vect ! - if (swap_recv): use psb_rcv (completing a ! previous call with swap_send) ! -subroutine psb_zovrl_multivect(x,desc_a,info,work,update,mode) +subroutine psb_zovrl_multivect(x,desc_a,info,update,mode) use psb_base_mod, psb_protect_name => psb_zovrl_multivect use psi_mod implicit none - type(psb_z_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), optional, target, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_z_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode ! locals type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me, err_act, k, iix, jjx, & - & nrow, ncol, ldx, liwork, data_, update_, mode_ + & nrow, ncol, ldx, data_, update_, mode_ integer(psb_lpk_) :: m, n, ix, ijx - complex(psb_dpk_),pointer :: iwork(:) logical :: do_swap character(len=20) :: name, ch_err logical :: aliw - name='psb_zovrlv' - info=psb_success_ + name = 'psb_zovrl_multivect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() ! check on blacs grid call psb_info(ctxt, me, np) @@ -289,32 +257,9 @@ subroutine psb_zovrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - ! check for presence/size of a work area - liwork=ncol - if (present(work)) then - if(size(work) >= liwork) then - aliw=.false. - else - aliw=.true. - end if - else - aliw=.true. - end if - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - else - iwork => work - end if - ! exchange overlap elements if (do_swap) then - call psi_swapdata(mode_,zone,x%v,& - & desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(mode_,zone,x%v,desc_a,info,data=psb_comm_ovr_) end if if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,update_,info) if (info /= psb_success_) then @@ -322,9 +267,6 @@ subroutine psb_zovrl_multivect(x,desc_a,info,work,update,mode) goto 9999 end if - if (aliw) deallocate(iwork) - nullify(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/modules/comm/psb_c_comm_mod.f90 b/base/modules/comm/psb_c_comm_mod.f90 index 1bd46197..44126faa 100644 --- a/base/modules/comm/psb_c_comm_mod.f90 +++ b/base/modules/comm/psb_c_comm_mod.f90 @@ -37,52 +37,48 @@ module psb_c_comm_mod use psb_c_multivect_mod, only : psb_c_multivect_type, psb_c_base_multivect_type interface psb_ovrl - subroutine psb_covrl_vect(x,desc_a,info,work,update,mode) + subroutine psb_covrl_vect(x,desc_a,info,update,mode) import implicit none type(psb_c_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_covrl_vect - subroutine psb_covrl_multivect(x,desc_a,info,work,update,mode) + subroutine psb_covrl_multivect(x,desc_a,info,update,mode) import implicit none - type(psb_c_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_c_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_covrl_multivect end interface psb_ovrl interface psb_halo - subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data) + subroutine psb_chalo_vect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_c_vect_type), intent(inout) :: x + type(psb_c_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data character, intent(in), optional :: tran end subroutine psb_chalo_vect - subroutine psb_chalo_multivect(x,desc_a,info,work,tran,mode,data) + subroutine psb_chalo_multivect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_c_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_c_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran end subroutine psb_chalo_multivect end interface psb_halo interface psb_scatter - subroutine psb_cscatter_vect(globx, locx, desc_a, info, root, mold) + subroutine psb_cscatter_vect(globx, locx, desc_a, info, root, mold) import implicit none type(psb_c_vect_type), intent(inout) :: locx diff --git a/base/modules/comm/psb_c_linmap_mod.f90 b/base/modules/comm/psb_c_linmap_mod.f90 index 07257d88..4ccc8d55 100644 --- a/base/modules/comm/psb_c_linmap_mod.f90 +++ b/base/modules/comm/psb_c_linmap_mod.f90 @@ -73,7 +73,7 @@ module psb_c_linmap_mod integer(psb_ipk_), intent(out) :: info complex(psb_spk_), optional :: work(:) end subroutine psb_c_map_U2V_a - subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) + subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty) use psb_c_vect_mod, only : psb_c_vect_type import :: psb_ipk_, psb_spk_, psb_clinmap_type implicit none @@ -81,7 +81,6 @@ module psb_c_linmap_mod complex(psb_spk_), intent(in) :: alpha,beta type(psb_c_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), optional :: work(:) type(psb_c_vect_type), optional, target, intent(inout) :: vtx,vty end subroutine psb_c_map_U2V_v end interface @@ -97,7 +96,7 @@ module psb_c_linmap_mod integer(psb_ipk_), intent(out) :: info complex(psb_spk_), optional :: work(:) end subroutine psb_c_map_V2U_a - subroutine psb_c_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) + subroutine psb_c_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty) use psb_c_vect_mod, only : psb_c_vect_type import :: psb_ipk_, psb_spk_, psb_clinmap_type implicit none @@ -105,7 +104,6 @@ module psb_c_linmap_mod complex(psb_spk_), intent(in) :: alpha,beta type(psb_c_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), optional :: work(:) type(psb_c_vect_type), optional, target, intent(inout) :: vtx,vty end subroutine psb_c_map_V2U_v end interface diff --git a/base/modules/comm/psb_d_comm_a_mod.f90 b/base/modules/comm/psb_d_comm_a_mod.f90 index 5fb410f2..0190225f 100644 --- a/base/modules/comm/psb_d_comm_a_mod.f90 +++ b/base/modules/comm/psb_d_comm_a_mod.f90 @@ -36,11 +36,11 @@ module psb_d_comm_a_mod subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,update,mode) import implicit none - real(psb_dpk_), intent(inout), target :: x(:,:) - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info + real(psb_dpk_), intent(inout), target :: x(:,:) + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info real(psb_dpk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,jx,ik,mode + integer(psb_ipk_), intent(in), optional :: update,jx,ik,mode end subroutine psb_dovrlm subroutine psb_dovrlv(x,desc_a,info,work,update,mode) import @@ -57,22 +57,22 @@ module psb_d_comm_a_mod subroutine psb_dhalom(x,desc_a,info,jx,ik,work,tran,mode,data) import implicit none - real(psb_dpk_), intent(inout), target :: x(:,:) - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info + real(psb_dpk_), intent(inout), target :: x(:,:) + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info real(psb_dpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,jx,ik,data - character, intent(in), optional :: tran + integer(psb_ipk_), intent(in), optional :: mode,jx,ik,data + character, intent(in), optional :: tran end subroutine psb_dhalom subroutine psb_dhalov(x,desc_a,info,work,tran,mode,data) import implicit none - real(psb_dpk_), intent(inout) :: x(:) - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info + real(psb_dpk_), intent(inout) :: x(:) + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info real(psb_dpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran end subroutine psb_dhalov end interface psb_halo diff --git a/base/modules/comm/psb_d_comm_mod.f90 b/base/modules/comm/psb_d_comm_mod.f90 index 013c76e2..90cbfbc9 100644 --- a/base/modules/comm/psb_d_comm_mod.f90 +++ b/base/modules/comm/psb_d_comm_mod.f90 @@ -37,46 +37,42 @@ module psb_d_comm_mod use psb_d_multivect_mod, only : psb_d_multivect_type, psb_d_base_multivect_type interface psb_ovrl - subroutine psb_dovrl_vect(x,desc_a,info,work,update,mode) + subroutine psb_dovrl_vect(x,desc_a,info,update,mode) import implicit none - type(psb_d_vect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_d_vect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_dovrl_vect - subroutine psb_dovrl_multivect(x,desc_a,info,work,update,mode) + subroutine psb_dovrl_multivect(x,desc_a,info,update,mode) import implicit none - type(psb_d_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_d_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_dovrl_multivect end interface psb_ovrl interface psb_halo - subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data) + subroutine psb_dhalo_vect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_d_vect_type), intent(inout) :: x + type(psb_d_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data + integer(psb_ipk_), intent(out) :: info character, intent(in), optional :: tran + integer(psb_ipk_), intent(in), optional :: mode,data end subroutine psb_dhalo_vect - subroutine psb_dhalo_multivect(x,desc_a,info,work,tran,mode,data) + subroutine psb_dhalo_multivect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_d_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_d_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + character, intent(in), optional :: tran + integer(psb_ipk_), intent(in), optional :: mode,data end subroutine psb_dhalo_multivect end interface psb_halo diff --git a/base/modules/comm/psb_d_linmap_mod.f90 b/base/modules/comm/psb_d_linmap_mod.f90 index 744cad2d..2bef33fd 100644 --- a/base/modules/comm/psb_d_linmap_mod.f90 +++ b/base/modules/comm/psb_d_linmap_mod.f90 @@ -73,7 +73,7 @@ module psb_d_linmap_mod integer(psb_ipk_), intent(out) :: info real(psb_dpk_), optional :: work(:) end subroutine psb_d_map_U2V_a - subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) + subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty) use psb_d_vect_mod, only : psb_d_vect_type import :: psb_ipk_, psb_dpk_, psb_dlinmap_type implicit none @@ -81,7 +81,6 @@ module psb_d_linmap_mod real(psb_dpk_), intent(in) :: alpha,beta type(psb_d_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), optional :: work(:) type(psb_d_vect_type), optional, target, intent(inout) :: vtx,vty end subroutine psb_d_map_U2V_v end interface @@ -97,7 +96,7 @@ module psb_d_linmap_mod integer(psb_ipk_), intent(out) :: info real(psb_dpk_), optional :: work(:) end subroutine psb_d_map_V2U_a - subroutine psb_d_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) + subroutine psb_d_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty) use psb_d_vect_mod, only : psb_d_vect_type import :: psb_ipk_, psb_dpk_, psb_dlinmap_type implicit none @@ -105,7 +104,6 @@ module psb_d_linmap_mod real(psb_dpk_), intent(in) :: alpha,beta type(psb_d_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), optional :: work(:) type(psb_d_vect_type), optional, target, intent(inout) :: vtx,vty end subroutine psb_d_map_V2U_v end interface diff --git a/base/modules/comm/psb_i_comm_mod.f90 b/base/modules/comm/psb_i_comm_mod.f90 index 25d761ba..a6f24327 100644 --- a/base/modules/comm/psb_i_comm_mod.f90 +++ b/base/modules/comm/psb_i_comm_mod.f90 @@ -36,46 +36,42 @@ module psb_i_comm_mod use psb_i_multivect_mod, only : psb_i_multivect_type, psb_i_base_multivect_type interface psb_ovrl - subroutine psb_iovrl_vect(x,desc_a,info,work,update,mode) + subroutine psb_iovrl_vect(x,desc_a,info,update,mode) import implicit none type(psb_i_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_iovrl_vect - subroutine psb_iovrl_multivect(x,desc_a,info,work,update,mode) + subroutine psb_iovrl_multivect(x,desc_a,info,update,mode) import implicit none - type(psb_i_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_i_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_iovrl_multivect end interface psb_ovrl interface psb_halo - subroutine psb_ihalo_vect(x,desc_a,info,work,tran,mode,data) + subroutine psb_ihalo_vect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_i_vect_type), intent(inout) :: x + type(psb_i_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data character, intent(in), optional :: tran end subroutine psb_ihalo_vect - subroutine psb_ihalo_multivect(x,desc_a,info,work,tran,mode,data) + subroutine psb_ihalo_multivect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_i_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_i_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran end subroutine psb_ihalo_multivect end interface psb_halo diff --git a/base/modules/comm/psb_l_comm_mod.f90 b/base/modules/comm/psb_l_comm_mod.f90 index 2bba923d..0f55c7b1 100644 --- a/base/modules/comm/psb_l_comm_mod.f90 +++ b/base/modules/comm/psb_l_comm_mod.f90 @@ -36,46 +36,42 @@ module psb_l_comm_mod use psb_l_multivect_mod, only : psb_l_multivect_type, psb_l_base_multivect_type interface psb_ovrl - subroutine psb_lovrl_vect(x,desc_a,info,work,update,mode) + subroutine psb_lovrl_vect(x,desc_a,info,update,mode) import implicit none type(psb_l_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_lpk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_lovrl_vect - subroutine psb_lovrl_multivect(x,desc_a,info,work,update,mode) + subroutine psb_lovrl_multivect(x,desc_a,info,update,mode) import implicit none - type(psb_l_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_lpk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_l_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_lovrl_multivect end interface psb_ovrl interface psb_halo - subroutine psb_lhalo_vect(x,desc_a,info,work,tran,mode,data) + subroutine psb_lhalo_vect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_l_vect_type), intent(inout) :: x + type(psb_l_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_lpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data character, intent(in), optional :: tran end subroutine psb_lhalo_vect - subroutine psb_lhalo_multivect(x,desc_a,info,work,tran,mode,data) + subroutine psb_lhalo_multivect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_l_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - integer(psb_lpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_l_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran end subroutine psb_lhalo_multivect end interface psb_halo diff --git a/base/modules/comm/psb_s_comm_mod.f90 b/base/modules/comm/psb_s_comm_mod.f90 index a202b5b6..3430af4c 100644 --- a/base/modules/comm/psb_s_comm_mod.f90 +++ b/base/modules/comm/psb_s_comm_mod.f90 @@ -37,46 +37,42 @@ module psb_s_comm_mod use psb_s_multivect_mod, only : psb_s_multivect_type, psb_s_base_multivect_type interface psb_ovrl - subroutine psb_sovrl_vect(x,desc_a,info,work,update,mode) + subroutine psb_sovrl_vect(x,desc_a,info,update,mode) import implicit none type(psb_s_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_spk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_sovrl_vect - subroutine psb_sovrl_multivect(x,desc_a,info,work,update,mode) + subroutine psb_sovrl_multivect(x,desc_a,info,update,mode) import implicit none - type(psb_s_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_spk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_s_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_sovrl_multivect end interface psb_ovrl interface psb_halo - subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data) + subroutine psb_shalo_vect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_s_vect_type), intent(inout) :: x + type(psb_s_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_spk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data character, intent(in), optional :: tran end subroutine psb_shalo_vect - subroutine psb_shalo_multivect(x,desc_a,info,work,tran,mode,data) + subroutine psb_shalo_multivect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_s_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_spk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_s_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran end subroutine psb_shalo_multivect end interface psb_halo diff --git a/base/modules/comm/psb_s_linmap_mod.f90 b/base/modules/comm/psb_s_linmap_mod.f90 index 1ded2c59..7e248df8 100644 --- a/base/modules/comm/psb_s_linmap_mod.f90 +++ b/base/modules/comm/psb_s_linmap_mod.f90 @@ -73,7 +73,7 @@ module psb_s_linmap_mod integer(psb_ipk_), intent(out) :: info real(psb_spk_), optional :: work(:) end subroutine psb_s_map_U2V_a - subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) + subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty) use psb_s_vect_mod, only : psb_s_vect_type import :: psb_ipk_, psb_spk_, psb_slinmap_type implicit none @@ -81,7 +81,6 @@ module psb_s_linmap_mod real(psb_spk_), intent(in) :: alpha,beta type(psb_s_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - real(psb_spk_), optional :: work(:) type(psb_s_vect_type), optional, target, intent(inout) :: vtx,vty end subroutine psb_s_map_U2V_v end interface @@ -97,7 +96,7 @@ module psb_s_linmap_mod integer(psb_ipk_), intent(out) :: info real(psb_spk_), optional :: work(:) end subroutine psb_s_map_V2U_a - subroutine psb_s_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) + subroutine psb_s_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty) use psb_s_vect_mod, only : psb_s_vect_type import :: psb_ipk_, psb_spk_, psb_slinmap_type implicit none @@ -105,7 +104,6 @@ module psb_s_linmap_mod real(psb_spk_), intent(in) :: alpha,beta type(psb_s_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - real(psb_spk_), optional :: work(:) type(psb_s_vect_type), optional, target, intent(inout) :: vtx,vty end subroutine psb_s_map_V2U_v end interface diff --git a/base/modules/comm/psb_z_comm_mod.f90 b/base/modules/comm/psb_z_comm_mod.f90 index 304cdfb9..cac47f45 100644 --- a/base/modules/comm/psb_z_comm_mod.f90 +++ b/base/modules/comm/psb_z_comm_mod.f90 @@ -37,46 +37,42 @@ module psb_z_comm_mod use psb_z_multivect_mod, only : psb_z_multivect_type, psb_z_base_multivect_type interface psb_ovrl - subroutine psb_zovrl_vect(x,desc_a,info,work,update,mode) + subroutine psb_zovrl_vect(x,desc_a,info,update,mode) import implicit none type(psb_z_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_zovrl_vect - subroutine psb_zovrl_multivect(x,desc_a,info,work,update,mode) + subroutine psb_zovrl_multivect(x,desc_a,info,update,mode) import implicit none - type(psb_z_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), intent(inout), optional, target :: work(:) - integer(psb_ipk_), intent(in), optional :: update,mode + type(psb_z_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: update,mode end subroutine psb_zovrl_multivect end interface psb_ovrl interface psb_halo - subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data) + subroutine psb_zhalo_vect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_z_vect_type), intent(inout) :: x + type(psb_z_vect_type), intent(inout) :: x type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data character, intent(in), optional :: tran end subroutine psb_zhalo_vect - subroutine psb_zhalo_multivect(x,desc_a,info,work,tran,mode,data) + subroutine psb_zhalo_multivect(x,desc_a,info,tran,mode,data) import implicit none - type(psb_z_multivect_type), intent(inout) :: x - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), target, optional, intent(inout) :: work(:) - integer(psb_ipk_), intent(in), optional :: mode,data - character, intent(in), optional :: tran + type(psb_z_multivect_type), intent(inout) :: x + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran end subroutine psb_zhalo_multivect end interface psb_halo diff --git a/base/modules/comm/psb_z_linmap_mod.f90 b/base/modules/comm/psb_z_linmap_mod.f90 index 8fe61b0a..24ec0db0 100644 --- a/base/modules/comm/psb_z_linmap_mod.f90 +++ b/base/modules/comm/psb_z_linmap_mod.f90 @@ -73,7 +73,7 @@ module psb_z_linmap_mod integer(psb_ipk_), intent(out) :: info complex(psb_dpk_), optional :: work(:) end subroutine psb_z_map_U2V_a - subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) + subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty) use psb_z_vect_mod, only : psb_z_vect_type import :: psb_ipk_, psb_dpk_, psb_zlinmap_type implicit none @@ -81,7 +81,6 @@ module psb_z_linmap_mod complex(psb_dpk_), intent(in) :: alpha,beta type(psb_z_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), optional :: work(:) type(psb_z_vect_type), optional, target, intent(inout) :: vtx,vty end subroutine psb_z_map_U2V_v end interface @@ -97,7 +96,7 @@ module psb_z_linmap_mod integer(psb_ipk_), intent(out) :: info complex(psb_dpk_), optional :: work(:) end subroutine psb_z_map_V2U_a - subroutine psb_z_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) + subroutine psb_z_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty) use psb_z_vect_mod, only : psb_z_vect_type import :: psb_ipk_, psb_dpk_, psb_zlinmap_type implicit none @@ -105,7 +104,6 @@ module psb_z_linmap_mod complex(psb_dpk_), intent(in) :: alpha,beta type(psb_z_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), optional :: work(:) type(psb_z_vect_type), optional, target, intent(inout) :: vtx,vty end subroutine psb_z_map_V2U_v end interface diff --git a/base/modules/comm/psi_c_comm_v_mod.f90 b/base/modules/comm/psi_c_comm_v_mod.f90 index 9f7c8758..f6e7f3d0 100644 --- a/base/modules/comm/psi_c_comm_v_mod.f90 +++ b/base/modules/comm/psi_c_comm_v_mod.f90 @@ -36,43 +36,39 @@ module psi_c_comm_v_mod use psb_c_base_multivect_mod, only : psb_c_base_multivect_type interface psi_swapdata - module subroutine psi_cswapdata_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_cswapdata_vect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_cswapdata_vect - module subroutine psi_cswapdata_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_cswapdata_multivect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_multivect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_cswapdata_multivect module subroutine psi_cswap_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_cswap_vidx_vect module subroutine psi_cswap_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_multivect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_cswap_vidx_multivect @@ -80,43 +76,39 @@ module psi_c_comm_v_mod interface psi_swaptran - module subroutine psi_cswaptran_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_cswaptran_vect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_cswaptran_vect - module subroutine psi_cswaptran_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_cswaptran_multivect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_multivect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_cswaptran_multivect module subroutine psi_ctran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_ctran_vidx_vect module subroutine psi_ctran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_multivect_type) :: y complex(psb_spk_) :: beta - complex(psb_spk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_ctran_vidx_multivect diff --git a/base/modules/comm/psi_d_comm_a_mod.f90 b/base/modules/comm/psi_d_comm_a_mod.f90 index 46f02142..ca1aa947 100644 --- a/base/modules/comm/psi_d_comm_a_mod.f90 +++ b/base/modules/comm/psi_d_comm_a_mod.f90 @@ -35,40 +35,44 @@ module psi_d_comm_a_mod interface psi_swapdata module subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) - integer(psb_mpk_), intent(in) :: n integer(psb_ipk_), intent(in) :: flag + integer(psb_mpk_), intent(in) :: n + real(psb_dpk_),intent(in) :: beta + real(psb_dpk_),intent(inout) :: y(:,:) + type(psb_desc_type), target :: desc_a + real(psb_dpk_),target :: work(:) integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:,:), beta - real(psb_dpk_),target :: work(:) - type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_dswapdatam module subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_),intent(in) :: beta + real(psb_dpk_),intent(inout) :: y(:) + type(psb_desc_type), target :: desc_a + real(psb_dpk_),target :: work(:) integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:), beta - real(psb_dpk_),target :: work(:) - type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_dswapdatav module subroutine psi_dswapidxm(ctxt,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_mpk_), intent(in) :: n integer(psb_ipk_), intent(in) :: flag + integer(psb_mpk_), intent(in) :: n + real(psb_dpk_),intent(in) :: beta + real(psb_dpk_),intent(inout) :: y(:,:) + integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv + real(psb_dpk_),target :: work(:) integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:,:), beta - real(psb_dpk_),target :: work(:) - integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv end subroutine psi_dswapidxm module subroutine psi_dswapidxv(ctxt,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_),intent(in) :: beta + real(psb_dpk_),intent(inout) :: y(:) + integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv + real(psb_dpk_),target :: work(:) integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:), beta - real(psb_dpk_),target :: work(:) - integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv end subroutine psi_dswapidxv end interface psi_swapdata @@ -77,38 +81,42 @@ module psi_d_comm_a_mod module subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_Mpk_), intent(in) :: n + real(psb_dpk_),intent(in) :: beta + real(psb_dpk_),intent(inout) :: y(:,:) + type(psb_desc_type), target :: desc_a + real(psb_dpk_),target :: work(:) integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:,:), beta - real(psb_dpk_),target :: work(:) - type(psb_desc_type), target :: desc_a - integer(psb_ipk_), optional :: data + integer(psb_ipk_), optional :: data !! TODO: Is this used in the code? If not, remove it. end subroutine psi_dswaptranm module subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_),intent(in) :: beta + real(psb_dpk_),intent(inout) :: y(:) + type(psb_desc_type), target :: desc_a + real(psb_dpk_),target :: work(:) integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:), beta - real(psb_dpk_),target :: work(:) - type(psb_desc_type), target :: desc_a - integer(psb_ipk_), optional :: data + integer(psb_ipk_), optional :: data !! TODO: Is this used in the code? If not, remove it. end subroutine psi_dswaptranv module subroutine psi_dtranidxm(ctxt,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_mpk_), intent(in) :: n integer(psb_ipk_), intent(in) :: flag + integer(psb_mpk_), intent(in) :: n + real(psb_dpk_),intent(in) :: beta + real(psb_dpk_),intent(inout) :: y(:,:) + integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv + real(psb_dpk_),target :: work(:) integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:,:), beta - real(psb_dpk_),target :: work(:) - integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv end subroutine psi_dtranidxm module subroutine psi_dtranidxv(ctxt,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_),intent(in) :: beta + real(psb_dpk_),intent(inout) :: y(:) + integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv + real(psb_dpk_),target :: work(:) integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: y(:), beta - real(psb_dpk_),target :: work(:) - integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv end subroutine psi_dtranidxv end interface psi_swaptran diff --git a/base/modules/comm/psi_d_comm_v_mod.f90 b/base/modules/comm/psi_d_comm_v_mod.f90 index 40ba09f2..e22ed0f5 100644 --- a/base/modules/comm/psi_d_comm_v_mod.f90 +++ b/base/modules/comm/psi_d_comm_v_mod.f90 @@ -40,23 +40,21 @@ module psi_d_comm_v_mod ! Wrapper that calls different communications schemes depending on ! flag variable using communication buff obtained from desc_a%get_list_p ! --------------------------------------------------------------- - module subroutine psi_dswapdata_vect(flag,beta,y,desc_a,info,data,work) - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_vect_type) :: y - real(psb_dpk_) :: beta - type(psb_desc_type), target :: desc_a - integer(psb_ipk_), optional :: data - real(psb_dpk_), optional, target :: work(:) + module subroutine psi_dswapdata_vect(flag,beta,y,desc_a,info,data) + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + class(psb_d_base_vect_type), intent(inout) :: y + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data end subroutine psi_dswapdata_vect - module subroutine psi_dswapdata_multivect(flag,beta,y,desc_a,info,data,work) - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_multivect_type) :: y - real(psb_dpk_) :: beta - type(psb_desc_type), target :: desc_a - integer(psb_ipk_), optional :: data - real(psb_dpk_), optional, target :: work(:) + module subroutine psi_dswapdata_multivect(flag,beta,y,desc_a,info,data) + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + class(psb_d_base_multivect_type), intent(inout) :: y + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data end subroutine psi_dswapdata_multivect end interface psi_swapdata @@ -65,23 +63,21 @@ module psi_d_comm_v_mod ! --------------------------------------------------------------- ! Upper call in order to populate idx using desc_a%get_list_p ! --------------------------------------------------------------- - module subroutine psi_dswaptran_vect(flag,beta,y,desc_a,work,info,data) - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_vect_type) :: y - real(psb_dpk_) :: beta - real(psb_dpk_),target :: work(:) - type(psb_desc_type), target :: desc_a - integer(psb_ipk_), optional :: data + module subroutine psi_dswaptran_vect(flag,beta,y,desc_a,info,data) + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + class(psb_d_base_vect_type), intent(inout) :: y + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data end subroutine psi_dswaptran_vect - module subroutine psi_dswaptran_multivect(flag,beta,y,desc_a,work,info,data) - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_d_base_multivect_type) :: y - real(psb_dpk_) :: beta - real(psb_dpk_),target :: work(:) - type(psb_desc_type), target :: desc_a - integer(psb_ipk_), optional :: data + module subroutine psi_dswaptran_multivect(flag,beta,y,desc_a,info,data) + integer(psb_ipk_), intent(in) :: flag + real(psb_dpk_), intent(in) :: beta + class(psb_d_base_multivect_type), intent(inout) :: y + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data end subroutine psi_dswaptran_multivect ! --------------------------------------------------------------- @@ -91,24 +87,22 @@ module psi_d_comm_v_mod ! flag variable ! --------------------------------------------------------------- module subroutine psi_dtran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info - class(psb_d_base_vect_type) :: y - real(psb_dpk_) :: beta - real(psb_dpk_), target :: work(:) + class(psb_d_base_vect_type), intent(inout) :: y + real(psb_dpk_), intent(in) :: beta class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_dtran_vidx_vect module subroutine psi_dtran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info - class(psb_d_base_multivect_type) :: y - real(psb_dpk_) :: beta - real(psb_dpk_), target :: work(:) + class(psb_d_base_multivect_type), intent(inout) :: y + real(psb_dpk_), intent(in) :: beta class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_dtran_vidx_multivect diff --git a/base/modules/comm/psi_i_comm_v_mod.f90 b/base/modules/comm/psi_i_comm_v_mod.f90 index 2bc8a0e9..6db43c15 100644 --- a/base/modules/comm/psi_i_comm_v_mod.f90 +++ b/base/modules/comm/psi_i_comm_v_mod.f90 @@ -37,43 +37,39 @@ module psi_i_comm_v_mod use psb_i_base_multivect_mod, only : psb_i_base_multivect_type interface psi_swapdata - module subroutine psi_iswapdata_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_iswapdata_vect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_iswapdata_vect - module subroutine psi_iswapdata_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_iswapdata_multivect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_multivect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_iswapdata_multivect module subroutine psi_iswap_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_iswap_vidx_vect module subroutine psi_iswap_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_multivect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_iswap_vidx_multivect @@ -81,43 +77,39 @@ module psi_i_comm_v_mod interface psi_swaptran - module subroutine psi_iswaptran_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_iswaptran_vect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_iswaptran_vect - module subroutine psi_iswaptran_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_iswaptran_multivect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_multivect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_iswaptran_multivect module subroutine psi_itran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_itran_vidx_vect module subroutine psi_itran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_multivect_type) :: y integer(psb_ipk_) :: beta - integer(psb_ipk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_itran_vidx_multivect diff --git a/base/modules/comm/psi_l_comm_v_mod.f90 b/base/modules/comm/psi_l_comm_v_mod.f90 index 92768d86..3d30ba41 100644 --- a/base/modules/comm/psi_l_comm_v_mod.f90 +++ b/base/modules/comm/psi_l_comm_v_mod.f90 @@ -38,43 +38,39 @@ module psi_l_comm_v_mod use psb_l_base_multivect_mod, only : psb_l_base_multivect_type interface psi_swapdata - module subroutine psi_lswapdata_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_lswapdata_vect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_l_base_vect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_lswapdata_vect - module subroutine psi_lswapdata_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_lswapdata_multivect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_l_base_multivect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_lswapdata_multivect module subroutine psi_lswap_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_l_base_vect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_lswap_vidx_vect module subroutine psi_lswap_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_l_base_multivect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_lswap_vidx_multivect @@ -82,43 +78,39 @@ module psi_l_comm_v_mod interface psi_swaptran - module subroutine psi_lswaptran_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_lswaptran_vect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_l_base_vect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_lswaptran_vect - module subroutine psi_lswaptran_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_lswaptran_multivect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_l_base_multivect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_lswaptran_multivect module subroutine psi_ltran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_l_base_vect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_ltran_vidx_vect module subroutine psi_ltran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_l_base_multivect_type) :: y integer(psb_lpk_) :: beta - integer(psb_lpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_ltran_vidx_multivect diff --git a/base/modules/comm/psi_s_comm_v_mod.f90 b/base/modules/comm/psi_s_comm_v_mod.f90 index d20c5ca3..7becf153 100644 --- a/base/modules/comm/psi_s_comm_v_mod.f90 +++ b/base/modules/comm/psi_s_comm_v_mod.f90 @@ -36,68 +36,62 @@ module psi_s_comm_v_mod use psb_s_base_multivect_mod, only : psb_s_base_multivect_type interface psi_swapdata - module subroutine psi_sswapdata_vect(flag,beta,y,desc_a,info,data,work) - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_vect_type) :: y - real(psb_spk_), intent(in) :: beta - type(psb_desc_type), target :: desc_a - integer(psb_ipk_), optional :: data - real(psb_spk_),target, optional :: work(:) + module subroutine psi_sswapdata_vect(flag,beta,y,desc_a,info,data) + integer(psb_ipk_), intent(in) :: flag + real(psb_spk_), intent(in) :: beta + class(psb_s_base_vect_type), intent(inout) :: y + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data end subroutine psi_sswapdata_vect - module subroutine psi_sswapdata_multivect(flag,beta,y,desc_a,info,data,work) - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_multivect_type) :: y - real(psb_spk_), intent(in) :: beta - type(psb_desc_type), target :: desc_a - integer(psb_ipk_), optional :: data - real(psb_spk_),target, optional :: work(:) + module subroutine psi_sswapdata_multivect(flag,beta,y,desc_a,info,data) + integer(psb_ipk_), intent(in) :: flag + real(psb_spk_), intent(in) :: beta + class(psb_s_base_multivect_type), intent(inout) :: y + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data end subroutine psi_sswapdata_multivect end interface psi_swapdata interface psi_swaptran - module subroutine psi_sswaptran_vect(flag,beta,y,desc_a,info,data,work) - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_vect_type) :: y - real(psb_spk_), intent(in) :: beta - type(psb_desc_type), target :: desc_a - integer(psb_ipk_), optional :: data - real(psb_spk_),target, optional :: work(:) + module subroutine psi_sswaptran_vect(flag,beta,y,desc_a,info,data) + integer(psb_ipk_), intent(in) :: flag + integer(psb_ipk_), intent(out) :: info + class(psb_s_base_vect_type), intent(inout) :: y + real(psb_spk_), intent(in) :: beta + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), optional :: data end subroutine psi_sswaptran_vect - module subroutine psi_sswaptran_multivect(flag,beta,y,desc_a,info,data,work) - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_multivect_type) :: y - real(psb_spk_), intent(in) :: beta - type(psb_desc_type), target :: desc_a - integer(psb_ipk_), optional :: data - real(psb_spk_),target, optional :: work(:) + module subroutine psi_sswaptran_multivect(flag,beta,y,desc_a,info,data) + integer(psb_ipk_), intent(in) :: flag + class(psb_s_base_multivect_type), intent(inout) :: y + real(psb_spk_), intent(in) :: beta + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), optional :: data end subroutine psi_sswaptran_multivect module subroutine psi_stran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) - type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_vect_type) :: y - real(psb_spk_), intent(in) :: beta - real(psb_spk_), target, optional :: work(:) - class(psb_i_base_vect_type), intent(inout) :: idx - integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + & totxch,totsnd,totrcv,info) + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_ipk_), intent(in) :: flag + real(psb_spk_), intent(in) :: beta + class(psb_s_base_vect_type), intent(inout) :: y + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + integer(psb_ipk_), intent(out) :: info end subroutine psi_stran_vidx_vect module subroutine psi_stran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) - type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_ipk_), intent(in) :: flag - integer(psb_ipk_), intent(out) :: info - class(psb_s_base_multivect_type) :: y - real(psb_spk_), intent(in) :: beta - real(psb_spk_), target, optional :: work(:) - class(psb_i_base_vect_type), intent(inout) :: idx - integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + & totxch,totsnd,totrcv,info) + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_ipk_), intent(in) :: flag + real(psb_spk_), intent(in) :: beta + class(psb_s_base_multivect_type), intent(inout) :: y + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + integer(psb_ipk_), intent(out) :: info end subroutine psi_stran_vidx_multivect end interface psi_swaptran diff --git a/base/modules/comm/psi_z_comm_v_mod.f90 b/base/modules/comm/psi_z_comm_v_mod.f90 index 8c749f60..2421c59d 100644 --- a/base/modules/comm/psi_z_comm_v_mod.f90 +++ b/base/modules/comm/psi_z_comm_v_mod.f90 @@ -36,43 +36,39 @@ module psi_z_comm_v_mod use psb_z_base_multivect_mod, only : psb_z_base_multivect_type interface psi_swapdata - module subroutine psi_zswapdata_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_zswapdata_vect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_zswapdata_vect - module subroutine psi_zswapdata_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_zswapdata_multivect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_multivect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_zswapdata_multivect module subroutine psi_zswap_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_zswap_vidx_vect module subroutine psi_zswap_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_multivect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_zswap_vidx_multivect @@ -80,43 +76,39 @@ module psi_z_comm_v_mod interface psi_swaptran - module subroutine psi_zswaptran_vect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_zswaptran_vect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_zswaptran_vect - module subroutine psi_zswaptran_multivect(flag,beta,y,desc_a,work,info,data) + module subroutine psi_zswaptran_multivect(flag,beta,y,desc_a,info,data) integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_multivect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_),target :: work(:) type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data end subroutine psi_zswaptran_multivect module subroutine psi_ztran_vidx_vect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_ztran_vidx_vect module subroutine psi_ztran_vidx_multivect(ctxt,flag,beta,y,idx,& - & totxch,totsnd,totrcv,work,info) + & totxch,totsnd,totrcv,info) type(psb_ctxt_type), intent(in) :: ctxt integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_multivect_type) :: y complex(psb_dpk_) :: beta - complex(psb_dpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_ztran_vidx_multivect diff --git a/base/modules/psblas/psb_c_psblas_mod.F90 b/base/modules/psblas/psb_c_psblas_mod.F90 index 130159bc..e77a9325 100644 --- a/base/modules/psblas/psb_c_psblas_mod.F90 +++ b/base/modules/psblas/psb_c_psblas_mod.F90 @@ -421,18 +421,17 @@ module psb_c_psblas_mod integer(psb_ipk_), intent(out) :: info end subroutine psb_cspmv subroutine psb_cspmv_vect(alpha, a, x, beta, y,& - & desc_a, info, trans, work,doswap) + & desc_a, info, trans,doswap) import :: psb_desc_type, psb_spk_, psb_ipk_, & & psb_c_vect_type, psb_cspmat_type - type(psb_cspmat_type), intent(in) :: a - type(psb_c_vect_type), intent(inout) :: x - type(psb_c_vect_type), intent(inout) :: y - complex(psb_spk_), intent(in) :: alpha, beta - type(psb_desc_type), intent(in) :: desc_a - character, optional, intent(in) :: trans - complex(psb_spk_), optional, intent(inout),target :: work(:) - logical, optional, intent(in) :: doswap - integer(psb_ipk_), intent(out) :: info + type(psb_cspmat_type), intent(in) :: a + type(psb_c_vect_type), intent(inout) :: x + type(psb_c_vect_type), intent(inout) :: y + complex(psb_spk_), intent(in) :: alpha, beta + type(psb_desc_type), intent(in) :: desc_a + character, optional, intent(in) :: trans + logical, optional, intent(in) :: doswap + integer(psb_ipk_), intent(out) :: info end subroutine psb_cspmv_vect end interface @@ -472,7 +471,7 @@ module psb_c_psblas_mod end subroutine psb_cspsv subroutine psb_cspsv_vect(alpha, t, x, beta, y,& & desc_a, info, trans, scale, choice,& - & diag, work) + & diag) import :: psb_desc_type, psb_spk_, psb_ipk_, & & psb_c_vect_type, psb_cspmat_type type(psb_cspmat_type), intent(inout) :: t @@ -483,7 +482,6 @@ module psb_c_psblas_mod character, optional, intent(in) :: trans, scale integer(psb_ipk_), optional, intent(in) :: choice type(psb_c_vect_type), intent(inout), optional :: diag - complex(psb_spk_), optional, intent(inout), target :: work(:) integer(psb_ipk_), intent(out) :: info end subroutine psb_cspsv_vect end interface diff --git a/base/modules/psblas/psb_d_psblas_mod.F90 b/base/modules/psblas/psb_d_psblas_mod.F90 index afc3acaf..095c4603 100644 --- a/base/modules/psblas/psb_d_psblas_mod.F90 +++ b/base/modules/psblas/psb_d_psblas_mod.F90 @@ -432,7 +432,7 @@ module psb_d_psblas_mod integer(psb_ipk_), intent(out) :: info end subroutine psb_dspmv subroutine psb_dspmv_vect(alpha, a, x, beta, y,& - & desc_a, info, trans, work,doswap) + & desc_a, info, trans,doswap) import :: psb_desc_type, psb_dpk_, psb_ipk_, & & psb_d_vect_type, psb_dspmat_type type(psb_dspmat_type), intent(in) :: a @@ -441,7 +441,6 @@ module psb_d_psblas_mod real(psb_dpk_), intent(in) :: alpha, beta type(psb_desc_type), intent(in) :: desc_a character, optional, intent(in) :: trans - real(psb_dpk_), optional, intent(inout),target :: work(:) logical, optional, intent(in) :: doswap integer(psb_ipk_), intent(out) :: info end subroutine psb_dspmv_vect @@ -483,7 +482,7 @@ module psb_d_psblas_mod end subroutine psb_dspsv subroutine psb_dspsv_vect(alpha, t, x, beta, y,& & desc_a, info, trans, scale, choice,& - & diag, work) + & diag) import :: psb_desc_type, psb_dpk_, psb_ipk_, & & psb_d_vect_type, psb_dspmat_type type(psb_dspmat_type), intent(inout) :: t @@ -494,7 +493,6 @@ module psb_d_psblas_mod character, optional, intent(in) :: trans, scale integer(psb_ipk_), optional, intent(in) :: choice type(psb_d_vect_type), intent(inout), optional :: diag - real(psb_dpk_), optional, intent(inout), target :: work(:) integer(psb_ipk_), intent(out) :: info end subroutine psb_dspsv_vect end interface diff --git a/base/modules/psblas/psb_s_psblas_mod.F90 b/base/modules/psblas/psb_s_psblas_mod.F90 index 6048d023..330775c9 100644 --- a/base/modules/psblas/psb_s_psblas_mod.F90 +++ b/base/modules/psblas/psb_s_psblas_mod.F90 @@ -432,7 +432,7 @@ module psb_s_psblas_mod integer(psb_ipk_), intent(out) :: info end subroutine psb_sspmv subroutine psb_sspmv_vect(alpha, a, x, beta, y,& - & desc_a, info, trans, work,doswap) + & desc_a, info, trans,doswap) import :: psb_desc_type, psb_spk_, psb_ipk_, & & psb_s_vect_type, psb_sspmat_type type(psb_sspmat_type), intent(in) :: a @@ -441,7 +441,6 @@ module psb_s_psblas_mod real(psb_spk_), intent(in) :: alpha, beta type(psb_desc_type), intent(in) :: desc_a character, optional, intent(in) :: trans - real(psb_spk_), optional, intent(inout),target :: work(:) logical, optional, intent(in) :: doswap integer(psb_ipk_), intent(out) :: info end subroutine psb_sspmv_vect @@ -483,7 +482,7 @@ module psb_s_psblas_mod end subroutine psb_sspsv subroutine psb_sspsv_vect(alpha, t, x, beta, y,& & desc_a, info, trans, scale, choice,& - & diag, work) + & diag) import :: psb_desc_type, psb_spk_, psb_ipk_, & & psb_s_vect_type, psb_sspmat_type type(psb_sspmat_type), intent(inout) :: t @@ -494,7 +493,6 @@ module psb_s_psblas_mod character, optional, intent(in) :: trans, scale integer(psb_ipk_), optional, intent(in) :: choice type(psb_s_vect_type), intent(inout), optional :: diag - real(psb_spk_), optional, intent(inout), target :: work(:) integer(psb_ipk_), intent(out) :: info end subroutine psb_sspsv_vect end interface diff --git a/base/modules/psblas/psb_z_psblas_mod.F90 b/base/modules/psblas/psb_z_psblas_mod.F90 index fd0cc300..e9d03f37 100644 --- a/base/modules/psblas/psb_z_psblas_mod.F90 +++ b/base/modules/psblas/psb_z_psblas_mod.F90 @@ -421,7 +421,7 @@ module psb_z_psblas_mod integer(psb_ipk_), intent(out) :: info end subroutine psb_zspmv subroutine psb_zspmv_vect(alpha, a, x, beta, y,& - & desc_a, info, trans, work,doswap) + & desc_a, info, trans,doswap) import :: psb_desc_type, psb_dpk_, psb_ipk_, & & psb_z_vect_type, psb_zspmat_type type(psb_zspmat_type), intent(in) :: a @@ -430,7 +430,6 @@ module psb_z_psblas_mod complex(psb_dpk_), intent(in) :: alpha, beta type(psb_desc_type), intent(in) :: desc_a character, optional, intent(in) :: trans - complex(psb_dpk_), optional, intent(inout),target :: work(:) logical, optional, intent(in) :: doswap integer(psb_ipk_), intent(out) :: info end subroutine psb_zspmv_vect @@ -472,7 +471,7 @@ module psb_z_psblas_mod end subroutine psb_zspsv subroutine psb_zspsv_vect(alpha, t, x, beta, y,& & desc_a, info, trans, scale, choice,& - & diag, work) + & diag) import :: psb_desc_type, psb_dpk_, psb_ipk_, & & psb_z_vect_type, psb_zspmat_type type(psb_zspmat_type), intent(inout) :: t @@ -483,7 +482,6 @@ module psb_z_psblas_mod character, optional, intent(in) :: trans, scale integer(psb_ipk_), optional, intent(in) :: choice type(psb_z_vect_type), intent(inout), optional :: diag - complex(psb_dpk_), optional, intent(inout), target :: work(:) integer(psb_ipk_), intent(out) :: info end subroutine psb_zspsv_vect end interface diff --git a/base/psblas/psb_cspmm.f90 b/base/psblas/psb_cspmm.f90 index 777ade06..540ddde3 100644 --- a/base/psblas/psb_cspmm.f90 +++ b/base/psblas/psb_cspmm.f90 @@ -51,11 +51,10 @@ ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! trans - character(optional). Whether A or A'. Default: 'N' -! work(:) - complex,(optional). Working area. ! doswap - logical(optional). Whether to performe halo updates. ! -subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, work, doswap) +subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, doswap) use psb_base_mod, psb_protect_name => psb_cspmv_vect use psi_mod implicit none @@ -66,7 +65,6 @@ subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& type(psb_cspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), optional, target, intent(inout) :: work(:) character, intent(in), optional :: trans logical, intent(in), optional :: doswap @@ -74,10 +72,10 @@ subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me,& & err_act, iix, jjx, iia, jja, nrow, ncol, lldx, lldy, & - & liwork, iiy, jjy, ib, ip, idx + & iiy, jjy, ib, ip, idx integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja integer(psb_ipk_), parameter :: nb=4 - complex(psb_spk_), pointer :: iwork(:), xp(:), yp(:) + complex(psb_spk_), pointer :: xp(:), yp(:) complex(psb_spk_), allocatable :: xvsave(:) character :: trans_ character(len=20) :: name, ch_err @@ -87,8 +85,8 @@ subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& integer(psb_ipk_), save :: mv_phase1=-1, mv_phase2=-1, mv_phase3=-1, mv_phase4=-1 integer(psb_ipk_), save :: mv_phase11=-1, mv_phase12=-1 - name='psb_cspmv' - info=psb_success_ + name = 'psb_cspmv_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 @@ -157,38 +155,12 @@ subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& if ((info == 0).and.(lldy null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='Allocate' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - if (debug_level >= psb_debug_comp_) & & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info @@ -202,14 +174,12 @@ subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& !if (me==0) write(0,*) 'going for overlap ',a%ad%get_fmt(),' ',a%and%get_fmt() if (do_timings) call psb_barrier(ctxt) if (do_timings) call psb_tic(mv_phase1) - if (doswap_) call psi_swapdata(psb_swap_send_,& - & czero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + if (doswap_) call psi_swapdata(psb_swap_send_,czero,x%v,desc_a,info,data=psb_comm_halo_) if (do_timings) call psb_toc(mv_phase1) if (do_timings) call psb_tic(mv_phase2) call a%ad%spmm(alpha,x%v,beta,y%v,info) if (do_timings) call psb_tic(mv_phase3) - if (doswap_) call psi_swapdata(psb_swap_recv_,& - & czero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + if (doswap_) call psi_swapdata(psb_swap_recv_,czero,x%v,desc_a,info,data=psb_comm_halo_) if (do_timings) call psb_toc(mv_phase3) if (do_timings) call psb_tic(mv_phase4) call a%and%spmm(alpha,x%v,cone,y%v,info) @@ -224,8 +194,7 @@ subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& if (do_timings) call psb_tic(mv_phase11) if (doswap_) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & czero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),czero,x%v,desc_a,info,data=psb_comm_halo_) end if if (do_timings) call psb_toc(mv_phase11) if (do_timings) call psb_tic(mv_phase12) @@ -268,10 +237,8 @@ subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& end if if (doswap_) then - call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& - & cone,y%v,desc_a,iwork,info) - if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & cone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),cone,y%v,desc_a,info) + if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),cone,y%v,desc_a,info,data=psb_comm_ovr_) if (debug_level >= psb_debug_comp_) & & write(debug_unit,*) me,' ',trim(name),' swaptran ', info @@ -285,18 +252,6 @@ subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& end if - if (aliw) deallocate(iwork,stat=info) - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='Deallocate iwork' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - nullify(iwork) - call psb_erractionrestore(err_act) if (debug_level >= psb_debug_comp_) then call psb_barrier(ctxt) @@ -340,7 +295,7 @@ end subroutine psb_cspmv_vect ! work(:) - complex,(optional). Working area. ! doswap - logical(optional). Whether to performe halo updates. ! -subroutine psb_cspmm(alpha,a,x,beta,y,desc_a,info,& +subroutine psb_cspmm(alpha,a,x,beta,y,desc_a,info,& & trans, k, jx, jy, work, doswap) use psb_base_mod, psb_protect_name => psb_cspmm use psi_mod @@ -371,8 +326,8 @@ subroutine psb_cspmm(alpha,a,x,beta,y,desc_a,info,& logical :: aliw, doswap_ integer(psb_ipk_) :: debug_level, debug_unit - name='psb_cspmm' - info=psb_success_ + name = 'psb_cspmm' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 @@ -689,7 +644,7 @@ end subroutine psb_cspmm ! work(:) - complex,(optional). Working area. ! doswap - logical(optional). Whether to performe halo updates. ! -subroutine psb_cspmv(alpha,a,x,beta,y,desc_a,info,& +subroutine psb_cspmv(alpha,a,x,beta,y,desc_a,info,& & trans, work, doswap) use psb_base_mod, psb_protect_name => psb_cspmv use psi_mod diff --git a/base/psblas/psb_cspsm.f90 b/base/psblas/psb_cspsm.f90 index 9787b2d8..cd5dd841 100644 --- a/base/psblas/psb_cspsm.f90 +++ b/base/psblas/psb_cspsm.f90 @@ -64,10 +64,9 @@ ! the diagonal matrix D. ! choice - integer(optional). The kind of update to perform on overlap elements. ! d(:) - complex, optional Matrix for diagonal scaling. -! work(:) - complex, optional Working area. ! -subroutine psb_cspsv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, scale, choice, diag, work) +subroutine psb_cspsv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, scale, choice, diag) use psb_base_mod, psb_protect_name => psb_cspsv_vect use psi_mod implicit none @@ -79,7 +78,6 @@ subroutine psb_cspsv_vect(alpha,a,x,beta,y,desc_a,info,& type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info type(psb_c_vect_type), intent(inout), optional :: diag - complex(psb_spk_), optional, target, intent(inout) :: work(:) character, intent(in), optional :: trans, scale integer(psb_ipk_), intent(in), optional :: choice @@ -88,23 +86,23 @@ subroutine psb_cspsv_vect(alpha,a,x,beta,y,desc_a,info,& integer(psb_ipk_) :: np, me, & & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& & ix, iy, ik, jx, jy, i, lld,& - & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm + & m, nrow, ncol, iiy, jjy, idx, ndm character :: lscale integer(psb_ipk_), parameter :: nb=4 - complex(psb_spk_),pointer :: iwork(:), xp(:), yp(:) + complex(psb_spk_),pointer :: xp(:), yp(:) character :: itrans character(len=20) :: name, ch_err logical :: aliw - name='psb_cspsv_vect' - info=psb_success_ + name = 'psb_cspsv_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() call psb_info(ctxt, me, np) if (np == -1) then @@ -159,40 +157,12 @@ subroutine psb_cspsv_vect(alpha,a,x,beta,y,desc_a,info,& if ((info == 0).and.(lldy null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - iwork(1)=0.d0 - ! Perform local triangular system solve if (present(diag)) then call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) @@ -201,16 +171,14 @@ subroutine psb_cspsv_vect(alpha,a,x,beta,y,desc_a,info,& end if if(info /= psb_success_) then info = psb_err_from_subroutine_ - ch_err='dcssm' + ch_err = 'dcssm' call psb_errpush(info,name,a_err=ch_err) goto 9999 end if ! update overlap elements if (choice_ > 0) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & cone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) - + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),cone,y%v,desc_a,info,data=psb_comm_ovr_) if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) if (info /= psb_success_) then @@ -219,8 +187,6 @@ subroutine psb_cspsv_vect(alpha,a,x,beta,y,desc_a,info,& end if end if - if (aliw) deallocate(iwork) - call psb_erractionrestore(err_act) return @@ -271,7 +237,7 @@ end subroutine psb_cspsv_vect ! jy - integer(optional). The column offset for ( Y ). Default: 1 ! work(:) - complex, optional Working area. ! -subroutine psb_cspsm(alpha,a,x,beta,y,desc_a,info,& +subroutine psb_cspsm(alpha,a,x,beta,y,desc_a,info,& & trans, scale, choice, diag, k, jx, jy, work) use psb_base_mod, psb_protect_name => psb_cspsm use psi_mod @@ -517,7 +483,7 @@ end subroutine psb_cspsm ! d(:) - complex, optional Matrix for diagonal scaling. ! work(:) - complex, optional Working area. ! -subroutine psb_cspsv(alpha,a,x,beta,y,desc_a,info,& +subroutine psb_cspsv(alpha,a,x,beta,y,desc_a,info,& & trans, scale, choice, diag, work) use psb_base_mod, psb_protect_name => psb_cspsv use psi_mod diff --git a/base/psblas/psb_dspmm.f90 b/base/psblas/psb_dspmm.f90 index 6f2a8739..3ec5d0e0 100644 --- a/base/psblas/psb_dspmm.f90 +++ b/base/psblas/psb_dspmm.f90 @@ -51,11 +51,10 @@ ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! trans - character(optional). Whether A or A'. Default: 'N' -! work(:) - real,(optional). Working area. ! doswap - logical(optional). Whether to performe halo updates. ! -subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, work, doswap) +subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, doswap) use psb_base_mod, psb_protect_name => psb_dspmv_vect use psi_mod implicit none @@ -66,7 +65,6 @@ subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& type(psb_dspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), optional, target, intent(inout) :: work(:) character, intent(in), optional :: trans logical, intent(in), optional :: doswap @@ -74,10 +72,10 @@ subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me,& & err_act, iix, jjx, iia, jja, nrow, ncol, lldx, lldy, & - & liwork, iiy, jjy, ib, ip, idx + & iiy, jjy, ib, ip, idx integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja integer(psb_ipk_), parameter :: nb=4 - real(psb_dpk_), pointer :: iwork(:), xp(:), yp(:) + real(psb_dpk_), pointer :: xp(:), yp(:) real(psb_dpk_), allocatable :: xvsave(:) character :: trans_ character(len=20) :: name, ch_err @@ -87,8 +85,8 @@ subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& integer(psb_ipk_), save :: mv_phase1=-1, mv_phase2=-1, mv_phase3=-1, mv_phase4=-1 integer(psb_ipk_), save :: mv_phase11=-1, mv_phase12=-1 - name='psb_dspmv' - info=psb_success_ + name = 'psb_dspmv_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 @@ -96,7 +94,7 @@ subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() call psb_info(ctxt, me, np) if (np == -1) then info = psb_err_context_error_ @@ -157,38 +155,12 @@ subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& if ((info == 0).and.(lldy null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='Allocate' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - if (debug_level >= psb_debug_comp_) & & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info @@ -202,14 +174,12 @@ subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& !if (me==0) write(0,*) 'going for overlap ',a%ad%get_fmt(),' ',a%and%get_fmt() if (do_timings) call psb_barrier(ctxt) if (do_timings) call psb_tic(mv_phase1) - if (doswap_) call psi_swapdata(flag=psb_swap_send_, beta=dzero, y=x%v, desc_a=desc_a, & - & data=psb_comm_halo_, info=info, work=iwork) + if (doswap_) call psi_swapdata(psb_swap_send_, dzero, x%v, desc_a, info, data=psb_comm_halo_) if (do_timings) call psb_toc(mv_phase1) if (do_timings) call psb_tic(mv_phase2) call a%ad%spmm(alpha,x%v,beta,y%v,info) if (do_timings) call psb_tic(mv_phase3) - if (doswap_) call psi_swapdata(flag=psb_swap_recv_, beta=dzero, y=x%v, desc_a=desc_a, & - & data=psb_comm_halo_, info=info, work=iwork) + if (doswap_) call psi_swapdata(psb_swap_recv_, dzero, x%v, desc_a, info, data=psb_comm_halo_) if (do_timings) call psb_toc(mv_phase3) if (do_timings) call psb_tic(mv_phase4) call a%and%spmm(alpha,x%v,done,y%v,info) @@ -224,8 +194,7 @@ subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& if (do_timings) call psb_tic(mv_phase11) if (doswap_) then - call psi_swapdata(flag=ior(psb_swap_send_,psb_swap_recv_), beta=dzero, y=x%v, desc_a=desc_a, & - & data=psb_comm_halo_, info=info, work=iwork) + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_), dzero, x%v, desc_a, info, data=psb_comm_halo_) end if if (do_timings) call psb_toc(mv_phase11) if (do_timings) call psb_tic(mv_phase12) @@ -267,10 +236,11 @@ subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& goto 9999 end if - if (doswap_) then - call psi_swaptran(flag=ior(psb_swap_send_,psb_swap_recv_), beta=done, y=y%v, desc_a=desc_a, info=info, work=iwork) - if (info == psb_success_) call psi_swapdata(flag=ior(psb_swap_send_,psb_swap_recv_), beta=done, y=y%v, desc_a=desc_a, & - & data=psb_comm_ovr_, info=info, work=iwork) + if (doswap_) then + call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_), done, y%v, desc_a, info) + if (info == psb_success_) then + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_), done, y%v, desc_a, info, data=psb_comm_ovr_) + end if if (debug_level >= psb_debug_comp_) & & write(debug_unit,*) me,' ',trim(name),' swaptran ', info @@ -284,18 +254,6 @@ subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& end if - if (aliw) deallocate(iwork,stat=info) - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='Deallocate iwork' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - nullify(iwork) - call psb_erractionrestore(err_act) if (debug_level >= psb_debug_comp_) then call psb_barrier(ctxt) @@ -339,7 +297,7 @@ end subroutine psb_dspmv_vect ! work(:) - real,(optional). Working area. ! doswap - logical(optional). Whether to performe halo updates. ! -subroutine psb_dspmm(alpha,a,x,beta,y,desc_a,info,& +subroutine psb_dspmm(alpha,a,x,beta,y,desc_a,info,& & trans, k, jx, jy, work, doswap) use psb_base_mod, psb_protect_name => psb_dspmm use psi_mod @@ -370,8 +328,8 @@ subroutine psb_dspmm(alpha,a,x,beta,y,desc_a,info,& logical :: aliw, doswap_ integer(psb_ipk_) :: debug_level, debug_unit - name='psb_dspmm' - info=psb_success_ + name = 'psb_dspmm' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 @@ -506,9 +464,9 @@ subroutine psb_dspmm(alpha,a,x,beta,y,desc_a,info,& if (doswap_.and.(np>1)) then ib1=min(nb,lik) xp => x(iix:lldx,jjx:jjx+ib1-1) - if (doswap_)& - & call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & ib1,dzero,xp,desc_a,iwork,info) + if (doswap_) & + & call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & ib1,dzero,xp,desc_a,iwork,info) blk: do i=1, lik, nb @@ -594,18 +552,18 @@ subroutine psb_dspmm(alpha,a,x,beta,y,desc_a,info,& call psb_errpush(info,name,a_err=ch_err) goto 9999 end if + if (info == psb_success_) call psi_ovrl_restore(x,xvsave,desc_a,info) - if (doswap_) then - call psi_swapdata(flag=ior(psb_swap_send_,psb_swap_recv_), beta=dzero, & - & y=x(:,1:lik), desc_a=desc_a, data=psb_comm_halo_, info=info, work=iwork) - end if - call psi_swaptran(flag=ior(psb_swap_send_,psb_swap_recv_), beta=done, & - & y=y(:,1:ik), desc_a=desc_a, info=info, work=iwork) - if (info == psb_success_) then - call psi_swapdata(flag=ior(psb_swap_send_,psb_swap_recv_), beta=done, & - & y=y(:,1:ik), desc_a=desc_a, data=psb_comm_ovr_, info=info, work=iwork) - end if + + + if (doswap_)then + ik = lik ! This should not be an issue, we are expecting the values + ! to be small, within PSB_IPK + call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& + & ik,done,y(:,1:ik),desc_a,iwork,info) + if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & ik,done,y(:,1:ik),desc_a,iwork,info,data=psb_comm_ovr_) if (debug_level >= psb_debug_comp_) & & write(debug_unit,*) me,' ',trim(name),' swaptran ', info @@ -691,7 +649,7 @@ end subroutine psb_dspmm ! work(:) - real,(optional). Working area. ! doswap - logical(optional). Whether to performe halo updates. ! -subroutine psb_dspmv(alpha,a,x,beta,y,desc_a,info,& +subroutine psb_dspmv(alpha,a,x,beta,y,desc_a,info,& & trans, work, doswap) use psb_base_mod, psb_protect_name => psb_dspmv use psi_mod @@ -721,8 +679,8 @@ subroutine psb_dspmv(alpha,a,x,beta,y,desc_a,info,& logical :: aliw, doswap_ integer(psb_ipk_) :: debug_level, debug_unit - name='psb_dspmv' - info=psb_success_ + name = 'psb_dspmv' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 diff --git a/base/psblas/psb_dspsm.f90 b/base/psblas/psb_dspsm.f90 index e4010b01..317a3d7b 100644 --- a/base/psblas/psb_dspsm.f90 +++ b/base/psblas/psb_dspsm.f90 @@ -64,10 +64,9 @@ ! the diagonal matrix D. ! choice - integer(optional). The kind of update to perform on overlap elements. ! d(:) - real, optional Matrix for diagonal scaling. -! work(:) - real, optional Working area. ! -subroutine psb_dspsv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, scale, choice, diag, work) +subroutine psb_dspsv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, scale, choice, diag) use psb_base_mod, psb_protect_name => psb_dspsv_vect use psi_mod implicit none @@ -79,7 +78,6 @@ subroutine psb_dspsv_vect(alpha,a,x,beta,y,desc_a,info,& type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info type(psb_d_vect_type), intent(inout), optional :: diag - real(psb_dpk_), optional, target, intent(inout) :: work(:) character, intent(in), optional :: trans, scale integer(psb_ipk_), intent(in), optional :: choice @@ -88,23 +86,23 @@ subroutine psb_dspsv_vect(alpha,a,x,beta,y,desc_a,info,& integer(psb_ipk_) :: np, me, & & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& & ix, iy, ik, jx, jy, i, lld,& - & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm + & m, nrow, ncol, iiy, jjy, idx, ndm character :: lscale integer(psb_ipk_), parameter :: nb=4 - real(psb_dpk_),pointer :: iwork(:), xp(:), yp(:) + real(psb_dpk_),pointer :: xp(:), yp(:) character :: itrans character(len=20) :: name, ch_err logical :: aliw - name='psb_dspsv_vect' - info=psb_success_ + name = 'psb_dspsv_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() call psb_info(ctxt, me, np) if (np == -1) then @@ -159,40 +157,12 @@ subroutine psb_dspsv_vect(alpha,a,x,beta,y,desc_a,info,& if ((info == 0).and.(lldy null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - iwork(1)=0.d0 - ! Perform local triangular system solve if (present(diag)) then call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) @@ -201,15 +171,14 @@ subroutine psb_dspsv_vect(alpha,a,x,beta,y,desc_a,info,& end if if(info /= psb_success_) then info = psb_err_from_subroutine_ - ch_err='dcssm' + ch_err = 'dcssm' call psb_errpush(info,name,a_err=ch_err) goto 9999 end if ! update overlap elements if (choice_ > 0) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & done,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),done,y%v,desc_a,info,data=psb_comm_ovr_) if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) @@ -219,8 +188,6 @@ subroutine psb_dspsv_vect(alpha,a,x,beta,y,desc_a,info,& end if end if - if (aliw) deallocate(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/psblas/psb_sspmm.f90 b/base/psblas/psb_sspmm.f90 index 7f680934..e660c3e6 100644 --- a/base/psblas/psb_sspmm.f90 +++ b/base/psblas/psb_sspmm.f90 @@ -51,11 +51,10 @@ ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! trans - character(optional). Whether A or A'. Default: 'N' -! work(:) - real,(optional). Working area. ! doswap - logical(optional). Whether to performe halo updates. ! -subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, work, doswap) +subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, doswap) use psb_base_mod, psb_protect_name => psb_sspmv_vect use psi_mod implicit none @@ -66,7 +65,6 @@ subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& type(psb_sspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info - real(psb_spk_), optional, target, intent(inout) :: work(:) character, intent(in), optional :: trans logical, intent(in), optional :: doswap @@ -77,7 +75,7 @@ subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& & liwork, iiy, jjy, ib, ip, idx integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja integer(psb_ipk_), parameter :: nb=4 - real(psb_spk_), pointer :: iwork(:), xp(:), yp(:) + real(psb_spk_), pointer :: xp(:), yp(:) real(psb_spk_), allocatable :: xvsave(:) character :: trans_ character(len=20) :: name, ch_err @@ -87,8 +85,8 @@ subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& integer(psb_ipk_), save :: mv_phase1=-1, mv_phase2=-1, mv_phase3=-1, mv_phase4=-1 integer(psb_ipk_), save :: mv_phase11=-1, mv_phase12=-1 - name='psb_sspmv' - info=psb_success_ + name = 'psb_sspmv_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 @@ -96,7 +94,7 @@ subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() call psb_info(ctxt, me, np) if (np == -1) then info = psb_err_context_error_ @@ -157,38 +155,12 @@ subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& if ((info == 0).and.(lldy null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='Allocate' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - if (debug_level >= psb_debug_comp_) & & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info @@ -202,14 +174,12 @@ subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& !if (me==0) write(0,*) 'going for overlap ',a%ad%get_fmt(),' ',a%and%get_fmt() if (do_timings) call psb_barrier(ctxt) if (do_timings) call psb_tic(mv_phase1) - if (doswap_) call psi_swapdata(psb_swap_send_,& - & szero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + if (doswap_) call psi_swapdata(psb_swap_send_,szero,x%v,desc_a,info,data=psb_comm_halo_) if (do_timings) call psb_toc(mv_phase1) if (do_timings) call psb_tic(mv_phase2) call a%ad%spmm(alpha,x%v,beta,y%v,info) if (do_timings) call psb_tic(mv_phase3) - if (doswap_) call psi_swapdata(psb_swap_recv_,& - & szero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + if (doswap_) call psi_swapdata(psb_swap_recv_,szero,x%v,desc_a,info,data=psb_comm_halo_) if (do_timings) call psb_toc(mv_phase3) if (do_timings) call psb_tic(mv_phase4) call a%and%spmm(alpha,x%v,sone,y%v,info) @@ -224,8 +194,7 @@ subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& if (do_timings) call psb_tic(mv_phase11) if (doswap_) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & szero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),szero,x%v,desc_a,info,data=psb_comm_halo_) end if if (do_timings) call psb_toc(mv_phase11) if (do_timings) call psb_tic(mv_phase12) @@ -268,10 +237,8 @@ subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& end if if (doswap_) then - call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& - & sone,y%v,desc_a,iwork,info) - if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & sone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),sone,y%v,desc_a,info) + if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),sone,y%v,desc_a,info,data=psb_comm_ovr_) if (debug_level >= psb_debug_comp_) & & write(debug_unit,*) me,' ',trim(name),' swaptran ', info @@ -285,18 +252,6 @@ subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& end if - if (aliw) deallocate(iwork,stat=info) - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='Deallocate iwork' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - nullify(iwork) - call psb_erractionrestore(err_act) if (debug_level >= psb_debug_comp_) then call psb_barrier(ctxt) diff --git a/base/psblas/psb_sspsm.f90 b/base/psblas/psb_sspsm.f90 index c354569b..0299cdfa 100644 --- a/base/psblas/psb_sspsm.f90 +++ b/base/psblas/psb_sspsm.f90 @@ -64,10 +64,9 @@ ! the diagonal matrix D. ! choice - integer(optional). The kind of update to perform on overlap elements. ! d(:) - real, optional Matrix for diagonal scaling. -! work(:) - real, optional Working area. ! -subroutine psb_sspsv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, scale, choice, diag, work) +subroutine psb_sspsv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, scale, choice, diag) use psb_base_mod, psb_protect_name => psb_sspsv_vect use psi_mod implicit none @@ -79,7 +78,6 @@ subroutine psb_sspsv_vect(alpha,a,x,beta,y,desc_a,info,& type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info type(psb_s_vect_type), intent(inout), optional :: diag - real(psb_spk_), optional, target, intent(inout) :: work(:) character, intent(in), optional :: trans, scale integer(psb_ipk_), intent(in), optional :: choice @@ -88,23 +86,23 @@ subroutine psb_sspsv_vect(alpha,a,x,beta,y,desc_a,info,& integer(psb_ipk_) :: np, me, & & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& & ix, iy, ik, jx, jy, i, lld,& - & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm + & m, nrow, ncol, iiy, jjy, idx, ndm character :: lscale integer(psb_ipk_), parameter :: nb=4 - real(psb_spk_),pointer :: iwork(:), xp(:), yp(:) + real(psb_spk_),pointer :: xp(:), yp(:) character :: itrans character(len=20) :: name, ch_err logical :: aliw - name='psb_sspsv_vect' - info=psb_success_ + name = 'psb_sspsv_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() call psb_info(ctxt, me, np) if (np == -1) then @@ -165,34 +163,6 @@ subroutine psb_sspsv_vect(alpha,a,x,beta,y,desc_a,info,& goto 9999 end if - iwork => null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - iwork(1)=0.d0 - ! Perform local triangular system solve if (present(diag)) then call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) @@ -208,8 +178,7 @@ subroutine psb_sspsv_vect(alpha,a,x,beta,y,desc_a,info,& ! update overlap elements if (choice_ > 0) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & sone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),sone,y%v,desc_a,info,data=psb_comm_ovr_) if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) @@ -219,8 +188,6 @@ subroutine psb_sspsv_vect(alpha,a,x,beta,y,desc_a,info,& end if end if - if (aliw) deallocate(iwork) - call psb_erractionrestore(err_act) return @@ -271,7 +238,7 @@ end subroutine psb_sspsv_vect ! jy - integer(optional). The column offset for ( Y ). Default: 1 ! work(:) - real, optional Working area. ! -subroutine psb_sspsm(alpha,a,x,beta,y,desc_a,info,& +subroutine psb_sspsm(alpha,a,x,beta,y,desc_a,info,& & trans, scale, choice, diag, k, jx, jy, work) use psb_base_mod, psb_protect_name => psb_sspsm use psi_mod diff --git a/base/psblas/psb_zspmm.f90 b/base/psblas/psb_zspmm.f90 index b7fc5cc6..8055a7d0 100644 --- a/base/psblas/psb_zspmm.f90 +++ b/base/psblas/psb_zspmm.f90 @@ -51,11 +51,10 @@ ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! trans - character(optional). Whether A or A'. Default: 'N' -! work(:) - complex,(optional). Working area. ! doswap - logical(optional). Whether to performe halo updates. ! -subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, work, doswap) +subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, doswap) use psb_base_mod, psb_protect_name => psb_zspmv_vect use psi_mod implicit none @@ -66,7 +65,6 @@ subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& type(psb_zspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), optional, target, intent(inout) :: work(:) character, intent(in), optional :: trans logical, intent(in), optional :: doswap @@ -77,7 +75,7 @@ subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& & liwork, iiy, jjy, ib, ip, idx integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja integer(psb_ipk_), parameter :: nb=4 - complex(psb_dpk_), pointer :: iwork(:), xp(:), yp(:) + complex(psb_dpk_), pointer :: xp(:), yp(:) complex(psb_dpk_), allocatable :: xvsave(:) character :: trans_ character(len=20) :: name, ch_err @@ -87,8 +85,8 @@ subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& integer(psb_ipk_), save :: mv_phase1=-1, mv_phase2=-1, mv_phase3=-1, mv_phase4=-1 integer(psb_ipk_), save :: mv_phase11=-1, mv_phase12=-1 - name='psb_zspmv' - info=psb_success_ + name = 'psb_zspmv_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then info = psb_err_internal_error_ ; goto 9999 @@ -96,7 +94,7 @@ subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() call psb_info(ctxt, me, np) if (np == -1) then info = psb_err_context_error_ @@ -157,38 +155,12 @@ subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& if ((info == 0).and.(lldy null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='Allocate' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - if (debug_level >= psb_debug_comp_) & & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info @@ -202,14 +174,12 @@ subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& !if (me==0) write(0,*) 'going for overlap ',a%ad%get_fmt(),' ',a%and%get_fmt() if (do_timings) call psb_barrier(ctxt) if (do_timings) call psb_tic(mv_phase1) - if (doswap_) call psi_swapdata(psb_swap_send_,& - & zzero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + if (doswap_) call psi_swapdata(psb_swap_send_,zzero,x%v,desc_a,info,data=psb_comm_halo_) if (do_timings) call psb_toc(mv_phase1) if (do_timings) call psb_tic(mv_phase2) call a%ad%spmm(alpha,x%v,beta,y%v,info) if (do_timings) call psb_tic(mv_phase3) - if (doswap_) call psi_swapdata(psb_swap_recv_,& - & zzero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + if (doswap_) call psi_swapdata(psb_swap_recv_,zzero,x%v,desc_a,info,data=psb_comm_halo_) if (do_timings) call psb_toc(mv_phase3) if (do_timings) call psb_tic(mv_phase4) call a%and%spmm(alpha,x%v,zone,y%v,info) @@ -224,8 +194,7 @@ subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& if (do_timings) call psb_tic(mv_phase11) if (doswap_) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & zzero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),zzero,x%v,desc_a,info,data=psb_comm_halo_) end if if (do_timings) call psb_toc(mv_phase11) if (do_timings) call psb_tic(mv_phase12) @@ -262,16 +231,14 @@ subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& if (info == psb_success_) call psi_ovrl_restore(x%v,xvsave,desc_a,info) if (info /= psb_success_) then info = psb_err_from_subroutine_ - ch_err='psb_csmm' + ch_err = 'psb_csmm' call psb_errpush(info,name,a_err=ch_err) goto 9999 end if if (doswap_) then - call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& - & zone,y%v,desc_a,iwork,info) - if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & zone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),zone,y%v,desc_a,info) + if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),zone,y%v,desc_a,info,data=psb_comm_ovr_) if (debug_level >= psb_debug_comp_) & & write(debug_unit,*) me,' ',trim(name),' swaptran ', info @@ -285,18 +252,6 @@ subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& end if - if (aliw) deallocate(iwork,stat=info) - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='Deallocate iwork' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - nullify(iwork) - call psb_erractionrestore(err_act) if (debug_level >= psb_debug_comp_) then call psb_barrier(ctxt) diff --git a/base/psblas/psb_zspsm.f90 b/base/psblas/psb_zspsm.f90 index 3cb06b02..d48ca3a4 100644 --- a/base/psblas/psb_zspsm.f90 +++ b/base/psblas/psb_zspsm.f90 @@ -64,10 +64,9 @@ ! the diagonal matrix D. ! choice - integer(optional). The kind of update to perform on overlap elements. ! d(:) - complex, optional Matrix for diagonal scaling. -! work(:) - complex, optional Working area. ! -subroutine psb_zspsv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, scale, choice, diag, work) +subroutine psb_zspsv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, scale, choice, diag) use psb_base_mod, psb_protect_name => psb_zspsv_vect use psi_mod implicit none @@ -79,7 +78,6 @@ subroutine psb_zspsv_vect(alpha,a,x,beta,y,desc_a,info,& type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info type(psb_z_vect_type), intent(inout), optional :: diag - complex(psb_dpk_), optional, target, intent(inout) :: work(:) character, intent(in), optional :: trans, scale integer(psb_ipk_), intent(in), optional :: choice @@ -88,23 +86,24 @@ subroutine psb_zspsv_vect(alpha,a,x,beta,y,desc_a,info,& integer(psb_ipk_) :: np, me, & & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& & ix, iy, ik, jx, jy, i, lld,& - & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm + & m, nrow, ncol, iiy, jjy, idx, ndm character :: lscale integer(psb_ipk_), parameter :: nb=4 - complex(psb_dpk_),pointer :: iwork(:), xp(:), yp(:) + complex(psb_dpk_),pointer :: xp(:), yp(:) character :: itrans character(len=20) :: name, ch_err logical :: aliw - name='psb_zspsv_vect' - info=psb_success_ + name = 'psb_zspsv_vect' + info = psb_success_ call psb_erractionsave(err_act) if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 + info = psb_err_internal_error_ + goto 9999 end if - ctxt=desc_a%get_context() + ctxt = desc_a%get_context() call psb_info(ctxt, me, np) if (np == -1) then @@ -159,40 +158,12 @@ subroutine psb_zspsv_vect(alpha,a,x,beta,y,desc_a,info,& if ((info == 0).and.(lldy null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - iwork(1)=0.d0 - ! Perform local triangular system solve if (present(diag)) then call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) @@ -208,8 +179,7 @@ subroutine psb_zspsv_vect(alpha,a,x,beta,y,desc_a,info,& ! update overlap elements if (choice_ > 0) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & zone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),zone,y%v,desc_a,info,data=psb_comm_ovr_) if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) @@ -219,8 +189,6 @@ subroutine psb_zspsv_vect(alpha,a,x,beta,y,desc_a,info,& end if end if - if (aliw) deallocate(iwork) - call psb_erractionrestore(err_act) return diff --git a/base/tools/psb_c_map.f90 b/base/tools/psb_c_map.f90 index 1cfb9272..40ca3fe8 100644 --- a/base/tools/psb_c_map.f90 +++ b/base/tools/psb_c_map.f90 @@ -71,7 +71,7 @@ subroutine psb_c_map_U2V_a(alpha,x,beta,y,map,info,work) nr2 = map%p_desc_V%get_global_rows() nc2 = map%p_desc_V%get_local_cols() allocate(yt(nc2),stat=info) - if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work) if (info == psb_success_) call psb_csmm(cone,map%mat_U2V,x,czero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%p_desc_V)) then call psb_sum(ctxt,yt(1:nr2)) @@ -91,7 +91,7 @@ subroutine psb_c_map_U2V_a(alpha,x,beta,y,map,info,work) nc2 = map%desc_V%get_local_cols() allocate(xt(nc1),yt(nc2),stat=info) xt(1:nr1) = x(1:nr1) - if (info == psb_success_) call psb_halo(xt,map%desc_U,info,work=work) + if (info == psb_success_) call psb_halo(xt,map%desc_U,info,work) if (info == psb_success_) call psb_csmm(cone,map%mat_U2V,xt,czero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%desc_V)) then call psb_sum(ctxt,yt(1:nr2)) @@ -112,14 +112,13 @@ subroutine psb_c_map_U2V_a(alpha,x,beta,y,map,info,work) end subroutine psb_c_map_U2V_a -subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) +subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty) use psb_base_mod, psb_protect_name => psb_c_map_U2V_v implicit none class(psb_clinmap_type), intent(in) :: map complex(psb_spk_), intent(in) :: alpha,beta type(psb_c_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), optional :: work(:) type(psb_c_vect_type), optional, target, intent(inout) :: vtx,vty ! Local type(psb_c_vect_type), target :: xt, yt @@ -152,7 +151,7 @@ subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geasb(yt,map%p_desc_V,info,scratch=.true.,mold=x%v) pty => yt end if - if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_U,info) if (info == psb_success_) call psb_csmm(cone,map%mat_U2V,x,czero,pty,info) if ((info == psb_success_) .and. map%p_desc_V%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -186,7 +185,7 @@ subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if call psb_geaxpby(cone,x,czero,ptx,map%desc_U,info) - if (info == psb_success_) call psb_halo(ptx,map%desc_U,info,work=work) + if (info == psb_success_) call psb_halo(ptx,map%desc_U,info) if (info == psb_success_) call psb_csmm(cone,map%mat_U2V,ptx,czero,pty,info) if ((info == psb_success_) .and. map%desc_V%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -254,7 +253,7 @@ subroutine psb_c_map_V2U_a(alpha,x,beta,y,map,info,work) nr2 = map%p_desc_U%get_global_rows() nc2 = map%p_desc_U%get_local_cols() allocate(yt(nc2),stat=info) - if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work) if (info == psb_success_) call psb_csmm(cone,map%mat_V2U,x,czero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%p_desc_U)) then call psb_sum(ctxt,yt(1:nr2)) @@ -274,7 +273,7 @@ subroutine psb_c_map_V2U_a(alpha,x,beta,y,map,info,work) nc2 = map%desc_U%get_local_cols() allocate(xt(nc1),yt(nc2),stat=info) xt(1:nr1) = x(1:nr1) - if (info == psb_success_) call psb_halo(xt,map%desc_V,info,work=work) + if (info == psb_success_) call psb_halo(xt,map%desc_V,info,work) if (info == psb_success_) call psb_csmm(cone,map%mat_V2U,xt,czero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%desc_U)) then call psb_sum(ctxt,yt(1:nr2)) @@ -294,14 +293,13 @@ subroutine psb_c_map_V2U_a(alpha,x,beta,y,map,info,work) end subroutine psb_c_map_V2U_a -subroutine psb_c_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) +subroutine psb_c_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty) use psb_base_mod, psb_protect_name => psb_c_map_V2U_v implicit none class(psb_clinmap_type), intent(in) :: map complex(psb_spk_), intent(in) :: alpha,beta type(psb_c_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), optional :: work(:) type(psb_c_vect_type), optional, target, intent(inout) :: vtx,vty ! Local type(psb_c_vect_type), target :: xt, yt @@ -334,7 +332,7 @@ subroutine psb_c_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geasb(yt,map%p_desc_U,info,scratch=.true.,mold=x%v) pty => yt end if - if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_V,info) if (info == psb_success_) call psb_csmm(cone,map%mat_V2U,x,czero,pty,info) if ((info == psb_success_) .and. map%p_desc_U%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -369,7 +367,7 @@ subroutine psb_c_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geaxpby(cone,x,czero,ptx,map%desc_V,info) - if (info == psb_success_) call psb_halo(ptx,map%desc_V,info,work=work) + if (info == psb_success_) call psb_halo(ptx,map%desc_V,info) if (info == psb_success_) call psb_csmm(cone,map%mat_V2U,ptx,czero,pty,info) if ((info == psb_success_) .and. map%desc_U%is_repl().and.(np>1)) then yta = pty%get_vect() diff --git a/base/tools/psb_d_map.f90 b/base/tools/psb_d_map.f90 index d1a02fdf..a36c07b3 100644 --- a/base/tools/psb_d_map.f90 +++ b/base/tools/psb_d_map.f90 @@ -71,7 +71,7 @@ subroutine psb_d_map_U2V_a(alpha,x,beta,y,map,info,work) nr2 = map%p_desc_V%get_global_rows() nc2 = map%p_desc_V%get_local_cols() allocate(yt(nc2),stat=info) - if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work) if (info == psb_success_) call psb_csmm(done,map%mat_U2V,x,dzero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%p_desc_V)) then call psb_sum(ctxt,yt(1:nr2)) @@ -91,7 +91,7 @@ subroutine psb_d_map_U2V_a(alpha,x,beta,y,map,info,work) nc2 = map%desc_V%get_local_cols() allocate(xt(nc1),yt(nc2),stat=info) xt(1:nr1) = x(1:nr1) - if (info == psb_success_) call psb_halo(xt,map%desc_U,info,work=work) + if (info == psb_success_) call psb_halo(xt,map%desc_U,info,work) if (info == psb_success_) call psb_csmm(done,map%mat_U2V,xt,dzero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%desc_V)) then call psb_sum(ctxt,yt(1:nr2)) @@ -112,14 +112,13 @@ subroutine psb_d_map_U2V_a(alpha,x,beta,y,map,info,work) end subroutine psb_d_map_U2V_a -subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) +subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty) use psb_base_mod, psb_protect_name => psb_d_map_U2V_v implicit none class(psb_dlinmap_type), intent(in) :: map real(psb_dpk_), intent(in) :: alpha,beta type(psb_d_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), optional :: work(:) type(psb_d_vect_type), optional, target, intent(inout) :: vtx,vty ! Local type(psb_d_vect_type), target :: xt, yt @@ -152,7 +151,7 @@ subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geasb(yt,map%p_desc_V,info,scratch=.true.,mold=x%v) pty => yt end if - if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_U,info) if (info == psb_success_) call psb_csmm(done,map%mat_U2V,x,dzero,pty,info) if ((info == psb_success_) .and. map%p_desc_V%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -186,7 +185,7 @@ subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if call psb_geaxpby(done,x,dzero,ptx,map%desc_U,info) - if (info == psb_success_) call psb_halo(ptx,map%desc_U,info,work=work) + if (info == psb_success_) call psb_halo(ptx,map%desc_U,info) if (info == psb_success_) call psb_csmm(done,map%mat_U2V,ptx,dzero,pty,info) if ((info == psb_success_) .and. map%desc_V%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -254,7 +253,7 @@ subroutine psb_d_map_V2U_a(alpha,x,beta,y,map,info,work) nr2 = map%p_desc_U%get_global_rows() nc2 = map%p_desc_U%get_local_cols() allocate(yt(nc2),stat=info) - if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work) if (info == psb_success_) call psb_csmm(done,map%mat_V2U,x,dzero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%p_desc_U)) then call psb_sum(ctxt,yt(1:nr2)) @@ -274,7 +273,7 @@ subroutine psb_d_map_V2U_a(alpha,x,beta,y,map,info,work) nc2 = map%desc_U%get_local_cols() allocate(xt(nc1),yt(nc2),stat=info) xt(1:nr1) = x(1:nr1) - if (info == psb_success_) call psb_halo(xt,map%desc_V,info,work=work) + if (info == psb_success_) call psb_halo(xt,map%desc_V,info,work) if (info == psb_success_) call psb_csmm(done,map%mat_V2U,xt,dzero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%desc_U)) then call psb_sum(ctxt,yt(1:nr2)) @@ -294,14 +293,13 @@ subroutine psb_d_map_V2U_a(alpha,x,beta,y,map,info,work) end subroutine psb_d_map_V2U_a -subroutine psb_d_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) +subroutine psb_d_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty) use psb_base_mod, psb_protect_name => psb_d_map_V2U_v implicit none class(psb_dlinmap_type), intent(in) :: map real(psb_dpk_), intent(in) :: alpha,beta type(psb_d_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), optional :: work(:) type(psb_d_vect_type), optional, target, intent(inout) :: vtx,vty ! Local type(psb_d_vect_type), target :: xt, yt @@ -334,7 +332,7 @@ subroutine psb_d_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geasb(yt,map%p_desc_U,info,scratch=.true.,mold=x%v) pty => yt end if - if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_V,info) if (info == psb_success_) call psb_csmm(done,map%mat_V2U,x,dzero,pty,info) if ((info == psb_success_) .and. map%p_desc_U%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -369,7 +367,7 @@ subroutine psb_d_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geaxpby(done,x,dzero,ptx,map%desc_V,info) - if (info == psb_success_) call psb_halo(ptx,map%desc_V,info,work=work) + if (info == psb_success_) call psb_halo(ptx,map%desc_V,info) if (info == psb_success_) call psb_csmm(done,map%mat_V2U,ptx,dzero,pty,info) if ((info == psb_success_) .and. map%desc_U%is_repl().and.(np>1)) then yta = pty%get_vect() diff --git a/base/tools/psb_s_map.f90 b/base/tools/psb_s_map.f90 index e6c6d445..47faf8c7 100644 --- a/base/tools/psb_s_map.f90 +++ b/base/tools/psb_s_map.f90 @@ -71,7 +71,7 @@ subroutine psb_s_map_U2V_a(alpha,x,beta,y,map,info,work) nr2 = map%p_desc_V%get_global_rows() nc2 = map%p_desc_V%get_local_cols() allocate(yt(nc2),stat=info) - if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work) if (info == psb_success_) call psb_csmm(sone,map%mat_U2V,x,szero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%p_desc_V)) then call psb_sum(ctxt,yt(1:nr2)) @@ -91,7 +91,7 @@ subroutine psb_s_map_U2V_a(alpha,x,beta,y,map,info,work) nc2 = map%desc_V%get_local_cols() allocate(xt(nc1),yt(nc2),stat=info) xt(1:nr1) = x(1:nr1) - if (info == psb_success_) call psb_halo(xt,map%desc_U,info,work=work) + if (info == psb_success_) call psb_halo(xt,map%desc_U,info,work) if (info == psb_success_) call psb_csmm(sone,map%mat_U2V,xt,szero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%desc_V)) then call psb_sum(ctxt,yt(1:nr2)) @@ -112,14 +112,13 @@ subroutine psb_s_map_U2V_a(alpha,x,beta,y,map,info,work) end subroutine psb_s_map_U2V_a -subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) +subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty) use psb_base_mod, psb_protect_name => psb_s_map_U2V_v implicit none class(psb_slinmap_type), intent(in) :: map real(psb_spk_), intent(in) :: alpha,beta type(psb_s_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - real(psb_spk_), optional :: work(:) type(psb_s_vect_type), optional, target, intent(inout) :: vtx,vty ! Local type(psb_s_vect_type), target :: xt, yt @@ -152,7 +151,7 @@ subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geasb(yt,map%p_desc_V,info,scratch=.true.,mold=x%v) pty => yt end if - if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_U,info) if (info == psb_success_) call psb_csmm(sone,map%mat_U2V,x,szero,pty,info) if ((info == psb_success_) .and. map%p_desc_V%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -186,7 +185,7 @@ subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if call psb_geaxpby(sone,x,szero,ptx,map%desc_U,info) - if (info == psb_success_) call psb_halo(ptx,map%desc_U,info,work=work) + if (info == psb_success_) call psb_halo(ptx,map%desc_U,info) if (info == psb_success_) call psb_csmm(sone,map%mat_U2V,ptx,szero,pty,info) if ((info == psb_success_) .and. map%desc_V%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -254,7 +253,7 @@ subroutine psb_s_map_V2U_a(alpha,x,beta,y,map,info,work) nr2 = map%p_desc_U%get_global_rows() nc2 = map%p_desc_U%get_local_cols() allocate(yt(nc2),stat=info) - if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work) if (info == psb_success_) call psb_csmm(sone,map%mat_V2U,x,szero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%p_desc_U)) then call psb_sum(ctxt,yt(1:nr2)) @@ -274,7 +273,7 @@ subroutine psb_s_map_V2U_a(alpha,x,beta,y,map,info,work) nc2 = map%desc_U%get_local_cols() allocate(xt(nc1),yt(nc2),stat=info) xt(1:nr1) = x(1:nr1) - if (info == psb_success_) call psb_halo(xt,map%desc_V,info,work=work) + if (info == psb_success_) call psb_halo(xt,map%desc_V,info,work) if (info == psb_success_) call psb_csmm(sone,map%mat_V2U,xt,szero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%desc_U)) then call psb_sum(ctxt,yt(1:nr2)) @@ -294,14 +293,13 @@ subroutine psb_s_map_V2U_a(alpha,x,beta,y,map,info,work) end subroutine psb_s_map_V2U_a -subroutine psb_s_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) +subroutine psb_s_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty) use psb_base_mod, psb_protect_name => psb_s_map_V2U_v implicit none class(psb_slinmap_type), intent(in) :: map real(psb_spk_), intent(in) :: alpha,beta type(psb_s_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - real(psb_spk_), optional :: work(:) type(psb_s_vect_type), optional, target, intent(inout) :: vtx,vty ! Local type(psb_s_vect_type), target :: xt, yt @@ -334,7 +332,7 @@ subroutine psb_s_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geasb(yt,map%p_desc_U,info,scratch=.true.,mold=x%v) pty => yt end if - if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_V,info) if (info == psb_success_) call psb_csmm(sone,map%mat_V2U,x,szero,pty,info) if ((info == psb_success_) .and. map%p_desc_U%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -369,7 +367,7 @@ subroutine psb_s_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geaxpby(sone,x,szero,ptx,map%desc_V,info) - if (info == psb_success_) call psb_halo(ptx,map%desc_V,info,work=work) + if (info == psb_success_) call psb_halo(ptx,map%desc_V,info) if (info == psb_success_) call psb_csmm(sone,map%mat_V2U,ptx,szero,pty,info) if ((info == psb_success_) .and. map%desc_U%is_repl().and.(np>1)) then yta = pty%get_vect() diff --git a/base/tools/psb_z_map.f90 b/base/tools/psb_z_map.f90 index 0aba3e3e..55500f58 100644 --- a/base/tools/psb_z_map.f90 +++ b/base/tools/psb_z_map.f90 @@ -71,7 +71,7 @@ subroutine psb_z_map_U2V_a(alpha,x,beta,y,map,info,work) nr2 = map%p_desc_V%get_global_rows() nc2 = map%p_desc_V%get_local_cols() allocate(yt(nc2),stat=info) - if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work) if (info == psb_success_) call psb_csmm(zone,map%mat_U2V,x,zzero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%p_desc_V)) then call psb_sum(ctxt,yt(1:nr2)) @@ -91,7 +91,7 @@ subroutine psb_z_map_U2V_a(alpha,x,beta,y,map,info,work) nc2 = map%desc_V%get_local_cols() allocate(xt(nc1),yt(nc2),stat=info) xt(1:nr1) = x(1:nr1) - if (info == psb_success_) call psb_halo(xt,map%desc_U,info,work=work) + if (info == psb_success_) call psb_halo(xt,map%desc_U,info,work) if (info == psb_success_) call psb_csmm(zone,map%mat_U2V,xt,zzero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%desc_V)) then call psb_sum(ctxt,yt(1:nr2)) @@ -112,14 +112,13 @@ subroutine psb_z_map_U2V_a(alpha,x,beta,y,map,info,work) end subroutine psb_z_map_U2V_a -subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) +subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty) use psb_base_mod, psb_protect_name => psb_z_map_U2V_v implicit none class(psb_zlinmap_type), intent(in) :: map complex(psb_dpk_), intent(in) :: alpha,beta type(psb_z_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), optional :: work(:) type(psb_z_vect_type), optional, target, intent(inout) :: vtx,vty ! Local type(psb_z_vect_type), target :: xt, yt @@ -152,7 +151,7 @@ subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geasb(yt,map%p_desc_V,info,scratch=.true.,mold=x%v) pty => yt end if - if (info == psb_success_) call psb_halo(x,map%p_desc_U,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_U,info) if (info == psb_success_) call psb_csmm(zone,map%mat_U2V,x,zzero,pty,info) if ((info == psb_success_) .and. map%p_desc_V%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -186,7 +185,7 @@ subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if call psb_geaxpby(zone,x,zzero,ptx,map%desc_U,info) - if (info == psb_success_) call psb_halo(ptx,map%desc_U,info,work=work) + if (info == psb_success_) call psb_halo(ptx,map%desc_U,info) if (info == psb_success_) call psb_csmm(zone,map%mat_U2V,ptx,zzero,pty,info) if ((info == psb_success_) .and. map%desc_V%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -254,7 +253,7 @@ subroutine psb_z_map_V2U_a(alpha,x,beta,y,map,info,work) nr2 = map%p_desc_U%get_global_rows() nc2 = map%p_desc_U%get_local_cols() allocate(yt(nc2),stat=info) - if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work) if (info == psb_success_) call psb_csmm(zone,map%mat_V2U,x,zzero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%p_desc_U)) then call psb_sum(ctxt,yt(1:nr2)) @@ -274,7 +273,7 @@ subroutine psb_z_map_V2U_a(alpha,x,beta,y,map,info,work) nc2 = map%desc_U%get_local_cols() allocate(xt(nc1),yt(nc2),stat=info) xt(1:nr1) = x(1:nr1) - if (info == psb_success_) call psb_halo(xt,map%desc_V,info,work=work) + if (info == psb_success_) call psb_halo(xt,map%desc_V,info,work) if (info == psb_success_) call psb_csmm(zone,map%mat_V2U,xt,zzero,yt,info) if ((info == psb_success_) .and. psb_is_repl_desc(map%desc_U)) then call psb_sum(ctxt,yt(1:nr2)) @@ -294,14 +293,13 @@ subroutine psb_z_map_V2U_a(alpha,x,beta,y,map,info,work) end subroutine psb_z_map_V2U_a -subroutine psb_z_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) +subroutine psb_z_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty) use psb_base_mod, psb_protect_name => psb_z_map_V2U_v implicit none class(psb_zlinmap_type), intent(in) :: map complex(psb_dpk_), intent(in) :: alpha,beta type(psb_z_vect_type), intent(inout) :: x,y integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), optional :: work(:) type(psb_z_vect_type), optional, target, intent(inout) :: vtx,vty ! Local type(psb_z_vect_type), target :: xt, yt @@ -334,7 +332,7 @@ subroutine psb_z_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geasb(yt,map%p_desc_U,info,scratch=.true.,mold=x%v) pty => yt end if - if (info == psb_success_) call psb_halo(x,map%p_desc_V,info,work=work) + if (info == psb_success_) call psb_halo(x,map%p_desc_V,info) if (info == psb_success_) call psb_csmm(zone,map%mat_V2U,x,zzero,pty,info) if ((info == psb_success_) .and. map%p_desc_U%is_repl().and.(np>1)) then yta = pty%get_vect() @@ -369,7 +367,7 @@ subroutine psb_z_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty) call psb_geaxpby(zone,x,zzero,ptx,map%desc_V,info) - if (info == psb_success_) call psb_halo(ptx,map%desc_V,info,work=work) + if (info == psb_success_) call psb_halo(ptx,map%desc_V,info) if (info == psb_success_) call psb_csmm(zone,map%mat_V2U,ptx,zzero,pty,info) if ((info == psb_success_) .and. map%desc_U%is_repl().and.(np>1)) then yta = pty%get_vect() diff --git a/linsolve/impl/psb_cbicg.f90 b/linsolve/impl/psb_cbicg.f90 index c357054b..2bfe0dbb 100644 --- a/linsolve/impl/psb_cbicg.f90 +++ b/linsolve/impl/psb_cbicg.f90 @@ -112,11 +112,10 @@ subroutine psb_cbicg_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), optional, intent(out) :: iter real(psb_spk_), optional, intent(out) :: err ! !$ local data - complex(psb_spk_), allocatable, target :: aux(:) type(psb_c_vect_type), allocatable, target :: wwrk(:) type(psb_c_vect_type), pointer :: ww, q, r, p,& & zt, pt, z, rt, qt - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col, istop_, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -188,14 +187,11 @@ subroutine psb_cbicg_vect(a,prec,b,x,eps,desc_a,info,& end if - naux=4*n_col - - allocate(aux(naux),stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=9_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v) if(info /= psb_success_) then - info=psb_err_from_subroutine_non_ - ch_err='psb_asb' + info = psb_err_from_subroutine_non_ + ch_err = 'psb_asb' err=info call psb_errpush(info,name,a_err=ch_err) goto 9999 @@ -239,7 +235,7 @@ subroutine psb_cbicg_vect(a,prec,b,x,eps,desc_a,info,& if (itx >= itmax_) exit restart it = 0 call psb_geaxpby(cone,b,czero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info) if (debug_level >= psb_debug_ext_)& & write(debug_unit,*) me,' ',trim(name),' Done spmm',info if (info == psb_success_) call psb_geaxpby(cone,r,czero,rt,desc_a,info) @@ -265,8 +261,8 @@ subroutine psb_cbicg_vect(a,prec,b,x,eps,desc_a,info,& if (debug_level >= psb_debug_ext_) & & write(debug_unit,*) me,' ',trim(name),'iteration: ',itx - call prec%apply(r,z,desc_a,info,work=aux) - if (info == psb_success_) call prec%apply(rt,zt,desc_a,info,trans='c',work=aux) + call prec%apply(r,z,desc_a,info) + if (info == psb_success_) call prec%apply(rt,zt,desc_a,info,trans='c') rho_old = rho rho = psb_gedot(rt,z,desc_a,info) @@ -286,10 +282,8 @@ subroutine psb_cbicg_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(cone,zt,beta,pt,desc_a,info) end if - call psb_spmm(cone,a,p,czero,q,desc_a,info,& - & work=aux) - call psb_spmm(cone,a,pt,czero,qt,desc_a,info,& - & work=aux,trans='c') + call psb_spmm(cone,a,p,czero,q,desc_a,info) + call psb_spmm(cone,a,pt,czero,qt,desc_a,info,trans='c') sigma = psb_gedot(pt,q,desc_a,info) if (sigma == czero) then @@ -319,7 +313,6 @@ subroutine psb_cbicg_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_ccg.F90 b/linsolve/impl/psb_ccg.F90 index 0ba1b5fc..2a384304 100644 --- a/linsolve/impl/psb_ccg.F90 +++ b/linsolve/impl/psb_ccg.F90 @@ -113,12 +113,12 @@ subroutine psb_ccg_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_spk_), Optional, Intent(out) :: err,cond ! = Local data - complex(psb_spk_), allocatable, target :: aux(:),td(:),tu(:),eig(:),ewrk(:) + complex(psb_spk_), allocatable, target :: td(:),tu(:),eig(:),ewrk(:) integer(psb_mpk_), allocatable :: ibl(:), ispl(:), iwrk(:) type(psb_c_vect_type), allocatable, target :: wwrk(:) type(psb_c_vect_type), pointer :: q, p, r, z, w complex(psb_spk_) :: alpha, beta, rho, rho_old, sigma,alpha_old,beta_old - integer(psb_ipk_) :: itmax_, istop_, naux, it, itx, itrace_,& + integer(psb_ipk_) :: itmax_, istop_, it, itx, itrace_,& & n_col, n_row,err_act, ieg,nspl, istebz integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -171,8 +171,6 @@ subroutine psb_ccg_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=5_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v,scratch=.true.) if (info /= psb_success_) then @@ -215,7 +213,7 @@ subroutine psb_ccg_vect(a,prec,b,x,eps,desc_a,info,& it = 0 call psb_geaxpby(cone,b,czero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -235,7 +233,7 @@ subroutine psb_ccg_vect(a,prec,b,x,eps,desc_a,info,& it = it + 1 itx = itx + 1 - call prec%apply(r,z,desc_a,info,work=aux) + call prec%apply(r,z,desc_a,info) rho_old = rho rho = psb_gedot(r,z,desc_a,info) @@ -252,7 +250,7 @@ subroutine psb_ccg_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(cone,z,beta,p,desc_a,info) end if - call psb_spmm(cone,a,p,czero,q,desc_a,info,work=aux) + call psb_spmm(cone,a,p,czero,q,desc_a,info) sigma = psb_gedot(p,q,desc_a,info) if (sigma == czero) then if (debug_level >= psb_debug_ext_)& @@ -285,7 +283,6 @@ subroutine psb_ccg_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_ccgs.f90 b/linsolve/impl/psb_ccgs.f90 index f7808c0d..ee4a3e5a 100644 --- a/linsolve/impl/psb_ccgs.f90 +++ b/linsolve/impl/psb_ccgs.f90 @@ -110,11 +110,10 @@ Subroutine psb_ccgs_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_spk_), Optional, Intent(out) :: err ! = local data - complex(psb_spk_), allocatable, target :: aux(:) type(psb_c_vect_type), allocatable, target :: wwrk(:) type(psb_c_vect_type), pointer :: ww, q, r, p, v,& & s, z, f, rt, qt, uv - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col,istop_, itx, err_act integer(psb_lpk_) :: mglob type(psb_ctxt_type) :: ctxt @@ -165,8 +164,6 @@ Subroutine psb_ccgs_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - Allocate(aux(naux),stat=info) if (info == psb_success_) Call psb_geall(wwrk,desc_a,info,n=11_psb_ipk_) if (info == psb_success_) Call psb_geasb(wwrk,desc_a,info,mold=x%v) if (info /= psb_success_) Then @@ -215,7 +212,7 @@ Subroutine psb_ccgs_vect(a,prec,b,x,eps,desc_a,info,& if (itx >= itmax_) exit restart it = 0 call psb_geaxpby(cone,b,czero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info) if (info == psb_success_) call psb_geaxpby(cone,r,czero,rt,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ @@ -260,10 +257,9 @@ Subroutine psb_ccgs_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_geaxpby(cone,uv,beta,p,desc_a,info) end if - if (info == psb_success_) call prec%apply(p,f,desc_a,info,work=aux) + if (info == psb_success_) call prec%apply(p,f,desc_a,info) - if (info == psb_success_) call psb_spmm(cone,a,f,czero,v,desc_a,info,& - & work=aux) + if (info == psb_success_) call psb_spmm(cone,a,f,czero,v,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='First loop part ') @@ -285,12 +281,11 @@ Subroutine psb_ccgs_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_geaxpby(cone,uv,czero,s,desc_a,info) if (info == psb_success_) call psb_geaxpby(cone,q,cone,s,desc_a,info) - if (info == psb_success_) call prec%apply(s,z,desc_a,info,work=aux) + if (info == psb_success_) call prec%apply(s,z,desc_a,info) if (info == psb_success_) call psb_geaxpby(alpha,z,cone,x,desc_a,info) - if (info == psb_success_) call psb_spmm(cone,a,z,czero,qt,desc_a,info,& - & work=aux) + if (info == psb_success_) call psb_spmm(cone,a,z,czero,qt,desc_a,info) if (info == psb_success_) call psb_geaxpby(-alpha,qt,cone,r,desc_a,info) @@ -312,7 +307,6 @@ Subroutine psb_ccgs_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_ccgstab.f90 b/linsolve/impl/psb_ccgstab.f90 index 4ccbaf7a..78d10eb8 100644 --- a/linsolve/impl/psb_ccgstab.f90 +++ b/linsolve/impl/psb_ccgstab.f90 @@ -110,10 +110,10 @@ Subroutine psb_ccgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_spk_), Optional, Intent(out) :: err ! = Local data - complex(psb_spk_), allocatable, target :: aux(:),wwrk(:,:) + complex(psb_spk_), allocatable, target :: wwrk(:,:) type(psb_c_vect_type) :: q, r, p, v, s, t, z, f - integer(psb_ipk_) :: itmax_, naux, it,itrace_,& + integer(psb_ipk_) :: itmax_, it,itrace_,& & n_row, n_col integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -179,8 +179,6 @@ Subroutine psb_ccgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_errpush(info,name,a_err='psb_chkvect on B') goto 9999 end if - naux=6*n_col - if (info == psb_success_) allocate(aux(naux),stat=info) if (info /= psb_success_) then info=psb_err_alloc_dealloc_ call psb_errpush(info,name) @@ -230,7 +228,7 @@ Subroutine psb_ccgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist it = 0 call psb_geaxpby(cone,b,czero,r,desc_a,info) - call psb_spmm(-cone,a,x,cone,r,desc_a,info,work=aux) + call psb_spmm(-cone,a,x,cone,r,desc_a,info) call psb_geaxpby(cone,r,czero,q,desc_a,info) ! Perhaps we already satisfy the convergence criterion... @@ -279,10 +277,9 @@ Subroutine psb_ccgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_geaxpby(cone,r,beta,p,desc_a,info) End If - call prec%apply(p,f,desc_a,info,work=aux) + call prec%apply(p,f,desc_a,info) - call psb_spmm(cone,a,f,czero,v,desc_a,info,& - & work=aux) + call psb_spmm(cone,a,f,czero,v,desc_a,info) sigma = psb_gedot(q,v,desc_a,info) @@ -316,8 +313,8 @@ Subroutine psb_ccgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist end if - call prec%apply(s,z,desc_a,info,work=aux) - Call psb_spmm(cone,a,z,czero,t,desc_a,info,work=aux) + call prec%apply(s,z,desc_a,info) + Call psb_spmm(cone,a,z,czero,t,desc_a,info) if(psb_errstatus_fatal()) then call psb_errpush(psb_err_from_subroutine_,name,a_err='precaply/spmm') @@ -367,7 +364,6 @@ Subroutine psb_ccgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_end_conv(methdname,itx,desc_a,stopdat,info,derr,iter) if (present(err)) err = derr - deallocate(aux,stat=info) call x%sync() call psb_gefree(q,desc_a,info) diff --git a/linsolve/impl/psb_ccgstabl.f90 b/linsolve/impl/psb_ccgstabl.f90 index f1463b83..d0c3dc53 100644 --- a/linsolve/impl/psb_ccgstabl.f90 +++ b/linsolve/impl/psb_ccgstabl.f90 @@ -121,13 +121,13 @@ Subroutine psb_ccgstabl_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_spk_), Optional, Intent(out) :: err ! = local data - complex(psb_spk_), allocatable, target :: aux(:), gamma(:),& + complex(psb_spk_), allocatable, target :: gamma(:),& & gamma1(:), gamma2(:), taum(:,:), sigma(:) type(psb_c_vect_type), allocatable, target :: wwrk(:),uh(:), rh(:) type(psb_c_vect_type), Pointer :: ww, q, r, rt0, p, v, & & s, t, z, f - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col, nl, err_act integer(psb_lpk_) :: mglob Logical, Parameter :: exchange=.True., noexchange=.False. @@ -213,10 +213,6 @@ Subroutine psb_ccgstabl_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux),gamma(0:nl),gamma1(nl),& - &gamma2(nl),taum(nl,nl),sigma(nl), stat=info) - if (info /= psb_success_) then info=psb_err_alloc_dealloc_ call psb_errpush(info,name) @@ -263,7 +259,7 @@ Subroutine psb_ccgstabl_vect(a,prec,b,x,eps,desc_a,info,& it = 0 call psb_geaxpby(cone,b,czero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info) if (info == psb_success_) call prec%apply(r,desc_a,info) @@ -318,7 +314,7 @@ Subroutine psb_ccgstabl_vect(a,prec,b,x,eps,desc_a,info,& ! = call psb_geaxpby(cone,rh(:,0:j),-beta,uh(:,0:j),desc_a,info) call psb_geaxpby(cone,rh(k),-beta,uh(k),desc_a,info) end do - call psb_spmm(cone,a,uh(j),czero,uh(j+1),desc_a,info,work=aux) + call psb_spmm(cone,a,uh(j),czero,uh(j+1),desc_a,info) call prec%apply(uh(j+1),desc_a,info) @@ -340,7 +336,7 @@ Subroutine psb_ccgstabl_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(-alpha,uh(k+1),cone,rh(k),desc_a,info) end do call psb_geaxpby(alpha,uh(0),cone,x,desc_a,info) - call psb_spmm(cone,a,rh(j),czero,rh(j+1),desc_a,info,work=aux) + call psb_spmm(cone,a,rh(j),czero,rh(j+1),desc_a,info) call prec%apply(rh(j+1),desc_a,info) @@ -403,7 +399,6 @@ Subroutine psb_ccgstabl_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(uh,desc_a,info) if (info == psb_success_) call psb_gefree(rh,desc_a,info) if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_cfcg.F90 b/linsolve/impl/psb_cfcg.F90 index f28db7de..4c1b1ae1 100644 --- a/linsolve/impl/psb_cfcg.F90 +++ b/linsolve/impl/psb_cfcg.F90 @@ -125,12 +125,11 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,& complex(psb_spk_) :: alpha, beta, delta, gamma, theta real(psb_dpk_) :: derr integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_ - integer(psb_ipk_) :: n_col, naux, err_act + integer(psb_ipk_) :: n_col, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me - complex(psb_spk_), allocatable, target :: aux(:) complex(psb_spk_) :: vres(3) character(len=20) :: name type(psb_itconv_type) :: stopdat @@ -177,9 +176,6 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) - if (present(itmax)) then itmax_ = itmax @@ -234,7 +230,7 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,& ! Apply the preconditioner v=Pr ! Compute w = Av - call prec%apply(r,v,desc_a,info,work=aux) + call prec%apply(r,v,desc_a,info) if (info == psb_success_) call psb_spmm(cone,a,v,czero,w,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_internal_error_,name,& @@ -289,7 +285,7 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,& ! Apply the preconditioner v = Pr ! Compute w = Av - call prec%apply(r,v,desc_a,info,work=aux) + call prec%apply(r,v,desc_a,info) if (info == psb_success_) call psb_spmm(cone,a,v,czero,w,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_internal_error_,name,& diff --git a/linsolve/impl/psb_cgcr.f90 b/linsolve/impl/psb_cgcr.f90 index 5120b102..360c7db9 100644 --- a/linsolve/impl/psb_cgcr.f90 +++ b/linsolve/impl/psb_cgcr.f90 @@ -130,14 +130,13 @@ subroutine psb_cgcr_vect(a,prec,b,x,eps,desc_a,info,& type(psb_c_vect_type) :: r real(psb_dpk_) :: r_norm, b_norm, a_norm, derr - integer(psb_ipk_) :: n_col, naux, err_act + integer(psb_ipk_) :: n_col, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me integer(psb_ipk_) :: i, j, it, itx, istop_, itmax_, itrace_, nl, m, nrst complex(psb_spk_) :: hjj - complex(psb_spk_), allocatable, target :: aux(:) character(len=20) :: name type(psb_itconv_type) :: stopdat character(len=*), parameter :: methdname='GCR' @@ -223,10 +222,6 @@ subroutine psb_cgcr_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 endif - naux=4*n_col - allocate(aux(naux),h(nl+1,nl+1),& - &c_scale(nl+1),c(nl+1),z(nl+1), alpha(nl+1), stat=info) - h = czero if (info /= psb_success_) then info=psb_err_from_subroutine_non_ @@ -261,7 +256,7 @@ subroutine psb_cgcr_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(cone, b, czero, r, desc_a, info) - call psb_spmm(-cone,a,x,cone,r,desc_a,info,work=aux) + call psb_spmm(-cone,a,x,cone,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -278,9 +273,9 @@ subroutine psb_cgcr_vect(a,prec,b,x,eps,desc_a,info,& it = it + 1 j = it !Apply preconditioner - call prec%apply(r,z(j),desc_a,info,work=aux) + call prec%apply(r,z(j),desc_a,info) - call psb_spmm(cone,a,z(j),czero,c(1),desc_a,info,work=aux) + call psb_spmm(cone,a,z(j),czero,c(1),desc_a,info) do i =1, j - 1 h(i,j) = psb_gedot(c_scale(i), c(i), desc_a, info) @@ -347,7 +342,6 @@ subroutine psb_cgcr_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(c(i),desc_a,info) end do - if (info == psb_success_) deallocate(aux,h,c_scale,z,c,alpha,stat=info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) diff --git a/linsolve/impl/psb_crgmres.f90 b/linsolve/impl/psb_crgmres.f90 index e0c0b38d..f03e1881 100644 --- a/linsolve/impl/psb_crgmres.f90 +++ b/linsolve/impl/psb_crgmres.f90 @@ -124,13 +124,12 @@ subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_spk_), Optional, Intent(out) :: err ! = local data - complex(psb_spk_), allocatable :: aux(:) complex(psb_spk_), allocatable :: c(:), s(:), h(:,:), rs(:), rst(:) type(psb_c_vect_type), allocatable :: v(:) type(psb_c_vect_type) :: w, w1, xt real(psb_spk_) :: tmp complex(psb_spk_) :: scal, gm, rti, rti1 - integer(psb_ipk_) ::litmax, naux, it, k, itrace_,& + integer(psb_ipk_) ::litmax, it, k, itrace_,& & n_row, n_col, nl integer(psb_lpk_) :: mglob Logical, Parameter :: exchange=.True., noexchange=.False., use_srot=.true. @@ -230,10 +229,6 @@ subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& end if - naux=4*n_col - allocate(aux(naux),h(nl+1,nl+1),& - &c(nl+1),s(nl+1),rs(nl+1), rst(nl+1),stat=info) - if (info == psb_success_) call psb_geall(v,desc_a,info,n=nl+1) if (info == psb_success_) call psb_geall(w,desc_a,info) if (info == psb_success_) call psb_geall(w1,desc_a,info) @@ -266,7 +261,7 @@ subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - call psb_spmm(-cone,a,x,cone,v(1),desc_a,info,work=aux) + call psb_spmm(-cone,a,x,cone,v(1),desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -301,7 +296,7 @@ subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - call psb_spmm(-cone,a,x,cone,v(1),desc_a,info,work=aux) + call psb_spmm(-cone,a,x,cone,v(1),desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -358,7 +353,7 @@ subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& itx = itx + 1 call prec%apply(v(i),w1,desc_a,info) - call psb_spmm(cone,a,w1,czero,w,desc_a,info,work=aux) + call psb_spmm(cone,a,w1,czero,w,desc_a,info) ! do k = 1, i @@ -397,7 +392,7 @@ subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& call prec%apply(xt,desc_a,info) call psb_geaxpby(cone,x,cone,xt,desc_a,info) call psb_geaxpby(cone,b,czero,w1,desc_a,info) - call psb_spmm(-cone,a,xt,cone,w1,desc_a,info,work=aux) + call psb_spmm(-cone,a,xt,cone,w1,desc_a,info) rni = psb_geamax(w1,desc_a,info) xni = psb_geamax(xt,desc_a,info) errnum = rni @@ -490,7 +485,6 @@ subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(w,desc_a,info) if (info == psb_success_) call psb_gefree(w1,desc_a,info) if (info == psb_success_) call psb_gefree(xt,desc_a,info) - if (info == psb_success_) deallocate(aux,h,c,s,rs,rst, stat=info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) diff --git a/linsolve/impl/psb_crichardson.f90 b/linsolve/impl/psb_crichardson.f90 index 3eb4c263..d92e0ce3 100644 --- a/linsolve/impl/psb_crichardson.f90 +++ b/linsolve/impl/psb_crichardson.f90 @@ -91,11 +91,10 @@ Subroutine psb_crichardson_vect(a,prec,b,x,eps,desc_a,info,& logical :: do_alloc_wrk type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: me,np,err_act - complex(psb_spk_), allocatable, target :: aux(:) type(psb_c_vect_type), allocatable, target :: wwrk(:) type(psb_c_vect_type), pointer :: q, p, r, z, w real(psb_dpk_) :: derr - integer(psb_ipk_) :: itmax_, istop_, naux, it, itx, itrace_,& + integer(psb_ipk_) :: itmax_, istop_, it, itx, itrace_,& & n_col, n_row,ieg,nspl, istebz integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -155,12 +154,10 @@ Subroutine psb_crichardson_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=5_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v,scratch=.true.) if (info /= psb_success_) then - info=psb_err_from_subroutine_non_ + info = psb_err_from_subroutine_non_ call psb_errpush(info,name) goto 9999 end if @@ -171,9 +168,9 @@ Subroutine psb_crichardson_vect(a,prec,b,x,eps,desc_a,info,& w => wwrk(5) call psb_geaxpby(cone,b,czero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info) if (info /= psb_success_) then - info=psb_err_from_subroutine_non_ + info = psb_err_from_subroutine_non_ call psb_errpush(info,name) goto 9999 end if @@ -186,17 +183,16 @@ Subroutine psb_crichardson_vect(a,prec,b,x,eps,desc_a,info,& End If loop: do itx=1,itmax_ - call prec%apply(r,z,desc_a,info,work=aux) + call prec%apply(r,z,desc_a,info) call psb_geaxpby(cone,z,cone,x,desc_a,info) call psb_geaxpby(cone,b,czero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-cone,a,x,cone,r,desc_a,info) if (psb_check_conv(methdname,itx,x,r,desc_a,stopdat,info)) exit loop end do loop call psb_end_conv(methdname,itx,desc_a,stopdat,info,derr,iter) if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then diff --git a/linsolve/impl/psb_dbicg.f90 b/linsolve/impl/psb_dbicg.f90 index ebcc8eb9..e717a783 100644 --- a/linsolve/impl/psb_dbicg.f90 +++ b/linsolve/impl/psb_dbicg.f90 @@ -112,11 +112,10 @@ subroutine psb_dbicg_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), optional, intent(out) :: iter real(psb_dpk_), optional, intent(out) :: err ! !$ local data - real(psb_dpk_), allocatable, target :: aux(:) type(psb_d_vect_type), allocatable, target :: wwrk(:) type(psb_d_vect_type), pointer :: ww, q, r, p,& & zt, pt, z, rt, qt - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col, istop_, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -188,9 +187,7 @@ subroutine psb_dbicg_vect(a,prec,b,x,eps,desc_a,info,& end if - naux=4*n_col - allocate(aux(naux),stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=9_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v) if(info /= psb_success_) then @@ -239,7 +236,7 @@ subroutine psb_dbicg_vect(a,prec,b,x,eps,desc_a,info,& if (itx >= itmax_) exit restart it = 0 call psb_geaxpby(done,b,dzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info) if (debug_level >= psb_debug_ext_)& & write(debug_unit,*) me,' ',trim(name),' Done spmm',info if (info == psb_success_) call psb_geaxpby(done,r,dzero,rt,desc_a,info) @@ -265,8 +262,8 @@ subroutine psb_dbicg_vect(a,prec,b,x,eps,desc_a,info,& if (debug_level >= psb_debug_ext_) & & write(debug_unit,*) me,' ',trim(name),'iteration: ',itx - call prec%apply(r,z,desc_a,info,work=aux) - if (info == psb_success_) call prec%apply(rt,zt,desc_a,info,trans='c',work=aux) + call prec%apply(r,z,desc_a,info) + if (info == psb_success_) call prec%apply(rt,zt,desc_a,info,trans='c') rho_old = rho rho = psb_gedot(rt,z,desc_a,info) @@ -286,10 +283,8 @@ subroutine psb_dbicg_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(done,zt,beta,pt,desc_a,info) end if - call psb_spmm(done,a,p,dzero,q,desc_a,info,& - & work=aux) - call psb_spmm(done,a,pt,dzero,qt,desc_a,info,& - & work=aux,trans='c') + call psb_spmm(done,a,p,dzero,q,desc_a,info) + call psb_spmm(done,a,pt,dzero,qt,desc_a,info,trans='c') sigma = psb_gedot(pt,q,desc_a,info) if (sigma == dzero) then @@ -319,7 +314,6 @@ subroutine psb_dbicg_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_dcg.F90 b/linsolve/impl/psb_dcg.F90 index a5993731..63914940 100644 --- a/linsolve/impl/psb_dcg.F90 +++ b/linsolve/impl/psb_dcg.F90 @@ -113,12 +113,12 @@ subroutine psb_dcg_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_dpk_), Optional, Intent(out) :: err,cond ! = Local data - real(psb_dpk_), allocatable, target :: aux(:),td(:),tu(:),eig(:),ewrk(:) + real(psb_dpk_), allocatable, target :: td(:),tu(:),eig(:),ewrk(:) integer(psb_mpk_), allocatable :: ibl(:), ispl(:), iwrk(:) type(psb_d_vect_type), allocatable, target :: wwrk(:) type(psb_d_vect_type), pointer :: q, p, r, z, w real(psb_dpk_) :: alpha, beta, rho, rho_old, sigma,alpha_old,beta_old - integer(psb_ipk_) :: itmax_, istop_, naux, it, itx, itrace_,& + integer(psb_ipk_) :: itmax_, istop_, it, itx, itrace_,& & n_col, n_row,err_act, ieg,nspl, istebz integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -171,8 +171,6 @@ subroutine psb_dcg_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=5_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v,scratch=.true.) if (info /= psb_success_) then @@ -223,7 +221,7 @@ subroutine psb_dcg_vect(a,prec,b,x,eps,desc_a,info,& it = 0 call psb_geaxpby(done,b,dzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -243,7 +241,7 @@ subroutine psb_dcg_vect(a,prec,b,x,eps,desc_a,info,& it = it + 1 itx = itx + 1 - call prec%apply(r,z,desc_a,info,work=aux) + call prec%apply(r,z,desc_a,info) rho_old = rho rho = psb_gedot(r,z,desc_a,info) @@ -260,7 +258,7 @@ subroutine psb_dcg_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(done,z,beta,p,desc_a,info) end if - call psb_spmm(done,a,p,dzero,q,desc_a,info,work=aux) + call psb_spmm(done,a,p,dzero,q,desc_a,info) sigma = psb_gedot(p,q,desc_a,info) if (sigma == dzero) then if (debug_level >= psb_debug_ext_)& @@ -318,7 +316,6 @@ subroutine psb_dcg_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_dcgs.f90 b/linsolve/impl/psb_dcgs.f90 index 5c2401d1..970aa26d 100644 --- a/linsolve/impl/psb_dcgs.f90 +++ b/linsolve/impl/psb_dcgs.f90 @@ -110,11 +110,10 @@ Subroutine psb_dcgs_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_dpk_), Optional, Intent(out) :: err ! = local data - real(psb_dpk_), allocatable, target :: aux(:) type(psb_d_vect_type), allocatable, target :: wwrk(:) type(psb_d_vect_type), pointer :: ww, q, r, p, v,& & s, z, f, rt, qt, uv - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col,istop_, itx, err_act integer(psb_lpk_) :: mglob type(psb_ctxt_type) :: ctxt @@ -165,8 +164,6 @@ Subroutine psb_dcgs_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - Allocate(aux(naux),stat=info) if (info == psb_success_) Call psb_geall(wwrk,desc_a,info,n=11_psb_ipk_) if (info == psb_success_) Call psb_geasb(wwrk,desc_a,info,mold=x%v) if (info /= psb_success_) Then @@ -215,7 +212,7 @@ Subroutine psb_dcgs_vect(a,prec,b,x,eps,desc_a,info,& if (itx >= itmax_) exit restart it = 0 call psb_geaxpby(done,b,dzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info) if (info == psb_success_) call psb_geaxpby(done,r,dzero,rt,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ @@ -260,10 +257,9 @@ Subroutine psb_dcgs_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_geaxpby(done,uv,beta,p,desc_a,info) end if - if (info == psb_success_) call prec%apply(p,f,desc_a,info,work=aux) + if (info == psb_success_) call prec%apply(p,f,desc_a,info) - if (info == psb_success_) call psb_spmm(done,a,f,dzero,v,desc_a,info,& - & work=aux) + if (info == psb_success_) call psb_spmm(done,a,f,dzero,v,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='First loop part ') @@ -285,12 +281,11 @@ Subroutine psb_dcgs_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_geaxpby(done,uv,dzero,s,desc_a,info) if (info == psb_success_) call psb_geaxpby(done,q,done,s,desc_a,info) - if (info == psb_success_) call prec%apply(s,z,desc_a,info,work=aux) + if (info == psb_success_) call prec%apply(s,z,desc_a,info) if (info == psb_success_) call psb_geaxpby(alpha,z,done,x,desc_a,info) - if (info == psb_success_) call psb_spmm(done,a,z,dzero,qt,desc_a,info,& - & work=aux) + if (info == psb_success_) call psb_spmm(done,a,z,dzero,qt,desc_a,info) if (info == psb_success_) call psb_geaxpby(-alpha,qt,done,r,desc_a,info) @@ -312,7 +307,6 @@ Subroutine psb_dcgs_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_dcgstab.f90 b/linsolve/impl/psb_dcgstab.f90 index 749015d7..746ff008 100644 --- a/linsolve/impl/psb_dcgstab.f90 +++ b/linsolve/impl/psb_dcgstab.f90 @@ -110,11 +110,10 @@ Subroutine psb_dcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_dpk_), Optional, Intent(out) :: err ! = Local data - real(psb_dpk_), allocatable, target :: aux(:),wwrk(:,:) + real(psb_dpk_), allocatable, target :: wwrk(:,:) type(psb_d_vect_type) :: q, r, p, v, s, t, z, f - integer(psb_ipk_) :: itmax_, naux, it,itrace_,& - & n_row, n_col + integer(psb_ipk_) :: itmax_, it, itrace_, n_row, n_col integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit Logical, Parameter :: exchange=.True., noexchange=.False., debug1 = .False. @@ -179,8 +178,7 @@ Subroutine psb_dcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_errpush(info,name,a_err='psb_chkvect on B') goto 9999 end if - naux=6*n_col - if (info == psb_success_) allocate(aux(naux),stat=info) + if (info /= psb_success_) then info=psb_err_alloc_dealloc_ call psb_errpush(info,name) @@ -230,7 +228,7 @@ Subroutine psb_dcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist it = 0 call psb_geaxpby(done,b,dzero,r,desc_a,info) - call psb_spmm(-done,a,x,done,r,desc_a,info,work=aux) + call psb_spmm(-done,a,x,done,r,desc_a,info) call psb_geaxpby(done,r,dzero,q,desc_a,info) ! Perhaps we already satisfy the convergence criterion... @@ -279,10 +277,9 @@ Subroutine psb_dcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_geaxpby(done,r,beta,p,desc_a,info) End If - call prec%apply(p,f,desc_a,info,work=aux) + call prec%apply(p,f,desc_a,info) - call psb_spmm(done,a,f,dzero,v,desc_a,info,& - & work=aux) + call psb_spmm(done,a,f,dzero,v,desc_a,info) sigma = psb_gedot(q,v,desc_a,info) @@ -316,8 +313,8 @@ Subroutine psb_dcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist end if - call prec%apply(s,z,desc_a,info,work=aux) - Call psb_spmm(done,a,z,dzero,t,desc_a,info,work=aux) + call prec%apply(s,z,desc_a,info) + Call psb_spmm(done,a,z,dzero,t,desc_a,info) if(psb_errstatus_fatal()) then call psb_errpush(psb_err_from_subroutine_,name,a_err='precaply/spmm') @@ -367,7 +364,6 @@ Subroutine psb_dcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_end_conv(methdname,itx,desc_a,stopdat,info,derr,iter) if (present(err)) err = derr - deallocate(aux,stat=info) call x%sync() call psb_gefree(q,desc_a,info) diff --git a/linsolve/impl/psb_dcgstabl.f90 b/linsolve/impl/psb_dcgstabl.f90 index a2ae6164..ea146773 100644 --- a/linsolve/impl/psb_dcgstabl.f90 +++ b/linsolve/impl/psb_dcgstabl.f90 @@ -121,13 +121,13 @@ Subroutine psb_dcgstabl_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_dpk_), Optional, Intent(out) :: err ! = local data - real(psb_dpk_), allocatable, target :: aux(:), gamma(:),& + real(psb_dpk_), allocatable, target :: gamma(:),& & gamma1(:), gamma2(:), taum(:,:), sigma(:) type(psb_d_vect_type), allocatable, target :: wwrk(:),uh(:), rh(:) type(psb_d_vect_type), Pointer :: ww, q, r, rt0, p, v, & & s, t, z, f - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col, nl, err_act integer(psb_lpk_) :: mglob Logical, Parameter :: exchange=.True., noexchange=.False. @@ -213,10 +213,6 @@ Subroutine psb_dcgstabl_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux),gamma(0:nl),gamma1(nl),& - &gamma2(nl),taum(nl,nl),sigma(nl), stat=info) - if (info /= psb_success_) then info=psb_err_alloc_dealloc_ call psb_errpush(info,name) @@ -263,7 +259,7 @@ Subroutine psb_dcgstabl_vect(a,prec,b,x,eps,desc_a,info,& it = 0 call psb_geaxpby(done,b,dzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info) if (info == psb_success_) call prec%apply(r,desc_a,info) @@ -318,7 +314,7 @@ Subroutine psb_dcgstabl_vect(a,prec,b,x,eps,desc_a,info,& ! = call psb_geaxpby(done,rh(:,0:j),-beta,uh(:,0:j),desc_a,info) call psb_geaxpby(done,rh(k),-beta,uh(k),desc_a,info) end do - call psb_spmm(done,a,uh(j),dzero,uh(j+1),desc_a,info,work=aux) + call psb_spmm(done,a,uh(j),dzero,uh(j+1),desc_a,info) call prec%apply(uh(j+1),desc_a,info) @@ -340,7 +336,7 @@ Subroutine psb_dcgstabl_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(-alpha,uh(k+1),done,rh(k),desc_a,info) end do call psb_geaxpby(alpha,uh(0),done,x,desc_a,info) - call psb_spmm(done,a,rh(j),dzero,rh(j+1),desc_a,info,work=aux) + call psb_spmm(done,a,rh(j),dzero,rh(j+1),desc_a,info) call prec%apply(rh(j+1),desc_a,info) @@ -403,7 +399,6 @@ Subroutine psb_dcgstabl_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(uh,desc_a,info) if (info == psb_success_) call psb_gefree(rh,desc_a,info) if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_dfcg.F90 b/linsolve/impl/psb_dfcg.F90 index cb741795..5cdb6a9d 100644 --- a/linsolve/impl/psb_dfcg.F90 +++ b/linsolve/impl/psb_dfcg.F90 @@ -125,12 +125,11 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,& real(psb_dpk_) :: alpha, beta, delta, gamma, theta real(psb_dpk_) :: derr integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_ - integer(psb_ipk_) :: n_col, naux, err_act + integer(psb_ipk_) :: n_col, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me - real(psb_dpk_), allocatable, target :: aux(:) real(psb_dpk_) :: vres(3) character(len=20) :: name type(psb_itconv_type) :: stopdat @@ -177,9 +176,6 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) - if (present(itmax)) then itmax_ = itmax @@ -234,7 +230,7 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,& ! Apply the preconditioner v=Pr ! Compute w = Av - call prec%apply(r,v,desc_a,info,work=aux) + call prec%apply(r,v,desc_a,info) if (info == psb_success_) call psb_spmm(done,a,v,dzero,w,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_internal_error_,name,& @@ -289,7 +285,7 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,& ! Apply the preconditioner v = Pr ! Compute w = Av - call prec%apply(r,v,desc_a,info,work=aux) + call prec%apply(r,v,desc_a,info) if (info == psb_success_) call psb_spmm(done,a,v,dzero,w,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_internal_error_,name,& diff --git a/linsolve/impl/psb_dgcr.f90 b/linsolve/impl/psb_dgcr.f90 index cf2e2b0e..9bcd456e 100644 --- a/linsolve/impl/psb_dgcr.f90 +++ b/linsolve/impl/psb_dgcr.f90 @@ -130,14 +130,13 @@ subroutine psb_dgcr_vect(a,prec,b,x,eps,desc_a,info,& type(psb_d_vect_type) :: r real(psb_dpk_) :: r_norm, b_norm, a_norm, derr - integer(psb_ipk_) :: n_col, naux, err_act + integer(psb_ipk_) :: n_col, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me integer(psb_ipk_) :: i, j, it, itx, istop_, itmax_, itrace_, nl, m, nrst real(psb_dpk_) :: hjj - real(psb_dpk_), allocatable, target :: aux(:) character(len=20) :: name type(psb_itconv_type) :: stopdat character(len=*), parameter :: methdname='GCR' @@ -223,10 +222,6 @@ subroutine psb_dgcr_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 endif - naux=4*n_col - allocate(aux(naux),h(nl+1,nl+1),& - &c_scale(nl+1),c(nl+1),z(nl+1), alpha(nl+1), stat=info) - h = dzero if (info /= psb_success_) then info=psb_err_from_subroutine_non_ @@ -261,7 +256,7 @@ subroutine psb_dgcr_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(done, b, dzero, r, desc_a, info) - call psb_spmm(-done,a,x,done,r,desc_a,info,work=aux) + call psb_spmm(-done,a,x,done,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -278,9 +273,9 @@ subroutine psb_dgcr_vect(a,prec,b,x,eps,desc_a,info,& it = it + 1 j = it !Apply preconditioner - call prec%apply(r,z(j),desc_a,info,work=aux) + call prec%apply(r,z(j),desc_a,info) - call psb_spmm(done,a,z(j),dzero,c(1),desc_a,info,work=aux) + call psb_spmm(done,a,z(j),dzero,c(1),desc_a,info) do i =1, j - 1 h(i,j) = psb_gedot(c_scale(i), c(i), desc_a, info) @@ -347,7 +342,7 @@ subroutine psb_dgcr_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(c(i),desc_a,info) end do - if (info == psb_success_) deallocate(aux,h,c_scale,z,c,alpha,stat=info) + if (info == psb_success_) deallocate(h,c_scale,z,c,alpha,stat=info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) diff --git a/linsolve/impl/psb_drgmres.f90 b/linsolve/impl/psb_drgmres.f90 index e0d78382..5ca9aeb9 100644 --- a/linsolve/impl/psb_drgmres.f90 +++ b/linsolve/impl/psb_drgmres.f90 @@ -124,13 +124,12 @@ subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_dpk_), Optional, Intent(out) :: err ! = local data - real(psb_dpk_), allocatable :: aux(:) real(psb_dpk_), allocatable :: c(:), s(:), h(:,:), rs(:), rst(:) type(psb_d_vect_type), allocatable :: v(:) type(psb_d_vect_type) :: w, w1, xt real(psb_dpk_) :: tmp real(psb_dpk_) :: scal, gm, rti, rti1 - integer(psb_ipk_) ::litmax, naux, it, k, itrace_,& + integer(psb_ipk_) ::litmax, it, k, itrace_,& & n_row, n_col, nl integer(psb_lpk_) :: mglob Logical, Parameter :: exchange=.True., noexchange=.False., use_srot=.true. @@ -229,11 +228,6 @@ subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - - naux=4*n_col - allocate(aux(naux),h(nl+1,nl+1),& - &c(nl+1),s(nl+1),rs(nl+1), rst(nl+1),stat=info) - if (info == psb_success_) call psb_geall(v,desc_a,info,n=nl+1) if (info == psb_success_) call psb_geall(w,desc_a,info) if (info == psb_success_) call psb_geall(w1,desc_a,info) @@ -266,7 +260,7 @@ subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - call psb_spmm(-done,a,x,done,v(1),desc_a,info,work=aux) + call psb_spmm(-done,a,x,done,v(1),desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -301,7 +295,7 @@ subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - call psb_spmm(-done,a,x,done,v(1),desc_a,info,work=aux) + call psb_spmm(-done,a,x,done,v(1),desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -358,7 +352,7 @@ subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& itx = itx + 1 call prec%apply(v(i),w1,desc_a,info) - call psb_spmm(done,a,w1,dzero,w,desc_a,info,work=aux) + call psb_spmm(done,a,w1,dzero,w,desc_a,info) ! do k = 1, i @@ -397,7 +391,7 @@ subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& call prec%apply(xt,desc_a,info) call psb_geaxpby(done,x,done,xt,desc_a,info) call psb_geaxpby(done,b,dzero,w1,desc_a,info) - call psb_spmm(-done,a,xt,done,w1,desc_a,info,work=aux) + call psb_spmm(-done,a,xt,done,w1,desc_a,info) rni = psb_geamax(w1,desc_a,info) xni = psb_geamax(xt,desc_a,info) errnum = rni @@ -490,7 +484,7 @@ subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(w,desc_a,info) if (info == psb_success_) call psb_gefree(w1,desc_a,info) if (info == psb_success_) call psb_gefree(xt,desc_a,info) - if (info == psb_success_) deallocate(aux,h,c,s,rs,rst, stat=info) + if (info == psb_success_) deallocate(h,c,s,rs,rst, stat=info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) diff --git a/linsolve/impl/psb_drichardson.f90 b/linsolve/impl/psb_drichardson.f90 index b0a53a4b..df08f8a8 100644 --- a/linsolve/impl/psb_drichardson.f90 +++ b/linsolve/impl/psb_drichardson.f90 @@ -91,12 +91,11 @@ Subroutine psb_drichardson_vect(a,prec,b,x,eps,desc_a,info,& logical :: do_alloc_wrk type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: me,np,err_act - real(psb_dpk_), allocatable, target :: aux(:) type(psb_d_vect_type), allocatable, target :: wwrk(:) type(psb_d_vect_type), pointer :: q, p, r, z, w real(psb_dpk_) :: derr - integer(psb_ipk_) :: itmax_, istop_, naux, it, itx, itrace_,& - & n_col, n_row,ieg,nspl, istebz + integer(psb_ipk_) :: itmax_, istop_, it, itx, itrace_,& + & n_col, n_row,ieg,nspl, istebz integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit type(psb_itconv_type) :: stopdat @@ -155,8 +154,6 @@ Subroutine psb_drichardson_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=5_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v,scratch=.true.) if (info /= psb_success_) then @@ -171,7 +168,7 @@ Subroutine psb_drichardson_vect(a,prec,b,x,eps,desc_a,info,& w => wwrk(5) call psb_geaxpby(done,b,dzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -186,17 +183,16 @@ Subroutine psb_drichardson_vect(a,prec,b,x,eps,desc_a,info,& End If loop: do itx=1,itmax_ - call prec%apply(r,z,desc_a,info,work=aux) + call prec%apply(r,z,desc_a,info) call psb_geaxpby(done,z,done,x,desc_a,info) call psb_geaxpby(done,b,dzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-done,a,x,done,r,desc_a,info) if (psb_check_conv(methdname,itx,x,r,desc_a,stopdat,info)) exit loop end do loop call psb_end_conv(methdname,itx,desc_a,stopdat,info,derr,iter) if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then diff --git a/linsolve/impl/psb_sbicg.f90 b/linsolve/impl/psb_sbicg.f90 index 1b5f1fb8..d981e42d 100644 --- a/linsolve/impl/psb_sbicg.f90 +++ b/linsolve/impl/psb_sbicg.f90 @@ -112,11 +112,10 @@ subroutine psb_sbicg_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), optional, intent(out) :: iter real(psb_spk_), optional, intent(out) :: err ! !$ local data - real(psb_spk_), allocatable, target :: aux(:) type(psb_s_vect_type), allocatable, target :: wwrk(:) type(psb_s_vect_type), pointer :: ww, q, r, p,& & zt, pt, z, rt, qt - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col, istop_, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -187,10 +186,6 @@ subroutine psb_sbicg_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - - naux=4*n_col - - allocate(aux(naux),stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=9_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v) if(info /= psb_success_) then @@ -239,7 +234,7 @@ subroutine psb_sbicg_vect(a,prec,b,x,eps,desc_a,info,& if (itx >= itmax_) exit restart it = 0 call psb_geaxpby(sone,b,szero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info) if (debug_level >= psb_debug_ext_)& & write(debug_unit,*) me,' ',trim(name),' Done spmm',info if (info == psb_success_) call psb_geaxpby(sone,r,szero,rt,desc_a,info) @@ -265,8 +260,8 @@ subroutine psb_sbicg_vect(a,prec,b,x,eps,desc_a,info,& if (debug_level >= psb_debug_ext_) & & write(debug_unit,*) me,' ',trim(name),'iteration: ',itx - call prec%apply(r,z,desc_a,info,work=aux) - if (info == psb_success_) call prec%apply(rt,zt,desc_a,info,trans='c',work=aux) + call prec%apply(r,z,desc_a,info) + if (info == psb_success_) call prec%apply(rt,zt,desc_a,info,trans='c') rho_old = rho rho = psb_gedot(rt,z,desc_a,info) @@ -286,10 +281,8 @@ subroutine psb_sbicg_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(sone,zt,beta,pt,desc_a,info) end if - call psb_spmm(sone,a,p,szero,q,desc_a,info,& - & work=aux) - call psb_spmm(sone,a,pt,szero,qt,desc_a,info,& - & work=aux,trans='c') + call psb_spmm(sone,a,p,szero,q,desc_a,info) + call psb_spmm(sone,a,pt,szero,qt,desc_a,info,trans='c') sigma = psb_gedot(pt,q,desc_a,info) if (sigma == szero) then @@ -319,7 +312,6 @@ subroutine psb_sbicg_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_scg.F90 b/linsolve/impl/psb_scg.F90 index c116edc4..187fe7f4 100644 --- a/linsolve/impl/psb_scg.F90 +++ b/linsolve/impl/psb_scg.F90 @@ -113,12 +113,12 @@ subroutine psb_scg_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_spk_), Optional, Intent(out) :: err,cond ! = Local data - real(psb_spk_), allocatable, target :: aux(:),td(:),tu(:),eig(:),ewrk(:) + real(psb_spk_), allocatable, target :: td(:),tu(:),eig(:),ewrk(:) integer(psb_mpk_), allocatable :: ibl(:), ispl(:), iwrk(:) type(psb_s_vect_type), allocatable, target :: wwrk(:) type(psb_s_vect_type), pointer :: q, p, r, z, w real(psb_spk_) :: alpha, beta, rho, rho_old, sigma,alpha_old,beta_old - integer(psb_ipk_) :: itmax_, istop_, naux, it, itx, itrace_,& + integer(psb_ipk_) :: itmax_, istop_, it, itx, itrace_,& & n_col, n_row,err_act, ieg,nspl, istebz integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -171,8 +171,6 @@ subroutine psb_scg_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=5_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v,scratch=.true.) if (info /= psb_success_) then @@ -223,7 +221,7 @@ subroutine psb_scg_vect(a,prec,b,x,eps,desc_a,info,& it = 0 call psb_geaxpby(sone,b,szero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -243,7 +241,7 @@ subroutine psb_scg_vect(a,prec,b,x,eps,desc_a,info,& it = it + 1 itx = itx + 1 - call prec%apply(r,z,desc_a,info,work=aux) + call prec%apply(r,z,desc_a,info) rho_old = rho rho = psb_gedot(r,z,desc_a,info) @@ -260,7 +258,7 @@ subroutine psb_scg_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(sone,z,beta,p,desc_a,info) end if - call psb_spmm(sone,a,p,szero,q,desc_a,info,work=aux) + call psb_spmm(sone,a,p,szero,q,desc_a,info) sigma = psb_gedot(p,q,desc_a,info) if (sigma == szero) then if (debug_level >= psb_debug_ext_)& @@ -318,7 +316,6 @@ subroutine psb_scg_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_scgs.f90 b/linsolve/impl/psb_scgs.f90 index 4034283e..e57abda1 100644 --- a/linsolve/impl/psb_scgs.f90 +++ b/linsolve/impl/psb_scgs.f90 @@ -110,11 +110,10 @@ Subroutine psb_scgs_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_spk_), Optional, Intent(out) :: err ! = local data - real(psb_spk_), allocatable, target :: aux(:) type(psb_s_vect_type), allocatable, target :: wwrk(:) type(psb_s_vect_type), pointer :: ww, q, r, p, v,& & s, z, f, rt, qt, uv - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col,istop_, itx, err_act integer(psb_lpk_) :: mglob type(psb_ctxt_type) :: ctxt @@ -165,8 +164,6 @@ Subroutine psb_scgs_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - Allocate(aux(naux),stat=info) if (info == psb_success_) Call psb_geall(wwrk,desc_a,info,n=11_psb_ipk_) if (info == psb_success_) Call psb_geasb(wwrk,desc_a,info,mold=x%v) if (info /= psb_success_) Then @@ -215,7 +212,7 @@ Subroutine psb_scgs_vect(a,prec,b,x,eps,desc_a,info,& if (itx >= itmax_) exit restart it = 0 call psb_geaxpby(sone,b,szero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info) if (info == psb_success_) call psb_geaxpby(sone,r,szero,rt,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ @@ -260,10 +257,9 @@ Subroutine psb_scgs_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_geaxpby(sone,uv,beta,p,desc_a,info) end if - if (info == psb_success_) call prec%apply(p,f,desc_a,info,work=aux) + if (info == psb_success_) call prec%apply(p,f,desc_a,info) - if (info == psb_success_) call psb_spmm(sone,a,f,szero,v,desc_a,info,& - & work=aux) + if (info == psb_success_) call psb_spmm(sone,a,f,szero,v,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='First loop part ') @@ -285,12 +281,11 @@ Subroutine psb_scgs_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_geaxpby(sone,uv,szero,s,desc_a,info) if (info == psb_success_) call psb_geaxpby(sone,q,sone,s,desc_a,info) - if (info == psb_success_) call prec%apply(s,z,desc_a,info,work=aux) + if (info == psb_success_) call prec%apply(s,z,desc_a,info) if (info == psb_success_) call psb_geaxpby(alpha,z,sone,x,desc_a,info) - if (info == psb_success_) call psb_spmm(sone,a,z,szero,qt,desc_a,info,& - & work=aux) + if (info == psb_success_) call psb_spmm(sone,a,z,szero,qt,desc_a,info) if (info == psb_success_) call psb_geaxpby(-alpha,qt,sone,r,desc_a,info) @@ -312,7 +307,6 @@ Subroutine psb_scgs_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_scgstab.f90 b/linsolve/impl/psb_scgstab.f90 index a0b57fa8..d822cf8a 100644 --- a/linsolve/impl/psb_scgstab.f90 +++ b/linsolve/impl/psb_scgstab.f90 @@ -110,10 +110,10 @@ Subroutine psb_scgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_spk_), Optional, Intent(out) :: err ! = Local data - real(psb_spk_), allocatable, target :: aux(:),wwrk(:,:) + real(psb_spk_), allocatable, target :: wwrk(:,:) type(psb_s_vect_type) :: q, r, p, v, s, t, z, f - integer(psb_ipk_) :: itmax_, naux, it,itrace_,& + integer(psb_ipk_) :: itmax_, it,itrace_,& & n_row, n_col integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -179,14 +179,6 @@ Subroutine psb_scgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_errpush(info,name,a_err='psb_chkvect on B') goto 9999 end if - naux=6*n_col - if (info == psb_success_) allocate(aux(naux),stat=info) - if (info /= psb_success_) then - info=psb_err_alloc_dealloc_ - call psb_errpush(info,name) - goto 9999 - End If - call psb_geasb(q,desc_a,info,mold=x%v,scratch=.true.) call psb_geasb(r,desc_a,info,mold=x%v,scratch=.true.) @@ -230,7 +222,7 @@ Subroutine psb_scgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist it = 0 call psb_geaxpby(sone,b,szero,r,desc_a,info) - call psb_spmm(-sone,a,x,sone,r,desc_a,info,work=aux) + call psb_spmm(-sone,a,x,sone,r,desc_a,info) call psb_geaxpby(sone,r,szero,q,desc_a,info) ! Perhaps we already satisfy the convergence criterion... @@ -279,10 +271,9 @@ Subroutine psb_scgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_geaxpby(sone,r,beta,p,desc_a,info) End If - call prec%apply(p,f,desc_a,info,work=aux) + call prec%apply(p,f,desc_a,info) - call psb_spmm(sone,a,f,szero,v,desc_a,info,& - & work=aux) + call psb_spmm(sone,a,f,szero,v,desc_a,info) sigma = psb_gedot(q,v,desc_a,info) @@ -316,8 +307,8 @@ Subroutine psb_scgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist end if - call prec%apply(s,z,desc_a,info,work=aux) - Call psb_spmm(sone,a,z,szero,t,desc_a,info,work=aux) + call prec%apply(s,z,desc_a,info) + Call psb_spmm(sone,a,z,szero,t,desc_a,info) if(psb_errstatus_fatal()) then call psb_errpush(psb_err_from_subroutine_,name,a_err='precaply/spmm') @@ -367,8 +358,6 @@ Subroutine psb_scgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_end_conv(methdname,itx,desc_a,stopdat,info,derr,iter) if (present(err)) err = derr - deallocate(aux,stat=info) - call x%sync() call psb_gefree(q,desc_a,info) call psb_gefree(r,desc_a,info) diff --git a/linsolve/impl/psb_scgstabl.f90 b/linsolve/impl/psb_scgstabl.f90 index e55d2746..e5ca2103 100644 --- a/linsolve/impl/psb_scgstabl.f90 +++ b/linsolve/impl/psb_scgstabl.f90 @@ -121,13 +121,13 @@ Subroutine psb_scgstabl_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_spk_), Optional, Intent(out) :: err ! = local data - real(psb_spk_), allocatable, target :: aux(:), gamma(:),& + real(psb_spk_), allocatable, target :: gamma(:),& & gamma1(:), gamma2(:), taum(:,:), sigma(:) type(psb_s_vect_type), allocatable, target :: wwrk(:),uh(:), rh(:) type(psb_s_vect_type), Pointer :: ww, q, r, rt0, p, v, & & s, t, z, f - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col, nl, err_act integer(psb_lpk_) :: mglob Logical, Parameter :: exchange=.True., noexchange=.False. @@ -213,10 +213,6 @@ Subroutine psb_scgstabl_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux),gamma(0:nl),gamma1(nl),& - &gamma2(nl),taum(nl,nl),sigma(nl), stat=info) - if (info /= psb_success_) then info=psb_err_alloc_dealloc_ call psb_errpush(info,name) @@ -263,7 +259,7 @@ Subroutine psb_scgstabl_vect(a,prec,b,x,eps,desc_a,info,& it = 0 call psb_geaxpby(sone,b,szero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info) if (info == psb_success_) call prec%apply(r,desc_a,info) @@ -318,7 +314,7 @@ Subroutine psb_scgstabl_vect(a,prec,b,x,eps,desc_a,info,& ! = call psb_geaxpby(sone,rh(:,0:j),-beta,uh(:,0:j),desc_a,info) call psb_geaxpby(sone,rh(k),-beta,uh(k),desc_a,info) end do - call psb_spmm(sone,a,uh(j),szero,uh(j+1),desc_a,info,work=aux) + call psb_spmm(sone,a,uh(j),szero,uh(j+1),desc_a,info) call prec%apply(uh(j+1),desc_a,info) @@ -340,7 +336,7 @@ Subroutine psb_scgstabl_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(-alpha,uh(k+1),sone,rh(k),desc_a,info) end do call psb_geaxpby(alpha,uh(0),sone,x,desc_a,info) - call psb_spmm(sone,a,rh(j),szero,rh(j+1),desc_a,info,work=aux) + call psb_spmm(sone,a,rh(j),szero,rh(j+1),desc_a,info) call prec%apply(rh(j+1),desc_a,info) @@ -403,7 +399,6 @@ Subroutine psb_scgstabl_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(uh,desc_a,info) if (info == psb_success_) call psb_gefree(rh,desc_a,info) if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_sfcg.F90 b/linsolve/impl/psb_sfcg.F90 index 449942cd..ca5fee9c 100644 --- a/linsolve/impl/psb_sfcg.F90 +++ b/linsolve/impl/psb_sfcg.F90 @@ -125,12 +125,11 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,& real(psb_spk_) :: alpha, beta, delta, gamma, theta real(psb_dpk_) :: derr integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_ - integer(psb_ipk_) :: n_col, naux, err_act + integer(psb_ipk_) :: n_col, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me - real(psb_spk_), allocatable, target :: aux(:) real(psb_spk_) :: vres(3) character(len=20) :: name type(psb_itconv_type) :: stopdat @@ -177,9 +176,6 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) - if (present(itmax)) then itmax_ = itmax @@ -234,7 +230,7 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,& ! Apply the preconditioner v=Pr ! Compute w = Av - call prec%apply(r,v,desc_a,info,work=aux) + call prec%apply(r,v,desc_a,info) if (info == psb_success_) call psb_spmm(sone,a,v,szero,w,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_internal_error_,name,& @@ -289,7 +285,7 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,& ! Apply the preconditioner v = Pr ! Compute w = Av - call prec%apply(r,v,desc_a,info,work=aux) + call prec%apply(r,v,desc_a,info) if (info == psb_success_) call psb_spmm(sone,a,v,szero,w,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_internal_error_,name,& diff --git a/linsolve/impl/psb_sgcr.f90 b/linsolve/impl/psb_sgcr.f90 index b2d09d3e..d0668d7d 100644 --- a/linsolve/impl/psb_sgcr.f90 +++ b/linsolve/impl/psb_sgcr.f90 @@ -130,14 +130,13 @@ subroutine psb_sgcr_vect(a,prec,b,x,eps,desc_a,info,& type(psb_s_vect_type) :: r real(psb_dpk_) :: r_norm, b_norm, a_norm, derr - integer(psb_ipk_) :: n_col, naux, err_act + integer(psb_ipk_) :: n_col, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me integer(psb_ipk_) :: i, j, it, itx, istop_, itmax_, itrace_, nl, m, nrst real(psb_spk_) :: hjj - real(psb_spk_), allocatable, target :: aux(:) character(len=20) :: name type(psb_itconv_type) :: stopdat character(len=*), parameter :: methdname='GCR' @@ -223,17 +222,9 @@ subroutine psb_sgcr_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 endif - naux=4*n_col - allocate(aux(naux),h(nl+1,nl+1),& - &c_scale(nl+1),c(nl+1),z(nl+1), alpha(nl+1), stat=info) h = szero - if (info /= psb_success_) then - info=psb_err_from_subroutine_non_ - call psb_errpush(info,name) - goto 9999 - end if - + call psb_geasb(r, desc_a,info, scratch=.true.,mold=x%v) do i =1,nl+1 @@ -261,7 +252,7 @@ subroutine psb_sgcr_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(sone, b, szero, r, desc_a, info) - call psb_spmm(-sone,a,x,sone,r,desc_a,info,work=aux) + call psb_spmm(-sone,a,x,sone,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -278,9 +269,9 @@ subroutine psb_sgcr_vect(a,prec,b,x,eps,desc_a,info,& it = it + 1 j = it !Apply preconditioner - call prec%apply(r,z(j),desc_a,info,work=aux) + call prec%apply(r,z(j),desc_a,info) - call psb_spmm(sone,a,z(j),szero,c(1),desc_a,info,work=aux) + call psb_spmm(sone,a,z(j),szero,c(1),desc_a,info) do i =1, j - 1 h(i,j) = psb_gedot(c_scale(i), c(i), desc_a, info) @@ -347,7 +338,7 @@ subroutine psb_sgcr_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(c(i),desc_a,info) end do - if (info == psb_success_) deallocate(aux,h,c_scale,z,c,alpha,stat=info) + if (info == psb_success_) deallocate(h,c_scale,z,c,alpha,stat=info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) diff --git a/linsolve/impl/psb_srgmres.f90 b/linsolve/impl/psb_srgmres.f90 index 32129e35..4a57da7b 100644 --- a/linsolve/impl/psb_srgmres.f90 +++ b/linsolve/impl/psb_srgmres.f90 @@ -124,13 +124,12 @@ subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_spk_), Optional, Intent(out) :: err ! = local data - real(psb_spk_), allocatable :: aux(:) real(psb_spk_), allocatable :: c(:), s(:), h(:,:), rs(:), rst(:) type(psb_s_vect_type), allocatable :: v(:) type(psb_s_vect_type) :: w, w1, xt real(psb_spk_) :: tmp real(psb_spk_) :: scal, gm, rti, rti1 - integer(psb_ipk_) ::litmax, naux, it, k, itrace_,& + integer(psb_ipk_) ::litmax, it, k, itrace_,& & n_row, n_col, nl integer(psb_lpk_) :: mglob Logical, Parameter :: exchange=.True., noexchange=.False., use_srot=.true. @@ -229,11 +228,6 @@ subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - - naux=4*n_col - allocate(aux(naux),h(nl+1,nl+1),& - &c(nl+1),s(nl+1),rs(nl+1), rst(nl+1),stat=info) - if (info == psb_success_) call psb_geall(v,desc_a,info,n=nl+1) if (info == psb_success_) call psb_geall(w,desc_a,info) if (info == psb_success_) call psb_geall(w1,desc_a,info) @@ -266,7 +260,7 @@ subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - call psb_spmm(-sone,a,x,sone,v(1),desc_a,info,work=aux) + call psb_spmm(-sone,a,x,sone,v(1),desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -301,7 +295,7 @@ subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - call psb_spmm(-sone,a,x,sone,v(1),desc_a,info,work=aux) + call psb_spmm(-sone,a,x,sone,v(1),desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -358,7 +352,7 @@ subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& itx = itx + 1 call prec%apply(v(i),w1,desc_a,info) - call psb_spmm(sone,a,w1,szero,w,desc_a,info,work=aux) + call psb_spmm(sone,a,w1,szero,w,desc_a,info) ! do k = 1, i @@ -397,7 +391,7 @@ subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& call prec%apply(xt,desc_a,info) call psb_geaxpby(sone,x,sone,xt,desc_a,info) call psb_geaxpby(sone,b,szero,w1,desc_a,info) - call psb_spmm(-sone,a,xt,sone,w1,desc_a,info,work=aux) + call psb_spmm(-sone,a,xt,sone,w1,desc_a,info) rni = psb_geamax(w1,desc_a,info) xni = psb_geamax(xt,desc_a,info) errnum = rni @@ -490,7 +484,7 @@ subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(w,desc_a,info) if (info == psb_success_) call psb_gefree(w1,desc_a,info) if (info == psb_success_) call psb_gefree(xt,desc_a,info) - if (info == psb_success_) deallocate(aux,h,c,s,rs,rst, stat=info) + if (info == psb_success_) deallocate(h,c,s,rs,rst, stat=info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) diff --git a/linsolve/impl/psb_srichardson.f90 b/linsolve/impl/psb_srichardson.f90 index 660778fc..3801c8ad 100644 --- a/linsolve/impl/psb_srichardson.f90 +++ b/linsolve/impl/psb_srichardson.f90 @@ -91,11 +91,10 @@ Subroutine psb_srichardson_vect(a,prec,b,x,eps,desc_a,info,& logical :: do_alloc_wrk type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: me,np,err_act - real(psb_spk_), allocatable, target :: aux(:) type(psb_s_vect_type), allocatable, target :: wwrk(:) type(psb_s_vect_type), pointer :: q, p, r, z, w real(psb_dpk_) :: derr - integer(psb_ipk_) :: itmax_, istop_, naux, it, itx, itrace_,& + integer(psb_ipk_) :: itmax_, istop_, it, itx, itrace_,& & n_col, n_row,ieg,nspl, istebz integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -155,8 +154,6 @@ Subroutine psb_srichardson_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=5_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v,scratch=.true.) if (info /= psb_success_) then @@ -171,7 +168,7 @@ Subroutine psb_srichardson_vect(a,prec,b,x,eps,desc_a,info,& w => wwrk(5) call psb_geaxpby(sone,b,szero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -186,17 +183,16 @@ Subroutine psb_srichardson_vect(a,prec,b,x,eps,desc_a,info,& End If loop: do itx=1,itmax_ - call prec%apply(r,z,desc_a,info,work=aux) + call prec%apply(r,z,desc_a,info) call psb_geaxpby(sone,z,sone,x,desc_a,info) call psb_geaxpby(sone,b,szero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-sone,a,x,sone,r,desc_a,info) if (psb_check_conv(methdname,itx,x,r,desc_a,stopdat,info)) exit loop end do loop call psb_end_conv(methdname,itx,desc_a,stopdat,info,derr,iter) if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then diff --git a/linsolve/impl/psb_zbicg.f90 b/linsolve/impl/psb_zbicg.f90 index 6a3e0215..be2bb969 100644 --- a/linsolve/impl/psb_zbicg.f90 +++ b/linsolve/impl/psb_zbicg.f90 @@ -112,11 +112,10 @@ subroutine psb_zbicg_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), optional, intent(out) :: iter real(psb_dpk_), optional, intent(out) :: err ! !$ local data - complex(psb_dpk_), allocatable, target :: aux(:) type(psb_z_vect_type), allocatable, target :: wwrk(:) type(psb_z_vect_type), pointer :: ww, q, r, p,& & zt, pt, z, rt, qt - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col, istop_, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -188,9 +187,6 @@ subroutine psb_zbicg_vect(a,prec,b,x,eps,desc_a,info,& end if - naux=4*n_col - - allocate(aux(naux),stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=9_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v) if(info /= psb_success_) then @@ -239,7 +235,7 @@ subroutine psb_zbicg_vect(a,prec,b,x,eps,desc_a,info,& if (itx >= itmax_) exit restart it = 0 call psb_geaxpby(zone,b,zzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info) if (debug_level >= psb_debug_ext_)& & write(debug_unit,*) me,' ',trim(name),' Done spmm',info if (info == psb_success_) call psb_geaxpby(zone,r,zzero,rt,desc_a,info) @@ -265,8 +261,8 @@ subroutine psb_zbicg_vect(a,prec,b,x,eps,desc_a,info,& if (debug_level >= psb_debug_ext_) & & write(debug_unit,*) me,' ',trim(name),'iteration: ',itx - call prec%apply(r,z,desc_a,info,work=aux) - if (info == psb_success_) call prec%apply(rt,zt,desc_a,info,trans='c',work=aux) + call prec%apply(r,z,desc_a,info) + if (info == psb_success_) call prec%apply(rt,zt,desc_a,info,trans='c') rho_old = rho rho = psb_gedot(rt,z,desc_a,info) @@ -286,10 +282,8 @@ subroutine psb_zbicg_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(zone,zt,beta,pt,desc_a,info) end if - call psb_spmm(zone,a,p,zzero,q,desc_a,info,& - & work=aux) - call psb_spmm(zone,a,pt,zzero,qt,desc_a,info,& - & work=aux,trans='c') + call psb_spmm(zone,a,p,zzero,q,desc_a,info) + call psb_spmm(zone,a,pt,zzero,qt,desc_a,info,trans='c') sigma = psb_gedot(pt,q,desc_a,info) if (sigma == zzero) then @@ -319,7 +313,6 @@ subroutine psb_zbicg_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_zcg.F90 b/linsolve/impl/psb_zcg.F90 index 6ca5909c..01ce57f8 100644 --- a/linsolve/impl/psb_zcg.F90 +++ b/linsolve/impl/psb_zcg.F90 @@ -113,12 +113,12 @@ subroutine psb_zcg_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_dpk_), Optional, Intent(out) :: err,cond ! = Local data - complex(psb_dpk_), allocatable, target :: aux(:),td(:),tu(:),eig(:),ewrk(:) + complex(psb_dpk_), allocatable, target :: td(:),tu(:),eig(:),ewrk(:) integer(psb_mpk_), allocatable :: ibl(:), ispl(:), iwrk(:) type(psb_z_vect_type), allocatable, target :: wwrk(:) type(psb_z_vect_type), pointer :: q, p, r, z, w complex(psb_dpk_) :: alpha, beta, rho, rho_old, sigma,alpha_old,beta_old - integer(psb_ipk_) :: itmax_, istop_, naux, it, itx, itrace_,& + integer(psb_ipk_) :: itmax_, istop_, it, itx, itrace_,& & n_col, n_row,err_act, ieg,nspl, istebz integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -171,8 +171,6 @@ subroutine psb_zcg_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=5_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v,scratch=.true.) if (info /= psb_success_) then @@ -215,7 +213,7 @@ subroutine psb_zcg_vect(a,prec,b,x,eps,desc_a,info,& it = 0 call psb_geaxpby(zone,b,zzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -235,7 +233,7 @@ subroutine psb_zcg_vect(a,prec,b,x,eps,desc_a,info,& it = it + 1 itx = itx + 1 - call prec%apply(r,z,desc_a,info,work=aux) + call prec%apply(r,z,desc_a,info) rho_old = rho rho = psb_gedot(r,z,desc_a,info) @@ -252,7 +250,7 @@ subroutine psb_zcg_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(zone,z,beta,p,desc_a,info) end if - call psb_spmm(zone,a,p,zzero,q,desc_a,info,work=aux) + call psb_spmm(zone,a,p,zzero,q,desc_a,info) sigma = psb_gedot(p,q,desc_a,info) if (sigma == zzero) then if (debug_level >= psb_debug_ext_)& @@ -285,7 +283,6 @@ subroutine psb_zcg_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_zcgs.f90 b/linsolve/impl/psb_zcgs.f90 index c5140545..7819e720 100644 --- a/linsolve/impl/psb_zcgs.f90 +++ b/linsolve/impl/psb_zcgs.f90 @@ -110,11 +110,10 @@ Subroutine psb_zcgs_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_dpk_), Optional, Intent(out) :: err ! = local data - complex(psb_dpk_), allocatable, target :: aux(:) type(psb_z_vect_type), allocatable, target :: wwrk(:) type(psb_z_vect_type), pointer :: ww, q, r, p, v,& & s, z, f, rt, qt, uv - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col,istop_, itx, err_act integer(psb_lpk_) :: mglob type(psb_ctxt_type) :: ctxt @@ -165,8 +164,6 @@ Subroutine psb_zcgs_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - Allocate(aux(naux),stat=info) if (info == psb_success_) Call psb_geall(wwrk,desc_a,info,n=11_psb_ipk_) if (info == psb_success_) Call psb_geasb(wwrk,desc_a,info,mold=x%v) if (info /= psb_success_) Then @@ -215,7 +212,7 @@ Subroutine psb_zcgs_vect(a,prec,b,x,eps,desc_a,info,& if (itx >= itmax_) exit restart it = 0 call psb_geaxpby(zone,b,zzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info) if (info == psb_success_) call psb_geaxpby(zone,r,zzero,rt,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ @@ -260,10 +257,9 @@ Subroutine psb_zcgs_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_geaxpby(zone,uv,beta,p,desc_a,info) end if - if (info == psb_success_) call prec%apply(p,f,desc_a,info,work=aux) + if (info == psb_success_) call prec%apply(p,f,desc_a,info) - if (info == psb_success_) call psb_spmm(zone,a,f,zzero,v,desc_a,info,& - & work=aux) + if (info == psb_success_) call psb_spmm(zone,a,f,zzero,v,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='First loop part ') @@ -285,12 +281,11 @@ Subroutine psb_zcgs_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_geaxpby(zone,uv,zzero,s,desc_a,info) if (info == psb_success_) call psb_geaxpby(zone,q,zone,s,desc_a,info) - if (info == psb_success_) call prec%apply(s,z,desc_a,info,work=aux) + if (info == psb_success_) call prec%apply(s,z,desc_a,info) if (info == psb_success_) call psb_geaxpby(alpha,z,zone,x,desc_a,info) - if (info == psb_success_) call psb_spmm(zone,a,z,zzero,qt,desc_a,info,& - & work=aux) + if (info == psb_success_) call psb_spmm(zone,a,z,zzero,qt,desc_a,info) if (info == psb_success_) call psb_geaxpby(-alpha,qt,zone,r,desc_a,info) @@ -312,7 +307,6 @@ Subroutine psb_zcgs_vect(a,prec,b,x,eps,desc_a,info,& if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_zcgstab.f90 b/linsolve/impl/psb_zcgstab.f90 index e04cd7c4..0b4cb011 100644 --- a/linsolve/impl/psb_zcgstab.f90 +++ b/linsolve/impl/psb_zcgstab.f90 @@ -110,10 +110,10 @@ Subroutine psb_zcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_dpk_), Optional, Intent(out) :: err ! = Local data - complex(psb_dpk_), allocatable, target :: aux(:),wwrk(:,:) + complex(psb_dpk_), allocatable, target :: wwrk(:,:) type(psb_z_vect_type) :: q, r, p, v, s, t, z, f - integer(psb_ipk_) :: itmax_, naux, it,itrace_,& + integer(psb_ipk_) :: itmax_, it,itrace_,& & n_row, n_col integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -179,13 +179,6 @@ Subroutine psb_zcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_errpush(info,name,a_err='psb_chkvect on B') goto 9999 end if - naux=6*n_col - if (info == psb_success_) allocate(aux(naux),stat=info) - if (info /= psb_success_) then - info=psb_err_alloc_dealloc_ - call psb_errpush(info,name) - goto 9999 - End If call psb_geasb(q,desc_a,info,mold=x%v,scratch=.true.) @@ -230,7 +223,7 @@ Subroutine psb_zcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist it = 0 call psb_geaxpby(zone,b,zzero,r,desc_a,info) - call psb_spmm(-zone,a,x,zone,r,desc_a,info,work=aux) + call psb_spmm(-zone,a,x,zone,r,desc_a,info) call psb_geaxpby(zone,r,zzero,q,desc_a,info) ! Perhaps we already satisfy the convergence criterion... @@ -279,10 +272,9 @@ Subroutine psb_zcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_geaxpby(zone,r,beta,p,desc_a,info) End If - call prec%apply(p,f,desc_a,info,work=aux) + call prec%apply(p,f,desc_a,info) - call psb_spmm(zone,a,f,zzero,v,desc_a,info,& - & work=aux) + call psb_spmm(zone,a,f,zzero,v,desc_a,info) sigma = psb_gedot(q,v,desc_a,info) @@ -316,8 +308,8 @@ Subroutine psb_zcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist end if - call prec%apply(s,z,desc_a,info,work=aux) - Call psb_spmm(zone,a,z,zzero,t,desc_a,info,work=aux) + call prec%apply(s,z,desc_a,info) + Call psb_spmm(zone,a,z,zzero,t,desc_a,info) if(psb_errstatus_fatal()) then call psb_errpush(psb_err_from_subroutine_,name,a_err='precaply/spmm') @@ -367,8 +359,6 @@ Subroutine psb_zcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,ist call psb_end_conv(methdname,itx,desc_a,stopdat,info,derr,iter) if (present(err)) err = derr - deallocate(aux,stat=info) - call x%sync() call psb_gefree(q,desc_a,info) call psb_gefree(r,desc_a,info) diff --git a/linsolve/impl/psb_zcgstabl.f90 b/linsolve/impl/psb_zcgstabl.f90 index 93abd056..62faafca 100644 --- a/linsolve/impl/psb_zcgstabl.f90 +++ b/linsolve/impl/psb_zcgstabl.f90 @@ -121,13 +121,13 @@ Subroutine psb_zcgstabl_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_dpk_), Optional, Intent(out) :: err ! = local data - complex(psb_dpk_), allocatable, target :: aux(:), gamma(:),& + complex(psb_dpk_), allocatable, target :: gamma(:),& & gamma1(:), gamma2(:), taum(:,:), sigma(:) type(psb_z_vect_type), allocatable, target :: wwrk(:),uh(:), rh(:) type(psb_z_vect_type), Pointer :: ww, q, r, rt0, p, v, & & s, t, z, f - integer(psb_ipk_) :: itmax_, naux, it, itrace_,& + integer(psb_ipk_) :: itmax_, it, itrace_,& & n_row, n_col, nl, err_act integer(psb_lpk_) :: mglob Logical, Parameter :: exchange=.True., noexchange=.False. @@ -213,10 +213,6 @@ Subroutine psb_zcgstabl_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux),gamma(0:nl),gamma1(nl),& - &gamma2(nl),taum(nl,nl),sigma(nl), stat=info) - if (info /= psb_success_) then info=psb_err_alloc_dealloc_ call psb_errpush(info,name) @@ -263,7 +259,7 @@ Subroutine psb_zcgstabl_vect(a,prec,b,x,eps,desc_a,info,& it = 0 call psb_geaxpby(zone,b,zzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info) if (info == psb_success_) call prec%apply(r,desc_a,info) @@ -318,7 +314,7 @@ Subroutine psb_zcgstabl_vect(a,prec,b,x,eps,desc_a,info,& ! = call psb_geaxpby(zone,rh(:,0:j),-beta,uh(:,0:j),desc_a,info) call psb_geaxpby(zone,rh(k),-beta,uh(k),desc_a,info) end do - call psb_spmm(zone,a,uh(j),zzero,uh(j+1),desc_a,info,work=aux) + call psb_spmm(zone,a,uh(j),zzero,uh(j+1),desc_a,info) call prec%apply(uh(j+1),desc_a,info) @@ -340,7 +336,7 @@ Subroutine psb_zcgstabl_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(-alpha,uh(k+1),zone,rh(k),desc_a,info) end do call psb_geaxpby(alpha,uh(0),zone,x,desc_a,info) - call psb_spmm(zone,a,rh(j),zzero,rh(j+1),desc_a,info,work=aux) + call psb_spmm(zone,a,rh(j),zzero,rh(j+1),desc_a,info) call prec%apply(rh(j+1),desc_a,info) @@ -403,7 +399,6 @@ Subroutine psb_zcgstabl_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(uh,desc_a,info) if (info == psb_success_) call psb_gefree(rh,desc_a,info) if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if (info /= psb_success_) then call psb_errpush(info,name) goto 9999 diff --git a/linsolve/impl/psb_zfcg.F90 b/linsolve/impl/psb_zfcg.F90 index 1ab036fe..a11fec1d 100644 --- a/linsolve/impl/psb_zfcg.F90 +++ b/linsolve/impl/psb_zfcg.F90 @@ -125,12 +125,11 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,& complex(psb_dpk_) :: alpha, beta, delta, gamma, theta real(psb_dpk_) :: derr integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_ - integer(psb_ipk_) :: n_col, naux, err_act + integer(psb_ipk_) :: n_col, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me - complex(psb_dpk_), allocatable, target :: aux(:) complex(psb_dpk_) :: vres(3) character(len=20) :: name type(psb_itconv_type) :: stopdat @@ -177,10 +176,6 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) - - if (present(itmax)) then itmax_ = itmax else @@ -234,7 +229,7 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,& ! Apply the preconditioner v=Pr ! Compute w = Av - call prec%apply(r,v,desc_a,info,work=aux) + call prec%apply(r,v,desc_a,info) if (info == psb_success_) call psb_spmm(zone,a,v,zzero,w,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_internal_error_,name,& @@ -289,7 +284,7 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,& ! Apply the preconditioner v = Pr ! Compute w = Av - call prec%apply(r,v,desc_a,info,work=aux) + call prec%apply(r,v,desc_a,info) if (info == psb_success_) call psb_spmm(zone,a,v,zzero,w,desc_a,info) if (info /= psb_success_) then call psb_errpush(psb_err_internal_error_,name,& diff --git a/linsolve/impl/psb_zgcr.f90 b/linsolve/impl/psb_zgcr.f90 index e48fc4c1..9743f63c 100644 --- a/linsolve/impl/psb_zgcr.f90 +++ b/linsolve/impl/psb_zgcr.f90 @@ -130,14 +130,13 @@ subroutine psb_zgcr_vect(a,prec,b,x,eps,desc_a,info,& type(psb_z_vect_type) :: r real(psb_dpk_) :: r_norm, b_norm, a_norm, derr - integer(psb_ipk_) :: n_col, naux, err_act + integer(psb_ipk_) :: n_col, err_act integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np, me integer(psb_ipk_) :: i, j, it, itx, istop_, itmax_, itrace_, nl, m, nrst complex(psb_dpk_) :: hjj - complex(psb_dpk_), allocatable, target :: aux(:) character(len=20) :: name type(psb_itconv_type) :: stopdat character(len=*), parameter :: methdname='GCR' @@ -223,16 +222,7 @@ subroutine psb_zgcr_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 endif - naux=4*n_col - allocate(aux(naux),h(nl+1,nl+1),& - &c_scale(nl+1),c(nl+1),z(nl+1), alpha(nl+1), stat=info) - h = zzero - if (info /= psb_success_) then - info=psb_err_from_subroutine_non_ - call psb_errpush(info,name) - goto 9999 - end if call psb_geasb(r, desc_a,info, scratch=.true.,mold=x%v) @@ -261,7 +251,7 @@ subroutine psb_zgcr_vect(a,prec,b,x,eps,desc_a,info,& call psb_geaxpby(zone, b, zzero, r, desc_a, info) - call psb_spmm(-zone,a,x,zone,r,desc_a,info,work=aux) + call psb_spmm(-zone,a,x,zone,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -278,9 +268,9 @@ subroutine psb_zgcr_vect(a,prec,b,x,eps,desc_a,info,& it = it + 1 j = it !Apply preconditioner - call prec%apply(r,z(j),desc_a,info,work=aux) + call prec%apply(r,z(j),desc_a,info) - call psb_spmm(zone,a,z(j),zzero,c(1),desc_a,info,work=aux) + call psb_spmm(zone,a,z(j),zzero,c(1),desc_a,info) do i =1, j - 1 h(i,j) = psb_gedot(c_scale(i), c(i), desc_a, info) @@ -347,7 +337,7 @@ subroutine psb_zgcr_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(c(i),desc_a,info) end do - if (info == psb_success_) deallocate(aux,h,c_scale,z,c,alpha,stat=info) + if (info == psb_success_) deallocate(h,c_scale,z,c,alpha,stat=info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) diff --git a/linsolve/impl/psb_zrgmres.f90 b/linsolve/impl/psb_zrgmres.f90 index c6bcc018..56bc3a29 100644 --- a/linsolve/impl/psb_zrgmres.f90 +++ b/linsolve/impl/psb_zrgmres.f90 @@ -124,13 +124,12 @@ subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), Optional, Intent(out) :: iter Real(psb_dpk_), Optional, Intent(out) :: err ! = local data - complex(psb_dpk_), allocatable :: aux(:) complex(psb_dpk_), allocatable :: c(:), s(:), h(:,:), rs(:), rst(:) type(psb_z_vect_type), allocatable :: v(:) type(psb_z_vect_type) :: w, w1, xt real(psb_dpk_) :: tmp complex(psb_dpk_) :: scal, gm, rti, rti1 - integer(psb_ipk_) ::litmax, naux, it, k, itrace_,& + integer(psb_ipk_) ::litmax, it, k, itrace_,& & n_row, n_col, nl integer(psb_lpk_) :: mglob Logical, Parameter :: exchange=.True., noexchange=.False., use_srot=.true. @@ -229,11 +228,6 @@ subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - - naux=4*n_col - allocate(aux(naux),h(nl+1,nl+1),& - &c(nl+1),s(nl+1),rs(nl+1), rst(nl+1),stat=info) - if (info == psb_success_) call psb_geall(v,desc_a,info,n=nl+1) if (info == psb_success_) call psb_geall(w,desc_a,info) if (info == psb_success_) call psb_geall(w1,desc_a,info) @@ -266,7 +260,7 @@ subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - call psb_spmm(-zone,a,x,zone,v(1),desc_a,info,work=aux) + call psb_spmm(-zone,a,x,zone,v(1),desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -301,7 +295,7 @@ subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - call psb_spmm(-zone,a,x,zone,v(1),desc_a,info,work=aux) + call psb_spmm(-zone,a,x,zone,v(1),desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -358,7 +352,7 @@ subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& itx = itx + 1 call prec%apply(v(i),w1,desc_a,info) - call psb_spmm(zone,a,w1,zzero,w,desc_a,info,work=aux) + call psb_spmm(zone,a,w1,zzero,w,desc_a,info) ! do k = 1, i @@ -397,7 +391,7 @@ subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& call prec%apply(xt,desc_a,info) call psb_geaxpby(zone,x,zone,xt,desc_a,info) call psb_geaxpby(zone,b,zzero,w1,desc_a,info) - call psb_spmm(-zone,a,xt,zone,w1,desc_a,info,work=aux) + call psb_spmm(-zone,a,xt,zone,w1,desc_a,info) rni = psb_geamax(w1,desc_a,info) xni = psb_geamax(xt,desc_a,info) errnum = rni @@ -490,7 +484,7 @@ subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& if (info == psb_success_) call psb_gefree(w,desc_a,info) if (info == psb_success_) call psb_gefree(w1,desc_a,info) if (info == psb_success_) call psb_gefree(xt,desc_a,info) - if (info == psb_success_) deallocate(aux,h,c,s,rs,rst, stat=info) + if (info == psb_success_) deallocate(h,c,s,rs,rst, stat=info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) diff --git a/linsolve/impl/psb_zrichardson.f90 b/linsolve/impl/psb_zrichardson.f90 index 4c2bc567..1cbba370 100644 --- a/linsolve/impl/psb_zrichardson.f90 +++ b/linsolve/impl/psb_zrichardson.f90 @@ -91,11 +91,10 @@ Subroutine psb_zrichardson_vect(a,prec,b,x,eps,desc_a,info,& logical :: do_alloc_wrk type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: me,np,err_act - complex(psb_dpk_), allocatable, target :: aux(:) type(psb_z_vect_type), allocatable, target :: wwrk(:) type(psb_z_vect_type), pointer :: q, p, r, z, w real(psb_dpk_) :: derr - integer(psb_ipk_) :: itmax_, istop_, naux, it, itx, itrace_,& + integer(psb_ipk_) :: itmax_, istop_, it, itx, itrace_,& & n_col, n_row,ieg,nspl, istebz integer(psb_lpk_) :: mglob integer(psb_ipk_) :: debug_level, debug_unit @@ -155,8 +154,6 @@ Subroutine psb_zrichardson_vect(a,prec,b,x,eps,desc_a,info,& goto 9999 end if - naux=4*n_col - allocate(aux(naux), stat=info) if (info == psb_success_) call psb_geall(wwrk,desc_a,info,n=5_psb_ipk_) if (info == psb_success_) call psb_geasb(wwrk,desc_a,info,mold=x%v,scratch=.true.) if (info /= psb_success_) then @@ -171,7 +168,7 @@ Subroutine psb_zrichardson_vect(a,prec,b,x,eps,desc_a,info,& w => wwrk(5) call psb_geaxpby(zone,b,zzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info) if (info /= psb_success_) then info=psb_err_from_subroutine_non_ call psb_errpush(info,name) @@ -186,17 +183,16 @@ Subroutine psb_zrichardson_vect(a,prec,b,x,eps,desc_a,info,& End If loop: do itx=1,itmax_ - call prec%apply(r,z,desc_a,info,work=aux) + call prec%apply(r,z,desc_a,info) call psb_geaxpby(zone,z,zone,x,desc_a,info) call psb_geaxpby(zone,b,zzero,r,desc_a,info) - if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info,work=aux) + if (info == psb_success_) call psb_spmm(-zone,a,x,zone,r,desc_a,info) if (psb_check_conv(methdname,itx,x,r,desc_a,stopdat,info)) exit loop end do loop call psb_end_conv(methdname,itx,desc_a,stopdat,info,derr,iter) if (present(err)) err = derr if (info == psb_success_) call psb_gefree(wwrk,desc_a,info) - if (info == psb_success_) deallocate(aux,stat=info) if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then diff --git a/log.txt b/log.txt index ae2ce3aa..8ae9e16a 100644 --- a/log.txt +++ b/log.txt @@ -4,8 +4,200 @@ make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base make -C modules objs F90="" F90COPT=" " (if test ! -d include ; then mkdir include; fi; /usr/bin/install -c -p -m 644 Make.inc include/Make.inc.psblas) make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/modules» -/usr/bin/install -c -p -p *.mod ../../modules +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_const_mod.F90 -o psb_const_mod.o (if test ! -d modules ; then mkdir modules; fi;) +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cbind_const_mod.F90 -o psb_cbind_const_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_error_mod.F90 -o psb_error_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_string_mod.f90 -o auxil/psb_string_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psi_m_serial_mod.f90 -o auxil/psi_m_serial_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psi_e_serial_mod.f90 -o auxil/psi_e_serial_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psi_s_serial_mod.f90 -o auxil/psi_s_serial_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psi_d_serial_mod.f90 -o auxil/psi_d_serial_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psi_c_serial_mod.f90 -o auxil/psi_c_serial_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psi_z_serial_mod.f90 -o auxil/psi_z_serial_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psi_acx_mod.f90 -o auxil/psi_acx_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psi_alcx_mod.f90 -o auxil/psi_alcx_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psi_lcx_mod.f90 -o auxil/psi_lcx_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_m_realloc_mod.F90 -o auxil/psb_m_realloc_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_e_realloc_mod.F90 -o auxil/psb_e_realloc_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_s_realloc_mod.F90 -o auxil/psb_s_realloc_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_d_realloc_mod.F90 -o auxil/psb_d_realloc_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_c_realloc_mod.F90 -o auxil/psb_c_realloc_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_z_realloc_mod.F90 -o auxil/psb_z_realloc_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_realloc_mod.F90 -o psb_realloc_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psi_serial_mod.f90 -o auxil/psi_serial_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c desc/psb_desc_const_mod.f90 -o desc/psb_desc_const_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_m_hsort_mod.f90 -o auxil/psb_m_hsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_m_isort_mod.f90 -o auxil/psb_m_isort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_m_msort_mod.f90 -o auxil/psb_m_msort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_m_qsort_mod.f90 -o auxil/psb_m_qsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_e_hsort_mod.f90 -o auxil/psb_e_hsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_e_isort_mod.f90 -o auxil/psb_e_isort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_e_msort_mod.f90 -o auxil/psb_e_msort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_e_qsort_mod.f90 -o auxil/psb_e_qsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_s_hsort_mod.f90 -o auxil/psb_s_hsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_s_isort_mod.f90 -o auxil/psb_s_isort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_s_msort_mod.f90 -o auxil/psb_s_msort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_s_qsort_mod.f90 -o auxil/psb_s_qsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_d_hsort_mod.f90 -o auxil/psb_d_hsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_d_isort_mod.f90 -o auxil/psb_d_isort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_d_msort_mod.f90 -o auxil/psb_d_msort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_d_qsort_mod.f90 -o auxil/psb_d_qsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_c_hsort_mod.f90 -o auxil/psb_c_hsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_c_isort_mod.f90 -o auxil/psb_c_isort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_c_msort_mod.f90 -o auxil/psb_c_msort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_c_qsort_mod.f90 -o auxil/psb_c_qsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_z_hsort_mod.f90 -o auxil/psb_z_hsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_z_isort_mod.f90 -o auxil/psb_z_isort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_z_msort_mod.f90 -o auxil/psb_z_msort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_z_qsort_mod.f90 -o auxil/psb_z_qsort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_i_hsort_x_mod.f90 -o auxil/psb_i_hsort_x_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_l_hsort_x_mod.f90 -o auxil/psb_l_hsort_x_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_s_hsort_x_mod.f90 -o auxil/psb_s_hsort_x_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_m_ip_reord_mod.F90 -o auxil/psb_m_ip_reord_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_e_ip_reord_mod.F90 -o auxil/psb_e_ip_reord_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_s_ip_reord_mod.F90 -o auxil/psb_s_ip_reord_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_d_ip_reord_mod.F90 -o auxil/psb_d_ip_reord_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_c_ip_reord_mod.F90 -o auxil/psb_c_ip_reord_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_z_ip_reord_mod.F90 -o auxil/psb_z_ip_reord_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c desc/psb_hash_mod.F90 -o desc/psb_hash_mod.o +mpicc -g -O3 -I. -c desc/psb_hashval.c -o desc/psb_hashval.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c comm/psb_neighbor_topology_mod.F90 -o comm/psb_neighbor_topology_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_d_hsort_x_mod.f90 -o auxil/psb_d_hsort_x_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_c_hsort_x_mod.f90 -o auxil/psb_c_hsort_x_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_i_base_vect_mod.F90 -o serial/psb_i_base_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_base_mat_mod.F90 -o serial/psb_base_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_z_hsort_x_mod.f90 -o auxil/psb_z_hsort_x_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c auxil/psb_ip_reord_mod.F90 -o auxil/psb_ip_reord_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_sort_mod.f90 -o auxil/psb_sort_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_i_vect_mod.F90 -o serial/psb_i_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_l_base_vect_mod.F90 -o serial/psb_l_base_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_l_vect_mod.F90 -o serial/psb_l_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_d_base_vect_mod.F90 -o serial/psb_d_base_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_s_base_vect_mod.F90 -o serial/psb_s_base_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_c_base_vect_mod.F90 -o serial/psb_c_base_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_z_base_vect_mod.F90 -o serial/psb_z_base_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_z_vect_mod.F90 -o serial/psb_z_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_z_base_mat_mod.F90 -o serial/psb_z_base_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_d_vect_mod.F90 -o serial/psb_d_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_d_base_mat_mod.F90 -o serial/psb_d_base_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_s_vect_mod.F90 -o serial/psb_s_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_s_base_mat_mod.F90 -o serial/psb_s_base_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_z_csr_mat_mod.f90 -o serial/psb_z_csr_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_z_csc_mat_mod.f90 -o serial/psb_z_csc_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_d_csr_mat_mod.f90 -o serial/psb_d_csr_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_d_csc_mat_mod.f90 -o serial/psb_d_csc_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_c_vect_mod.F90 -o serial/psb_c_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_c_base_mat_mod.F90 -o serial/psb_c_base_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_s_csr_mat_mod.f90 -o serial/psb_s_csr_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_s_csc_mat_mod.f90 -o serial/psb_s_csc_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_z_rb_idx_tree_mod.f90 -o auxil/psb_z_rb_idx_tree_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_d_rb_idx_tree_mod.f90 -o auxil/psb_d_rb_idx_tree_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_c_csr_mat_mod.f90 -o serial/psb_c_csr_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_c_csc_mat_mod.f90 -o serial/psb_c_csc_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_s_rb_idx_tree_mod.f90 -o auxil/psb_s_rb_idx_tree_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_z_mat_mod.F90 -o serial/psb_z_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_c_rb_idx_tree_mod.f90 -o auxil/psb_c_rb_idx_tree_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_d_mat_mod.F90 -o serial/psb_d_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c auxil/psb_rb_idx_tree_mod.f90 -o auxil/psb_rb_idx_tree_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_s_mat_mod.F90 -o serial/psb_s_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_vect_mod.f90 -o serial/psb_vect_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c serial/psb_c_mat_mod.F90 -o serial/psb_c_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_mat_mod.f90 -o serial/psb_mat_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_s_serial_mod.f90 -o serial/psb_s_serial_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_d_serial_mod.f90 -o serial/psb_d_serial_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_c_serial_mod.f90 -o serial/psb_c_serial_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_z_serial_mod.f90 -o serial/psb_z_serial_mod.o +mpifort -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -frecursive -g -O3 -c penv/psi_penv_mod.F90 -o penv/psi_penv_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_i2_p2p_mod.F90 -o penv/psi_i2_p2p_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_m_p2p_mod.F90 -o penv/psi_m_p2p_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_e_p2p_mod.F90 -o penv/psi_e_p2p_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_s_p2p_mod.F90 -o penv/psi_s_p2p_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_d_p2p_mod.F90 -o penv/psi_d_p2p_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_c_p2p_mod.F90 -o penv/psi_c_p2p_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_z_p2p_mod.F90 -o penv/psi_z_p2p_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_i2_collective_mod.F90 -o penv/psi_i2_collective_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_e_collective_mod.F90 -o penv/psi_e_collective_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_m_collective_mod.F90 -o penv/psi_m_collective_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_s_collective_mod.F90 -o penv/psi_s_collective_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_d_collective_mod.F90 -o penv/psi_d_collective_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_c_collective_mod.F90 -o penv/psi_c_collective_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c penv/psi_z_collective_mod.F90 -o penv/psi_z_collective_mod.o +mpifort -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -frecursive -g -O3 -c penv/psi_p2p_mod.F90 -o penv/psi_p2p_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c serial/psb_serial_mod.f90 -o serial/psb_serial_mod.o +mpifort -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -frecursive -g -O3 -c penv/psi_collective_mod.F90 -o penv/psi_collective_mod.o +mpifort -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -frecursive -g -O3 -c psb_penv_mod.F90 -o psb_penv_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c desc/psb_indx_map_mod.F90 -o desc/psb_indx_map_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c psb_timers_mod.f90 -o psb_timers_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_error_impl.F90 -o psb_error_impl.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c desc/psb_hash_map_mod.F90 -o desc/psb_hash_map_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c desc/psb_list_map_mod.F90 -o desc/psb_list_map_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c desc/psb_repl_map_mod.F90 -o desc/psb_repl_map_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c desc/psb_gen_block_map_mod.F90 -o desc/psb_gen_block_map_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c desc/psb_glist_map_mod.F90 -o desc/psb_glist_map_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c desc/psb_desc_mod.F90 -o desc/psb_desc_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_e_comm_a_mod.f90 -o comm/psi_e_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_m_comm_a_mod.f90 -o comm/psi_m_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_s_comm_a_mod.f90 -o comm/psi_s_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_d_comm_a_mod.f90 -o comm/psi_d_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_c_comm_a_mod.f90 -o comm/psi_c_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_z_comm_a_mod.f90 -o comm/psi_z_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_i_comm_mod.f90 -o comm/psb_i_comm_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_l_comm_mod.f90 -o comm/psb_l_comm_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_s_comm_mod.f90 -o comm/psb_s_comm_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_d_comm_mod.f90 -o comm/psb_d_comm_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_c_comm_mod.f90 -o comm/psb_c_comm_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_z_comm_mod.f90 -o comm/psb_z_comm_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_m_comm_a_mod.f90 -o comm/psb_m_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_e_comm_a_mod.f90 -o comm/psb_e_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_s_comm_a_mod.f90 -o comm/psb_s_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_d_comm_a_mod.f90 -o comm/psb_d_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_c_comm_a_mod.f90 -o comm/psb_c_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_z_comm_a_mod.f90 -o comm/psb_z_comm_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psblas/psb_s_psblas_mod.F90 -o psblas/psb_s_psblas_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psblas/psb_c_psblas_mod.F90 -o psblas/psb_c_psblas_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psblas/psb_d_psblas_mod.F90 -o psblas/psb_d_psblas_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psblas/psb_z_psblas_mod.F90 -o psblas/psb_z_psblas_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c psb_check_mod.f90 -o psb_check_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_d_comm_v_mod.f90 -o comm/psi_d_comm_v_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_s_comm_v_mod.f90 -o comm/psi_s_comm_v_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_z_comm_v_mod.f90 -o comm/psi_z_comm_v_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_c_comm_v_mod.f90 -o comm/psi_c_comm_v_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_i_comm_v_mod.f90 -o comm/psi_i_comm_v_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psi_l_comm_v_mod.f90 -o comm/psi_l_comm_v_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_i_mod.F90 -o psi_i_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_s_mod.F90 -o psi_s_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_z_mod.F90 -o psi_z_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_d_mod.F90 -o psi_d_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_c_mod.F90 -o psi_c_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_l_mod.F90 -o psi_l_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c psblas/psb_psblas_mod.f90 -o psblas/psb_psblas_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c psi_mod.f90 -o psi_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_comm_mod.f90 -o comm/psb_comm_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c tools/psb_cd_tools_mod.F90 -o tools/psb_cd_tools_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c tools/psb_m_tools_a_mod.f90 -o tools/psb_m_tools_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c tools/psb_e_tools_a_mod.f90 -o tools/psb_e_tools_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c tools/psb_s_tools_mod.F90 -o tools/psb_s_tools_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c tools/psb_d_tools_mod.F90 -o tools/psb_d_tools_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c tools/psb_c_tools_mod.F90 -o tools/psb_c_tools_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c tools/psb_z_tools_mod.F90 -o tools/psb_z_tools_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c tools/psb_s_tools_a_mod.f90 -o tools/psb_s_tools_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c tools/psb_d_tools_a_mod.f90 -o tools/psb_d_tools_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c tools/psb_c_tools_a_mod.f90 -o tools/psb_c_tools_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c tools/psb_z_tools_a_mod.f90 -o tools/psb_z_tools_a_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c tools/psb_i_tools_mod.F90 -o tools/psb_i_tools_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c tools/psb_l_tools_mod.F90 -o tools/psb_l_tools_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c tools/psb_tools_mod.f90 -o tools/psb_tools_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_base_linmap_mod.f90 -o comm/psb_base_linmap_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_s_linmap_mod.f90 -o comm/psb_s_linmap_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_d_linmap_mod.f90 -o comm/psb_d_linmap_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_c_linmap_mod.f90 -o comm/psb_c_linmap_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_z_linmap_mod.f90 -o comm/psb_z_linmap_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c comm/psb_linmap_mod.f90 -o comm/psb_linmap_mod.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c error.f90 -o error.o +mpifort -frecursive -g -O3 -I../ -I. -I. -c psb_base_mod.f90 -o psb_base_mod.o +mpicc -g -O3 -I. -c cutil.c -o cutil.o +/usr/bin/install -c -p -p *.mod ../../modules /usr/bin/install -c -p -p psb_config.h psb_types.h ../../include make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/modules» make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base» @@ -14,18 +206,1230 @@ make -C prec mods make -C ext mods make -C base objs make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/util» -mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_metispart_mod.F90 -o psb_metispart_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_blockpart_mod.f90 -o psb_blockpart_mod.o +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec» +mpifort -frecursive -g -O3 -I. -I../modules -c psb_prec_const_mod.f90 -o psb_prec_const_mod.o +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext» +mpicc -g -O3 -I. -I../include -c psb_metis_int.c -o psb_metis_int.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_d_ell_mat_mod.f90 -o psb_d_ell_mat_mod.o make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base» make -C modules objs F90="" F90COPT=" " +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psi_i_ext_util_mod.f90 -o psi_i_ext_util_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_partidx_mod.F90 -o psb_partidx_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_ainv_tools_mod.f90 -o psb_c_ainv_tools_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psi_s_ext_util_mod.f90 -o psi_s_ext_util_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_hbio_mod.f90 -o psb_hbio_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_ainv_tools_mod.f90 -o psb_d_ainv_tools_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psi_c_ext_util_mod.f90 -o psi_c_ext_util_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_ainv_tools_mod.f90 -o psb_s_ainv_tools_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_mmio_mod.F90 -o psb_mmio_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psi_d_ext_util_mod.f90 -o psi_d_ext_util_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_mat_dist_mod.f90 -o psb_s_mat_dist_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_ainv_tools_mod.f90 -o psb_z_ainv_tools_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psi_z_ext_util_mod.f90 -o psi_z_ext_util_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_mat_dist_mod.f90 -o psb_d_mat_dist_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_s_ell_mat_mod.f90 -o psb_s_ell_mat_mod.o +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/modules» +/usr/bin/install -c -p -p *.mod ../../modules +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_mat_dist_mod.f90 -o psb_c_mat_dist_mod.o +/usr/bin/install -c -p -p psb_config.h psb_types.h ../../include +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/modules» +make -C serial objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial» +make -C impl objs +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/impl» +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_base_mat_impl.f90 -o psb_base_mat_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_base_mat_impl.F90 -o psb_s_base_mat_impl.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_c_ell_mat_mod.f90 -o psb_c_ell_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_base_mat_impl.F90 -o psb_d_base_mat_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_mat_dist_mod.f90 -o psb_z_mat_dist_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_z_ell_mat_mod.f90 -o psb_z_ell_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_renum_mod.f90 -o psb_s_renum_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_renum_mod.f90 -o psb_d_renum_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_renum_mod.f90 -o psb_c_renum_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_renum_mod.f90 -o psb_z_renum_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_gps_mod.f90 -o psb_gps_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_s_dns_mat_mod.f90 -o psb_s_dns_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_d_dns_mat_mod.f90 -o psb_d_dns_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_c_dns_mat_mod.f90 -o psb_c_dns_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_metispart_mod.F90 -o psb_metispart_mod.o +make -C comm objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +make -C internals objs +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +(make psi_dswapdata.o psi_dswaptran.o psi_sswapdata.o psi_sswaptran.o psi_iswapdata.o psi_iswaptran.o psi_lswapdata.o psi_lswaptran.o psi_cswapdata.o psi_cswaptran.o psi_zswapdata.o psi_zswaptran.o psi_dswapdata_a.o psi_dswaptran_a.o psi_sswapdata_a.o psi_sswaptran_a.o psi_mswapdata_a.o psi_mswaptran_a.o psi_eswapdata_a.o psi_eswaptran_a.o psi_cswapdata_a.o psi_cswaptran_a.o psi_zswapdata_a.o psi_zswaptran_a.o FC="mpifort" ) +make[4]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +make[4]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_dswapdata.F90 -o psi_dswapdata.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_iovrl_restr.f90 -o psi_iovrl_restr.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_iovrl_save.f90 -o psi_iovrl_save.o +make psb_dscatter.o psb_zscatter.o psb_iscatter.o psb_lscatter.o psb_cscatter.o psb_sscatter.o psb_dscatter_a.o psb_zscatter_a.o psb_mscatter_a.o psb_escatter_a.o psb_cscatter_a.o psb_sscatter_a.o psb_dspgather.o psb_sspgather.o psb_zspgather.o psb_cspgather.o FC="mpifort" +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dscatter.F90 -o psb_dscatter.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_base_prec_mod.f90 -o psb_s_base_prec_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_base_prec_mod.f90 -o psb_d_base_prec_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_mat_dist_mod.f90 -o psb_mat_dist_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_iovrl_upd.f90 -o psi_iovrl_upd.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_base_prec_mod.f90 -o psb_c_base_prec_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_z_dns_mat_mod.f90 -o psb_z_dns_mat_mod.o +make -C sort objs +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/sort» +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_s_hsort_impl.f90 -o psb_s_hsort_impl.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psi_ext_util_mod.f90 -o psi_ext_util_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zscatter.F90 -o psb_zscatter.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_s_isort_impl.f90 -o psb_s_isort_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_s_msort_impl.f90 -o psb_s_msort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_base_prec_mod.f90 -o psb_z_base_prec_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_ilu_fact_mod.f90 -o psb_d_ilu_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_lsame.f90 -o psb_lsame.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dgather.f90 -o psb_dgather.o +make -C auxil objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +(make psi_desc_index.o psi_fnd_owner.o psi_a2a_fnd_owner.o psi_graph_fnd_owner.o psi_adjcncy_fnd_owner.o psi_symm_dep_list.o FC="mpifort") +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +make[3]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_desc_index.F90 -o psi_desc_index.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_s_qsort_impl.f90 -o psb_s_qsort_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_d_hsort_impl.f90 -o psb_d_hsort_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_d_isort_impl.f90 -o psb_d_isort_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_d_msort_impl.f90 -o psb_d_msort_impl.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_d_hll_mat_mod.f90 -o psb_d_hll_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_iscatter.F90 -o psb_iscatter.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_lscatter.F90 -o psb_lscatter.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cscatter.F90 -o psb_cscatter.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_dswaptran.F90 -o psi_dswaptran.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_renum_mod.f90 -o psb_renum_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_fnd_owner.F90 -o psi_fnd_owner.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dhalo.f90 -o psb_dhalo.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_d_qsort_impl.f90 -o psb_d_qsort_impl.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_s_hll_mat_mod.f90 -o psb_s_hll_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_c_hsort_impl.f90 -o psb_c_hsort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_ainv_tools_mod.f90 -o psb_ainv_tools_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psi_crea_bnd_elem.f90 -o psi_crea_bnd_elem.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_sscatter.F90 -o psb_sscatter.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_c_hll_mat_mod.f90 -o psb_c_hll_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dovrl.f90 -o psb_dovrl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dscatter_a.F90 -o psb_dscatter_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_c_isort_impl.f90 -o psb_c_isort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zscatter_a.F90 -o psb_zscatter_a.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_z_hll_mat_mod.f90 -o psb_z_hll_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_c_msort_impl.f90 -o psb_c_msort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sgather.f90 -o psb_sgather.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_c_qsort_impl.f90 -o psb_c_qsort_impl.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_d_dia_mat_mod.f90 -o psb_d_dia_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_sswapdata.F90 -o psi_sswapdata.o +make -C psblas objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/psblas» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_ddot.f90 -o psb_ddot.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_d_hdia_mat_mod.f90 -o psb_d_hdia_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_s_dia_mat_mod.f90 -o psb_s_dia_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_s_hdia_mat_mod.f90 -o psb_s_hdia_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_mscatter_a.F90 -o psb_mscatter_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_base_mat_impl.F90 -o psb_c_base_mat_impl.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_c_dia_mat_mod.f90 -o psb_c_dia_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_base_mat_impl.F90 -o psb_z_base_mat_impl.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_c_hdia_mat_mod.f90 -o psb_c_hdia_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_z_dia_mat_mod.f90 -o psb_z_dia_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_shalo.f90 -o psb_shalo.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -c psb_z_hdia_mat_mod.f90 -o psb_z_hdia_mat_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_a2a_fnd_owner.F90 -o psi_a2a_fnd_owner.o +mpifort -frecursive -g -O3 -I. -I../include -I../modules -I. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_ext_mod.F90 -o psb_ext_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sovrl.f90 -o psb_sovrl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_lovrl_restr.f90 -o psi_lovrl_restr.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_z_hsort_impl.f90 -o psb_z_hsort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_ilu_fact_mod.f90 -o psb_s_ilu_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_z_isort_impl.f90 -o psb_z_isort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_ainv_fact_mod.f90 -o psb_s_ainv_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_ilu_fact_mod.f90 -o psb_c_ilu_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_lovrl_save.f90 -o psi_lovrl_save.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_z_msort_impl.f90 -o psb_z_msort_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_z_qsort_impl.f90 -o psb_z_qsort_impl.o +make -C tools objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +(make psb_icdasb.o psb_ssphalo.o psb_dsphalo.o psb_csphalo.o psb_zsphalo.o psb_dcdbldext.o psb_zcdbldext.o psb_scdbldext.o psb_ccdbldext.o psb_s_remote_mat.o psb_d_remote_mat.o psb_c_remote_mat.o psb_z_remote_mat.o psb_s_remote_vect.o psb_d_remote_vect.o psb_c_remote_vect.o psb_z_remote_vect.o psb_e_remote_vect.o psb_m_remote_vect.o FC="mpifort") +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +make[3]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_icdasb.F90 -o psb_icdasb.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_sswaptran.F90 -o psi_sswaptran.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_igather.f90 -o psb_igather.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_escatter_a.F90 -o psb_escatter_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_m_hsort_impl.f90 -o psb_m_hsort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cscatter_a.F90 -o psb_cscatter_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_m_isort_impl.f90 -o psb_m_isort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_sscatter_a.F90 -o psb_sscatter_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_m_msort_impl.f90 -o psb_m_msort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_ainv_fact_mod.f90 -o psb_c_ainv_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dspgather.F90 -o psb_dspgather.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cdall.f90 -o psb_cdall.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_m_qsort_impl.f90 -o psb_m_qsort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_ihalo.f90 -o psb_ihalo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_graph_fnd_owner.F90 -o psi_graph_fnd_owner.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_e_hsort_impl.f90 -o psb_e_hsort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_ssphalo.F90 -o psb_ssphalo.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_lovrl_upd.f90 -o psi_lovrl_upd.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_iswapdata.F90 -o psi_iswapdata.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_e_isort_impl.f90 -o psb_e_isort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psi_crea_index.f90 -o psi_crea_index.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_e_msort_impl.f90 -o psb_e_msort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_damax.f90 -o psb_damax.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_invk_fact_mod.f90 -o psb_c_invk_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_e_qsort_impl.f90 -o psb_e_qsort_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dasum.f90 -o psb_dasum.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_sovrl_restr.f90 -o psi_sovrl_restr.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_csr_impl.F90 -o psb_s_csr_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_coo_impl.F90 -o psb_s_coo_impl.o +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/sort» +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_sovrl_save.f90 -o psi_sovrl_save.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cdals.f90 -o psb_cdals.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_sovrl_upd.f90 -o psi_sovrl_upd.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_csc_impl.F90 -o psb_s_csc_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_m_serial_impl.F90 -o psi_m_serial_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_iswaptran.F90 -o psi_iswaptran.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_invt_fact_mod.f90 -o psb_c_invt_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_adjcncy_fnd_owner.F90 -o psi_adjcncy_fnd_owner.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_daxpby.f90 -o psb_daxpby.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dnrm2.f90 -o psb_dnrm2.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dnrmi.f90 -o psb_dnrmi.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dspmm.f90 -o psb_dspmm.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_mat_impl.F90 -o psb_s_mat_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psi_crea_ovr_elem.f90 -o psi_crea_ovr_elem.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psi_bld_tmpovrl.f90 -o psi_bld_tmpovrl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_sspgather.F90 -o psb_sspgather.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_ilu_fact_mod.f90 -o psb_z_ilu_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_lswapdata.F90 -o psi_lswapdata.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cdalv.f90 -o psb_cdalv.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cd_inloc.f90 -o psb_cd_inloc.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_util_mod.f90 -o psb_util_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zspgather.F90 -o psb_zspgather.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dsphalo.F90 -o psb_dsphalo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_symm_dep_list.F90 -o psi_symm_dep_list.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_ainv_fact_mod.f90 -o psb_z_ainv_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_invk_fact_mod.f90 -o psb_z_invk_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_lswaptran.F90 -o psi_lswaptran.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_invt_fact_mod.f90 -o psb_z_invt_fact_mod.o +/bin/cp -p *.mod ../modules +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cdins.F90 -o psb_cdins.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_dovrl_restr.f90 -o psi_dovrl_restr.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_dovrl_save.f90 -o psi_dovrl_save.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_dovrl_upd.f90 -o psi_dovrl_upd.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_cswapdata.F90 -o psi_cswapdata.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_iovrl.f90 -o psb_iovrl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_rb_idx_tree_impl.F90 -o psb_s_rb_idx_tree_impl.o +make -C ext objs make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext» /bin/cp -p *.mod ../modules -mpifort -frecursive -g -O3 -I. -I../modules -c psb_renum_mod.f90 -o psb_renum_mod.o -make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec» +make -C impl objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext/impl» +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_dia_from_coo.f90 -o psb_s_cp_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_dia_to_coo.f90 -o psb_s_cp_dia_to_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_biconjg_mod.F90 -o psb_c_biconjg_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_covrl_restr.f90 -o psi_covrl_restr.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_lgather.f90 -o psb_lgather.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_lhalo.f90 -o psb_lhalo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_lovrl.f90 -o psb_lovrl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cspgather.F90 -o psb_cspgather.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psi_bld_tmphalo.f90 -o psi_bld_tmphalo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_ell_from_coo.f90 -o psb_s_cp_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_ell_from_fmt.f90 -o psb_s_cp_ell_from_fmt.o +/usr/bin/install -c -p -p *.mod ../modules +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/util» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psi_sort_dl.f90 -o psi_sort_dl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_csphalo.F90 -o psb_csphalo.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_cswaptran.F90 -o psi_cswaptran.o +make -C util objs +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/util» +/usr/bin/install -c -p -p *.mod ../modules +mpicc -g -O3 -I. -I../include -c psb_amd_order.c -o psb_amd_order.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_hbio_impl.f90 -o psb_s_hbio_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dspsm.f90 -o psb_dspsm.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_hbio_impl.f90 -o psb_d_hbio_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_biconjg_mod.F90 -o psb_d_biconjg_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_covrl_save.f90 -o psi_covrl_save.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_biconjg_mod.F90 -o psb_s_biconjg_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_ell_to_coo.f90 -o psb_s_cp_ell_to_coo.o +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cgather.f90 -o psb_cgather.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_zswapdata.F90 -o psi_zswapdata.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sspnrm1.f90 -o psb_sspnrm1.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_ell_to_fmt.f90 -o psb_s_cp_ell_to_fmt.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_hbio_impl.f90 -o psb_c_hbio_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_e_serial_impl.F90 -o psi_e_serial_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_indx_map_fnd_owner.F90 -o psi_indx_map_fnd_owner.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psi_desc_impl.f90 -o psi_desc_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_biconjg_mod.F90 -o psb_z_biconjg_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dspnrm1.f90 -o psb_dspnrm1.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cdprt.f90 -o psb_cdprt.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_covrl_upd.f90 -o psi_covrl_upd.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_hdia_from_coo.f90 -o psb_s_cp_hdia_from_coo.o +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_zovrl_restr.f90 -o psi_zovrl_restr.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_zovrl_save.f90 -o psi_zovrl_save.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_zswaptran.F90 -o psi_zswaptran.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_hdia_to_coo.f90 -o psb_s_cp_hdia_to_coo.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_csr_impl.F90 -o psb_d_csr_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cdren.f90 -o psb_cdren.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_coo_impl.F90 -o psb_d_coo_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_zovrl_upd.f90 -o psi_zovrl_upd.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_s_serial_impl.F90 -o psi_s_serial_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cspnrm1.f90 -o psb_cspnrm1.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_hll_from_coo.f90 -o psb_s_cp_hll_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_hll_from_fmt.f90 -o psb_s_cp_hll_from_fmt.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psi_hash_impl.f90 -o psi_hash_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psi_srtlist.f90 -o psi_srtlist.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zsphalo.F90 -o psb_zsphalo.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_prec_type.f90 -o psb_s_prec_type.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_csc_impl.F90 -o psb_d_csc_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_dswapdata_a.F90 -o psi_dswapdata_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zspnrm1.f90 -o psb_zspnrm1.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cdrep.f90 -o psb_cdrep.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_get_overlap.f90 -o psb_get_overlap.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_d_serial_impl.F90 -o psi_d_serial_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_hll_to_coo.f90 -o psb_s_cp_hll_to_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_bld_glb_dep_list.F90 -o psi_bld_glb_dep_list.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_xtr_loc_dl.F90 -o psi_xtr_loc_dl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_hbio_impl.f90 -o psb_z_hbio_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_mmio_impl.f90 -o psb_s_mmio_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zamax.f90 -o psb_zamax.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zasum.f90 -o psb_zasum.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_c_serial_impl.F90 -o psi_c_serial_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_prec_type.f90 -o psb_d_prec_type.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_prec_type.f90 -o psb_c_prec_type.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_cp_hll_to_fmt.f90 -o psb_s_cp_hll_to_fmt.o +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_movrl_restr_a.f90 -o psi_movrl_restr_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_dswaptran_a.F90 -o psi_dswaptran_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_movrl_save_a.f90 -o psi_movrl_save_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zaxpby.f90 -o psb_zaxpby.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_aclsum.f90 -o psb_s_dia_aclsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_allocate_mnnz.f90 -o psb_s_dia_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_arwsum.f90 -o psb_s_dia_arwsum.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_mmio_impl.f90 -o psb_d_mmio_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_sswapdata_a.F90 -o psi_sswapdata_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dcdbldext.F90 -o psb_dcdbldext.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_colsum.f90 -o psb_s_dia_colsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_csgetptn.f90 -o psb_s_dia_csgetptn.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_mat_impl.F90 -o psb_d_mat_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_csgetrow.f90 -o psb_s_dia_csgetrow.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_csmm.f90 -o psb_s_dia_csmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cd_lstext.f90 -o psb_cd_lstext.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_mmio_impl.f90 -o psb_c_mmio_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cd_remap.F90 -o psb_cd_remap.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_sswaptran_a.F90 -o psi_sswaptran_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_z_serial_impl.F90 -o psi_z_serial_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zcdbldext.F90 -o psb_zcdbldext.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_csmv.f90 -o psb_s_dia_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_get_diag.f90 -o psb_s_dia_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_maxval.f90 -o psb_s_dia_maxval.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_mold.f90 -o psb_s_dia_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_print.f90 -o psb_s_dia_print.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_prec_type.f90 -o psb_z_prec_type.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_mmio_impl.f90 -o psb_z_mmio_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_rb_idx_tree_impl.F90 -o psb_d_rb_idx_tree_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_csr_impl.F90 -o psb_c_csr_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_coo_impl.F90 -o psb_c_coo_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_reallocate_nz.f90 -o psb_s_dia_reallocate_nz.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_movrl_upd_a.f90 -o psi_movrl_upd_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_scdbldext.F90 -o psb_scdbldext.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_eovrl_restr_a.f90 -o psi_eovrl_restr_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_mswapdata_a.F90 -o psi_mswapdata_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_eovrl_save_a.f90 -o psi_eovrl_save_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zdot.f90 -o psb_zdot.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_znrm2.f90 -o psb_znrm2.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_reinit.f90 -o psb_s_dia_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_rowsum.f90 -o psb_s_dia_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_scal.f90 -o psb_s_dia_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dia_scals.f90 -o psb_s_dia_scals.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_chalo.f90 -o psb_chalo.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_csc_impl.F90 -o psb_c_csc_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_ccdbldext.F90 -o psb_ccdbldext.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_mswaptran_a.F90 -o psi_mswaptran_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_mat_impl.F90 -o psb_c_mat_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cdcpy.F90 -o psb_cdcpy.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cd_reinit.f90 -o psb_cd_reinit.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cd_switch_ovl_indxmap.f90 -o psb_cd_switch_ovl_indxmap.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_aclsum.f90 -o psb_s_ell_aclsum.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cd_renum_block.F90 -o psb_cd_renum_block.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_ainv_fact_mod.f90 -o psb_d_ainv_fact_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_allocate_mnnz.f90 -o psb_s_ell_allocate_mnnz.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_remote_mat.F90 -o psb_s_remote_mat.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_arwsum.f90 -o psb_s_ell_arwsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_colsum.f90 -o psb_s_ell_colsum.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_eswapdata_a.F90 -o psi_eswapdata_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_csgetblk.f90 -o psb_s_ell_csgetblk.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_znrmi.f90 -o psb_znrmi.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_invk_fact_mod.f90 -o psb_d_invk_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zspmm.f90 -o psb_zspmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_covrl.f90 -o psb_covrl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_remote_mat.F90 -o psb_d_remote_mat.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_invt_fact_mod.f90 -o psb_d_invt_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_invk_fact_mod.f90 -o psb_s_invk_fact_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zgather.f90 -o psb_zgather.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_i_mmio_impl.F90 -o psb_i_mmio_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_csgetptn.f90 -o psb_s_ell_csgetptn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_csgetrow.f90 -o psb_s_ell_csgetrow.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dspalloc.f90 -o psb_dspalloc.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_remote_mat.F90 -o psb_c_remote_mat.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_eswaptran_a.F90 -o psi_eswaptran_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dspasb.f90 -o psb_dspasb.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_csmm.f90 -o psb_s_ell_csmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_remap.F90 -o psb_d_remap.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zhalo.f90 -o psb_zhalo.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_rb_idx_tree_impl.F90 -o psb_c_rb_idx_tree_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zspsm.f90 -o psb_zspsm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_remote_mat.F90 -o psb_z_remote_mat.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zovrl.f90 -o psb_zovrl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_csr_impl.F90 -o psb_z_csr_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_saxpby.f90 -o psb_saxpby.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dspfree.f90 -o psb_dspfree.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dspins.F90 -o psb_dspins.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_coo_impl.F90 -o psb_z_coo_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_invt_fact_mod.f90 -o psb_s_invt_fact_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_csmv.f90 -o psb_s_ell_csmv.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_cswapdata_a.F90 -o psi_cswapdata_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_csc_impl.F90 -o psb_z_csc_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_remote_vect.F90 -o psb_s_remote_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_biconjg_mod.F90 -o psb_biconjg_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_mat_impl.F90 -o psb_z_mat_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_srwextd.f90 -o psb_srwextd.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_mat_dist_impl.f90 -o psb_s_mat_dist_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dgather_a.f90 -o psb_dgather_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_remote_vect.F90 -o psb_d_remote_vect.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_csnm1.f90 -o psb_s_ell_csnm1.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_csnmi.f90 -o psb_s_ell_csnmi.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dhalo_a.f90 -o psb_dhalo_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_cswaptran_a.F90 -o psi_cswaptran_a.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_prec_type.f90 -o psb_prec_type.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_remote_vect.F90 -o psb_c_remote_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sdot.f90 -o psb_sdot.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dsprn.f90 -o psb_dsprn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_csput.f90 -o psb_s_ell_csput.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_cssm.f90 -o psb_s_ell_cssm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_cssv.f90 -o psb_s_ell_cssv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_get_diag.f90 -o psb_s_ell_get_diag.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_remote_vect.F90 -o psb_z_remote_vect.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_maxval.f90 -o psb_s_ell_maxval.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_drwextd.f90 -o psb_drwextd.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dovrl_a.f90 -o psb_dovrl_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sgather_a.f90 -o psb_sgather_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_mold.f90 -o psb_s_ell_mold.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_eovrl_upd_a.f90 -o psi_eovrl_upd_a.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_prec_mod.f90 -o psb_s_prec_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_zswapdata_a.F90 -o psi_zswapdata_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_e_remote_vect.F90 -o psb_e_remote_vect.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_sovrl_restr_a.f90 -o psi_sovrl_restr_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_crwextd.f90 -o psb_crwextd.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_prec_mod.f90 -o psb_d_prec_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_prec_mod.f90 -o psb_c_prec_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_print.f90 -o psb_s_ell_print.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_m_remote_vect.F90 -o psb_m_remote_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_prec_mod.f90 -o psb_z_prec_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_sovrl_save_a.f90 -o psi_sovrl_save_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_rb_idx_tree_impl.F90 -o psb_z_rb_idx_tree_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sasum.f90 -o psb_sasum.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_shalo_a.f90 -o psb_shalo_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sovrl_a.f90 -o psb_sovrl_a.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_mat_dist_impl.f90 -o psb_d_mat_dist_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_mat_dist_impl.f90 -o psb_c_mat_dist_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_reallocate_nz.f90 -o psb_s_ell_reallocate_nz.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_samax.f90 -o psb_samax.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_mgather_a.f90 -o psb_mgather_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_mhalo_a.f90 -o psb_mhalo_a.o +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_movrl_a.f90 -o psb_movrl_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_snrm2.f90 -o psb_snrm2.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_zswaptran_a.F90 -o psi_zswaptran_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sspalloc.f90 -o psb_sspalloc.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_mat_dist_impl.f90 -o psb_z_mat_dist_impl.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_sovrl_upd_a.f90 -o psi_sovrl_upd_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_reinit.f90 -o psb_s_ell_reinit.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_snrmi.f90 -o psb_snrmi.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sspasb.f90 -o psb_sspasb.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_prec_mod.f90 -o psb_prec_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_rowsum.f90 -o psb_s_ell_rowsum.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sspmm.f90 -o psb_sspmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_egather_a.f90 -o psb_egather_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_ehalo_a.f90 -o psb_ehalo_a.o +make[4]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_eovrl_a.f90 -o psb_eovrl_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cgather_a.f90 -o psb_cgather_a.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_diagprec.f90 -o psb_d_diagprec.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_dovrl_restr_a.f90 -o psi_dovrl_restr_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_dovrl_save_a.f90 -o psi_dovrl_save_a.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_nullprec.f90 -o psb_d_nullprec.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_remap.F90 -o psb_s_remap.o mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_bjacprec.f90 -o psb_d_bjacprec.o -mpifort -frecursive -g -O3 -I. -I../modules -c psb_gps_mod.f90 -o psb_gps_mod.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_dovrl_upd_a.f90 -o psi_dovrl_upd_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sspsm.f90 -o psb_sspsm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_camax.f90 -o psb_camax.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zrwextd.f90 -o psb_zrwextd.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_scal.f90 -o psb_s_ell_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_scals.f90 -o psb_s_ell_scals.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_chalo_a.f90 -o psb_chalo_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_covrl_a.f90 -o psb_covrl_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sspfree.f90 -o psb_sspfree.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_sspins.F90 -o psb_sspins.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_diagprec.f90 -o psb_s_diagprec.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zgather_a.f90 -o psb_zgather_a.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_renum_impl.F90 -o psb_s_renum_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zhalo_a.f90 -o psb_zhalo_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_casum.f90 -o psb_casum.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_covrl_restr_a.f90 -o psi_covrl_restr_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_ell_trim.f90 -o psb_s_ell_trim.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_caxpby.f90 -o psb_caxpby.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cdot.f90 -o psb_cdot.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cnrm2.f90 -o psb_cnrm2.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_nullprec.f90 -o psb_s_nullprec.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zovrl_a.f90 -o psb_zovrl_a.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_covrl_save_a.f90 -o psi_covrl_save_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hdia_allocate_mnnz.f90 -o psb_s_hdia_allocate_mnnz.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_covrl_upd_a.f90 -o psi_covrl_upd_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cnrmi.f90 -o psb_cnrmi.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cspmm.f90 -o psb_cspmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cspsm.f90 -o psb_cspsm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_ssprn.f90 -o psb_ssprn.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_glob_to_loc.f90 -o psb_glob_to_loc.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cmlt_vect.f90 -o psb_cmlt_vect.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hdia_csmv.f90 -o psb_s_hdia_csmv.o +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/impl» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_sspspmm.F90 -o psb_sspspmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dspspmm.F90 -o psb_dspspmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cspspmm.F90 -o psb_cspspmm.o mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_bjacprec.f90 -o psb_s_bjacprec.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_zovrl_restr_a.f90 -o psi_zovrl_restr_a.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_diagprec.f90 -o psb_c_diagprec.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_nullprec.f90 -o psb_c_nullprec.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hdia_mold.f90 -o psb_s_hdia_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hdia_print.f90 -o psb_s_hdia_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_aclsum.f90 -o psb_s_hll_aclsum.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_zovrl_save_a.f90 -o psi_zovrl_save_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zspspmm.F90 -o psb_zspspmm.o mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_bjacprec.f90 -o psb_c_bjacprec.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_diagprec.f90 -o psb_z_diagprec.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_allocate_mnnz.f90 -o psb_s_hll_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_arwsum.f90 -o psb_s_hll_arwsum.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_ssymbmm.f90 -o psb_ssymbmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dmlt_vect.f90 -o psb_dmlt_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zmlt_vect.f90 -o psb_zmlt_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_loc_to_glob.f90 -o psb_loc_to_glob.o +mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_zovrl_upd_a.f90 -o psi_zovrl_upd_a.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_renum_impl.F90 -o psb_d_renum_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_nullprec.f90 -o psb_z_nullprec.o mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_bjacprec.f90 -o psb_z_bjacprec.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_colsum.f90 -o psb_s_hll_colsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_csgetblk.f90 -o psb_s_hll_csgetblk.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_iallc.f90 -o psb_iallc.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_iasb.f90 -o psb_iasb.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_smlt_vect.f90 -o psb_smlt_vect.o +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cdiv_vect.f90 -o psb_cdiv_vect.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_csgetptn.f90 -o psb_s_hll_csgetptn.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dsymbmm.f90 -o psb_dsymbmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_csgetrow.f90 -o psb_s_hll_csgetrow.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_ddiv_vect.f90 -o psb_ddiv_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zdiv_vect.f90 -o psb_zdiv_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_ifree.f90 -o psb_ifree.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_csmm.f90 -o psb_s_hll_csmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_csmv.f90 -o psb_s_hll_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_csnm1.f90 -o psb_s_hll_csnm1.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_renum_impl.F90 -o psb_c_renum_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_renum_impl.F90 -o psb_z_renum_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sdiv_vect.f90 -o psb_sdiv_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cinv_vect.f90 -o psb_cinv_vect.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_csnmi.f90 -o psb_s_hll_csnmi.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_csput.f90 -o psb_s_hll_csput.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_iins.f90 -o psb_iins.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_csymbmm.f90 -o psb_csymbmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_cssm.f90 -o psb_s_hll_cssm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_cssv.f90 -o psb_s_hll_cssv.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dinv_vect.f90 -o psb_dinv_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zinv_vect.f90 -o psb_zinv_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_lallc.f90 -o psb_lallc.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sinv_vect.f90 -o psb_sinv_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dcmp_vect.f90 -o psb_dcmp_vect.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_get_diag.f90 -o psb_s_hll_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_maxval.f90 -o psb_s_hll_maxval.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_mold.f90 -o psb_s_hll_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_print.f90 -o psb_s_hll_print.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zsymbmm.f90 -o psb_zsymbmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_scmp_vect.f90 -o psb_scmp_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_ccmp_vect.f90 -o psb_ccmp_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zcmp_vect.f90 -o psb_zcmp_vect.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_reallocate_nz.f90 -o psb_s_hll_reallocate_nz.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cabs_vect.f90 -o psb_cabs_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_snumbmm.f90 -o psb_snumbmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dabs_vect.f90 -o psb_dabs_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sabs_vect.f90 -o psb_sabs_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_lasb.f90 -o psb_lasb.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zabs_vect.f90 -o psb_zabs_vect.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_reinit.f90 -o psb_s_hll_reinit.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cgetmatinfo.F90 -o psb_cgetmatinfo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dgetmatinfo.F90 -o psb_dgetmatinfo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_sgetmatinfo.F90 -o psb_sgetmatinfo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dnumbmm.f90 -o psb_dnumbmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zgetmatinfo.F90 -o psb_zgetmatinfo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_lfree.f90 -o psb_lfree.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cnumbmm.f90 -o psb_cnumbmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_lins.f90 -o psb_lins.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_rowsum.f90 -o psb_s_hll_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_scal.f90 -o psb_s_hll_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_scals.f90 -o psb_s_hll_scals.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_dia_from_coo.f90 -o psb_s_mv_dia_from_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_build_mtpart.F90 -o psi_build_mtpart.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_ell_from_coo.f90 -o psb_s_mv_ell_from_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sallc.f90 -o psb_sallc.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sasb.f90 -o psb_sasb.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sfree.f90 -o psb_sfree.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_ell_from_fmt.f90 -o psb_s_mv_ell_from_fmt.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_znumbmm.f90 -o psb_znumbmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_ell_to_coo.f90 -o psb_s_mv_ell_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_ell_to_fmt.f90 -o psb_s_mv_ell_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_hdia_from_coo.f90 -o psb_s_mv_hdia_from_coo.o +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/psblas» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c smmp.f90 -o smmp.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c lsmmp.f90 -o lsmmp.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sgeprt.f90 -o psb_sgeprt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_hdia_to_coo.f90 -o psb_s_mv_hdia_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_hll_from_coo.f90 -o psb_s_mv_hll_from_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dgeprt.f90 -o psb_dgeprt.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sins.f90 -o psb_sins.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_hll_from_fmt.f90 -o psb_s_mv_hll_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_hll_to_coo.f90 -o psb_s_mv_hll_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_mv_hll_to_fmt.f90 -o psb_s_mv_hll_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_dia_from_coo.f90 -o psb_c_cp_dia_from_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cgeprt.f90 -o psb_cgeprt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_dia_to_coo.f90 -o psb_c_cp_dia_to_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dallc.f90 -o psb_dallc.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_ell_from_coo.f90 -o psb_c_cp_ell_from_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zgeprt.f90 -o psb_zgeprt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_ell_from_fmt.f90 -o psb_c_cp_ell_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_ell_to_coo.f90 -o psb_c_cp_ell_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_ell_to_fmt.f90 -o psb_c_cp_ell_to_fmt.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_spdot_srtd.f90 -o psb_spdot_srtd.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dasb.f90 -o psb_dasb.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_aspxpby.f90 -o psb_aspxpby.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dfree.f90 -o psb_dfree.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_hdia_from_coo.f90 -o psb_c_cp_hdia_from_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dins.f90 -o psb_dins.o +/usr/bin/install -c -p -p *.mod ../modules +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_spge_dot.f90 -o psb_spge_dot.o +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_saplusat.f90 -o psb_saplusat.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_daplusat.f90 -o psb_daplusat.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_caplusat.f90 -o psb_caplusat.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zaplusat.f90 -o psb_zaplusat.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_samax_s.f90 -o psb_samax_s.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_hdia_to_coo.f90 -o psb_c_cp_hdia_to_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_damax_s.f90 -o psb_damax_s.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_hll_from_coo.f90 -o psb_c_cp_hll_from_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_camax_s.f90 -o psb_camax_s.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zamax_s.f90 -o psb_zamax_s.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_callc.f90 -o psb_callc.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_casb.f90 -o psb_casb.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sasum_s.f90 -o psb_sasum_s.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dasum_s.f90 -o psb_dasum_s.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cfree.f90 -o psb_cfree.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_casum_s.f90 -o psb_casum_s.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_hll_from_fmt.f90 -o psb_c_cp_hll_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_hll_to_coo.f90 -o psb_c_cp_hll_to_coo.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zasum_s.f90 -o psb_zasum_s.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_cp_hll_to_fmt.f90 -o psb_c_cp_hll_to_fmt.o +make -C linsolve mods +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve» +mpifort -frecursive -g -O3 -I. -I../modules -c psb_base_linsolve_conv_mod.f90 -o psb_base_linsolve_conv_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_linsolve_mod.f90 -o psb_linsolve_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_aclsum.f90 -o psb_c_dia_aclsum.o +make -C prec objs +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec» +/usr/bin/install -c -p -p *.mod ../modules +make -C impl objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec/impl» +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_prec_type_impl.f90 -o psb_s_prec_type_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cins.f90 -o psb_cins.o +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/util» +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_prec_type_impl.f90 -o psb_d_prec_type_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_allocate_mnnz.f90 -o psb_c_dia_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_prec_type_impl.f90 -o psb_c_prec_type_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zallc.f90 -o psb_zallc.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_arwsum.f90 -o psb_c_dia_arwsum.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zasb.f90 -o psb_zasb.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zfree.f90 -o psb_zfree.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_s_linsolve_conv_mod.f90 -o psb_s_linsolve_conv_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zins.f90 -o psb_zins.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_mallc_a.f90 -o psb_mallc_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_colsum.f90 -o psb_c_dia_colsum.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_masb_a.f90 -o psb_masb_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_mfree_a.f90 -o psb_mfree_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_csgetptn.f90 -o psb_c_dia_csgetptn.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_mins_a.f90 -o psb_mins_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_eallc_a.f90 -o psb_eallc_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_easb_a.f90 -o psb_easb_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_efree_a.f90 -o psb_efree_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_eins_a.f90 -o psb_eins_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sallc_a.f90 -o psb_sallc_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_csgetrow.f90 -o psb_c_dia_csgetrow.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_c_linsolve_conv_mod.f90 -o psb_c_linsolve_conv_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sasb_a.f90 -o psb_sasb_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sfree_a.f90 -o psb_sfree_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_csmm.f90 -o psb_c_dia_csmm.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_d_linsolve_conv_mod.f90 -o psb_d_linsolve_conv_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_linsolve_conv_mod.f90 -o psb_z_linsolve_conv_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_prec_type_impl.f90 -o psb_z_prec_type_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sins_a.f90 -o psb_sins_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dallc_a.f90 -o psb_dallc_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_diagprec_impl.f90 -o psb_d_diagprec_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dasb_a.f90 -o psb_dasb_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dfree_a.f90 -o psb_dfree_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dins_a.f90 -o psb_dins_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_csmv.f90 -o psb_c_dia_csmv.o +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_callc_a.f90 -o psb_callc_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_casb_a.f90 -o psb_casb_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_get_diag.f90 -o psb_c_dia_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_bjacprec_impl.f90 -o psb_d_bjacprec_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cfree_a.f90 -o psb_cfree_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_maxval.f90 -o psb_c_dia_maxval.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cins_a.f90 -o psb_cins_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zallc_a.f90 -o psb_zallc_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zasb_a.f90 -o psb_zasb_a.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zfree_a.f90 -o psb_zfree_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_mold.f90 -o psb_c_dia_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_nullprec_impl.f90 -o psb_d_nullprec_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zins_a.f90 -o psb_zins_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_ilu0_fact.f90 -o psb_d_ilu0_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_print.f90 -o psb_c_dia_print.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zspalloc.f90 -o psb_zspalloc.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_reallocate_nz.f90 -o psb_c_dia_reallocate_nz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_iluk_fact.f90 -o psb_d_iluk_fact.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zspasb.f90 -o psb_zspasb.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_reinit.f90 -o psb_c_dia_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_rowsum.f90 -o psb_c_dia_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_scal.f90 -o psb_c_dia_scal.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_remap.F90 -o psb_z_remap.o +/usr/bin/install -c -p -p *.mod ../modules +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve» +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_ilut_fact.f90 -o psb_d_ilut_fact.o +make -C cbind objs +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind» +cd base && make objs LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/base» +Makefile:30: attenzione: sovrascrittura del set di istruzioni per l'obiettivo «.F90.o» +../../Make.inc:116: attenzione: ignorato il set di istruzioni obsoleto per l'obiettivo «.F90.o» +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_objhandle_mod.F90 -o psb_objhandle_mod.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_base.c -o psb_c_base.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_sbase.c -o psb_c_sbase.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_dbase.c -o psb_c_dbase.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_cbase.c -o psb_c_cbase.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_zbase.c -o psb_c_zbase.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zspfree.f90 -o psb_zspfree.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_scomm.c -o psb_c_scomm.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_dcomm.c -o psb_c_dcomm.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_ccomm.c -o psb_c_ccomm.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_zcomm.c -o psb_c_zcomm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zspins.F90 -o psb_zspins.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_cpenv_mod.F90 -o psb_cpenv_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zsprn.f90 -o psb_zsprn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dprecbld.f90 -o psb_dprecbld.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_scals.f90 -o psb_c_dia_scals.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dprecinit.f90 -o psb_dprecinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_aclsum.f90 -o psb_c_ell_aclsum.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cspalloc.f90 -o psb_cspalloc.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cspasb.f90 -o psb_cspasb.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_diagprec_impl.f90 -o psb_s_diagprec_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_remap.F90 -o psb_c_remap.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cspfree.f90 -o psb_cspfree.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cspins.F90 -o psb_cspins.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_csprn.f90 -o psb_csprn.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cd_set_bld.f90 -o psb_cd_set_bld.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_bjacprec_impl.f90 -o psb_s_bjacprec_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_allocate_mnnz.f90 -o psb_c_ell_allocate_mnnz.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_s_map.f90 -o psb_s_map.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_d_map.f90 -o psb_d_map.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_arwsum.f90 -o psb_c_ell_arwsum.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_base_tools_cbind_mod.F90 -o psb_base_tools_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_c_map.f90 -o psb_c_map.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_nullprec_impl.f90 -o psb_s_nullprec_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_ilu0_fact.f90 -o psb_s_ilu0_fact.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_z_map.f90 -o psb_z_map.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_s_par_csr_spspmm.f90 -o psb_s_par_csr_spspmm.o +make -C linsolve objs +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve» +/usr/bin/install -c -p -p *.mod ../modules +make -C impl objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve/impl» +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dkrylov.f90 -o psb_dkrylov.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_colsum.f90 -o psb_c_ell_colsum.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_d_par_csr_spspmm.f90 -o psb_d_par_csr_spspmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_iluk_fact.f90 -o psb_s_iluk_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_skrylov.f90 -o psb_skrylov.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_ilut_fact.f90 -o psb_s_ilut_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_csgetblk.f90 -o psb_c_ell_csgetblk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_csgetptn.f90 -o psb_c_ell_csgetptn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_csgetrow.f90 -o psb_c_ell_csgetrow.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_ckrylov.f90 -o psb_ckrylov.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_s_psblas_cbind_mod.f90 -o psb_s_psblas_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_d_psblas_cbind_mod.f90 -o psb_d_psblas_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_c_psblas_cbind_mod.f90 -o psb_c_psblas_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zkrylov.f90 -o psb_zkrylov.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_sprecbld.f90 -o psb_sprecbld.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_sprecinit.f90 -o psb_sprecinit.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_z_psblas_cbind_mod.f90 -o psb_z_psblas_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_csmm.f90 -o psb_c_ell_csmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_diagprec_impl.f90 -o psb_c_diagprec_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_c_par_csr_spspmm.f90 -o psb_c_par_csr_spspmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_z_par_csr_spspmm.f90 -o psb_z_par_csr_spspmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_drichardson.f90 -o psb_drichardson.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_glob_transpose.F90 -o psb_s_glob_transpose.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_srichardson.f90 -o psb_srichardson.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_tools_cbind_mod.F90 -o psb_s_tools_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_csmv.f90 -o psb_c_ell_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_bjacprec_impl.f90 -o psb_c_bjacprec_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_crichardson.f90 -o psb_crichardson.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zrichardson.f90 -o psb_zrichardson.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_serial_cbind_mod.F90 -o psb_s_serial_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_tools_cbind_mod.F90 -o psb_d_tools_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_serial_cbind_mod.F90 -o psb_d_serial_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dcgstab.f90 -o psb_dcgstab.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dcg.F90 -o psb_dcg.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_glob_transpose.F90 -o psb_d_glob_transpose.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_tools_cbind_mod.F90 -o psb_c_tools_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_serial_cbind_mod.F90 -o psb_c_serial_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_csnm1.f90 -o psb_c_ell_csnm1.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dfcg.F90 -o psb_dfcg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_nullprec_impl.f90 -o psb_c_nullprec_impl.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_glob_transpose.F90 -o psb_c_glob_transpose.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dgcr.f90 -o psb_dgcr.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dcgs.f90 -o psb_dcgs.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_csnmi.f90 -o psb_c_ell_csnmi.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_ilu0_fact.f90 -o psb_c_ilu0_fact.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_tools_cbind_mod.F90 -o psb_z_tools_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_serial_cbind_mod.F90 -o psb_z_serial_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_iluk_fact.f90 -o psb_c_iluk_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_ilut_fact.f90 -o psb_c_ilut_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_csput.f90 -o psb_c_ell_csput.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dbicg.f90 -o psb_dbicg.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_s_comm_cbind_mod.f90 -o psb_s_comm_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_cssm.f90 -o psb_c_ell_cssm.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_d_comm_cbind_mod.f90 -o psb_d_comm_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dcgstabl.f90 -o psb_dcgstabl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_cprecbld.f90 -o psb_cprecbld.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_c_comm_cbind_mod.f90 -o psb_c_comm_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_cprecinit.f90 -o psb_cprecinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_drgmres.f90 -o psb_drgmres.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_cssv.f90 -o psb_c_ell_cssv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_scgstab.f90 -o psb_scgstab.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_glob_transpose.F90 -o psb_z_glob_transpose.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_cgetelem.f90 -o psb_cgetelem.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_diagprec_impl.f90 -o psb_z_diagprec_impl.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_z_comm_cbind_mod.f90 -o psb_z_comm_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_bjacprec_impl.f90 -o psb_z_bjacprec_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_nullprec_impl.f90 -o psb_z_nullprec_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_scg.F90 -o psb_scg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_get_diag.f90 -o psb_c_ell_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_sfcg.F90 -o psb_sfcg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_sgcr.f90 -o psb_sgcr.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_base_psblas_cbind_mod.f90 -o psb_base_psblas_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dgetelem.f90 -o psb_dgetelem.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_ilu0_fact.f90 -o psb_z_ilu0_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_scgs.f90 -o psb_scgs.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_sbicg.f90 -o psb_sbicg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_maxval.f90 -o psb_c_ell_maxval.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sgetelem.f90 -o psb_sgetelem.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_scgstabl.f90 -o psb_scgstabl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_srgmres.f90 -o psb_srgmres.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_ccgstab.f90 -o psb_ccgstab.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zgetelem.f90 -o psb_zgetelem.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_iluk_fact.f90 -o psb_z_iluk_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_ccg.F90 -o psb_ccg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_ilut_fact.f90 -o psb_z_ilut_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zprecbld.f90 -o psb_zprecbld.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_mold.f90 -o psb_c_ell_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_cfcg.F90 -o psb_cfcg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_cgcr.f90 -o psb_cgcr.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_ccgs.f90 -o psb_ccgs.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_cbicg.f90 -o psb_cbicg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_ccgstabl.f90 -o psb_ccgstabl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_print.f90 -o psb_c_ell_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_crgmres.f90 -o psb_crgmres.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_reallocate_nz.f90 -o psb_c_ell_reallocate_nz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_reinit.f90 -o psb_c_ell_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zprecinit.f90 -o psb_zprecinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_rowsum.f90 -o psb_c_ell_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_scal.f90 -o psb_c_ell_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zcgstab.f90 -o psb_zcgstab.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zcg.F90 -o psb_zcg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_scals.f90 -o psb_c_ell_scals.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zfcg.F90 -o psb_zfcg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zgcr.f90 -o psb_zgcr.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_sparsify.f90 -o psb_c_sparsify.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zcgs.f90 -o psb_zcgs.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_ell_trim.f90 -o psb_c_ell_trim.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hdia_allocate_mnnz.f90 -o psb_c_hdia_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zbicg.f90 -o psb_zbicg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_sparsify.f90 -o psb_d_sparsify.o +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base» +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_sparsify.f90 -o psb_s_sparsify.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zcgstabl.f90 -o psb_zcgstabl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zrgmres.f90 -o psb_zrgmres.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_sparsify.f90 -o psb_z_sparsify.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hdia_csmv.f90 -o psb_c_hdia_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hdia_mold.f90 -o psb_c_hdia_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_crwclip.f90 -o psb_crwclip.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hdia_print.f90 -o psb_c_hdia_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_aclsum.f90 -o psb_c_hll_aclsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_drwclip.f90 -o psb_drwclip.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_srwclip.f90 -o psb_srwclip.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_allocate_mnnz.f90 -o psb_c_hll_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_arwsum.f90 -o psb_c_hll_arwsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zrwclip.f90 -o psb_zrwclip.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_sp_drop.f90 -o psb_c_sp_drop.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_colsum.f90 -o psb_c_hll_colsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_csgetblk.f90 -o psb_c_hll_csgetblk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_sp_drop.f90 -o psb_d_sp_drop.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_sp_drop.f90 -o psb_s_sp_drop.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_sp_drop.f90 -o psb_z_sp_drop.o +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve/impl» +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve» +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dsparse_biconjg_llk_noth.F90 -o psb_dsparse_biconjg_llk_noth.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_csgetptn.f90 -o psb_c_hll_csgetptn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_csgetrow.f90 -o psb_c_hll_csgetrow.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_csmm.f90 -o psb_c_hll_csmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dsparse_biconjg_llk.F90 -o psb_dsparse_biconjg_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dsparse_biconjg_mlk.F90 -o psb_dsparse_biconjg_mlk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_csmv.f90 -o psb_c_hll_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_csnm1.f90 -o psb_c_hll_csnm1.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dsparse_biconjg_s_ft_llk.F90 -o psb_dsparse_biconjg_s_ft_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dsparse_biconjg_s_llk.F90 -o psb_dsparse_biconjg_s_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_csparse_biconjg_llk_noth.F90 -o psb_csparse_biconjg_llk_noth.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_csparse_biconjg_llk.F90 -o psb_csparse_biconjg_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_csparse_biconjg_mlk.F90 -o psb_csparse_biconjg_mlk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_csnmi.f90 -o psb_c_hll_csnmi.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_csput.f90 -o psb_c_hll_csput.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_csparse_biconjg_s_ft_llk.F90 -o psb_csparse_biconjg_s_ft_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_cssm.f90 -o psb_c_hll_cssm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_csparse_biconjg_s_llk.F90 -o psb_csparse_biconjg_s_llk.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_base_cbind_mod.f90 -o psb_base_cbind_mod.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_cssv.f90 -o psb_c_hll_cssv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zsparse_biconjg_llk_noth.F90 -o psb_zsparse_biconjg_llk_noth.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_get_diag.f90 -o psb_c_hll_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_maxval.f90 -o psb_c_hll_maxval.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_mold.f90 -o psb_c_hll_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zsparse_biconjg_llk.F90 -o psb_zsparse_biconjg_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_print.f90 -o psb_c_hll_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zsparse_biconjg_mlk.F90 -o psb_zsparse_biconjg_mlk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zsparse_biconjg_s_ft_llk.F90 -o psb_zsparse_biconjg_s_ft_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_zsparse_biconjg_s_llk.F90 -o psb_zsparse_biconjg_s_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_ssparse_biconjg_llk_noth.F90 -o psb_ssparse_biconjg_llk_noth.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_reallocate_nz.f90 -o psb_c_hll_reallocate_nz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_reinit.f90 -o psb_c_hll_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_rowsum.f90 -o psb_c_hll_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_scal.f90 -o psb_c_hll_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_ssparse_biconjg_llk.F90 -o psb_ssparse_biconjg_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_ssparse_biconjg_mlk.F90 -o psb_ssparse_biconjg_mlk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_hll_scals.f90 -o psb_c_hll_scals.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_dia_from_coo.f90 -o psb_c_mv_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_ssparse_biconjg_s_ft_llk.F90 -o psb_ssparse_biconjg_s_ft_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_ell_from_coo.f90 -o psb_c_mv_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_ssparse_biconjg_s_llk.F90 -o psb_ssparse_biconjg_s_llk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_ell_from_fmt.f90 -o psb_c_mv_ell_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_ell_to_coo.f90 -o psb_c_mv_ell_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_ainv_bld.f90 -o psb_d_ainv_bld.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_ell_to_fmt.f90 -o psb_c_mv_ell_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_hdia_from_coo.f90 -o psb_c_mv_hdia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_hdia_to_coo.f90 -o psb_c_mv_hdia_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_hll_from_coo.f90 -o psb_c_mv_hll_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_hll_from_fmt.f90 -o psb_c_mv_hll_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_ainv_bld.f90 -o psb_c_ainv_bld.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_ainv_bld.f90 -o psb_s_ainv_bld.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_hll_to_coo.f90 -o psb_c_mv_hll_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_ainv_bld.f90 -o psb_z_ainv_bld.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_invt_fact.f90 -o psb_c_invt_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_mv_hll_to_fmt.f90 -o psb_c_mv_hll_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_invt_fact.f90 -o psb_d_invt_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_dia_from_coo.f90 -o psb_d_cp_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_dia_to_coo.f90 -o psb_d_cp_dia_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_ell_from_coo.f90 -o psb_d_cp_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_ell_from_fmt.f90 -o psb_d_cp_ell_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_invt_fact.f90 -o psb_s_invt_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_ell_to_coo.f90 -o psb_d_cp_ell_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_invt_fact.f90 -o psb_z_invt_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_ell_to_fmt.f90 -o psb_d_cp_ell_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_c_invk_fact.f90 -o psb_c_invk_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_hdia_from_coo.f90 -o psb_d_cp_hdia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_hdia_to_coo.f90 -o psb_d_cp_hdia_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_d_invk_fact.f90 -o psb_d_invk_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_hll_from_coo.f90 -o psb_d_cp_hll_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_hll_from_fmt.f90 -o psb_d_cp_hll_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_hll_to_coo.f90 -o psb_d_cp_hll_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_cp_hll_to_fmt.f90 -o psb_d_cp_hll_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_aclsum.f90 -o psb_d_dia_aclsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_s_invk_fact.f90 -o psb_s_invk_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_allocate_mnnz.f90 -o psb_d_dia_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_arwsum.f90 -o psb_d_dia_arwsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_colsum.f90 -o psb_d_dia_colsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_csgetptn.f90 -o psb_d_dia_csgetptn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_invk_fact.f90 -o psb_z_invk_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_csgetrow.f90 -o psb_d_dia_csgetrow.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_csmm.f90 -o psb_d_dia_csmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_csmv.f90 -o psb_d_dia_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_get_diag.f90 -o psb_d_dia_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_maxval.f90 -o psb_d_dia_maxval.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_mold.f90 -o psb_d_dia_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_print.f90 -o psb_d_dia_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_reallocate_nz.f90 -o psb_d_dia_reallocate_nz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_reinit.f90 -o psb_d_dia_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_rowsum.f90 -o psb_d_dia_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_scal.f90 -o psb_d_dia_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dia_scals.f90 -o psb_d_dia_scals.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_aclsum.f90 -o psb_d_ell_aclsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_allocate_mnnz.f90 -o psb_d_ell_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_arwsum.f90 -o psb_d_ell_arwsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_colsum.f90 -o psb_d_ell_colsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_csgetblk.f90 -o psb_d_ell_csgetblk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_csgetptn.f90 -o psb_d_ell_csgetptn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_csgetrow.f90 -o psb_d_ell_csgetrow.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_csmm.f90 -o psb_d_ell_csmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_csmv.f90 -o psb_d_ell_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_csnm1.f90 -o psb_d_ell_csnm1.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_csnmi.f90 -o psb_d_ell_csnmi.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_csput.f90 -o psb_d_ell_csput.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_cssm.f90 -o psb_d_ell_cssm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_cssv.f90 -o psb_d_ell_cssv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_get_diag.f90 -o psb_d_ell_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_maxval.f90 -o psb_d_ell_maxval.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_mold.f90 -o psb_d_ell_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_print.f90 -o psb_d_ell_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_reallocate_nz.f90 -o psb_d_ell_reallocate_nz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_reinit.f90 -o psb_d_ell_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_rowsum.f90 -o psb_d_ell_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_scal.f90 -o psb_d_ell_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_scals.f90 -o psb_d_ell_scals.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_ell_trim.f90 -o psb_d_ell_trim.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hdia_allocate_mnnz.f90 -o psb_d_hdia_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hdia_csmv.f90 -o psb_d_hdia_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hdia_mold.f90 -o psb_d_hdia_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hdia_print.f90 -o psb_d_hdia_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_aclsum.f90 -o psb_d_hll_aclsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_allocate_mnnz.f90 -o psb_d_hll_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_arwsum.f90 -o psb_d_hll_arwsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_colsum.f90 -o psb_d_hll_colsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_csgetblk.f90 -o psb_d_hll_csgetblk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_csgetptn.f90 -o psb_d_hll_csgetptn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_csgetrow.f90 -o psb_d_hll_csgetrow.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_csmm.f90 -o psb_d_hll_csmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_csmv.f90 -o psb_d_hll_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_csnm1.f90 -o psb_d_hll_csnm1.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_csnmi.f90 -o psb_d_hll_csnmi.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_csput.f90 -o psb_d_hll_csput.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_cssm.f90 -o psb_d_hll_cssm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_cssv.f90 -o psb_d_hll_cssv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_get_diag.f90 -o psb_d_hll_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_maxval.f90 -o psb_d_hll_maxval.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_mold.f90 -o psb_d_hll_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_print.f90 -o psb_d_hll_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_reallocate_nz.f90 -o psb_d_hll_reallocate_nz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_reinit.f90 -o psb_d_hll_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_rowsum.f90 -o psb_d_hll_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_scal.f90 -o psb_d_hll_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_hll_scals.f90 -o psb_d_hll_scals.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_dia_from_coo.f90 -o psb_d_mv_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_ell_from_coo.f90 -o psb_d_mv_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_ell_from_fmt.f90 -o psb_d_mv_ell_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_ell_to_coo.f90 -o psb_d_mv_ell_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_ell_to_fmt.f90 -o psb_d_mv_ell_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_hdia_from_coo.f90 -o psb_d_mv_hdia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_hdia_to_coo.f90 -o psb_d_mv_hdia_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_hll_from_coo.f90 -o psb_d_mv_hll_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_hll_from_fmt.f90 -o psb_d_mv_hll_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_hll_to_coo.f90 -o psb_d_mv_hll_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_mv_hll_to_fmt.f90 -o psb_d_mv_hll_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_dia_from_coo.f90 -o psb_z_cp_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_dia_to_coo.f90 -o psb_z_cp_dia_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_ell_from_coo.f90 -o psb_z_cp_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_ell_from_fmt.f90 -o psb_z_cp_ell_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_ell_to_coo.f90 -o psb_z_cp_ell_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_ell_to_fmt.f90 -o psb_z_cp_ell_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_hdia_from_coo.f90 -o psb_z_cp_hdia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_hdia_to_coo.f90 -o psb_z_cp_hdia_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_hll_from_coo.f90 -o psb_z_cp_hll_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_hll_from_fmt.f90 -o psb_z_cp_hll_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_hll_to_coo.f90 -o psb_z_cp_hll_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_cp_hll_to_fmt.f90 -o psb_z_cp_hll_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_aclsum.f90 -o psb_z_dia_aclsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_allocate_mnnz.f90 -o psb_z_dia_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_arwsum.f90 -o psb_z_dia_arwsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_colsum.f90 -o psb_z_dia_colsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_csgetptn.f90 -o psb_z_dia_csgetptn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_csgetrow.f90 -o psb_z_dia_csgetrow.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_csmm.f90 -o psb_z_dia_csmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_csmv.f90 -o psb_z_dia_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_get_diag.f90 -o psb_z_dia_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_maxval.f90 -o psb_z_dia_maxval.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_mold.f90 -o psb_z_dia_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_print.f90 -o psb_z_dia_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_reallocate_nz.f90 -o psb_z_dia_reallocate_nz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_reinit.f90 -o psb_z_dia_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_rowsum.f90 -o psb_z_dia_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_scal.f90 -o psb_z_dia_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dia_scals.f90 -o psb_z_dia_scals.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_aclsum.f90 -o psb_z_ell_aclsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_allocate_mnnz.f90 -o psb_z_ell_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_arwsum.f90 -o psb_z_ell_arwsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_colsum.f90 -o psb_z_ell_colsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_csgetblk.f90 -o psb_z_ell_csgetblk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_csgetptn.f90 -o psb_z_ell_csgetptn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_csgetrow.f90 -o psb_z_ell_csgetrow.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_csmm.f90 -o psb_z_ell_csmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_csmv.f90 -o psb_z_ell_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_csnm1.f90 -o psb_z_ell_csnm1.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_csnmi.f90 -o psb_z_ell_csnmi.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_csput.f90 -o psb_z_ell_csput.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_cssm.f90 -o psb_z_ell_cssm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_cssv.f90 -o psb_z_ell_cssv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_get_diag.f90 -o psb_z_ell_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_maxval.f90 -o psb_z_ell_maxval.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_mold.f90 -o psb_z_ell_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_print.f90 -o psb_z_ell_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_reallocate_nz.f90 -o psb_z_ell_reallocate_nz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_reinit.f90 -o psb_z_ell_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_rowsum.f90 -o psb_z_ell_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_scal.f90 -o psb_z_ell_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_scals.f90 -o psb_z_ell_scals.o +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec/impl» +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec» +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_ell_trim.f90 -o psb_z_ell_trim.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hdia_allocate_mnnz.f90 -o psb_z_hdia_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hdia_csmv.f90 -o psb_z_hdia_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hdia_mold.f90 -o psb_z_hdia_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hdia_print.f90 -o psb_z_hdia_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_aclsum.f90 -o psb_z_hll_aclsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_allocate_mnnz.f90 -o psb_z_hll_allocate_mnnz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_arwsum.f90 -o psb_z_hll_arwsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_colsum.f90 -o psb_z_hll_colsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_csgetblk.f90 -o psb_z_hll_csgetblk.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_csgetptn.f90 -o psb_z_hll_csgetptn.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_csgetrow.f90 -o psb_z_hll_csgetrow.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_csmm.f90 -o psb_z_hll_csmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_csmv.f90 -o psb_z_hll_csmv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_csnm1.f90 -o psb_z_hll_csnm1.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_csnmi.f90 -o psb_z_hll_csnmi.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_csput.f90 -o psb_z_hll_csput.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_cssm.f90 -o psb_z_hll_cssm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_cssv.f90 -o psb_z_hll_cssv.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_get_diag.f90 -o psb_z_hll_get_diag.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_maxval.f90 -o psb_z_hll_maxval.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_mold.f90 -o psb_z_hll_mold.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_print.f90 -o psb_z_hll_print.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_reallocate_nz.f90 -o psb_z_hll_reallocate_nz.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_reinit.f90 -o psb_z_hll_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_rowsum.f90 -o psb_z_hll_rowsum.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_scal.f90 -o psb_z_hll_scal.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_hll_scals.f90 -o psb_z_hll_scals.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_dia_from_coo.f90 -o psb_z_mv_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_ell_from_coo.f90 -o psb_z_mv_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_ell_from_fmt.f90 -o psb_z_mv_ell_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_ell_to_coo.f90 -o psb_z_mv_ell_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_ell_to_fmt.f90 -o psb_z_mv_ell_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_hdia_from_coo.f90 -o psb_z_mv_hdia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_hdia_to_coo.f90 -o psb_z_mv_hdia_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_hll_from_coo.f90 -o psb_z_mv_hll_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_hll_from_fmt.f90 -o psb_z_mv_hll_from_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_hll_to_coo.f90 -o psb_z_mv_hll_to_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_mv_hll_to_fmt.f90 -o psb_z_mv_hll_to_fmt.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_s_xtr_ell_from_coo.f90 -o psi_s_xtr_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_c_xtr_ell_from_coo.f90 -o psi_c_xtr_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_d_xtr_ell_from_coo.f90 -o psi_d_xtr_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_z_xtr_ell_from_coo.f90 -o psi_z_xtr_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_s_convert_ell_from_coo.f90 -o psi_s_convert_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_c_convert_ell_from_coo.f90 -o psi_c_convert_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_d_convert_ell_from_coo.f90 -o psi_d_convert_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_z_convert_ell_from_coo.f90 -o psi_z_convert_ell_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_s_convert_hll_from_coo.f90 -o psi_s_convert_hll_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_c_convert_hll_from_coo.f90 -o psi_c_convert_hll_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_d_convert_hll_from_coo.f90 -o psi_d_convert_hll_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_z_convert_hll_from_coo.f90 -o psi_z_convert_hll_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_s_xtr_dia_from_coo.f90 -o psi_s_xtr_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_c_xtr_dia_from_coo.f90 -o psi_c_xtr_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_d_xtr_dia_from_coo.f90 -o psi_d_xtr_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_z_xtr_dia_from_coo.f90 -o psi_z_xtr_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_s_xtr_coo_from_dia.f90 -o psi_s_xtr_coo_from_dia.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_d_xtr_coo_from_dia.f90 -o psi_d_xtr_coo_from_dia.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_c_xtr_coo_from_dia.f90 -o psi_c_xtr_coo_from_dia.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_z_xtr_coo_from_dia.f90 -o psi_z_xtr_coo_from_dia.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_s_convert_dia_from_coo.f90 -o psi_s_convert_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_c_convert_dia_from_coo.f90 -o psi_c_convert_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_d_convert_dia_from_coo.f90 -o psi_d_convert_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psi_z_convert_dia_from_coo.f90 -o psi_z_convert_dia_from_coo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_dns_mat_impl.f90 -o psb_s_dns_mat_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_d_dns_mat_impl.f90 -o psb_d_dns_mat_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dns_mat_impl.f90 -o psb_c_dns_mat_impl.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_z_dns_mat_impl.f90 -o psb_z_dns_mat_impl.o +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext/impl» +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext» +/bin/cp -p *.mod psb_base_cbind.h psb_c_base.h psb_c_sbase.h psb_c_dbase.h psb_c_cbase.h psb_c_zbase.h psb_c_scomm.h psb_c_dcomm.h psb_c_ccomm.h psb_c_zcomm.h .. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/base» +cd prec && make objs LIBNAME=libpsb_cbind.a +cd util && make objs LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/prec» +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_sprec_cbind_mod.f90 -o psb_sprec_cbind_mod.o +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/util» +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_c_util_cbind_mod.f90 -o psb_c_util_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_dprec_cbind_mod.f90 -o psb_dprec_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_d_util_cbind_mod.f90 -o psb_d_util_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_cprec_cbind_mod.f90 -o psb_cprec_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_s_util_cbind_mod.f90 -o psb_s_util_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_zprec_cbind_mod.f90 -o psb_zprec_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_z_util_cbind_mod.f90 -o psb_z_util_cbind_mod.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_sprec.c -o psb_c_sprec.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_dprec.c -o psb_c_dprec.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_cprec.c -o psb_c_cprec.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_zprec.c -o psb_c_zprec.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_prec_cbind_mod.f90 -o psb_prec_cbind_mod.o +/bin/cp -p *.mod psb_prec_cbind.h psb_c_sprec.h psb_c_dprec.h psb_c_cprec.h psb_c_zprec.h .. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/prec» +cd linsolve && make objs LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/linsolve» +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_base_linsolve_cbind_mod.f90 -o psb_base_linsolve_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_slinsolve_cbind_mod.f90 -o psb_slinsolve_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_dlinsolve_cbind_mod.f90 -o psb_dlinsolve_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_clinsolve_cbind_mod.f90 -o psb_clinsolve_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_zlinsolve_cbind_mod.f90 -o psb_zlinsolve_cbind_mod.o +mpifort -frecursive -g -O3 -I. -I.. -I../../modules -c psb_util_cbind_mod.f90 -o psb_util_cbind_mod.o +/bin/cp -p *.mod psb_linsolve_cbind.h .. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/linsolve» +/bin/cp -p *.mod psb_util_cbind.h psb_c_cutil.h psb_c_zutil.h psb_c_dutil.h psb_c_sutil.h .. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/util» +/bin/cp -p *.h ../include +/bin/cp -p *.mod ../modules/ +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind» +make -C cbind objs +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind» +cd base && make objs LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/base» +Makefile:30: attenzione: sovrascrittura del set di istruzioni per l'obiettivo «.F90.o» +../../Make.inc:116: attenzione: ignorato il set di istruzioni obsoleto per l'obiettivo «.F90.o» +/bin/cp -p *.mod psb_base_cbind.h psb_c_base.h psb_c_sbase.h psb_c_dbase.h psb_c_cbase.h psb_c_zbase.h psb_c_scomm.h psb_c_dcomm.h psb_c_ccomm.h psb_c_zcomm.h .. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/base» +cd prec && make objs LIBNAME=libpsb_cbind.a +cd util && make objs LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/prec» +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/util» +/bin/cp -p *.mod psb_prec_cbind.h psb_c_sprec.h psb_c_dprec.h psb_c_cprec.h psb_c_zprec.h .. +/bin/cp -p *.mod psb_util_cbind.h psb_c_cutil.h psb_c_zutil.h psb_c_dutil.h psb_c_sutil.h .. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/prec» +cd linsolve && make objs LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/linsolve» +/bin/cp -p *.mod psb_linsolve_cbind.h .. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/util» +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/linsolve» +/bin/cp -p *.h ../include +/bin/cp -p *.mod ../modules/ +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind» +make -C base lib +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base» +make -C modules objs F90="" F90COPT=" " make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/modules» /usr/bin/install -c -p -p *.mod ../../modules /usr/bin/install -c -p -p psb_config.h psb_types.h ../../include @@ -40,34 +1444,139 @@ make -C impl objs make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» make -C internals objs make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» -make -C sort objs (make psi_desc_index.o psi_fnd_owner.o psi_a2a_fnd_owner.o psi_graph_fnd_owner.o psi_adjcncy_fnd_owner.o psi_symm_dep_list.o FC="mpifort") +make -C sort objs make psb_dscatter.o psb_zscatter.o psb_iscatter.o psb_lscatter.o psb_cscatter.o psb_sscatter.o psb_dscatter_a.o psb_zscatter_a.o psb_mscatter_a.o psb_escatter_a.o psb_cscatter_a.o psb_sscatter_a.o psb_dspgather.o psb_sspgather.o psb_zspgather.o psb_cspgather.o FC="mpifort" make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/psblas» -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dspmm.f90 -o psb_dspmm.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dhalo.f90 -o psb_dhalo.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dspsm.f90 -o psb_dspsm.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sgeprt.f90 -o psb_sgeprt.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dovrl.f90 -o psb_dovrl.o +make[2]: Nessuna operazione da eseguire per «objs». +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/psblas» make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» (make psb_icdasb.o psb_ssphalo.o psb_dsphalo.o psb_csphalo.o psb_zsphalo.o psb_dcdbldext.o psb_zcdbldext.o psb_scdbldext.o psb_ccdbldext.o psb_s_remote_mat.o psb_d_remote_mat.o psb_c_remote_mat.o psb_z_remote_mat.o psb_s_remote_vect.o psb_d_remote_vect.o psb_c_remote_vect.o psb_z_remote_vect.o psb_e_remote_vect.o psb_m_remote_vect.o FC="mpifort") -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_shalo.f90 -o psb_shalo.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zgeprt.f90 -o psb_zgeprt.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zspmm.f90 -o psb_zspmm.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zspsm.f90 -o psb_zspsm.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_dspins.F90 -o psb_dspins.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sovrl.f90 -o psb_sovrl.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_saxpby.f90 -o psb_saxpby.o make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» (make psi_dswapdata.o psi_dswaptran.o psi_sswapdata.o psi_sswaptran.o psi_iswapdata.o psi_iswaptran.o psi_lswapdata.o psi_lswaptran.o psi_cswapdata.o psi_cswaptran.o psi_zswapdata.o psi_zswaptran.o psi_dswapdata_a.o psi_dswaptran_a.o psi_sswapdata_a.o psi_sswaptran_a.o psi_mswapdata_a.o psi_mswaptran_a.o psi_eswapdata_a.o psi_eswaptran_a.o psi_cswapdata_a.o psi_cswaptran_a.o psi_zswapdata_a.o psi_zswaptran_a.o FC="mpifort" ) make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/impl» -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_base_mat_impl.F90 -o psb_s_base_mat_impl.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sdot.f90 -o psb_sdot.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_iovrl.f90 -o psb_iovrl.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_lins.f90 -o psb_lins.o -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_base_mat_impl.F90 -o psb_d_base_mat_impl.o +make[3]: Nessuna operazione da eseguire per «objs». +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/impl» make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/sort» -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psb_e_qsort_impl.f90 -o psb_e_qsort_impl.o +make[3]: Nessuna operazione da eseguire per «objs». +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/sort» +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial» +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +make[3]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +make[3]: «psb_dscatter.o» è aggiornato. +make[3]: «psi_desc_index.o» è aggiornato. +make[3]: «psb_zscatter.o» è aggiornato. +make[3]: «psi_fnd_owner.o» è aggiornato. +make[3]: «psb_iscatter.o» è aggiornato. +make[3]: «psi_a2a_fnd_owner.o» è aggiornato. +make[3]: «psb_lscatter.o» è aggiornato. +make[3]: «psi_graph_fnd_owner.o» è aggiornato. +make[3]: «psb_cscatter.o» è aggiornato. +make[3]: «psi_adjcncy_fnd_owner.o» è aggiornato. +make[3]: «psb_sscatter.o» è aggiornato. +make[3]: «psi_symm_dep_list.o» è aggiornato. +make[3]: «psb_dscatter_a.o» è aggiornato. +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +make[3]: «psb_zscatter_a.o» è aggiornato. +make[3]: «psb_mscatter_a.o» è aggiornato. +make[3]: «psb_escatter_a.o» è aggiornato. +make[3]: «psb_cscatter_a.o» è aggiornato. +make[3]: «psb_sscatter_a.o» è aggiornato. +make[3]: «psb_dspgather.o» è aggiornato. +make[3]: «psb_sspgather.o» è aggiornato. +make[3]: «psb_zspgather.o» è aggiornato. +make[3]: «psb_cspgather.o» è aggiornato. +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +make[3]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. +make[4]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +make[4]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. +make[3]: «psb_icdasb.o» è aggiornato. +make[3]: «psb_ssphalo.o» è aggiornato. +make[3]: «psb_dsphalo.o» è aggiornato. +make[3]: «psb_csphalo.o» è aggiornato. +make[3]: «psb_zsphalo.o» è aggiornato. +make[3]: «psb_dcdbldext.o» è aggiornato. +make[3]: «psb_zcdbldext.o» è aggiornato. +make[3]: «psb_scdbldext.o» è aggiornato. +make[3]: «psb_ccdbldext.o» è aggiornato. +make[3]: «psb_s_remote_mat.o» è aggiornato. +make[3]: «psb_d_remote_mat.o» è aggiornato. +make[3]: «psb_c_remote_mat.o» è aggiornato. +make[3]: «psb_z_remote_mat.o» è aggiornato. +make[3]: «psb_s_remote_vect.o» è aggiornato. +make[3]: «psb_d_remote_vect.o» è aggiornato. +make[3]: «psb_c_remote_vect.o» è aggiornato. +make[3]: «psb_z_remote_vect.o» è aggiornato. +make[3]: «psb_e_remote_vect.o» è aggiornato. +make[3]: «psb_m_remote_vect.o» è aggiornato. +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +make[4]: «psi_dswapdata.o» è aggiornato. +make[4]: «psi_dswaptran.o» è aggiornato. +make[4]: «psi_sswapdata.o» è aggiornato. +make[4]: «psi_sswaptran.o» è aggiornato. +make[4]: «psi_iswapdata.o» è aggiornato. +make[4]: «psi_iswaptran.o» è aggiornato. +make[4]: «psi_lswapdata.o» è aggiornato. +make[4]: «psi_lswaptran.o» è aggiornato. +make[4]: «psi_cswapdata.o» è aggiornato. +make[4]: «psi_cswaptran.o» è aggiornato. +make[4]: «psi_zswapdata.o» è aggiornato. +make[4]: «psi_zswaptran.o» è aggiornato. +make[4]: «psi_dswapdata_a.o» è aggiornato. +make[4]: «psi_dswaptran_a.o» è aggiornato. +make[4]: «psi_sswapdata_a.o» è aggiornato. +make[4]: «psi_sswaptran_a.o» è aggiornato. +make[4]: «psi_mswapdata_a.o» è aggiornato. +make[4]: «psi_mswaptran_a.o» è aggiornato. +make[4]: «psi_eswapdata_a.o» è aggiornato. +make[4]: «psi_eswaptran_a.o» è aggiornato. +make[4]: «psi_cswapdata_a.o» è aggiornato. +make[4]: «psi_cswaptran_a.o» è aggiornato. +make[4]: «psi_zswapdata_a.o» è aggiornato. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +make[4]: «psi_zswaptran_a.o» è aggiornato. +make[4]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +make -C modules lib LIBNAME=libpsb_base.a F90="" F90COPT=" " +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/modules» +/usr/bin/install -c -p -p *.mod ../../modules +/usr/bin/install -c -p -p psb_config.h psb_types.h ../../include +ar -cDr ..//libpsb_base.a psb_const_mod.o psb_cbind_const_mod.o psb_error_mod.o psb_realloc_mod.o auxil/psb_string_mod.o auxil/psb_m_realloc_mod.o auxil/psb_e_realloc_mod.o auxil/psb_s_realloc_mod.o auxil/psb_d_realloc_mod.o auxil/psb_c_realloc_mod.o auxil/psb_z_realloc_mod.o serial/psb_s_serial_mod.o serial/psb_d_serial_mod.o serial/psb_c_serial_mod.o serial/psb_z_serial_mod.o serial/psb_serial_mod.o comm/psb_neighbor_topology_mod.o serial/psb_i_base_vect_mod.o serial/psb_i_vect_mod.o serial/psb_l_base_vect_mod.o serial/psb_l_vect_mod.o serial/psb_d_base_vect_mod.o serial/psb_d_vect_mod.o serial/psb_s_base_vect_mod.o serial/psb_s_vect_mod.o serial/psb_c_base_vect_mod.o serial/psb_c_vect_mod.o serial/psb_z_base_vect_mod.o serial/psb_z_vect_mod.o serial/psb_vect_mod.o auxil/psi_serial_mod.o auxil/psi_m_serial_mod.o auxil/psi_e_serial_mod.o auxil/psi_s_serial_mod.o auxil/psi_d_serial_mod.o auxil/psi_c_serial_mod.o auxil/psi_z_serial_mod.o psi_mod.o psi_i_mod.o psi_l_mod.o psi_s_mod.o psi_d_mod.o psi_c_mod.o psi_z_mod.o auxil/psb_ip_reord_mod.o auxil/psi_acx_mod.o auxil/psi_alcx_mod.o auxil/psi_lcx_mod.o auxil/psb_m_ip_reord_mod.o auxil/psb_e_ip_reord_mod.o auxil/psb_s_ip_reord_mod.o auxil/psb_d_ip_reord_mod.o auxil/psb_c_ip_reord_mod.o auxil/psb_z_ip_reord_mod.o auxil/psb_m_hsort_mod.o auxil/psb_m_isort_mod.o auxil/psb_m_msort_mod.o auxil/psb_m_qsort_mod.o auxil/psb_e_hsort_mod.o auxil/psb_e_isort_mod.o auxil/psb_e_msort_mod.o auxil/psb_e_qsort_mod.o auxil/psb_s_hsort_mod.o auxil/psb_s_isort_mod.o auxil/psb_s_msort_mod.o auxil/psb_s_qsort_mod.o auxil/psb_d_hsort_mod.o auxil/psb_d_isort_mod.o auxil/psb_d_msort_mod.o auxil/psb_d_qsort_mod.o auxil/psb_c_hsort_mod.o auxil/psb_c_isort_mod.o auxil/psb_c_msort_mod.o auxil/psb_c_qsort_mod.o auxil/psb_z_hsort_mod.o auxil/psb_z_isort_mod.o auxil/psb_z_msort_mod.o auxil/psb_z_qsort_mod.o auxil/psb_i_hsort_x_mod.o auxil/psb_l_hsort_x_mod.o auxil/psb_s_hsort_x_mod.o auxil/psb_d_hsort_x_mod.o auxil/psb_c_hsort_x_mod.o auxil/psb_z_hsort_x_mod.o auxil/psb_s_rb_idx_tree_mod.o auxil/psb_d_rb_idx_tree_mod.o auxil/psb_c_rb_idx_tree_mod.o auxil/psb_z_rb_idx_tree_mod.o auxil/psb_rb_idx_tree_mod.o serial/psb_base_mat_mod.o serial/psb_mat_mod.o serial/psb_s_base_mat_mod.o serial/psb_s_csr_mat_mod.o serial/psb_s_csc_mat_mod.o serial/psb_s_mat_mod.o serial/psb_d_base_mat_mod.o serial/psb_d_csr_mat_mod.o serial/psb_d_csc_mat_mod.o serial/psb_d_mat_mod.o serial/psb_c_base_mat_mod.o serial/psb_c_csr_mat_mod.o serial/psb_c_csc_mat_mod.o serial/psb_c_mat_mod.o serial/psb_z_base_mat_mod.o serial/psb_z_csr_mat_mod.o serial/psb_z_csc_mat_mod.o serial/psb_z_mat_mod.o desc/psb_desc_const_mod.o desc/psb_indx_map_mod.o desc/psb_gen_block_map_mod.o desc/psb_list_map_mod.o desc/psb_repl_map_mod.o desc/psb_glist_map_mod.o desc/psb_hash_map_mod.o desc/psb_hashval.o desc/psb_desc_mod.o auxil/psb_sort_mod.o tools/psb_cd_tools_mod.o tools/psb_i_tools_mod.o tools/psb_l_tools_mod.o tools/psb_s_tools_mod.o tools/psb_d_tools_mod.o tools/psb_c_tools_mod.o tools/psb_z_tools_mod.o tools/psb_m_tools_a_mod.o tools/psb_e_tools_a_mod.o tools/psb_s_tools_a_mod.o tools/psb_d_tools_a_mod.o tools/psb_c_tools_a_mod.o tools/psb_z_tools_a_mod.o tools/psb_tools_mod.o psb_penv_mod.o penv/psi_penv_mod.o penv/psi_p2p_mod.o penv/psi_m_p2p_mod.o penv/psi_i2_p2p_mod.o penv/psi_e_p2p_mod.o penv/psi_s_p2p_mod.o penv/psi_d_p2p_mod.o penv/psi_c_p2p_mod.o penv/psi_z_p2p_mod.o penv/psi_collective_mod.o penv/psi_i2_collective_mod.o penv/psi_e_collective_mod.o penv/psi_m_collective_mod.o penv/psi_s_collective_mod.o penv/psi_d_collective_mod.o penv/psi_c_collective_mod.o penv/psi_z_collective_mod.o psb_error_impl.o psb_timers_mod.o comm/psb_base_linmap_mod.o comm/psb_linmap_mod.o comm/psb_s_linmap_mod.o comm/psb_d_linmap_mod.o comm/psb_c_linmap_mod.o comm/psb_z_linmap_mod.o comm/psb_comm_mod.o comm/psb_i_comm_mod.o comm/psb_l_comm_mod.o comm/psb_s_comm_mod.o comm/psb_d_comm_mod.o comm/psb_c_comm_mod.o comm/psb_z_comm_mod.o comm/psb_m_comm_a_mod.o comm/psb_e_comm_a_mod.o comm/psb_s_comm_a_mod.o comm/psb_d_comm_a_mod.o comm/psb_c_comm_a_mod.o comm/psb_z_comm_a_mod.o comm/psi_e_comm_a_mod.o comm/psi_m_comm_a_mod.o comm/psi_s_comm_a_mod.o comm/psi_d_comm_a_mod.o comm/psi_c_comm_a_mod.o comm/psi_z_comm_a_mod.o comm/psi_i_comm_v_mod.o comm/psi_l_comm_v_mod.o comm/psi_s_comm_v_mod.o comm/psi_d_comm_v_mod.o comm/psi_c_comm_v_mod.o comm/psi_z_comm_v_mod.o psblas/psb_s_psblas_mod.o psblas/psb_c_psblas_mod.o psblas/psb_d_psblas_mod.o psblas/psb_z_psblas_mod.o psblas/psb_psblas_mod.o psb_check_mod.o desc/psb_hash_mod.o error.o psb_base_mod.o cutil.o +ranlib ..//libpsb_base.a +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/modules» +make -C serial lib LIBNAME=libpsb_base.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial» +make -C impl objs +make -C sort objs +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/impl» +make[3]: Nessuna operazione da eseguire per «objs». +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/impl» +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/sort» +make[3]: Nessuna operazione da eseguire per «objs». +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/sort» +make -C impl lib +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/impl» +ar -cDr ../../libpsb_base.a psb_base_mat_impl.o psb_s_base_mat_impl.o psb_d_base_mat_impl.o psb_c_base_mat_impl.o psb_z_base_mat_impl.o psb_s_csr_impl.o psb_s_coo_impl.o psb_s_csc_impl.o psb_s_mat_impl.o psb_s_rb_idx_tree_impl.o psb_d_csr_impl.o psb_d_coo_impl.o psb_d_csc_impl.o psb_d_mat_impl.o psb_d_rb_idx_tree_impl.o psb_c_csr_impl.o psb_c_coo_impl.o psb_c_csc_impl.o psb_c_mat_impl.o psb_c_rb_idx_tree_impl.o psb_z_csr_impl.o psb_z_coo_impl.o psb_z_csc_impl.o psb_z_mat_impl.o psb_z_rb_idx_tree_impl.o +ranlib ../../libpsb_base.a +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/impl» +make -C sort lib +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/sort» +ar -cDr ../../libpsb_base.a psb_s_hsort_impl.o psb_s_isort_impl.o psb_s_msort_impl.o psb_s_qsort_impl.o psb_d_hsort_impl.o psb_d_isort_impl.o psb_d_msort_impl.o psb_d_qsort_impl.o psb_c_hsort_impl.o psb_c_isort_impl.o psb_c_msort_impl.o psb_c_qsort_impl.o psb_z_hsort_impl.o psb_z_isort_impl.o psb_z_msort_impl.o psb_z_qsort_impl.o psb_m_hsort_impl.o psb_m_isort_impl.o psb_m_msort_impl.o psb_m_qsort_impl.o psb_e_hsort_impl.o psb_e_isort_impl.o psb_e_msort_impl.o psb_e_qsort_impl.o +ranlib ../../libpsb_base.a +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/sort» +ar -cDr ../libpsb_base.a psb_lsame.o psi_m_serial_impl.o psi_e_serial_impl.o psi_s_serial_impl.o psi_d_serial_impl.o psi_c_serial_impl.o psi_z_serial_impl.o psb_srwextd.o psb_drwextd.o psb_crwextd.o psb_zrwextd.o psb_sspspmm.o psb_dspspmm.o psb_cspspmm.o psb_zspspmm.o psb_ssymbmm.o psb_dsymbmm.o psb_csymbmm.o psb_zsymbmm.o psb_snumbmm.o psb_dnumbmm.o psb_cnumbmm.o psb_znumbmm.o smmp.o lsmmp.o psb_sgeprt.o psb_dgeprt.o psb_cgeprt.o psb_zgeprt.o psb_spdot_srtd.o psb_aspxpby.o psb_spge_dot.o psb_saplusat.o psb_daplusat.o psb_caplusat.o psb_zaplusat.o psb_samax_s.o psb_damax_s.o psb_camax_s.o psb_zamax_s.o psb_sasum_s.o psb_dasum_s.o psb_casum_s.o psb_zasum_s.o +ranlib ../libpsb_base.a +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial» +make -C comm lib LIBNAME=libpsb_base.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +make -C internals objs +make psb_dscatter.o psb_zscatter.o psb_iscatter.o psb_lscatter.o psb_cscatter.o psb_sscatter.o psb_dscatter_a.o psb_zscatter_a.o psb_mscatter_a.o psb_escatter_a.o psb_cscatter_a.o psb_sscatter_a.o psb_dspgather.o psb_sspgather.o psb_zspgather.o psb_cspgather.o FC="mpifort" +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +(make psi_dswapdata.o psi_dswaptran.o psi_sswapdata.o psi_sswaptran.o psi_iswapdata.o psi_iswaptran.o psi_lswapdata.o psi_lswaptran.o psi_cswapdata.o psi_cswaptran.o psi_zswapdata.o psi_zswaptran.o psi_dswapdata_a.o psi_dswaptran_a.o psi_sswapdata_a.o psi_sswaptran_a.o psi_mswapdata_a.o psi_mswaptran_a.o psi_eswapdata_a.o psi_eswaptran_a.o psi_cswapdata_a.o psi_cswaptran_a.o psi_zswapdata_a.o psi_zswaptran_a.o FC="mpifort" ) make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» make[3]: «psb_dscatter.o» è aggiornato. make[3]: «psb_zscatter.o» è aggiornato. @@ -86,9 +1595,75 @@ make[3]: «psb_sspgather.o» è aggiornato. make[3]: «psb_zspgather.o» è aggiornato. make[3]: «psb_cspgather.o» è aggiornato. make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +make[4]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +make[4]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. +make[4]: «psi_dswapdata.o» è aggiornato. +make[4]: «psi_dswaptran.o» è aggiornato. +make[4]: «psi_sswapdata.o» è aggiornato. +make[4]: «psi_sswaptran.o» è aggiornato. +make[4]: «psi_iswapdata.o» è aggiornato. +make[4]: «psi_iswaptran.o» è aggiornato. +make[4]: «psi_lswapdata.o» è aggiornato. +make[4]: «psi_lswaptran.o» è aggiornato. +make[4]: «psi_cswapdata.o» è aggiornato. +make[4]: «psi_cswaptran.o» è aggiornato. +make[4]: «psi_zswapdata.o» è aggiornato. +make[4]: «psi_zswaptran.o» è aggiornato. +make[4]: «psi_dswapdata_a.o» è aggiornato. +make[4]: «psi_dswaptran_a.o» è aggiornato. +make[4]: «psi_sswapdata_a.o» è aggiornato. +make[4]: «psi_sswaptran_a.o» è aggiornato. +make[4]: «psi_mswapdata_a.o» è aggiornato. +make[4]: «psi_mswaptran_a.o» è aggiornato. +make[4]: «psi_eswapdata_a.o» è aggiornato. +make[4]: «psi_eswaptran_a.o» è aggiornato. +make[4]: «psi_cswapdata_a.o» è aggiornato. +make[4]: «psi_cswaptran_a.o» è aggiornato. +make[4]: «psi_zswapdata_a.o» è aggiornato. +make[4]: «psi_zswaptran_a.o» è aggiornato. +make[4]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +make -C internals lib LIBNAME=libpsb_base.a +make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +(make psi_dswapdata.o psi_dswaptran.o psi_sswapdata.o psi_sswaptran.o psi_iswapdata.o psi_iswaptran.o psi_lswapdata.o psi_lswaptran.o psi_cswapdata.o psi_cswaptran.o psi_zswapdata.o psi_zswaptran.o psi_dswapdata_a.o psi_dswaptran_a.o psi_sswapdata_a.o psi_sswaptran_a.o psi_mswapdata_a.o psi_mswaptran_a.o psi_eswapdata_a.o psi_eswaptran_a.o psi_cswapdata_a.o psi_cswaptran_a.o psi_zswapdata_a.o psi_zswaptran_a.o FC="mpifort" ) +make[4]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +make[4]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. +make[4]: «psi_dswapdata.o» è aggiornato. +make[4]: «psi_dswaptran.o» è aggiornato. +make[4]: «psi_sswapdata.o» è aggiornato. +make[4]: «psi_sswaptran.o» è aggiornato. +make[4]: «psi_iswapdata.o» è aggiornato. +make[4]: «psi_iswaptran.o» è aggiornato. +make[4]: «psi_lswapdata.o» è aggiornato. +make[4]: «psi_lswaptran.o» è aggiornato. +make[4]: «psi_cswapdata.o» è aggiornato. +make[4]: «psi_cswaptran.o» è aggiornato. +make[4]: «psi_zswapdata.o» è aggiornato. +make[4]: «psi_zswaptran.o» è aggiornato. +make[4]: «psi_dswapdata_a.o» è aggiornato. +make[4]: «psi_dswaptran_a.o» è aggiornato. +make[4]: «psi_sswapdata_a.o» è aggiornato. +make[4]: «psi_sswaptran_a.o» è aggiornato. +make[4]: «psi_mswapdata_a.o» è aggiornato. +make[4]: «psi_mswaptran_a.o» è aggiornato. +make[4]: «psi_eswapdata_a.o» è aggiornato. +make[4]: «psi_eswaptran_a.o» è aggiornato. +make[4]: «psi_cswapdata_a.o» è aggiornato. +make[4]: «psi_cswaptran_a.o» è aggiornato. +make[4]: «psi_zswapdata_a.o» è aggiornato. +make[4]: «psi_zswaptran_a.o» è aggiornato. +make[4]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +ar -cDr ../../libpsb_base.a psi_dswapdata.o psi_dswaptran.o psi_sswapdata.o psi_sswaptran.o psi_iswapdata.o psi_iswaptran.o psi_lswapdata.o psi_lswaptran.o psi_cswapdata.o psi_cswaptran.o psi_zswapdata.o psi_zswaptran.o psi_dswapdata_a.o psi_dswaptran_a.o psi_sswapdata_a.o psi_sswaptran_a.o psi_mswapdata_a.o psi_mswaptran_a.o psi_eswapdata_a.o psi_eswaptran_a.o psi_cswapdata_a.o psi_cswaptran_a.o psi_zswapdata_a.o psi_zswaptran_a.o psi_iovrl_restr.o psi_iovrl_save.o psi_iovrl_upd.o psi_lovrl_restr.o psi_lovrl_save.o psi_lovrl_upd.o psi_sovrl_restr.o psi_sovrl_save.o psi_sovrl_upd.o psi_dovrl_restr.o psi_dovrl_save.o psi_dovrl_upd.o psi_covrl_restr.o psi_covrl_save.o psi_covrl_upd.o psi_zovrl_restr.o psi_zovrl_save.o psi_zovrl_upd.o psi_movrl_restr_a.o psi_movrl_save_a.o psi_movrl_upd_a.o psi_eovrl_restr_a.o psi_eovrl_save_a.o psi_eovrl_upd_a.o psi_sovrl_restr_a.o psi_sovrl_save_a.o psi_sovrl_upd_a.o psi_dovrl_restr_a.o psi_dovrl_save_a.o psi_dovrl_upd_a.o psi_covrl_restr_a.o psi_covrl_save_a.o psi_covrl_upd_a.o psi_zovrl_restr_a.o psi_zovrl_save_a.o psi_zovrl_upd_a.o +ranlib ../../libpsb_base.a +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +ar -cDr ../libpsb_base.a psb_dscatter.o psb_zscatter.o psb_iscatter.o psb_lscatter.o psb_cscatter.o psb_sscatter.o psb_dscatter_a.o psb_zscatter_a.o psb_mscatter_a.o psb_escatter_a.o psb_cscatter_a.o psb_sscatter_a.o psb_dspgather.o psb_sspgather.o psb_zspgather.o psb_cspgather.o psb_dgather.o psb_dhalo.o psb_dovrl.o psb_sgather.o psb_shalo.o psb_sovrl.o psb_igather.o psb_ihalo.o psb_iovrl.o psb_lgather.o psb_lhalo.o psb_lovrl.o psb_cgather.o psb_chalo.o psb_covrl.o psb_zgather.o psb_zhalo.o psb_zovrl.o psb_dgather_a.o psb_dhalo_a.o psb_dovrl_a.o psb_sgather_a.o psb_shalo_a.o psb_sovrl_a.o psb_mgather_a.o psb_mhalo_a.o psb_movrl_a.o psb_egather_a.o psb_ehalo_a.o psb_eovrl_a.o psb_cgather_a.o psb_chalo_a.o psb_covrl_a.o psb_zgather_a.o psb_zhalo_a.o psb_zovrl_a.o +ranlib ../libpsb_base.a +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +make -C auxil lib LIBNAME=libpsb_base.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +(make psi_desc_index.o psi_fnd_owner.o psi_a2a_fnd_owner.o psi_graph_fnd_owner.o psi_adjcncy_fnd_owner.o psi_symm_dep_list.o FC="mpifort") make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» make[3]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_base_mat_impl.F90 -o psb_c_base_mat_impl.o make[3]: «psi_desc_index.o» è aggiornato. make[3]: «psi_fnd_owner.o» è aggiornato. make[3]: «psi_a2a_fnd_owner.o» è aggiornato. @@ -96,14 +1671,21 @@ make[3]: «psi_graph_fnd_owner.o» è aggiornato. make[3]: «psi_adjcncy_fnd_owner.o» è aggiornato. make[3]: «psi_symm_dep_list.o» è aggiornato. make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +ar -cDr ../libpsb_base.a psi_desc_index.o psi_fnd_owner.o psi_a2a_fnd_owner.o psi_graph_fnd_owner.o psi_adjcncy_fnd_owner.o psi_symm_dep_list.o psi_crea_bnd_elem.o psi_crea_index.o psi_crea_ovr_elem.o psi_bld_tmpovrl.o psi_bld_tmphalo.o psi_sort_dl.o psi_indx_map_fnd_owner.o psi_desc_impl.o psi_hash_impl.o psi_srtlist.o psi_bld_glb_dep_list.o psi_xtr_loc_dl.o +ranlib ../libpsb_base.a +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +make -C psblas lib LIBNAME=libpsb_base.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/psblas» +ar -cDr ../libpsb_base.a psb_ddot.o psb_damax.o psb_dasum.o psb_daxpby.o psb_dnrm2.o psb_dnrmi.o psb_dspmm.o psb_dspsm.o psb_sspnrm1.o psb_dspnrm1.o psb_cspnrm1.o psb_zspnrm1.o psb_zamax.o psb_zasum.o psb_zaxpby.o psb_zdot.o psb_znrm2.o psb_znrmi.o psb_zspmm.o psb_zspsm.o psb_saxpby.o psb_sdot.o psb_sasum.o psb_samax.o psb_snrm2.o psb_snrmi.o psb_sspmm.o psb_sspsm.o psb_camax.o psb_casum.o psb_caxpby.o psb_cdot.o psb_cnrm2.o psb_cnrmi.o psb_cspmm.o psb_cspsm.o psb_cmlt_vect.o psb_dmlt_vect.o psb_zmlt_vect.o psb_smlt_vect.o psb_cdiv_vect.o psb_ddiv_vect.o psb_zdiv_vect.o psb_sdiv_vect.o psb_cinv_vect.o psb_dinv_vect.o psb_zinv_vect.o psb_sinv_vect.o psb_dcmp_vect.o psb_scmp_vect.o psb_ccmp_vect.o psb_zcmp_vect.o psb_cabs_vect.o psb_dabs_vect.o psb_sabs_vect.o psb_zabs_vect.o psb_cgetmatinfo.o psb_dgetmatinfo.o psb_sgetmatinfo.o psb_zgetmatinfo.o +ranlib ../libpsb_base.a +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/psblas» +make -C tools lib LIBNAME=libpsb_base.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +(make psb_icdasb.o psb_ssphalo.o psb_dsphalo.o psb_csphalo.o psb_zsphalo.o psb_dcdbldext.o psb_zcdbldext.o psb_scdbldext.o psb_ccdbldext.o psb_s_remote_mat.o psb_d_remote_mat.o psb_c_remote_mat.o psb_z_remote_mat.o psb_s_remote_vect.o psb_d_remote_vect.o psb_c_remote_vect.o psb_z_remote_vect.o psb_e_remote_vect.o psb_m_remote_vect.o FC="mpifort") make[3]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» make[3]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. -make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» make[3]: «psb_icdasb.o» è aggiornato. -make[4]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» make[3]: «psb_ssphalo.o» è aggiornato. -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_z_base_mat_impl.F90 -o psb_z_base_mat_impl.o -make[4]: attenzione: jobserver non disponibile, viene usato -j1. Aggiungere «+» alla regola make superiore. make[3]: «psb_dsphalo.o» è aggiornato. make[3]: «psb_csphalo.o» è aggiornato. make[3]: «psb_zsphalo.o» è aggiornato. @@ -111,96 +1693,127 @@ make[3]: «psb_dcdbldext.o» è aggiornato. make[3]: «psb_zcdbldext.o» è aggiornato. make[3]: «psb_scdbldext.o» è aggiornato. make[3]: «psb_ccdbldext.o» è aggiornato. -mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_remote_mat.F90 -o psb_s_remote_mat.o -make[4]: «psi_dswapdata.o» è aggiornato. -make[4]: «psi_dswaptran.o» è aggiornato. -make[4]: «psi_sswapdata.o» è aggiornato. -make[4]: «psi_sswaptran.o» è aggiornato. -make[4]: «psi_iswapdata.o» è aggiornato. -make[4]: «psi_iswaptran.o» è aggiornato. -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_lswapdata.F90 -o psi_lswapdata.o +make[3]: «psb_s_remote_mat.o» è aggiornato. +make[3]: «psb_d_remote_mat.o» è aggiornato. +make[3]: «psb_c_remote_mat.o» è aggiornato. +make[3]: «psb_z_remote_mat.o» è aggiornato. +make[3]: «psb_s_remote_vect.o» è aggiornato. +make[3]: «psb_d_remote_vect.o» è aggiornato. +make[3]: «psb_c_remote_vect.o» è aggiornato. +make[3]: «psb_z_remote_vect.o» è aggiornato. +make[3]: «psb_e_remote_vect.o» è aggiornato. +make[3]: «psb_m_remote_vect.o» è aggiornato. +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +ar -cDr ../libpsb_base.a psb_icdasb.o psb_ssphalo.o psb_dsphalo.o psb_csphalo.o psb_zsphalo.o psb_dcdbldext.o psb_zcdbldext.o psb_scdbldext.o psb_ccdbldext.o psb_s_remote_mat.o psb_d_remote_mat.o psb_c_remote_mat.o psb_z_remote_mat.o psb_s_remote_vect.o psb_d_remote_vect.o psb_c_remote_vect.o psb_z_remote_vect.o psb_e_remote_vect.o psb_m_remote_vect.o psb_cdall.o psb_cdals.o psb_cdalv.o psb_cd_inloc.o psb_cdins.o psb_cdprt.o psb_cdren.o psb_cdrep.o psb_get_overlap.o psb_cd_lstext.o psb_cd_remap.o psb_cdcpy.o psb_cd_reinit.o psb_cd_switch_ovl_indxmap.o psb_cd_renum_block.o psb_dspalloc.o psb_dspasb.o psb_d_remap.o psb_dspfree.o psb_dspins.o psb_dsprn.o psb_sspalloc.o psb_sspasb.o psb_s_remap.o psb_sspfree.o psb_sspins.o psb_ssprn.o psb_glob_to_loc.o psb_loc_to_glob.o psb_iallc.o psb_iasb.o psb_ifree.o psb_iins.o psb_lallc.o psb_lasb.o psb_lfree.o psb_lins.o psb_sallc.o psb_sasb.o psb_sfree.o psb_sins.o psb_dallc.o psb_dasb.o psb_dfree.o psb_dins.o psb_callc.o psb_casb.o psb_cfree.o psb_cins.o psb_zallc.o psb_zasb.o psb_zfree.o psb_zins.o psb_mallc_a.o psb_masb_a.o psb_mfree_a.o psb_mins_a.o psb_eallc_a.o psb_easb_a.o psb_efree_a.o psb_eins_a.o psb_sallc_a.o psb_sasb_a.o psb_sfree_a.o psb_sins_a.o psb_dallc_a.o psb_dasb_a.o psb_dfree_a.o psb_dins_a.o psb_callc_a.o psb_casb_a.o psb_cfree_a.o psb_cins_a.o psb_zallc_a.o psb_zasb_a.o psb_zfree_a.o psb_zins_a.o psb_zspalloc.o psb_zspasb.o psb_z_remap.o psb_zspfree.o psb_zspins.o psb_zsprn.o psb_cspalloc.o psb_cspasb.o psb_c_remap.o psb_cspfree.o psb_cspins.o psb_csprn.o psb_cd_set_bld.o psb_s_map.o psb_d_map.o psb_c_map.o psb_z_map.o psb_s_par_csr_spspmm.o psb_d_par_csr_spspmm.o psb_c_par_csr_spspmm.o psb_z_par_csr_spspmm.o psb_s_glob_transpose.o psb_d_glob_transpose.o psb_c_glob_transpose.o psb_z_glob_transpose.o psb_cgetelem.o psb_dgetelem.o psb_sgetelem.o psb_zgetelem.o +ranlib ../libpsb_base.a +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +/bin/cp -p ./libpsb_base.a ../lib +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base» +make -C prec lib +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec» +/usr/bin/install -c -p -p *.mod ../modules +make -C impl objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec/impl» +make[2]: Nessuna operazione da eseguire per «objs». +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec/impl» +make -C impl lib +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec/impl» +ar -cDr ../libpsb_prec.a psb_s_prec_type_impl.o psb_d_prec_type_impl.o psb_c_prec_type_impl.o psb_z_prec_type_impl.o psb_d_diagprec_impl.o psb_d_bjacprec_impl.o psb_d_nullprec_impl.o psb_d_ilu0_fact.o psb_d_iluk_fact.o psb_d_ilut_fact.o psb_dprecbld.o psb_dprecinit.o psb_s_diagprec_impl.o psb_s_bjacprec_impl.o psb_s_nullprec_impl.o psb_s_ilu0_fact.o psb_s_iluk_fact.o psb_s_ilut_fact.o psb_sprecbld.o psb_sprecinit.o psb_c_diagprec_impl.o psb_c_bjacprec_impl.o psb_c_nullprec_impl.o psb_c_ilu0_fact.o psb_c_iluk_fact.o psb_c_ilut_fact.o psb_cprecbld.o psb_cprecinit.o psb_z_diagprec_impl.o psb_z_bjacprec_impl.o psb_z_nullprec_impl.o psb_z_ilu0_fact.o psb_z_iluk_fact.o psb_z_ilut_fact.o psb_zprecbld.o psb_zprecinit.o psb_c_sparsify.o psb_d_sparsify.o psb_s_sparsify.o psb_z_sparsify.o psb_crwclip.o psb_drwclip.o psb_srwclip.o psb_zrwclip.o psb_c_sp_drop.o psb_d_sp_drop.o psb_s_sp_drop.o psb_z_sp_drop.o psb_dsparse_biconjg_llk_noth.o psb_dsparse_biconjg_llk.o psb_dsparse_biconjg_mlk.o psb_dsparse_biconjg_s_ft_llk.o psb_dsparse_biconjg_s_llk.o psb_csparse_biconjg_llk_noth.o psb_csparse_biconjg_llk.o psb_csparse_biconjg_mlk.o psb_csparse_biconjg_s_ft_llk.o psb_csparse_biconjg_s_llk.o psb_zsparse_biconjg_llk_noth.o psb_zsparse_biconjg_llk.o psb_zsparse_biconjg_mlk.o psb_zsparse_biconjg_s_ft_llk.o psb_zsparse_biconjg_s_llk.o psb_ssparse_biconjg_llk_noth.o psb_ssparse_biconjg_llk.o psb_ssparse_biconjg_mlk.o psb_ssparse_biconjg_s_ft_llk.o psb_ssparse_biconjg_s_llk.o psb_d_ainv_bld.o psb_c_ainv_bld.o psb_s_ainv_bld.o psb_z_ainv_bld.o psb_c_invt_fact.o psb_d_invt_fact.o psb_s_invt_fact.o psb_z_invt_fact.o psb_c_invk_fact.o psb_d_invk_fact.o psb_s_invk_fact.o psb_z_invk_fact.o +ranlib ../libpsb_prec.a +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec/impl» +ar -cDr ./libpsb_prec.a psb_prec_const_mod.o psb_s_prec_type.o psb_d_prec_type.o psb_c_prec_type.o psb_z_prec_type.o psb_s_base_prec_mod.o psb_d_base_prec_mod.o psb_c_base_prec_mod.o psb_z_base_prec_mod.o psb_prec_type.o psb_prec_mod.o psb_s_prec_mod.o psb_d_prec_mod.o psb_c_prec_mod.o psb_z_prec_mod.o psb_d_diagprec.o psb_d_nullprec.o psb_d_bjacprec.o psb_s_ilu_fact_mod.o psb_s_diagprec.o psb_s_nullprec.o psb_s_bjacprec.o psb_d_ilu_fact_mod.o psb_c_diagprec.o psb_c_nullprec.o psb_c_bjacprec.o psb_c_ilu_fact_mod.o psb_z_diagprec.o psb_z_nullprec.o psb_z_bjacprec.o psb_z_ilu_fact_mod.o psb_c_ainv_fact_mod.o psb_d_ainv_fact_mod.o psb_s_ainv_fact_mod.o psb_z_ainv_fact_mod.o psb_c_ainv_tools_mod.o psb_d_ainv_tools_mod.o psb_s_ainv_tools_mod.o psb_z_ainv_tools_mod.o psb_ainv_tools_mod.o psb_biconjg_mod.o psb_c_biconjg_mod.o psb_d_biconjg_mod.o psb_s_biconjg_mod.o psb_z_biconjg_mod.o psb_c_invt_fact_mod.o psb_d_invt_fact_mod.o psb_s_invt_fact_mod.o psb_z_invt_fact_mod.o psb_c_invk_fact_mod.o psb_d_invk_fact_mod.o psb_s_invk_fact_mod.o psb_z_invk_fact_mod.o +ranlib ./libpsb_prec.a +/bin/cp -p ./libpsb_prec.a ../lib +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec» +make -C linsolve lib +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve» +/usr/bin/install -c -p -p *.mod ../modules +make -C impl objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve/impl» +make[2]: Nessuna operazione da eseguire per «objs». +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve/impl» +make -C impl lib +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve/impl» +ar -cDr ../libpsb_linsolve.a psb_dkrylov.o psb_skrylov.o psb_ckrylov.o psb_zkrylov.o psb_drichardson.o psb_srichardson.o psb_crichardson.o psb_zrichardson.o psb_dcgstab.o psb_dcg.o psb_dfcg.o psb_dgcr.o psb_dcgs.o psb_dbicg.o psb_dcgstabl.o psb_drgmres.o psb_scgstab.o psb_scg.o psb_sfcg.o psb_sgcr.o psb_scgs.o psb_sbicg.o psb_scgstabl.o psb_srgmres.o psb_ccgstab.o psb_ccg.o psb_cfcg.o psb_cgcr.o psb_ccgs.o psb_cbicg.o psb_ccgstabl.o psb_crgmres.o psb_zcgstab.o psb_zcg.o psb_zfcg.o psb_zgcr.o psb_zcgs.o psb_zbicg.o psb_zcgstabl.o psb_zrgmres.o +ranlib ../libpsb_linsolve.a +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve/impl» +ar -cDr ./libpsb_linsolve.a psb_base_linsolve_conv_mod.o psb_s_linsolve_conv_mod.o psb_c_linsolve_conv_mod.o psb_d_linsolve_conv_mod.o psb_z_linsolve_conv_mod.o psb_linsolve_mod.o +ranlib ./libpsb_linsolve.a +/bin/cp -p ./libpsb_linsolve.a ../lib +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/linsolve» +make -C util lib +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/util» +/usr/bin/install -c -p -p *.mod ../modules +ar -cDr ./libpsb_util.a psb_metis_int.o psb_amd_order.o psb_util_mod.o psb_blockpart_mod.o psb_metispart_mod.o psb_partidx_mod.o psb_hbio_mod.o psb_mmio_mod.o psb_mat_dist_mod.o psb_s_mat_dist_mod.o psb_d_mat_dist_mod.o psb_c_mat_dist_mod.o psb_z_mat_dist_mod.o psb_renum_mod.o psb_gps_mod.o psb_s_renum_mod.o psb_d_renum_mod.o psb_c_renum_mod.o psb_z_renum_mod.o psb_s_hbio_impl.o psb_d_hbio_impl.o psb_c_hbio_impl.o psb_z_hbio_impl.o psb_s_mmio_impl.o psb_d_mmio_impl.o psb_c_mmio_impl.o psb_z_mmio_impl.o psb_i_mmio_impl.o psb_s_mat_dist_impl.o psb_d_mat_dist_impl.o psb_c_mat_dist_impl.o psb_z_mat_dist_impl.o psb_s_renum_impl.o psb_d_renum_impl.o psb_c_renum_impl.o psb_z_renum_impl.o psi_build_mtpart.o +ranlib ./libpsb_util.a +/bin/cp -p ./libpsb_util.a ../lib +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/util» +make -C cbind lib +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind» +cd base && make objs LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/base» +Makefile:30: attenzione: sovrascrittura del set di istruzioni per l'obiettivo «.F90.o» +../../Make.inc:116: attenzione: ignorato il set di istruzioni obsoleto per l'obiettivo «.F90.o» +/bin/cp -p *.mod psb_base_cbind.h psb_c_base.h psb_c_sbase.h psb_c_dbase.h psb_c_cbase.h psb_c_zbase.h psb_c_scomm.h psb_c_dcomm.h psb_c_ccomm.h psb_c_zcomm.h .. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/base» +cd prec && make objs LIBNAME=libpsb_cbind.a +cd util && make objs LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/prec» +/bin/cp -p *.mod psb_prec_cbind.h psb_c_sprec.h psb_c_dprec.h psb_c_cprec.h psb_c_zprec.h .. +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/util» +/bin/cp -p *.mod psb_util_cbind.h psb_c_cutil.h psb_c_zutil.h psb_c_dutil.h psb_c_sutil.h .. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/prec» +cd linsolve && make objs LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/linsolve» +/bin/cp -p *.mod psb_linsolve_cbind.h .. +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/util» +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/linsolve» +/bin/cp -p *.h ../include +/bin/cp -p *.mod ../modules/ +cd base && make lib LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/base» +Makefile:30: attenzione: sovrascrittura del set di istruzioni per l'obiettivo «.F90.o» +../../Make.inc:116: attenzione: ignorato il set di istruzioni obsoleto per l'obiettivo «.F90.o» +/bin/cp -p *.mod psb_base_cbind.h psb_c_base.h psb_c_sbase.h psb_c_dbase.h psb_c_cbase.h psb_c_zbase.h psb_c_scomm.h psb_c_dcomm.h psb_c_ccomm.h psb_c_zcomm.h .. +ar -cDr ../libpsb_cbind.a psb_objhandle_mod.o psb_base_cbind_mod.o psb_cpenv_mod.o psb_base_tools_cbind_mod.o psb_base_psblas_cbind_mod.o psb_s_tools_cbind_mod.o psb_s_serial_cbind_mod.o psb_s_psblas_cbind_mod.o psb_d_tools_cbind_mod.o psb_d_serial_cbind_mod.o psb_d_psblas_cbind_mod.o psb_c_tools_cbind_mod.o psb_c_serial_cbind_mod.o psb_c_psblas_cbind_mod.o psb_z_tools_cbind_mod.o psb_z_serial_cbind_mod.o psb_z_psblas_cbind_mod.o psb_s_comm_cbind_mod.o psb_d_comm_cbind_mod.o psb_c_comm_cbind_mod.o psb_z_comm_cbind_mod.o psb_c_base.o psb_c_sbase.o psb_c_dbase.o psb_c_cbase.o psb_c_zbase.o psb_c_scomm.o psb_c_dcomm.o psb_c_ccomm.o psb_c_zcomm.o +ranlib ../libpsb_cbind.a +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/base» +cd prec && make lib LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/prec» +/bin/cp -p *.mod psb_prec_cbind.h psb_c_sprec.h psb_c_dprec.h psb_c_cprec.h psb_c_zprec.h .. +ar -cDr ../libpsb_cbind.a psb_prec_cbind_mod.o psb_sprec_cbind_mod.o psb_dprec_cbind_mod.o psb_cprec_cbind_mod.o psb_zprec_cbind_mod.o psb_c_sprec.o psb_c_dprec.o psb_c_cprec.o psb_c_zprec.o +ranlib ../libpsb_cbind.a +/bin/cp -p ../libpsb_cbind.a ../../lib +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/prec» +cd linsolve && make lib LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/linsolve» +/bin/cp -p *.mod psb_linsolve_cbind.h .. +ar -cDr ../libpsb_cbind.a psb_base_linsolve_cbind_mod.o psb_slinsolve_cbind_mod.o psb_dlinsolve_cbind_mod.o psb_clinsolve_cbind_mod.o psb_zlinsolve_cbind_mod.o +ranlib ../libpsb_cbind.a +/bin/cp -p ../libpsb_cbind.a ../../lib +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/linsolve» +cd util && make lib LIBNAME=libpsb_cbind.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/util» +/bin/cp -p *.mod psb_util_cbind.h psb_c_cutil.h psb_c_zutil.h psb_c_dutil.h psb_c_sutil.h .. +ar -cDr ../libpsb_cbind.a psb_util_cbind_mod.o psb_c_util_cbind_mod.o psb_d_util_cbind_mod.o psb_s_util_cbind_mod.o psb_z_util_cbind_mod.o +ranlib ../libpsb_cbind.a +/bin/cp -p ../libpsb_cbind.a ../../lib +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/util» +/bin/cp -p ./libpsb_cbind.a ../lib +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind» +make -C ext lib +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext» +/bin/cp -p *.mod ../modules +make -C impl objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext/impl» +make[2]: Nessuna operazione da eseguire per «objs». +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext/impl» +make -C impl lib LIBNAME=libpsb_ext.a +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext/impl» +ar -cDr ../libpsb_ext.a psb_s_cp_dia_from_coo.o psb_s_cp_dia_to_coo.o psb_s_cp_ell_from_coo.o psb_s_cp_ell_from_fmt.o psb_s_cp_ell_to_coo.o psb_s_cp_ell_to_fmt.o psb_s_cp_hdia_from_coo.o psb_s_cp_hdia_to_coo.o psb_s_cp_hll_from_coo.o psb_s_cp_hll_from_fmt.o psb_s_cp_hll_to_coo.o psb_s_cp_hll_to_fmt.o psb_s_dia_aclsum.o psb_s_dia_allocate_mnnz.o psb_s_dia_arwsum.o psb_s_dia_colsum.o psb_s_dia_csgetptn.o psb_s_dia_csgetrow.o psb_s_dia_csmm.o psb_s_dia_csmv.o psb_s_dia_get_diag.o psb_s_dia_maxval.o psb_s_dia_mold.o psb_s_dia_print.o psb_s_dia_reallocate_nz.o psb_s_dia_reinit.o psb_s_dia_rowsum.o psb_s_dia_scal.o psb_s_dia_scals.o psb_s_ell_aclsum.o psb_s_ell_allocate_mnnz.o psb_s_ell_arwsum.o psb_s_ell_colsum.o psb_s_ell_csgetblk.o psb_s_ell_csgetptn.o psb_s_ell_csgetrow.o psb_s_ell_csmm.o psb_s_ell_csmv.o psb_s_ell_csnm1.o psb_s_ell_csnmi.o psb_s_ell_csput.o psb_s_ell_cssm.o psb_s_ell_cssv.o psb_s_ell_get_diag.o psb_s_ell_maxval.o psb_s_ell_mold.o psb_s_ell_print.o psb_s_ell_reallocate_nz.o psb_s_ell_reinit.o psb_s_ell_rowsum.o psb_s_ell_scal.o psb_s_ell_scals.o psb_s_ell_trim.o psb_s_hdia_allocate_mnnz.o psb_s_hdia_csmv.o psb_s_hdia_mold.o psb_s_hdia_print.o psb_s_hll_aclsum.o psb_s_hll_allocate_mnnz.o psb_s_hll_arwsum.o psb_s_hll_colsum.o psb_s_hll_csgetblk.o psb_s_hll_csgetptn.o psb_s_hll_csgetrow.o psb_s_hll_csmm.o psb_s_hll_csmv.o psb_s_hll_csnm1.o psb_s_hll_csnmi.o psb_s_hll_csput.o psb_s_hll_cssm.o psb_s_hll_cssv.o psb_s_hll_get_diag.o psb_s_hll_maxval.o psb_s_hll_mold.o psb_s_hll_print.o psb_s_hll_reallocate_nz.o psb_s_hll_reinit.o psb_s_hll_rowsum.o psb_s_hll_scal.o psb_s_hll_scals.o psb_s_mv_dia_from_coo.o psb_s_mv_ell_from_coo.o psb_s_mv_ell_from_fmt.o psb_s_mv_ell_to_coo.o psb_s_mv_ell_to_fmt.o psb_s_mv_hdia_from_coo.o psb_s_mv_hdia_to_coo.o psb_s_mv_hll_from_coo.o psb_s_mv_hll_from_fmt.o psb_s_mv_hll_to_coo.o psb_s_mv_hll_to_fmt.o psb_c_cp_dia_from_coo.o psb_c_cp_dia_to_coo.o psb_c_cp_ell_from_coo.o psb_c_cp_ell_from_fmt.o psb_c_cp_ell_to_coo.o psb_c_cp_ell_to_fmt.o psb_c_cp_hdia_from_coo.o psb_c_cp_hdia_to_coo.o psb_c_cp_hll_from_coo.o psb_c_cp_hll_from_fmt.o psb_c_cp_hll_to_coo.o psb_c_cp_hll_to_fmt.o psb_c_dia_aclsum.o psb_c_dia_allocate_mnnz.o psb_c_dia_arwsum.o psb_c_dia_colsum.o psb_c_dia_csgetptn.o psb_c_dia_csgetrow.o psb_c_dia_csmm.o psb_c_dia_csmv.o psb_c_dia_get_diag.o psb_c_dia_maxval.o psb_c_dia_mold.o psb_c_dia_print.o psb_c_dia_reallocate_nz.o psb_c_dia_reinit.o psb_c_dia_rowsum.o psb_c_dia_scal.o psb_c_dia_scals.o psb_c_ell_aclsum.o psb_c_ell_allocate_mnnz.o psb_c_ell_arwsum.o psb_c_ell_colsum.o psb_c_ell_csgetblk.o psb_c_ell_csgetptn.o psb_c_ell_csgetrow.o psb_c_ell_csmm.o psb_c_ell_csmv.o psb_c_ell_csnm1.o psb_c_ell_csnmi.o psb_c_ell_csput.o psb_c_ell_cssm.o psb_c_ell_cssv.o psb_c_ell_get_diag.o psb_c_ell_maxval.o psb_c_ell_mold.o psb_c_ell_print.o psb_c_ell_reallocate_nz.o psb_c_ell_reinit.o psb_c_ell_rowsum.o psb_c_ell_scal.o psb_c_ell_scals.o psb_c_ell_trim.o psb_c_hdia_allocate_mnnz.o psb_c_hdia_csmv.o psb_c_hdia_mold.o psb_c_hdia_print.o psb_c_hll_aclsum.o psb_c_hll_allocate_mnnz.o psb_c_hll_arwsum.o psb_c_hll_colsum.o psb_c_hll_csgetblk.o psb_c_hll_csgetptn.o psb_c_hll_csgetrow.o psb_c_hll_csmm.o psb_c_hll_csmv.o psb_c_hll_csnm1.o psb_c_hll_csnmi.o psb_c_hll_csput.o psb_c_hll_cssm.o psb_c_hll_cssv.o psb_c_hll_get_diag.o psb_c_hll_maxval.o psb_c_hll_mold.o psb_c_hll_print.o psb_c_hll_reallocate_nz.o psb_c_hll_reinit.o psb_c_hll_rowsum.o psb_c_hll_scal.o psb_c_hll_scals.o psb_c_mv_dia_from_coo.o psb_c_mv_ell_from_coo.o psb_c_mv_ell_from_fmt.o psb_c_mv_ell_to_coo.o psb_c_mv_ell_to_fmt.o psb_c_mv_hdia_from_coo.o psb_c_mv_hdia_to_coo.o psb_c_mv_hll_from_coo.o psb_c_mv_hll_from_fmt.o psb_c_mv_hll_to_coo.o psb_c_mv_hll_to_fmt.o psb_d_cp_dia_from_coo.o psb_d_cp_dia_to_coo.o psb_d_cp_ell_from_coo.o psb_d_cp_ell_from_fmt.o psb_d_cp_ell_to_coo.o psb_d_cp_ell_to_fmt.o psb_d_cp_hdia_from_coo.o psb_d_cp_hdia_to_coo.o psb_d_cp_hll_from_coo.o psb_d_cp_hll_from_fmt.o psb_d_cp_hll_to_coo.o psb_d_cp_hll_to_fmt.o psb_d_dia_aclsum.o psb_d_dia_allocate_mnnz.o psb_d_dia_arwsum.o psb_d_dia_colsum.o psb_d_dia_csgetptn.o psb_d_dia_csgetrow.o psb_d_dia_csmm.o psb_d_dia_csmv.o psb_d_dia_get_diag.o psb_d_dia_maxval.o psb_d_dia_mold.o psb_d_dia_print.o psb_d_dia_reallocate_nz.o psb_d_dia_reinit.o psb_d_dia_rowsum.o psb_d_dia_scal.o psb_d_dia_scals.o psb_d_ell_aclsum.o psb_d_ell_allocate_mnnz.o psb_d_ell_arwsum.o psb_d_ell_colsum.o psb_d_ell_csgetblk.o psb_d_ell_csgetptn.o psb_d_ell_csgetrow.o psb_d_ell_csmm.o psb_d_ell_csmv.o psb_d_ell_csnm1.o psb_d_ell_csnmi.o psb_d_ell_csput.o psb_d_ell_cssm.o psb_d_ell_cssv.o psb_d_ell_get_diag.o psb_d_ell_maxval.o psb_d_ell_mold.o psb_d_ell_print.o psb_d_ell_reallocate_nz.o psb_d_ell_reinit.o psb_d_ell_rowsum.o psb_d_ell_scal.o psb_d_ell_scals.o psb_d_ell_trim.o psb_d_hdia_allocate_mnnz.o psb_d_hdia_csmv.o psb_d_hdia_mold.o psb_d_hdia_print.o psb_d_hll_aclsum.o psb_d_hll_allocate_mnnz.o psb_d_hll_arwsum.o psb_d_hll_colsum.o psb_d_hll_csgetblk.o psb_d_hll_csgetptn.o psb_d_hll_csgetrow.o psb_d_hll_csmm.o psb_d_hll_csmv.o psb_d_hll_csnm1.o psb_d_hll_csnmi.o psb_d_hll_csput.o psb_d_hll_cssm.o psb_d_hll_cssv.o psb_d_hll_get_diag.o psb_d_hll_maxval.o psb_d_hll_mold.o psb_d_hll_print.o psb_d_hll_reallocate_nz.o psb_d_hll_reinit.o psb_d_hll_rowsum.o psb_d_hll_scal.o psb_d_hll_scals.o psb_d_mv_dia_from_coo.o psb_d_mv_ell_from_coo.o psb_d_mv_ell_from_fmt.o psb_d_mv_ell_to_coo.o psb_d_mv_ell_to_fmt.o psb_d_mv_hdia_from_coo.o psb_d_mv_hdia_to_coo.o psb_d_mv_hll_from_coo.o psb_d_mv_hll_from_fmt.o psb_d_mv_hll_to_coo.o psb_d_mv_hll_to_fmt.o psb_z_cp_dia_from_coo.o psb_z_cp_dia_to_coo.o psb_z_cp_ell_from_coo.o psb_z_cp_ell_from_fmt.o psb_z_cp_ell_to_coo.o psb_z_cp_ell_to_fmt.o psb_z_cp_hdia_from_coo.o psb_z_cp_hdia_to_coo.o psb_z_cp_hll_from_coo.o psb_z_cp_hll_from_fmt.o psb_z_cp_hll_to_coo.o psb_z_cp_hll_to_fmt.o psb_z_dia_aclsum.o psb_z_dia_allocate_mnnz.o psb_z_dia_arwsum.o psb_z_dia_colsum.o psb_z_dia_csgetptn.o psb_z_dia_csgetrow.o psb_z_dia_csmm.o psb_z_dia_csmv.o psb_z_dia_get_diag.o psb_z_dia_maxval.o psb_z_dia_mold.o psb_z_dia_print.o psb_z_dia_reallocate_nz.o psb_z_dia_reinit.o psb_z_dia_rowsum.o psb_z_dia_scal.o psb_z_dia_scals.o psb_z_ell_aclsum.o psb_z_ell_allocate_mnnz.o psb_z_ell_arwsum.o psb_z_ell_colsum.o psb_z_ell_csgetblk.o psb_z_ell_csgetptn.o psb_z_ell_csgetrow.o psb_z_ell_csmm.o psb_z_ell_csmv.o psb_z_ell_csnm1.o psb_z_ell_csnmi.o psb_z_ell_csput.o psb_z_ell_cssm.o psb_z_ell_cssv.o psb_z_ell_get_diag.o psb_z_ell_maxval.o psb_z_ell_mold.o psb_z_ell_print.o psb_z_ell_reallocate_nz.o psb_z_ell_reinit.o psb_z_ell_rowsum.o psb_z_ell_scal.o psb_z_ell_scals.o psb_z_ell_trim.o psb_z_hdia_allocate_mnnz.o psb_z_hdia_csmv.o psb_z_hdia_mold.o psb_z_hdia_print.o psb_z_hll_aclsum.o psb_z_hll_allocate_mnnz.o psb_z_hll_arwsum.o psb_z_hll_colsum.o psb_z_hll_csgetblk.o psb_z_hll_csgetptn.o psb_z_hll_csgetrow.o psb_z_hll_csmm.o psb_z_hll_csmv.o psb_z_hll_csnm1.o psb_z_hll_csnmi.o psb_z_hll_csput.o psb_z_hll_cssm.o psb_z_hll_cssv.o psb_z_hll_get_diag.o psb_z_hll_maxval.o psb_z_hll_mold.o psb_z_hll_print.o psb_z_hll_reallocate_nz.o psb_z_hll_reinit.o psb_z_hll_rowsum.o psb_z_hll_scal.o psb_z_hll_scals.o psb_z_mv_dia_from_coo.o psb_z_mv_ell_from_coo.o psb_z_mv_ell_from_fmt.o psb_z_mv_ell_to_coo.o psb_z_mv_ell_to_fmt.o psb_z_mv_hdia_from_coo.o psb_z_mv_hdia_to_coo.o psb_z_mv_hll_from_coo.o psb_z_mv_hll_from_fmt.o psb_z_mv_hll_to_coo.o psb_z_mv_hll_to_fmt.o psi_s_xtr_ell_from_coo.o psi_c_xtr_ell_from_coo.o psi_d_xtr_ell_from_coo.o psi_z_xtr_ell_from_coo.o psi_s_convert_ell_from_coo.o psi_c_convert_ell_from_coo.o psi_d_convert_ell_from_coo.o psi_z_convert_ell_from_coo.o psi_s_convert_hll_from_coo.o psi_c_convert_hll_from_coo.o psi_d_convert_hll_from_coo.o psi_z_convert_hll_from_coo.o psi_s_xtr_dia_from_coo.o psi_c_xtr_dia_from_coo.o psi_d_xtr_dia_from_coo.o psi_z_xtr_dia_from_coo.o psi_s_xtr_coo_from_dia.o psi_d_xtr_coo_from_dia.o psi_c_xtr_coo_from_dia.o psi_z_xtr_coo_from_dia.o psi_s_convert_dia_from_coo.o psi_c_convert_dia_from_coo.o psi_d_convert_dia_from_coo.o psi_z_convert_dia_from_coo.o psb_s_dns_mat_impl.o psb_d_dns_mat_impl.o psb_c_dns_mat_impl.o psb_z_dns_mat_impl.o +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext/impl» +ar -cDr libpsb_ext.a psb_d_ell_mat_mod.o psb_d_hll_mat_mod.o psb_s_hll_mat_mod.o psb_s_ell_mat_mod.o psb_c_hll_mat_mod.o psb_c_ell_mat_mod.o psb_z_hll_mat_mod.o psb_z_ell_mat_mod.o psb_d_dia_mat_mod.o psb_d_hdia_mat_mod.o psb_s_dia_mat_mod.o psb_s_hdia_mat_mod.o psb_c_dia_mat_mod.o psb_c_hdia_mat_mod.o psb_z_dia_mat_mod.o psb_z_hdia_mat_mod.o psb_s_dns_mat_mod.o psb_d_dns_mat_mod.o psb_c_dns_mat_mod.o psb_z_dns_mat_mod.o psi_ext_util_mod.o psi_i_ext_util_mod.o psi_s_ext_util_mod.o psi_c_ext_util_mod.o psi_d_ext_util_mod.o psi_z_ext_util_mod.o psb_ext_mod.o +/bin/cp -p libpsb_ext.a ../lib make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext» -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_lovrl_save.f90 -o psi_lovrl_save.o -make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/sort» -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_lovrl_upd.f90 -o psi_lovrl_upd.o -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_csr_impl.F90 -o psb_s_csr_impl.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_d_remote_mat.F90 -o psb_d_remote_mat.o -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -c psi_sovrl_restr.f90 -o psi_sovrl_restr.o -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psi_lswaptran.F90 -o psi_lswaptran.o -psb_dspmm.f90:600:88: - - 600 | call psi_swapdata(flag=ior(psb_swap_send_,psb_swap_recv_), beta=dzero, y=x%v, desc_a=desc_a, & - | 1 -Error: Unexpected ‘%’ for nonderived-type variable ‘x’ at (1) -psb_dspmm.f90:618:5: - - 618 | end if - | 1 -Error: Expecting END SUBROUTINE statement at (1) -mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sallc.f90 -o psb_sallc.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sasb.f90 -o psb_sasb.o -psb_sovrl.f90:316:48: - - 316 | & desc_a,iwork,info,data=psb_comm_ovr_) - | 1 -Error: There is no specific subroutine for the generic ‘psi_swapdata’ at (1) -make[2]: *** [../../Make.inc:114: psb_sovrl.o] Errore 1 -make[2]: *** Attesa per i processi non terminati.... -mpifort -frecursive -g -O3 -I. -I../../modules -I../.. -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_s_coo_impl.F90 -o psb_s_coo_impl.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -DPSB_HAVE_LAPACK -DPSB_HAVE_FLUSH_STMT -DPSB_LPK8 -DPSB_IPK4 -DPSB_MPI_MOD -c psb_c_remote_mat.F90 -o psb_c_remote_mat.o -psb_dspsm.f90:212:57: - - 212 | & done,y%v,desc_a,iwork,info,data=psb_comm_ovr_) - | 1 -Error: There is no specific subroutine for the generic ‘psi_swapdata’ at (1) -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_sasum.f90 -o psb_sasum.o -mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_samax.f90 -o psb_samax.o -make[2]: *** [../../Make.inc:114: psb_samax.o] Interruzione -make[2]: *** [../../Make.inc:114: psb_dspsm.o] Interruzione -make[1]: *** [../Make.inc:116: psb_metispart_mod.o] Interruzione -make[3]: *** [../../../Make.inc:116: psb_s_base_mat_impl.o] Interruzione -make[3]: *** [../../../Make.inc:116: psb_d_base_mat_impl.o] Interruzione -make[3]: *** [../../../Make.inc:116: psb_c_base_mat_impl.o] Interruzione -make[2]: *** [../../Make.inc:114: psb_lins.o] Interruzione -make[3]: *** [../../../Make.inc:116: psb_z_base_mat_impl.o] Interruzione -make[2]: *** [../../Make.inc:114: psb_sasb.o] Interruzione -make[3]: *** [../../../Make.inc:116: psb_s_csr_impl.o] Interruzione -make[3]: *** [../../../Make.inc:116: psb_s_coo_impl.o] Interruzione -make[2]: *** [../../Make.inc:114: psb_dspmm.o] Interruzione -make[2]: *** [../../Make.inc:114: psb_zspmm.o] Interruzione -make[2]: *** [../../Make.inc:114: psb_saxpby.o] Interruzione -make[4]: *** wait: Nessun processo figlio. Arresto. -make[4]: *** Attesa per i processi non terminati.... -make[4]: *** wait: Nessun processo figlio. Arresto. -make[2]: *** [../../Make.inc:114: psb_sallc.o] Interruzione -make[3]: *** [../../../Make.inc:114: psi_sovrl_restr.o] Interruzione -make[2]: *** [../../Make.inc:114: psb_zspsm.o] Interruzione -make[2]: *** [../../Make.inc:116: psb_dspins.o] Interruzione -make[2]: *** [../../Make.inc:114: psb_sdot.o] Interruzione -make[2]: *** [../../Make.inc:114: psb_sasum.o] Interruzione -make[3]: *** [../../Make.inc:116: psb_c_remote_mat.o] Interruzione -make[1]: *** [../Make.inc:114: psb_s_bjacprec.o] Interruzione -make[2]: *** [../../Make.inc:114: psb_zgeprt.o] Interruzione -make[2]: *** [Makefile:34: impld] Interruzione -make[2]: *** wait: Nessun processo figlio. Arresto. -make[2]: *** Attesa per i processi non terminati.... -make[1]: *** [../Make.inc:114: psb_gps_mod.o] Interruzione -make[2]: *** wait: Nessun processo figlio. Arresto. -make[1]: *** [../Make.inc:114: psb_c_bjacprec.o] Interruzione -make[1]: *** wait: Nessun processo figlio. Arresto. -make[1]: *** Attesa per i processi non terminati.... -make[1]: *** wait: Nessun processo figlio. Arresto. -make[1]: *** [Makefile:31: pb] Interruzione -make[3]: *** [Makefile:41: mpfobjs] Errore 2 -make[1]: *** [../Make.inc:114: psb_z_bjacprec.o] Interruzione -make[1]: *** wait: Nessun processo figlio. Arresto. -make[1]: *** Attesa per i processi non terminati.... -make[1]: *** wait: Nessun processo figlio. Arresto. -make[1]: *** [Makefile:25: sr] Errore 2 -make: *** [Makefile:21: utilmods] Errore 2 -make[2]: *** [Makefile:51: mpfobjs] Interruzione -make: *** [Makefile:17: precmods] Errore 2 -make[1]: *** [Makefile:33: tl] Interruzione -make[2]: *** [Makefile:38: interns] Interruzione -make[1]: *** [Makefile:27: cm] Interruzione -make: *** [Makefile:56: based] Interruzione +===================================== +PSBLAS libraries Compilation Successful. diff --git a/prec/impl/psb_c_bjacprec_impl.f90 b/prec/impl/psb_c_bjacprec_impl.f90 index 32baf385..2810565c 100644 --- a/prec/impl/psb_c_bjacprec_impl.f90 +++ b/prec/impl/psb_c_bjacprec_impl.f90 @@ -71,7 +71,7 @@ subroutine psb_c_bjac_dump(prec,info,prefix,head) end subroutine psb_c_bjac_dump -subroutine psb_c_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_c_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_c_bjacprec, psb_protect_name => psb_c_bjac_apply_vect implicit none @@ -82,11 +82,10 @@ subroutine psb_c_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_c_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) ! Local variables integer(psb_ipk_) :: n_row,n_col - complex(psb_spk_), pointer :: ww(:), aux(:) + complex(psb_spk_), pointer :: ww(:) type(psb_c_vect_type) :: wv, wv1 type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me @@ -140,17 +139,7 @@ subroutine psb_c_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) end if - if (n_col <= size(work)) then - ww => work(1:n_col) - if ((4*n_col+n_col) <= size(work)) then - aux => work(n_col+1:) - else - allocate(aux(4*n_col),stat=info) - - endif - else - allocate(ww(n_col),aux(4*n_col),stat=info) - endif + allocate(ww(n_col),stat=info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') @@ -168,28 +157,28 @@ subroutine psb_c_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) select case(trans_) case('N') call psb_spsm(cone,prec%av(psb_l_pr_),x,czero,wv,desc_data,info,& - & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_,work=aux) + & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_u_pr_),wv,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_, work=aux) + & trans=trans_,scale='U',choice=psb_none_) case('T') call psb_spsm(cone,prec%av(psb_u_pr_),x,czero,wv,desc_data,info,& - & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_, work=aux) + & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),wv,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_) case('C') call psb_spsm(cone,prec%av(psb_u_pr_),x,czero,wv,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_, work=aux) + & trans=trans_,scale='U',choice=psb_none_) call wv1%mlt(cone,prec%dv,wv,czero,info,conjgx=trans_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),wv1,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_) end select if (info /= psb_success_) then @@ -203,20 +192,20 @@ subroutine psb_c_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) select case(trans_) case('N') call psb_spmm(cone,prec%av(psb_l_pr_),x,czero,wv,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false.) if (info == psb_success_) call wv1%mlt(cone,prec%dv,wv,czero,info) if(info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_u_pr_),wv1,& - & beta,y,desc_data,info, trans=trans_, work=aux,doswap=.false.) + & beta,y,desc_data,info, trans=trans_,doswap=.false.) case('T','C') call psb_spmm(cone,prec%av(psb_l_pr_),x,czero,wv,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false.) if (info == psb_success_) call wv1%mlt(cone,prec%dv,wv,czero,info) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_u_pr_),wv1, & - & beta,y,desc_data,info,trans=trans_,work=aux,doswap=.false.) + & beta,y,desc_data,info,trans=trans_,doswap=.false.) end select if (info /= psb_success_) then @@ -235,15 +224,8 @@ subroutine psb_c_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) call psb_halo(y,desc_data,info,data=psb_comm_mov_) if (do_alloc_wrk) call prec%free_wrk(info) - if (n_col <= size(work)) then - if ((4*n_col+n_col) <= size(work)) then - else - deallocate(aux) - endif - else - deallocate(ww,aux) - endif + deallocate(ww) call psb_erractionrestore(err_act) return diff --git a/prec/impl/psb_c_diagprec_impl.f90 b/prec/impl/psb_c_diagprec_impl.f90 index c16f9465..53b3ad7a 100644 --- a/prec/impl/psb_c_diagprec_impl.f90 +++ b/prec/impl/psb_c_diagprec_impl.f90 @@ -65,7 +65,7 @@ subroutine psb_c_diag_dump(prec,info,prefix,head) end subroutine psb_c_diag_dump -subroutine psb_c_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_c_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_c_diagprec, psb_protect_name => psb_c_diag_apply_vect implicit none @@ -76,7 +76,6 @@ subroutine psb_c_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_c_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) integer(psb_ipk_) :: err_act, nrow, ierr(5) character(len=20) :: name='c_diag_prec_apply' complex(psb_spk_), pointer :: ww(:) diff --git a/prec/impl/psb_c_nullprec_impl.f90 b/prec/impl/psb_c_nullprec_impl.f90 index 9d87522a..136eba2b 100644 --- a/prec/impl/psb_c_nullprec_impl.f90 +++ b/prec/impl/psb_c_nullprec_impl.f90 @@ -29,7 +29,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine psb_c_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_c_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_c_nullprec, psb_protect_name => psb_c_null_apply_vect implicit none @@ -40,7 +40,6 @@ subroutine psb_c_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_c_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) integer(psb_ipk_) :: err_act, nrow, ierr(5) character(len=20) :: name='c_null_prec_apply' diff --git a/prec/impl/psb_c_prec_type_impl.f90 b/prec/impl/psb_c_prec_type_impl.f90 index e82d7dca..64dccd5f 100644 --- a/prec/impl/psb_c_prec_type_impl.f90 +++ b/prec/impl/psb_c_prec_type_impl.f90 @@ -62,7 +62,7 @@ !!$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -subroutine psb_c_apply2_vect(prec,x,y,desc_data,info,trans,work) +subroutine psb_c_apply2_vect(prec,x,y,desc_data,info,trans) use psb_base_mod use psb_c_prec_type, psb_protect_name => psb_c_apply2_vect implicit none @@ -72,7 +72,6 @@ subroutine psb_c_apply2_vect(prec,x,y,desc_data,info,trans,work) type(psb_c_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) character :: trans_ complex(psb_spk_), pointer :: work_(:) @@ -94,36 +93,13 @@ subroutine psb_c_apply2_vect(prec,x,y,desc_data,info,trans,work) trans_='N' end if - if (present(work)) then - work_ => work - else - allocate(work_(4*desc_data%get_local_cols()),stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - - end if - if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - call prec%prec%apply(cone,x,czero,y,desc_data,info,& - & trans=trans_,work=work_) - - if (present(work)) then - else - deallocate(work_,stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='DeAllocate') - goto 9999 - end if - end if + call prec%prec%apply(cone,x,czero,y,desc_data,info,trans=trans_) call psb_erractionrestore(err_act) return @@ -133,20 +109,18 @@ subroutine psb_c_apply2_vect(prec,x,y,desc_data,info,trans,work) end subroutine psb_c_apply2_vect -subroutine psb_c_apply1_vect(prec,x,desc_data,info,trans,work) +subroutine psb_c_apply1_vect(prec,x,desc_data,info,trans) use psb_base_mod use psb_c_prec_type, psb_protect_name => psb_c_apply1_vect implicit none - type(psb_desc_type),intent(in) :: desc_data - class(psb_cprec_type), intent(inout) :: prec - type(psb_c_vect_type),intent(inout) :: x - integer(psb_ipk_), intent(out) :: info - character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) + type(psb_desc_type),intent(in) :: desc_data + class(psb_cprec_type), intent(inout) :: prec + type(psb_c_vect_type),intent(inout) :: x + integer(psb_ipk_), intent(out) :: info + character(len=1), optional :: trans type(psb_c_vect_type) :: ww character :: trans_ - complex(psb_spk_), pointer :: work_(:) type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me integer(psb_ipk_) :: err_act @@ -165,18 +139,6 @@ subroutine psb_c_apply1_vect(prec,x,desc_data,info,trans,work) trans_='N' end if - if (present(work)) then - work_ => work - else - allocate(work_(4*desc_data%get_local_cols()),stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - - end if - if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") @@ -184,19 +146,9 @@ subroutine psb_c_apply1_vect(prec,x,desc_data,info,trans,work) end if 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 prec%prec%apply(cone,x,czero,ww,desc_data,info,trans=trans_) 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) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='DeAllocate') - goto 9999 - end if - end if call psb_erractionrestore(err_act) return diff --git a/prec/impl/psb_d_bjacprec_impl.f90 b/prec/impl/psb_d_bjacprec_impl.f90 index ec866dbe..3664704c 100644 --- a/prec/impl/psb_d_bjacprec_impl.f90 +++ b/prec/impl/psb_d_bjacprec_impl.f90 @@ -71,7 +71,7 @@ subroutine psb_d_bjac_dump(prec,info,prefix,head) end subroutine psb_d_bjac_dump -subroutine psb_d_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_d_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_d_bjacprec, psb_protect_name => psb_d_bjac_apply_vect implicit none @@ -82,11 +82,10 @@ subroutine psb_d_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_d_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) ! Local variables integer(psb_ipk_) :: n_row,n_col - real(psb_dpk_), pointer :: ww(:), aux(:) + real(psb_dpk_), pointer :: ww(:) type(psb_d_vect_type) :: wv, wv1 type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me @@ -140,17 +139,7 @@ subroutine psb_d_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) end if - if (n_col <= size(work)) then - ww => work(1:n_col) - if ((4*n_col+n_col) <= size(work)) then - aux => work(n_col+1:) - else - allocate(aux(4*n_col),stat=info) - - endif - else - allocate(ww(n_col),aux(4*n_col),stat=info) - endif + allocate(ww(n_col),stat=info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') @@ -168,28 +157,28 @@ subroutine psb_d_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) select case(trans_) case('N') call psb_spsm(done,prec%av(psb_l_pr_),x,dzero,wv,desc_data,info,& - & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_,work=aux) + & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_u_pr_),wv,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_, work=aux) + & trans=trans_,scale='U',choice=psb_none_) case('T') call psb_spsm(done,prec%av(psb_u_pr_),x,dzero,wv,desc_data,info,& - & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_, work=aux) + & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),wv,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_) case('C') call psb_spsm(done,prec%av(psb_u_pr_),x,dzero,wv,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_, work=aux) + & trans=trans_,scale='U',choice=psb_none_) call wv1%mlt(done,prec%dv,wv,dzero,info,conjgx=trans_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),wv1,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_) end select if (info /= psb_success_) then @@ -203,20 +192,20 @@ subroutine psb_d_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) select case(trans_) case('N') call psb_spmm(done,prec%av(psb_l_pr_),x,dzero,wv,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false.) if (info == psb_success_) call wv1%mlt(done,prec%dv,wv,dzero,info) if(info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_u_pr_),wv1,& - & beta,y,desc_data,info, trans=trans_, work=aux,doswap=.false.) + & beta,y,desc_data,info, trans=trans_,doswap=.false.) case('T','C') call psb_spmm(done,prec%av(psb_l_pr_),x,dzero,wv,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false.) if (info == psb_success_) call wv1%mlt(done,prec%dv,wv,dzero,info) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_u_pr_),wv1, & - & beta,y,desc_data,info,trans=trans_,work=aux,doswap=.false.) + & beta,y,desc_data,info,trans=trans_,doswap=.false.) end select if (info /= psb_success_) then @@ -234,16 +223,7 @@ subroutine psb_d_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) call psb_halo(y,desc_data,info,data=psb_comm_mov_) - if (do_alloc_wrk) call prec%free_wrk(info) - if (n_col <= size(work)) then - if ((4*n_col+n_col) <= size(work)) then - else - deallocate(aux) - endif - else - deallocate(ww,aux) - endif - + deallocate(ww) call psb_erractionrestore(err_act) return @@ -350,7 +330,7 @@ subroutine psb_d_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) select case(trans_) case('N') call psb_spsm(done,prec%av(psb_l_pr_),x,dzero,ww,desc_data,info,& - & trans=trans_,scale='L',diag=prec%dv%v%v,choice=psb_none_,work=aux) + & trans=trans_,scale='L',diag=prec%dv%v%v,choice=psb_none_, work=aux) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_u_pr_),ww,& & beta,y,desc_data,info,& & trans=trans_,scale='U',choice=psb_none_, work=aux) @@ -360,7 +340,7 @@ subroutine psb_d_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) & trans=trans_,scale='L',diag=prec%dv%v%v,choice=psb_none_, work=aux) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),ww,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_, work=aux) case('C') @@ -369,7 +349,7 @@ subroutine psb_d_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) ww(1:n_row) = ww(1:n_row)*(prec%dv%v%v(1:n_row)) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),ww,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_, work=aux) end select if (info /= psb_success_) then @@ -384,27 +364,26 @@ subroutine psb_d_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) case('N') call psb_spmm(done,prec%av(psb_l_pr_),x,dzero,ww,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false., work=aux) ww(1:n_row) = ww(1:n_row) * prec%dv%v%v(1:n_row) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_u_pr_),ww,beta,y,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false., work=aux) case('T') call psb_spmm(done,prec%av(psb_u_pr_),x,dzero,ww,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false., work=aux) ww(1:n_row) = ww(1:n_row) * prec%dv%v%v(1:n_row) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) - + & trans=trans_,doswap=.false., work=aux) case('C') call psb_spmm(done,prec%av(psb_u_pr_),x,dzero,ww,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false., work=aux) ww(1:n_row) = ww(1:n_row) * (prec%dv%v%v(1:n_row)) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false., work=aux) end select diff --git a/prec/impl/psb_d_diagprec_impl.f90 b/prec/impl/psb_d_diagprec_impl.f90 index 3a6e32f9..2300c571 100644 --- a/prec/impl/psb_d_diagprec_impl.f90 +++ b/prec/impl/psb_d_diagprec_impl.f90 @@ -65,7 +65,7 @@ subroutine psb_d_diag_dump(prec,info,prefix,head) end subroutine psb_d_diag_dump -subroutine psb_d_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_d_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_d_diagprec, psb_protect_name => psb_d_diag_apply_vect implicit none @@ -76,7 +76,6 @@ subroutine psb_d_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_d_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) integer(psb_ipk_) :: err_act, nrow, ierr(5) character(len=20) :: name='d_diag_prec_apply' real(psb_dpk_), pointer :: ww(:) diff --git a/prec/impl/psb_d_nullprec_impl.f90 b/prec/impl/psb_d_nullprec_impl.f90 index b9822932..7bcdf127 100644 --- a/prec/impl/psb_d_nullprec_impl.f90 +++ b/prec/impl/psb_d_nullprec_impl.f90 @@ -29,7 +29,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine psb_d_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_d_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_d_nullprec, psb_protect_name => psb_d_null_apply_vect implicit none @@ -40,7 +40,6 @@ subroutine psb_d_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_d_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) integer(psb_ipk_) :: err_act, nrow, ierr(5) character(len=20) :: name='c_null_prec_apply' diff --git a/prec/impl/psb_d_prec_type_impl.f90 b/prec/impl/psb_d_prec_type_impl.f90 index 69e48079..61715676 100644 --- a/prec/impl/psb_d_prec_type_impl.f90 +++ b/prec/impl/psb_d_prec_type_impl.f90 @@ -14,7 +14,7 @@ ! documentation and/or other materials provided with the distribution. ! 3. The name of the PSBLAS group or the names of its contributors may ! not be used to endorse or promote products derived from this -! software without specific written permission. +! software without specific prior written permission. ! ! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED @@ -45,7 +45,7 @@ !!$ documentation and/or other materials provided with the distribution. !!$ 3. The name of the PSBLAS group or the names of its contributors may !!$ not be used to endorse or promote products derived from this -!!$ software without specific written permission. +!!$ software without specific prior written permission. !!$ !!$ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS !!$ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED @@ -62,7 +62,7 @@ !!$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -subroutine psb_d_apply2_vect(prec,x,y,desc_data,info,trans,work) +subroutine psb_d_apply2_vect(prec,x,y,desc_data,info,trans) use psb_base_mod use psb_d_prec_type, psb_protect_name => psb_d_apply2_vect implicit none @@ -72,10 +72,8 @@ subroutine psb_d_apply2_vect(prec,x,y,desc_data,info,trans,work) type(psb_d_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) character :: trans_ - real(psb_dpk_), pointer :: work_(:) type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me integer(psb_ipk_) :: err_act @@ -94,36 +92,13 @@ subroutine psb_d_apply2_vect(prec,x,y,desc_data,info,trans,work) trans_='N' end if - if (present(work)) then - work_ => work - else - allocate(work_(4*desc_data%get_local_cols()),stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - - end if - if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - call prec%prec%apply(done,x,dzero,y,desc_data,info,& - & trans=trans_,work=work_) - - if (present(work)) then - else - deallocate(work_,stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='DeAllocate') - goto 9999 - end if - end if + call prec%prec%apply(done,x,dzero,y,desc_data,info,trans=trans_) call psb_erractionrestore(err_act) return @@ -133,7 +108,7 @@ subroutine psb_d_apply2_vect(prec,x,y,desc_data,info,trans,work) end subroutine psb_d_apply2_vect -subroutine psb_d_apply1_vect(prec,x,desc_data,info,trans,work) +subroutine psb_d_apply1_vect(prec,x,desc_data,info,trans) use psb_base_mod use psb_d_prec_type, psb_protect_name => psb_d_apply1_vect implicit none @@ -142,11 +117,9 @@ subroutine psb_d_apply1_vect(prec,x,desc_data,info,trans,work) type(psb_d_vect_type),intent(inout) :: x integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) type(psb_d_vect_type) :: ww character :: trans_ - real(psb_dpk_), pointer :: work_(:) type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me integer(psb_ipk_) :: err_act @@ -165,18 +138,6 @@ subroutine psb_d_apply1_vect(prec,x,desc_data,info,trans,work) trans_='N' end if - if (present(work)) then - work_ => work - else - allocate(work_(4*desc_data%get_local_cols()),stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - - end if - if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") @@ -184,19 +145,9 @@ subroutine psb_d_apply1_vect(prec,x,desc_data,info,trans,work) end if 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 prec%prec%apply(done,x,dzero,ww,desc_data,info,trans=trans_) 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) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='DeAllocate') - goto 9999 - end if - end if call psb_erractionrestore(err_act) return diff --git a/prec/impl/psb_s_bjacprec_impl.f90 b/prec/impl/psb_s_bjacprec_impl.f90 index d4a4fd17..5c414060 100644 --- a/prec/impl/psb_s_bjacprec_impl.f90 +++ b/prec/impl/psb_s_bjacprec_impl.f90 @@ -71,7 +71,7 @@ subroutine psb_s_bjac_dump(prec,info,prefix,head) end subroutine psb_s_bjac_dump -subroutine psb_s_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_s_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_s_bjacprec, psb_protect_name => psb_s_bjac_apply_vect implicit none @@ -82,11 +82,10 @@ subroutine psb_s_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_s_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) ! Local variables integer(psb_ipk_) :: n_row,n_col - real(psb_spk_), pointer :: ww(:), aux(:) + real(psb_spk_), pointer :: ww(:) type(psb_s_vect_type) :: wv, wv1 type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me @@ -139,18 +138,7 @@ subroutine psb_s_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) goto 9999 end if - - if (n_col <= size(work)) then - ww => work(1:n_col) - if ((4*n_col+n_col) <= size(work)) then - aux => work(n_col+1:) - else - allocate(aux(4*n_col),stat=info) - - endif - else - allocate(ww(n_col),aux(4*n_col),stat=info) - endif + allocate(ww(n_col),stat=info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') @@ -168,28 +156,28 @@ subroutine psb_s_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) select case(trans_) case('N') call psb_spsm(sone,prec%av(psb_l_pr_),x,szero,wv,desc_data,info,& - & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_,work=aux) + & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_u_pr_),wv,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_, work=aux) + & trans=trans_,scale='U',choice=psb_none_) case('T') call psb_spsm(sone,prec%av(psb_u_pr_),x,szero,wv,desc_data,info,& - & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_, work=aux) + & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),wv,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_) case('C') call psb_spsm(sone,prec%av(psb_u_pr_),x,szero,wv,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_, work=aux) + & trans=trans_,scale='U',choice=psb_none_) call wv1%mlt(sone,prec%dv,wv,szero,info,conjgx=trans_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),wv1,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_) end select if (info /= psb_success_) then @@ -203,20 +191,20 @@ subroutine psb_s_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) select case(trans_) case('N') call psb_spmm(sone,prec%av(psb_l_pr_),x,szero,wv,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false.) if (info == psb_success_) call wv1%mlt(sone,prec%dv,wv,szero,info) if(info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_u_pr_),wv1,& - & beta,y,desc_data,info, trans=trans_, work=aux,doswap=.false.) + & beta,y,desc_data,info, trans=trans_,doswap=.false.) case('T','C') call psb_spmm(sone,prec%av(psb_l_pr_),x,szero,wv,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false.) if (info == psb_success_) call wv1%mlt(sone,prec%dv,wv,szero,info) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_u_pr_),wv1, & - & beta,y,desc_data,info,trans=trans_,work=aux,doswap=.false.) + & beta,y,desc_data,info,trans=trans_,doswap=.false.) end select if (info /= psb_success_) then @@ -235,15 +223,8 @@ subroutine psb_s_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) call psb_halo(y,desc_data,info,data=psb_comm_mov_) if (do_alloc_wrk) call prec%free_wrk(info) - if (n_col <= size(work)) then - if ((4*n_col+n_col) <= size(work)) then - else - deallocate(aux) - endif - else - deallocate(ww,aux) - endif + deallocate(ww) call psb_erractionrestore(err_act) return @@ -350,7 +331,7 @@ subroutine psb_s_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) select case(trans_) case('N') call psb_spsm(sone,prec%av(psb_l_pr_),x,szero,ww,desc_data,info,& - & trans=trans_,scale='L',diag=prec%dv%v%v,choice=psb_none_,work=aux) + & trans=trans_,scale='L',diag=prec%dv%v%v,choice=psb_none_, work=aux) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_u_pr_),ww,& & beta,y,desc_data,info,& & trans=trans_,scale='U',choice=psb_none_, work=aux) @@ -360,7 +341,7 @@ subroutine psb_s_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) & trans=trans_,scale='L',diag=prec%dv%v%v,choice=psb_none_, work=aux) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),ww,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_, work=aux) case('C') @@ -369,7 +350,7 @@ subroutine psb_s_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) ww(1:n_row) = ww(1:n_row)*(prec%dv%v%v(1:n_row)) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),ww,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_, work=aux) end select if (info /= psb_success_) then @@ -384,28 +365,25 @@ subroutine psb_s_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) case('N') call psb_spmm(sone,prec%av(psb_l_pr_),x,szero,ww,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false., work=aux) ww(1:n_row) = ww(1:n_row) * prec%dv%v%v(1:n_row) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_u_pr_),ww,beta,y,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) - + & trans=trans_,doswap=.false., work=aux) case('T') call psb_spmm(sone,prec%av(psb_u_pr_),x,szero,ww,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false., work=aux) ww(1:n_row) = ww(1:n_row) * prec%dv%v%v(1:n_row) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) - + & trans=trans_,doswap=.false., work=aux) case('C') call psb_spmm(sone,prec%av(psb_u_pr_),x,szero,ww,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false., work=aux) ww(1:n_row) = ww(1:n_row) * (prec%dv%v%v(1:n_row)) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) - + & trans=trans_,doswap=.false., work=aux) end select diff --git a/prec/impl/psb_s_diagprec_impl.f90 b/prec/impl/psb_s_diagprec_impl.f90 index 4074cbff..cd145576 100644 --- a/prec/impl/psb_s_diagprec_impl.f90 +++ b/prec/impl/psb_s_diagprec_impl.f90 @@ -65,7 +65,7 @@ subroutine psb_s_diag_dump(prec,info,prefix,head) end subroutine psb_s_diag_dump -subroutine psb_s_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_s_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_s_diagprec, psb_protect_name => psb_s_diag_apply_vect implicit none @@ -76,7 +76,6 @@ subroutine psb_s_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_s_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) integer(psb_ipk_) :: err_act, nrow, ierr(5) character(len=20) :: name='s_diag_prec_apply' real(psb_spk_), pointer :: ww(:) diff --git a/prec/impl/psb_s_nullprec_impl.f90 b/prec/impl/psb_s_nullprec_impl.f90 index f95c34fd..ebb3eda4 100644 --- a/prec/impl/psb_s_nullprec_impl.f90 +++ b/prec/impl/psb_s_nullprec_impl.f90 @@ -29,7 +29,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine psb_s_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_s_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_s_nullprec, psb_protect_name => psb_s_null_apply_vect implicit none @@ -40,7 +40,6 @@ subroutine psb_s_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_s_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) integer(psb_ipk_) :: err_act, nrow, ierr(5) character(len=20) :: name='c_null_prec_apply' diff --git a/prec/impl/psb_s_prec_type_impl.f90 b/prec/impl/psb_s_prec_type_impl.f90 index 4272ba75..ab7e5d8e 100644 --- a/prec/impl/psb_s_prec_type_impl.f90 +++ b/prec/impl/psb_s_prec_type_impl.f90 @@ -62,7 +62,7 @@ !!$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -subroutine psb_s_apply2_vect(prec,x,y,desc_data,info,trans,work) +subroutine psb_s_apply2_vect(prec,x,y,desc_data,info,trans) use psb_base_mod use psb_s_prec_type, psb_protect_name => psb_s_apply2_vect implicit none @@ -72,10 +72,8 @@ subroutine psb_s_apply2_vect(prec,x,y,desc_data,info,trans,work) type(psb_s_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) character :: trans_ - real(psb_spk_), pointer :: work_(:) type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me integer(psb_ipk_) :: err_act @@ -94,36 +92,13 @@ subroutine psb_s_apply2_vect(prec,x,y,desc_data,info,trans,work) trans_='N' end if - if (present(work)) then - work_ => work - else - allocate(work_(4*desc_data%get_local_cols()),stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - - end if - if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - call prec%prec%apply(sone,x,szero,y,desc_data,info,& - & trans=trans_,work=work_) - - if (present(work)) then - else - deallocate(work_,stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='DeAllocate') - goto 9999 - end if - end if + call prec%prec%apply(sone,x,szero,y,desc_data,info,trans=trans_) call psb_erractionrestore(err_act) return @@ -133,7 +108,7 @@ subroutine psb_s_apply2_vect(prec,x,y,desc_data,info,trans,work) end subroutine psb_s_apply2_vect -subroutine psb_s_apply1_vect(prec,x,desc_data,info,trans,work) +subroutine psb_s_apply1_vect(prec,x,desc_data,info,trans) use psb_base_mod use psb_s_prec_type, psb_protect_name => psb_s_apply1_vect implicit none @@ -142,11 +117,9 @@ subroutine psb_s_apply1_vect(prec,x,desc_data,info,trans,work) type(psb_s_vect_type),intent(inout) :: x integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) type(psb_s_vect_type) :: ww character :: trans_ - real(psb_spk_), pointer :: work_(:) type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me integer(psb_ipk_) :: err_act @@ -165,18 +138,6 @@ subroutine psb_s_apply1_vect(prec,x,desc_data,info,trans,work) trans_='N' end if - if (present(work)) then - work_ => work - else - allocate(work_(4*desc_data%get_local_cols()),stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - - end if - if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") @@ -184,19 +145,9 @@ subroutine psb_s_apply1_vect(prec,x,desc_data,info,trans,work) end if 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 prec%prec%apply(sone,x,szero,ww,desc_data,info,trans=trans_) 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) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='DeAllocate') - goto 9999 - end if - end if call psb_erractionrestore(err_act) return diff --git a/prec/impl/psb_z_bjacprec_impl.f90 b/prec/impl/psb_z_bjacprec_impl.f90 index 3533f1e3..03d6329f 100644 --- a/prec/impl/psb_z_bjacprec_impl.f90 +++ b/prec/impl/psb_z_bjacprec_impl.f90 @@ -71,7 +71,7 @@ subroutine psb_z_bjac_dump(prec,info,prefix,head) end subroutine psb_z_bjac_dump -subroutine psb_z_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_z_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_z_bjacprec, psb_protect_name => psb_z_bjac_apply_vect implicit none @@ -82,11 +82,10 @@ subroutine psb_z_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_z_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_dpk_),intent(inout), optional, target :: work(:) ! Local variables integer(psb_ipk_) :: n_row,n_col - complex(psb_dpk_), pointer :: ww(:), aux(:) + complex(psb_dpk_), pointer :: ww(:) type(psb_z_vect_type) :: wv, wv1 type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me @@ -140,17 +139,7 @@ subroutine psb_z_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) end if - if (n_col <= size(work)) then - ww => work(1:n_col) - if ((4*n_col+n_col) <= size(work)) then - aux => work(n_col+1:) - else - allocate(aux(4*n_col),stat=info) - - endif - else - allocate(ww(n_col),aux(4*n_col),stat=info) - endif + allocate(ww(n_col),stat=info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') @@ -168,28 +157,28 @@ subroutine psb_z_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) select case(trans_) case('N') call psb_spsm(zone,prec%av(psb_l_pr_),x,zzero,wv,desc_data,info,& - & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_,work=aux) + & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_u_pr_),wv,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_, work=aux) + & trans=trans_,scale='U',choice=psb_none_) case('T') call psb_spsm(zone,prec%av(psb_u_pr_),x,zzero,wv,desc_data,info,& - & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_, work=aux) + & trans=trans_,scale='L',diag=prec%dv,choice=psb_none_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),wv,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_) case('C') call psb_spsm(zone,prec%av(psb_u_pr_),x,zzero,wv,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_, work=aux) + & trans=trans_,scale='U',choice=psb_none_) call wv1%mlt(zone,prec%dv,wv,zzero,info,conjgx=trans_) if(info == psb_success_) call psb_spsm(alpha,prec%av(psb_l_pr_),wv1,& & beta,y,desc_data,info,& - & trans=trans_,scale='U',choice=psb_none_,work=aux) + & trans=trans_,scale='U',choice=psb_none_) end select if (info /= psb_success_) then @@ -203,20 +192,20 @@ subroutine psb_z_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) select case(trans_) case('N') call psb_spmm(zone,prec%av(psb_l_pr_),x,zzero,wv,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false.) if (info == psb_success_) call wv1%mlt(zone,prec%dv,wv,zzero,info) if(info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_u_pr_),wv1,& - & beta,y,desc_data,info, trans=trans_, work=aux,doswap=.false.) + & beta,y,desc_data,info, trans=trans_, doswap=.false.) case('T','C') call psb_spmm(zone,prec%av(psb_l_pr_),x,zzero,wv,desc_data,info,& - & trans=trans_,work=aux,doswap=.false.) + & trans=trans_,doswap=.false.) if (info == psb_success_) call wv1%mlt(zone,prec%dv,wv,zzero,info) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_u_pr_),wv1, & - & beta,y,desc_data,info,trans=trans_,work=aux,doswap=.false.) + & beta,y,desc_data,info,trans=trans_,doswap=.false.) end select if (info /= psb_success_) then @@ -235,14 +224,8 @@ subroutine psb_z_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) call psb_halo(y,desc_data,info,data=psb_comm_mov_) if (do_alloc_wrk) call prec%free_wrk(info) - if (n_col <= size(work)) then - if ((4*n_col+n_col) <= size(work)) then - else - deallocate(aux) - endif - else - deallocate(ww,aux) - endif + + deallocate(ww) call psb_erractionrestore(err_act) @@ -397,7 +380,6 @@ subroutine psb_z_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,& & trans=trans_,work=aux,doswap=.false.) - case('C') call psb_spmm(zone,prec%av(psb_u_pr_),x,zzero,ww,desc_data,info,& & trans=trans_,work=aux,doswap=.false.) @@ -405,7 +387,6 @@ subroutine psb_z_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) if (info == psb_success_) & & call psb_spmm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,& & trans=trans_,work=aux,doswap=.false.) - end select diff --git a/prec/impl/psb_z_diagprec_impl.f90 b/prec/impl/psb_z_diagprec_impl.f90 index 15776b52..d501401e 100644 --- a/prec/impl/psb_z_diagprec_impl.f90 +++ b/prec/impl/psb_z_diagprec_impl.f90 @@ -65,7 +65,7 @@ subroutine psb_z_diag_dump(prec,info,prefix,head) end subroutine psb_z_diag_dump -subroutine psb_z_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_z_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_z_diagprec, psb_protect_name => psb_z_diag_apply_vect implicit none @@ -76,7 +76,6 @@ subroutine psb_z_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_z_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_dpk_),intent(inout), optional, target :: work(:) integer(psb_ipk_) :: err_act, nrow, ierr(5) character(len=20) :: name='z_diag_prec_apply' complex(psb_dpk_), pointer :: ww(:) diff --git a/prec/impl/psb_z_nullprec_impl.f90 b/prec/impl/psb_z_nullprec_impl.f90 index 0306f35d..9cb1a208 100644 --- a/prec/impl/psb_z_nullprec_impl.f90 +++ b/prec/impl/psb_z_nullprec_impl.f90 @@ -29,7 +29,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine psb_z_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) +subroutine psb_z_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) use psb_base_mod use psb_z_nullprec, psb_protect_name => psb_z_null_apply_vect implicit none @@ -40,7 +40,6 @@ subroutine psb_z_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) type(psb_z_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_dpk_),intent(inout), optional, target :: work(:) integer(psb_ipk_) :: err_act, nrow, ierr(5) character(len=20) :: name='c_null_prec_apply' diff --git a/prec/impl/psb_z_prec_type_impl.f90 b/prec/impl/psb_z_prec_type_impl.f90 index 00f0b05e..7f5ae39e 100644 --- a/prec/impl/psb_z_prec_type_impl.f90 +++ b/prec/impl/psb_z_prec_type_impl.f90 @@ -75,7 +75,6 @@ subroutine psb_z_apply2_vect(prec,x,y,desc_data,info,trans,work) complex(psb_dpk_),intent(inout), optional, target :: work(:) character :: trans_ - complex(psb_dpk_), pointer :: work_(:) type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me integer(psb_ipk_) :: err_act @@ -94,36 +93,13 @@ subroutine psb_z_apply2_vect(prec,x,y,desc_data,info,trans,work) trans_='N' end if - if (present(work)) then - work_ => work - else - allocate(work_(4*desc_data%get_local_cols()),stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - - end if - if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - call prec%prec%apply(zone,x,zzero,y,desc_data,info,& - & trans=trans_,work=work_) - - if (present(work)) then - else - deallocate(work_,stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='DeAllocate') - goto 9999 - end if - end if + call prec%prec%apply(zone,x,zzero,y,desc_data,info,trans=trans_) call psb_erractionrestore(err_act) return @@ -146,7 +122,6 @@ subroutine psb_z_apply1_vect(prec,x,desc_data,info,trans,work) type(psb_z_vect_type) :: ww character :: trans_ - complex(psb_dpk_), pointer :: work_(:) type(psb_ctxt_type) :: ctxt integer(psb_ipk_) :: np,me integer(psb_ipk_) :: err_act @@ -165,18 +140,6 @@ subroutine psb_z_apply1_vect(prec,x,desc_data,info,trans,work) trans_='N' end if - if (present(work)) then - work_ => work - else - allocate(work_(4*desc_data%get_local_cols()),stat=info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='Allocate') - goto 9999 - end if - - end if - if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") @@ -184,19 +147,9 @@ subroutine psb_z_apply1_vect(prec,x,desc_data,info,trans,work) end if 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 prec%prec%apply(zone,x,zzero,ww,desc_data,info,trans=trans_) 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) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - call psb_errpush(info,name,a_err='DeAllocate') - goto 9999 - end if - end if call psb_erractionrestore(err_act) return diff --git a/prec/psb_c_base_prec_mod.f90 b/prec/psb_c_base_prec_mod.f90 index 4358d5c2..8af17a7d 100644 --- a/prec/psb_c_base_prec_mod.f90 +++ b/prec/psb_c_base_prec_mod.f90 @@ -78,7 +78,7 @@ module psb_c_base_prec_mod & psb_c_base_get_nzeros abstract interface - subroutine psb_c_base_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_c_base_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import psb_ipk_, psb_spk_, psb_desc_type, psb_c_vect_type, & & psb_c_base_vect_type, psb_cspmat_type, psb_c_base_prec_type,& & psb_c_base_sparse_mat @@ -90,7 +90,6 @@ module psb_c_base_prec_mod type(psb_c_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) end subroutine psb_c_base_apply_vect end interface diff --git a/prec/psb_c_bjacprec.f90 b/prec/psb_c_bjacprec.f90 index 8d689352..c26e7d76 100644 --- a/prec/psb_c_bjacprec.f90 +++ b/prec/psb_c_bjacprec.f90 @@ -77,7 +77,7 @@ module psb_c_bjacprec end interface interface - subroutine psb_c_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_c_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_c_bjac_prec_type, psb_c_vect_type, psb_spk_ type(psb_desc_type),intent(in) :: desc_data class(psb_c_bjac_prec_type), intent(inout) :: prec @@ -86,7 +86,7 @@ module psb_c_bjacprec type(psb_c_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) + end subroutine psb_c_bjac_apply_vect end interface diff --git a/prec/psb_c_diagprec.f90 b/prec/psb_c_diagprec.f90 index 9af9e2f9..5ef6aa1a 100644 --- a/prec/psb_c_diagprec.f90 +++ b/prec/psb_c_diagprec.f90 @@ -56,7 +56,7 @@ module psb_c_diagprec interface - subroutine psb_c_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_c_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_c_diag_prec_type, psb_c_vect_type, psb_spk_ type(psb_desc_type),intent(in) :: desc_data class(psb_c_diag_prec_type), intent(inout) :: prec @@ -65,7 +65,6 @@ module psb_c_diagprec type(psb_c_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) end subroutine psb_c_diag_apply_vect end interface diff --git a/prec/psb_c_nullprec.f90 b/prec/psb_c_nullprec.f90 index 56bbca58..4d8e828a 100644 --- a/prec/psb_c_nullprec.f90 +++ b/prec/psb_c_nullprec.f90 @@ -51,7 +51,7 @@ module psb_c_nullprec interface - subroutine psb_c_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_c_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_c_null_prec_type, psb_c_vect_type, psb_spk_ type(psb_desc_type),intent(in) :: desc_data class(psb_c_null_prec_type), intent(inout) :: prec @@ -60,7 +60,6 @@ module psb_c_nullprec type(psb_c_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) end subroutine psb_c_null_apply_vect end interface diff --git a/prec/psb_c_prec_type.f90 b/prec/psb_c_prec_type.f90 index 9c5e1cdc..220f3e5a 100644 --- a/prec/psb_c_prec_type.f90 +++ b/prec/psb_c_prec_type.f90 @@ -108,27 +108,25 @@ module psb_c_prec_type end interface interface - subroutine psb_c_apply2_vect(prec,x,y,desc_data,info,trans,work) + subroutine psb_c_apply2_vect(prec,x,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_cprec_type, psb_c_vect_type, psb_spk_ - type(psb_desc_type),intent(in) :: desc_data - class(psb_cprec_type), intent(inout) :: prec - type(psb_c_vect_type),intent(inout) :: x - type(psb_c_vect_type),intent(inout) :: y - integer(psb_ipk_), intent(out) :: info - character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) + type(psb_desc_type),intent(in) :: desc_data + class(psb_cprec_type), intent(inout) :: prec + type(psb_c_vect_type),intent(inout) :: x + type(psb_c_vect_type),intent(inout) :: y + integer(psb_ipk_), intent(out) :: info + character(len=1), optional :: trans end subroutine psb_c_apply2_vect end interface interface - subroutine psb_c_apply1_vect(prec,x,desc_data,info,trans,work) + subroutine psb_c_apply1_vect(prec,x,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_cprec_type, psb_c_vect_type, psb_spk_ - type(psb_desc_type),intent(in) :: desc_data - class(psb_cprec_type), intent(inout) :: prec - type(psb_c_vect_type),intent(inout) :: x - integer(psb_ipk_), intent(out) :: info - character(len=1), optional :: trans - complex(psb_spk_),intent(inout), optional, target :: work(:) + type(psb_desc_type),intent(in) :: desc_data + class(psb_cprec_type), intent(inout) :: prec + type(psb_c_vect_type),intent(inout) :: x + integer(psb_ipk_), intent(out) :: info + character(len=1), optional :: trans end subroutine psb_c_apply1_vect end interface diff --git a/prec/psb_d_base_prec_mod.f90 b/prec/psb_d_base_prec_mod.f90 index e3869193..dbc8d1f1 100644 --- a/prec/psb_d_base_prec_mod.f90 +++ b/prec/psb_d_base_prec_mod.f90 @@ -78,7 +78,7 @@ module psb_d_base_prec_mod & psb_d_base_get_nzeros abstract interface - subroutine psb_d_base_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_d_base_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import psb_ipk_, psb_dpk_, psb_desc_type, psb_d_vect_type, & & psb_d_base_vect_type, psb_dspmat_type, psb_d_base_prec_type,& & psb_d_base_sparse_mat @@ -90,8 +90,6 @@ module psb_d_base_prec_mod type(psb_d_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) - end subroutine psb_d_base_apply_vect end interface diff --git a/prec/psb_d_bjacprec.f90 b/prec/psb_d_bjacprec.f90 index 6ca35ec8..92ae0c69 100644 --- a/prec/psb_d_bjacprec.f90 +++ b/prec/psb_d_bjacprec.f90 @@ -77,7 +77,7 @@ module psb_d_bjacprec end interface interface - subroutine psb_d_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_d_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_d_bjac_prec_type, psb_d_vect_type, psb_dpk_ type(psb_desc_type),intent(in) :: desc_data class(psb_d_bjac_prec_type), intent(inout) :: prec @@ -86,7 +86,6 @@ module psb_d_bjacprec type(psb_d_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine psb_d_bjac_apply_vect end interface diff --git a/prec/psb_d_diagprec.f90 b/prec/psb_d_diagprec.f90 index 268b104c..133763b0 100644 --- a/prec/psb_d_diagprec.f90 +++ b/prec/psb_d_diagprec.f90 @@ -56,7 +56,7 @@ module psb_d_diagprec interface - subroutine psb_d_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_d_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_d_diag_prec_type, psb_d_vect_type, psb_dpk_ type(psb_desc_type),intent(in) :: desc_data class(psb_d_diag_prec_type), intent(inout) :: prec @@ -65,7 +65,6 @@ module psb_d_diagprec type(psb_d_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine psb_d_diag_apply_vect end interface diff --git a/prec/psb_d_nullprec.f90 b/prec/psb_d_nullprec.f90 index 7e94e0ef..b37af8b7 100644 --- a/prec/psb_d_nullprec.f90 +++ b/prec/psb_d_nullprec.f90 @@ -51,7 +51,7 @@ module psb_d_nullprec interface - subroutine psb_d_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_d_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_d_null_prec_type, psb_d_vect_type, psb_dpk_ type(psb_desc_type),intent(in) :: desc_data class(psb_d_null_prec_type), intent(inout) :: prec @@ -60,7 +60,6 @@ module psb_d_nullprec type(psb_d_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine psb_d_null_apply_vect end interface diff --git a/prec/psb_d_prec_type.f90 b/prec/psb_d_prec_type.f90 index 708b33f3..55baaad6 100644 --- a/prec/psb_d_prec_type.f90 +++ b/prec/psb_d_prec_type.f90 @@ -108,7 +108,7 @@ module psb_d_prec_type end interface interface - subroutine psb_d_apply2_vect(prec,x,y,desc_data,info,trans,work) + subroutine psb_d_apply2_vect(prec,x,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_dprec_type, psb_d_vect_type, psb_dpk_ type(psb_desc_type),intent(in) :: desc_data class(psb_dprec_type), intent(inout) :: prec @@ -116,19 +116,17 @@ module psb_d_prec_type type(psb_d_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine psb_d_apply2_vect end interface interface - subroutine psb_d_apply1_vect(prec,x,desc_data,info,trans,work) + subroutine psb_d_apply1_vect(prec,x,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_dprec_type, psb_d_vect_type, psb_dpk_ type(psb_desc_type),intent(in) :: desc_data class(psb_dprec_type), intent(inout) :: prec type(psb_d_vect_type),intent(inout) :: x integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine psb_d_apply1_vect end interface diff --git a/prec/psb_s_base_prec_mod.f90 b/prec/psb_s_base_prec_mod.f90 index 36af2787..5f2bc217 100644 --- a/prec/psb_s_base_prec_mod.f90 +++ b/prec/psb_s_base_prec_mod.f90 @@ -78,19 +78,18 @@ module psb_s_base_prec_mod & psb_s_base_get_nzeros abstract interface - subroutine psb_s_base_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_s_base_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import psb_ipk_, psb_spk_, psb_desc_type, psb_s_vect_type, & & psb_s_base_vect_type, psb_sspmat_type, psb_s_base_prec_type,& & psb_s_base_sparse_mat implicit none - type(psb_desc_type),intent(in) :: desc_data + type(psb_desc_type),intent(in) :: desc_data class(psb_s_base_prec_type), intent(inout) :: prec - real(psb_spk_),intent(in) :: alpha, beta - type(psb_s_vect_type),intent(inout) :: x - type(psb_s_vect_type),intent(inout) :: y - integer(psb_ipk_), intent(out) :: info - character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) + real(psb_spk_),intent(in) :: alpha, beta + type(psb_s_vect_type),intent(inout) :: x + type(psb_s_vect_type),intent(inout) :: y + integer(psb_ipk_), intent(out) :: info + character(len=1), optional :: trans end subroutine psb_s_base_apply_vect end interface @@ -101,14 +100,14 @@ module psb_s_base_prec_mod & psb_s_base_vect_type, psb_sspmat_type, psb_s_base_prec_type,& & psb_s_base_sparse_mat implicit none - type(psb_desc_type),intent(in) :: desc_data - class(psb_s_base_prec_type), intent(inout) :: prec - real(psb_spk_),intent(in) :: alpha, beta - real(psb_spk_),intent(inout) :: x(:) - real(psb_spk_),intent(inout) :: y(:) - integer(psb_ipk_), intent(out) :: info - character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) + type(psb_desc_type),intent(in) :: desc_data + class(psb_s_base_prec_type), intent(inout) :: prec + real(psb_spk_),intent(in) :: alpha, beta + real(psb_spk_),intent(inout) :: x(:) + real(psb_spk_),intent(inout) :: y(:) + integer(psb_ipk_), intent(out) :: info + character(len=1), optional :: trans + real(psb_spk_),intent(inout), optional, target :: work(:) end subroutine psb_s_base_apply end interface diff --git a/prec/psb_s_bjacprec.f90 b/prec/psb_s_bjacprec.f90 index 5173ddd2..645cea04 100644 --- a/prec/psb_s_bjacprec.f90 +++ b/prec/psb_s_bjacprec.f90 @@ -77,7 +77,7 @@ module psb_s_bjacprec end interface interface - subroutine psb_s_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_s_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_s_bjac_prec_type, psb_s_vect_type, psb_spk_ type(psb_desc_type),intent(in) :: desc_data class(psb_s_bjac_prec_type), intent(inout) :: prec @@ -85,8 +85,7 @@ module psb_s_bjacprec type(psb_s_vect_type),intent(inout) :: x type(psb_s_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info - character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) + character(len=1), optional :: trans end subroutine psb_s_bjac_apply_vect end interface diff --git a/prec/psb_s_diagprec.f90 b/prec/psb_s_diagprec.f90 index 022d831d..41c02a37 100644 --- a/prec/psb_s_diagprec.f90 +++ b/prec/psb_s_diagprec.f90 @@ -56,7 +56,7 @@ module psb_s_diagprec interface - subroutine psb_s_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_s_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_s_diag_prec_type, psb_s_vect_type, psb_spk_ type(psb_desc_type),intent(in) :: desc_data class(psb_s_diag_prec_type), intent(inout) :: prec @@ -65,7 +65,6 @@ module psb_s_diagprec type(psb_s_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) end subroutine psb_s_diag_apply_vect end interface diff --git a/prec/psb_s_nullprec.f90 b/prec/psb_s_nullprec.f90 index 9907eb7a..c6fba772 100644 --- a/prec/psb_s_nullprec.f90 +++ b/prec/psb_s_nullprec.f90 @@ -51,7 +51,7 @@ module psb_s_nullprec interface - subroutine psb_s_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_s_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_s_null_prec_type, psb_s_vect_type, psb_spk_ type(psb_desc_type),intent(in) :: desc_data class(psb_s_null_prec_type), intent(inout) :: prec @@ -60,7 +60,6 @@ module psb_s_nullprec type(psb_s_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) end subroutine psb_s_null_apply_vect end interface diff --git a/prec/psb_s_prec_type.f90 b/prec/psb_s_prec_type.f90 index 9b6ee231..8ee1c005 100644 --- a/prec/psb_s_prec_type.f90 +++ b/prec/psb_s_prec_type.f90 @@ -108,7 +108,7 @@ module psb_s_prec_type end interface interface - subroutine psb_s_apply2_vect(prec,x,y,desc_data,info,trans,work) + subroutine psb_s_apply2_vect(prec,x,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_sprec_type, psb_s_vect_type, psb_spk_ type(psb_desc_type),intent(in) :: desc_data class(psb_sprec_type), intent(inout) :: prec @@ -116,19 +116,17 @@ module psb_s_prec_type type(psb_s_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) end subroutine psb_s_apply2_vect end interface interface - subroutine psb_s_apply1_vect(prec,x,desc_data,info,trans,work) + subroutine psb_s_apply1_vect(prec,x,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_sprec_type, psb_s_vect_type, psb_spk_ type(psb_desc_type),intent(in) :: desc_data class(psb_sprec_type), intent(inout) :: prec type(psb_s_vect_type),intent(inout) :: x integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - real(psb_spk_),intent(inout), optional, target :: work(:) end subroutine psb_s_apply1_vect end interface diff --git a/prec/psb_z_base_prec_mod.f90 b/prec/psb_z_base_prec_mod.f90 index ddf67630..4b73740e 100644 --- a/prec/psb_z_base_prec_mod.f90 +++ b/prec/psb_z_base_prec_mod.f90 @@ -78,7 +78,7 @@ module psb_z_base_prec_mod & psb_z_base_get_nzeros abstract interface - subroutine psb_z_base_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_z_base_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import psb_ipk_, psb_dpk_, psb_desc_type, psb_z_vect_type, & & psb_z_base_vect_type, psb_zspmat_type, psb_z_base_prec_type,& & psb_z_base_sparse_mat @@ -90,8 +90,6 @@ module psb_z_base_prec_mod type(psb_z_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_dpk_),intent(inout), optional, target :: work(:) - end subroutine psb_z_base_apply_vect end interface diff --git a/prec/psb_z_bjacprec.f90 b/prec/psb_z_bjacprec.f90 index d8ff09bb..0bfbe3c2 100644 --- a/prec/psb_z_bjacprec.f90 +++ b/prec/psb_z_bjacprec.f90 @@ -77,7 +77,7 @@ module psb_z_bjacprec end interface interface - subroutine psb_z_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_z_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_z_bjac_prec_type, psb_z_vect_type, psb_dpk_ type(psb_desc_type),intent(in) :: desc_data class(psb_z_bjac_prec_type), intent(inout) :: prec @@ -86,7 +86,6 @@ module psb_z_bjacprec type(psb_z_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine psb_z_bjac_apply_vect end interface diff --git a/prec/psb_z_diagprec.f90 b/prec/psb_z_diagprec.f90 index 26ae3c38..b70f57da 100644 --- a/prec/psb_z_diagprec.f90 +++ b/prec/psb_z_diagprec.f90 @@ -56,7 +56,7 @@ module psb_z_diagprec interface - subroutine psb_z_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_z_diag_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_z_diag_prec_type, psb_z_vect_type, psb_dpk_ type(psb_desc_type),intent(in) :: desc_data class(psb_z_diag_prec_type), intent(inout) :: prec @@ -65,7 +65,6 @@ module psb_z_diagprec type(psb_z_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine psb_z_diag_apply_vect end interface diff --git a/prec/psb_z_nullprec.f90 b/prec/psb_z_nullprec.f90 index 56b5329f..433fe10a 100644 --- a/prec/psb_z_nullprec.f90 +++ b/prec/psb_z_nullprec.f90 @@ -51,7 +51,7 @@ module psb_z_nullprec interface - subroutine psb_z_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work) + subroutine psb_z_null_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans) import :: psb_ipk_, psb_desc_type, psb_z_null_prec_type, psb_z_vect_type, psb_dpk_ type(psb_desc_type),intent(in) :: desc_data class(psb_z_null_prec_type), intent(inout) :: prec @@ -60,7 +60,6 @@ module psb_z_nullprec type(psb_z_vect_type),intent(inout) :: y integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans - complex(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine psb_z_null_apply_vect end interface diff --git a/test/torture/psb_s_mvsv_tester.f90 b/test/torture/psb_s_mvsv_tester.f90 index cfa3388a..0f1a7a75 100644 --- a/test/torture/psb_s_mvsv_tester.f90 +++ b/test/torture/psb_s_mvsv_tester.f90 @@ -23,8 +23,8 @@ contains integer(psb_ipk_) :: nnz=3 integer(psb_ipk_) :: m=2 integer(psb_ipk_) :: k=2 - integer(psb_ipk_) :: IA(3)=(/1, 1, 2/) - integer(psb_ipk_) :: JA(3)=(/1, 2, 2/) + integer(psb_lpk_) :: IA(3)=(/1, 1, 2/) + integer(psb_lpk_) :: JA(3)=(/1, 2, 2/) real*4 :: VA(3)=(/1, 1, 1/) real*4 :: x(2)=(/1, 1/)! reference x real*4 :: cy(2)=(/9, 6/)! reference cy after @@ -100,8 +100,8 @@ contains integer(psb_ipk_) :: nnz=2 integer(psb_ipk_) :: m=2 integer(psb_ipk_) :: k=2 - integer(psb_ipk_) :: IA(2)=(/1, 2/) - integer(psb_ipk_) :: JA(2)=(/1, 1/) + integer(psb_lpk_) :: IA(2)=(/1, 2/) + integer(psb_lpk_) :: JA(2)=(/1, 1/) real*4 :: VA(2)=(/1, 1/) real*4 :: x(2)=(/1, 1/)! reference x real*4 :: cy(2)=(/9, 3/)! reference cy after @@ -177,8 +177,8 @@ contains integer(psb_ipk_) :: nnz=3 integer(psb_ipk_) :: m=2 integer(psb_ipk_) :: k=2 - integer(psb_ipk_) :: IA(3)=(/1, 1, 2/) - integer(psb_ipk_) :: JA(3)=(/1, 2, 2/) + integer(psb_lpk_) :: IA(3)=(/1, 1, 2/) + integer(psb_lpk_) :: JA(3)=(/1, 2, 2/) real*4 :: VA(3)=(/1, 2, 6/) real*4 :: x(2)=(/1, 1/)! reference x real*4 :: cy(2)=(/6, 27/)! reference cy after @@ -254,8 +254,8 @@ contains integer(psb_ipk_) :: nnz=2 integer(psb_ipk_) :: m=2 integer(psb_ipk_) :: k=2 - integer(psb_ipk_) :: IA(2)=(/1, 1/) - integer(psb_ipk_) :: JA(2)=(/1, 2/) + integer(psb_lpk_) :: IA(2)=(/1, 1/) + integer(psb_lpk_) :: JA(2)=(/1, 2/) real*4 :: VA(2)=(/1, 2/) real*4 :: x(2)=(/1, 1/)! reference x real*4 :: cy(2)=(/9, 0/)! reference cy after @@ -331,8 +331,8 @@ contains integer(psb_ipk_) :: nnz=3 integer(psb_ipk_) :: m=2 integer(psb_ipk_) :: k=2 - integer(psb_ipk_) :: IA(3)=(/1, 1, 2/) - integer(psb_ipk_) :: JA(3)=(/1, 2, 1/) + integer(psb_lpk_) :: IA(3)=(/1, 1, 2/) + integer(psb_lpk_) :: JA(3)=(/1, 2, 1/) real*4 :: VA(3)=(/1, 3, 2/) real*4 :: x(2)=(/1, 1/)! reference x real*4 :: cy(2)=(/9, 9/)! reference cy after @@ -408,8 +408,8 @@ contains integer(psb_ipk_) :: nnz=2 integer(psb_ipk_) :: m=2 integer(psb_ipk_) :: k=2 - integer(psb_ipk_) :: IA(2)=(/1, 2/) - integer(psb_ipk_) :: JA(2)=(/1, 1/) + integer(psb_lpk_) :: IA(2)=(/1, 2/) + integer(psb_lpk_) :: JA(2)=(/1, 1/) real*4 :: VA(2)=(/1, 1/) real*4 :: x(2)=(/1, 1/)! reference x real*4 :: cy(2)=(/6, 0/)! reference cy after @@ -485,8 +485,8 @@ contains integer(psb_ipk_) :: nnz=1 integer(psb_ipk_) :: m=2 integer(psb_ipk_) :: k=2 - integer(psb_ipk_) :: IA(1)=(/1/) - integer(psb_ipk_) :: JA(1)=(/1/) + integer(psb_lpk_) :: IA(1)=(/1/) + integer(psb_lpk_) :: JA(1)=(/1/) real*4 :: VA(1)=(/1/) real*4 :: x(2)=(/1, 1/)! reference x real*4 :: cy(2)=(/4, 3/)! reference cy after @@ -562,8 +562,8 @@ contains integer(psb_ipk_) :: nnz=2 integer(psb_ipk_) :: m=2 integer(psb_ipk_) :: k=2 - integer(psb_ipk_) :: IA(2)=(/1, 2/) - integer(psb_ipk_) :: JA(2)=(/1, 1/) + integer(psb_lpk_) :: IA(2)=(/1, 2/) + integer(psb_lpk_) :: JA(2)=(/1, 1/) real*4 :: VA(2)=(/1, 1/) real*4 :: x(2)=(/1, 1/)! reference x real*4 :: cy(2)=(/5, 3/)! reference cy after @@ -639,8 +639,8 @@ contains integer(psb_ipk_) :: nnz=4 integer(psb_ipk_) :: m=2 integer(psb_ipk_) :: k=2 - integer(psb_ipk_) :: IA(4)=(/1, 1, 2, 2/) - integer(psb_ipk_) :: JA(4)=(/1, 2, 1, 2/) + integer(psb_lpk_) :: IA(4)=(/1, 1, 2, 2/) + integer(psb_lpk_) :: JA(4)=(/1, 2, 1, 2/) real*4 :: VA(4)=(/1, 2, 5, 1/) real*4 :: x(2)=(/1, 1/)! reference x real*4 :: cy(2)=(/9, 6/)! reference cy after @@ -716,8 +716,8 @@ contains integer(psb_ipk_) :: nnz=3 integer(psb_ipk_) :: m=2 integer(psb_ipk_) :: k=2 - integer(psb_ipk_) :: IA(3)=(/1, 1, 2/) - integer(psb_ipk_) :: JA(3)=(/1, 2, 1/) + integer(psb_lpk_) :: IA(3)=(/1, 1, 2/) + integer(psb_lpk_) :: JA(3)=(/1, 2, 1/) real*4 :: VA(3)=(/1, 1, 2/) real*4 :: x(2)=(/1, 1/)! reference x real*4 :: cy(2)=(/2, 2/)! reference cy after