diff --git a/base/CMakeLists.txt b/base/CMakeLists.txt index f2b83f91..5fa6bdf6 100644 --- a/base/CMakeLists.txt +++ b/base/CMakeLists.txt @@ -68,26 +68,32 @@ set(PSB_base_source_files comm/internals/psi_cswaptran_a.F90 comm/internals/psi_sovrl_restr.f90 comm/psb_dhalo.f90 + comm/psb_dhalo_new.f90 comm/psb_zgather_a.f90 comm/psb_zovrl.f90 comm/psb_mhalo_a.f90 comm/psb_zscatter_a.F90 comm/psb_chalo.f90 + comm/psb_chalo_new.f90 comm/psb_zscatter.F90 comm/psb_cscatter_a.F90 comm/psb_cspgather.F90 comm/psb_cscatter.F90 comm/psb_shalo_a.f90 + comm/psb_shalo_a_new.f90 comm/psb_cgather.f90 comm/psb_zhalo.f90 + comm/psb_zhalo_new.f90 comm/psb_movrl_a.f90 comm/psb_chalo_a.f90 + comm/psb_chalo_a_new.f90 # comm/psb_i2scatter_a.F90 comm/psb_sgather_a.f90 # comm/psb_i2ovrl_a.f90 comm/psb_zovrl_a.f90 comm/psb_covrl.f90 comm/psb_shalo.f90 + comm/psb_shalo_new.f90 comm/psb_dscatter_a.F90 comm/psb_lgather.f90 comm/psb_iscatter.F90 @@ -98,6 +104,7 @@ set(PSB_base_source_files ## comm/psb_lspgather.F90 ## comm/psb_ispgather.F90 comm/psb_zhalo_a.f90 + comm/psb_zhalo_a_new.f90 comm/psb_sscatter_a.F90 comm/psb_lscatter.F90 # comm/psb_i2gather_a.f90 @@ -110,6 +117,7 @@ set(PSB_base_source_files comm/psb_covrl_a.f90 comm/psb_sgather.f90 comm/psb_dhalo_a.f90 + comm/psb_dhalo_a_new.f90 comm/psb_zgather.f90 comm/psb_igather.f90 comm/psb_sovrl.f90 @@ -431,6 +439,7 @@ set(PSB_base_source_files psblas/psb_zasum.f90 modules/comm/psi_z_comm_v_mod.f90 # modules/comm/psb_i2_comm_a_mod.f90 + modules/comm/psb_neighbor_topology_mod.F90 modules/comm/psb_m_comm_a_mod.f90 modules/comm/psb_z_linmap_mod.f90 modules/comm/psi_s_comm_a_mod.f90 diff --git a/base/comm/Makefile b/base/comm/Makefile index dfa1bed8..46e6737b 100644 --- a/base/comm/Makefile +++ b/base/comm/Makefile @@ -1,12 +1,12 @@ include ../../Make.inc -OBJS = psb_dgather.o psb_dhalo.o psb_dovrl.o \ +OBJS = psb_dgather.o psb_dhalo.o psb_dhalo_new.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_dgather_a.o psb_dhalo_a.o psb_dhalo_a_new.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 \ diff --git a/base/comm/internals/psi_dswapdata.F90 b/base/comm/internals/psi_dswapdata.F90 index 28b5a6d4..a7eccf88 100644 --- a/base/comm/internals/psi_dswapdata.F90 +++ b/base/comm/internals/psi_dswapdata.F90 @@ -74,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - real Choose overwrite or sum. +! 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 +! 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 @@ -106,21 +106,21 @@ subroutine psi_dswapdata_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 + class(psb_d_base_vect_type) :: y + real(psb_dpk_), intent(in) :: beta + real(psb_dpk_), target :: work(:) + type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data ! locals - type(psb_ctxt_type) :: ctxt - integer(psb_mpk_) :: icomm - integer(psb_ipk_) :: np, me, idxs, idxr, totxch, data_, err_act - class(psb_i_base_vect_type), pointer :: d_vidx - character(len=20) :: name - - info=psb_success_ - name='psi_swap_datav' + type(psb_ctxt_type) :: ctxt + integer(psb_mpk_) :: icomm + integer(psb_ipk_) :: np, me, idxs, idxr, totxch, data_, err_act + class(psb_i_base_vect_type), pointer :: d_vidx + character(len=20) :: name + + info = psb_success_ + name = 'psi_swap_datav' call psb_erractionsave(err_act) ctxt = desc_a%get_context() @@ -159,9 +159,11 @@ subroutine psi_dswapdata_vect(flag,beta,y,desc_a,work,info,data) 9999 call psb_error_handler(ctxt,err_act) return + end subroutine psi_dswapdata_vect + ! ! ! Subroutine: psi_dswap_vidx_vect @@ -173,17 +175,20 @@ end subroutine psi_dswapdata_vect ! The real workhorse: the outer routine will only choose the index list ! this one takes the index list and does the actual exchange. ! +! This is a wrapper function that calls different communication schemes depending +! on the flag variable. ! ! -subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx, & - & totxch,totsnd,totrcv,work,info) - +subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx,& + & totxch,totsnd,totrcv,work,info) use psi_mod, psb_protect_name => psi_dswap_vidx_vect use psb_error_mod use psb_realloc_mod use psb_desc_mod use psb_penv_mod use psb_d_base_vect_mod + use psb_neighbor_topology_mod + #ifdef PSB_MPI_MOD use mpi #endif @@ -192,34 +197,126 @@ subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx, & include 'mpif.h' #endif - type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_mpk_), intent(in) :: icomm - 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_mpk_), intent(in) :: 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 + real(psb_dpk_), target :: work(:) + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + + ! local variables used to detect the communication scheme + logical :: swap_mpi, swap_sync, swap_send, swap_recv, swap_start, swap_wait + logical :: baseline, neighbor_a2av + + ! error handling variables + integer(psb_ipk_) :: err_act + integer(psb_mpk_) :: me, np + character(len=20) :: name + + + info=psb_success_ + name='psi_dswap_vidx_vect' + call psb_erractionsave(err_act) + call psb_info(ctxt,me,np) + if (np == -1) then + info=psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + + swap_mpi = iand(flag,psb_swap_mpi_) /= 0 + swap_sync = iand(flag,psb_swap_sync_) /= 0 + swap_send = iand(flag,psb_swap_send_) /= 0 + swap_recv = iand(flag,psb_swap_recv_) /= 0 + swap_start = iand(flag,psb_swap_start_) /= 0 + swap_wait = iand(flag,psb_swap_wait_) /= 0 + + baseline = swap_mpi .or. swap_send .or. swap_recv .or. swap_sync + neighbor_a2av = swap_start .or. swap_wait + + if( (baseline.eqv..true.).and.(neighbor_a2av.eqv..true.) ) then + info=psb_err_mpi_error_ + call psb_errpush(info,name,a_err='Incompatible flag settings: both baseline and neighbor_a2av are true') + goto 9999 + end if + + + if (baseline) then + call psi_dswap_baseline_vect(ctxt,icomm,flag,beta,y,idx,totxch,totsnd,totrcv,work,info) + if (info /= psb_success_) then + call psb_errpush(info,name,a_err='baseline swap') + goto 9999 + end if + else if (neighbor_a2av) then + call psi_dswap_neighbor_topology_vect(ctxt,icomm,flag,beta,y,idx,totxch,totsnd,totrcv,work,info) + if (info /= psb_success_) then + call psb_errpush(info,name,a_err='neighbor a2av swap') + goto 9999 + end if + else + info = psb_err_mpi_error_ + call psb_errpush(info,name,a_err='Incompatible flag settings: neither baseline nor neighbor_a2av is true') + goto 9999 + end if + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ctxt,err_act) + + return + +end subroutine psi_dswap_vidx_vect + + +subroutine psi_dswap_baseline_vect(ctxt,icomm,flag,beta,y,idx, & + & totxch,totsnd,totrcv,work,info) + + use psi_mod, psb_protect_name => psi_dswap_baseline_vect + use psb_d_base_vect_mod + use psb_error_mod + use psb_desc_mod + use psb_penv_mod +#ifdef PSB_MPI_MOD + use mpi +#endif + implicit none +#ifdef PSB_MPI_H + include 'mpif.h' +#endif + + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_mpk_), intent(in) :: 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 + real(psb_dpk_), target :: work(:) + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv ! locals - integer(psb_mpk_) :: np, me - integer(psb_mpk_) :: proc_to_comm, p2ptag, p2pstat(mpi_status_size),& - & iret, nesd, nerv + integer(psb_mpk_) :: np, me + integer(psb_mpk_) :: proc_to_comm, p2ptag, p2pstat(mpi_status_size),& + & iret, nesd, nerv integer(psb_mpk_), allocatable :: prcid(:) integer(psb_ipk_) :: err_act, i, idx_pt, totsnd_, totrcv_,& - & snd_pt, rcv_pt, pnti, n + & snd_pt, rcv_pt, pnti, n logical :: swap_mpi, swap_sync, swap_send, swap_recv,& - & albf,do_send,do_recv + & albf,do_send,do_recv logical, parameter :: usersend=.false., debug=.false. character(len=20) :: name - info=psb_success_ - name='psi_swap_datav' + info = psb_success_ + name = 'psi_dswap_baseline_vect' call psb_erractionsave(err_act) call psb_info(ctxt,me,np) if (np == -1) then - info=psb_err_context_error_ + info = psb_err_context_error_ call psb_errpush(info,name) goto 9999 endif @@ -229,6 +326,7 @@ subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx, & swap_sync = iand(flag,psb_swap_sync_) /= 0 swap_send = iand(flag,psb_swap_send_) /= 0 swap_recv = iand(flag,psb_swap_recv_) /= 0 + do_send = swap_mpi .or. swap_sync .or. swap_send do_recv = swap_mpi .or. swap_sync .or. swap_recv @@ -244,7 +342,7 @@ subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx, & ! Unfinished communication? Something is wrong.... ! info=psb_err_mpi_error_ - call psb_errpush(info,name,m_err=(/-2/)) + call psb_errpush(info,name,a_err='Unfinished communication? Something is wrong....') goto 9999 end if end if @@ -266,8 +364,8 @@ subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx, & if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_double_swap_tag call mpi_irecv(y%combuf(rcv_pt),nerv,& - & psb_mpi_r_dpk_,prcid(i),& - & p2ptag, icomm,y%comid(i,2),iret) + & psb_mpi_r_dpk_,prcid(i),& + & p2ptag, icomm,y%comid(i,2),iret) end if pnti = pnti + nerv + nesd + 3 end do @@ -309,8 +407,8 @@ subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx, & if ((nesd>0).and.(proc_to_comm /= me)) then call mpi_isend(y%combuf(snd_pt),nesd,& - & psb_mpi_r_dpk_,prcid(i),& - & p2ptag,icomm,y%comid(i,1),iret) + & psb_mpi_r_dpk_,prcid(i),& + & p2ptag,icomm,y%comid(i,1),iret) end if if(iret /= mpi_success) then @@ -365,8 +463,8 @@ subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx, & else if (proc_to_comm == me) then if (nesd /= nerv) then write(psb_err_unit,*) & - & 'Fatal error in swapdata: mismatch on self send',& - & nerv,nesd + & 'Fatal error in swapdata: mismatch on self send',& + & nerv,nesd end if y%combuf(rcv_pt:rcv_pt+nerv-1) = y%combuf(snd_pt:snd_pt+nesd-1) end if @@ -386,7 +484,7 @@ subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx, & rcv_pt = 1+pnti+psb_n_elem_recv_ if (debug) write(0,*)me,' Received from: ',prcid(i),& - & y%combuf(rcv_pt:rcv_pt+nerv-1) + & y%combuf(rcv_pt:rcv_pt+nerv-1) call y%sct(rcv_pt,nerv,idx,beta) pnti = pnti + nerv + nesd + 3 end do @@ -417,7 +515,173 @@ subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx, & 9999 call psb_error_handler(ctxt,err_act) return -end subroutine psi_dswap_vidx_vect +end subroutine psi_dswap_baseline_vect + + +subroutine psi_dswap_neighbor_topology_vect(ctxt,icomm,flag,beta,y,idx, & + & totxch,totsnd,totrcv,work,info) + use psi_mod, psb_protect_name => psi_dswap_neighbor_topology_vect + use psb_d_base_vect_mod + use psb_error_mod + use psb_desc_mod + use psb_penv_mod + use psb_neighbor_topology_mod +#ifdef PSB_MPI_MOD + use mpi +#endif + implicit none +#ifdef PSB_MPI_H + include 'mpif.h' +#endif + + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_mpk_), intent(in) :: 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 + real(psb_dpk_), target :: work(:) + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + + ! 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 + + + info = psb_success_ + name = 'psi_dswap_nbr_vect' + call psb_erractionsave(err_act) + call psb_info(ctxt,me,np) + if (np == -1) then + info=psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + do_start = iand(flag,psb_swap_start_) /= 0 + do_wait = iand(flag,psb_swap_wait_) /= 0 + + call idx%sync() + + ! --------------------------------------------------------- + ! START phase: build topology (if needed), gather, post MPI + ! --------------------------------------------------------- + if (do_start) then + if(debug) write(*,*) me,' nbr_vect: starting data exchange' + ! Lazy initialization: build the topology on first call + if (.not. y%neighbor_topology%is_initialized) then + if (debug) write(*,*) me,' nbr_vect: building topology' + call y%neighbor_topology%init(idx%v, totxch, totsnd, totrcv, & + & ctxt, icomm, info) + if (info /= psb_success_) then + call psb_errpush(psb_err_internal_error_, name, & + & a_err='neighbor_topology_init') + goto 9999 + end if + end if + + topology_total_send = y%neighbor_topology%total_send + topology_total_recv = y%neighbor_topology%total_recv + + ! Buffer layout: + ! combuf(1 : total_send) = send area + ! combuf(total_send+1 : total_send+total_recv) = recv area + buffer_size = topology_total_send + topology_total_recv + + call y%new_buffer(buffer_size, info) + if (info /= 0) then + call psb_errpush(psb_err_alloc_dealloc_, name) + goto 9999 + end if + y%communication_handle = mpi_request_null + + ! Gather send data into contiguous send buffer (polymorphic for GPU) + if (debug) write(*,*) me,' nbr_vect: gathering send data,', topology_total_send,' elems' + call y%gth(int(topology_total_send,psb_mpk_), & + & y%neighbor_topology%send_indexes, & + & y%combuf(1:topology_total_send)) + + ! Wait for device (important for GPU subclasses) + call y%device_wait() + + ! Post non-blocking neighborhood alltoallv + if (debug) write(*,*) me,' nbr_vect: posting MPI_Ineighbor_alltoallv' + call mpi_ineighbor_alltoallv( & + & y%combuf(1), & ! send buffer + & y%neighbor_topology%send_counts, & + & y%neighbor_topology%send_displs, & + & psb_mpi_r_dpk_, & + & y%combuf(topology_total_send + 1), & ! recv buffer + & y%neighbor_topology%recv_counts, & + & y%neighbor_topology%recv_displs, & + & psb_mpi_r_dpk_, & + & y%neighbor_topology%graph_comm, & + & y%communication_handle, iret) + if (iret /= mpi_success) then + info = psb_err_mpi_error_ + call psb_errpush(info, name, m_err=(/iret/)) + goto 9999 + end if + + end if ! do_start + + ! --------------------------------------------------------- + ! WAIT phase: complete MPI, scatter received data + ! --------------------------------------------------------- + if (do_wait) then + + if (y%communication_handle == mpi_request_null) then + ! No matching start? Something is wrong + info = psb_err_mpi_error_ + call psb_errpush(info, name, m_err=(/-2/)) + goto 9999 + end if + + topology_total_send = y%neighbor_topology%total_send + topology_total_recv = y%neighbor_topology%total_recv + + ! Wait for the non-blocking collective to complete + if (debug) write(*,*) me,' nbr_vect: waiting on MPI request' + call mpi_wait(y%communication_handle, p2pstat, iret) + if (iret /= mpi_success) then + info = psb_err_mpi_error_ + call psb_errpush(info, name, m_err=(/iret/)) + goto 9999 + end if + + ! Scatter received data to local vector positions (polymorphic for GPU) + if (debug) write(*,*) me,' nbr_vect: scattering recv data,', topology_total_recv,' elems' + call y%sct(int(topology_total_recv,psb_mpk_), & + & y%neighbor_topology%recv_indexes, & + & y%combuf(topology_total_send+1:topology_total_send+topology_total_recv), & + & beta) + + + ! Clean up + y%communication_handle = mpi_request_null + call y%device_wait() + call y%maybe_free_buffer(info) + if (info /= 0) then + call psb_errpush(psb_err_alloc_dealloc_, name) + goto 9999 + end if + if (debug) write(*,*) me,' nbr_vect: done' + + end if ! do_wait + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ctxt,err_act) + + return +end subroutine psi_dswap_neighbor_topology_vect + ! ! @@ -444,10 +708,10 @@ subroutine psi_dswapdata_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 + class(psb_d_base_multivect_type) :: y + real(psb_dpk_), intent(in) :: beta + real(psb_dpk_), target :: work(:) + type(psb_desc_type), target :: desc_a integer(psb_ipk_), optional :: data ! locals @@ -535,7 +799,7 @@ subroutine psi_dswap_vidx_multivect(ctxt,icomm,flag,beta,y,idx, & 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_), intent(in) :: beta real(psb_dpk_), target :: work(:) class(psb_i_base_vect_type), intent(inout) :: idx integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv @@ -762,3 +1026,5 @@ subroutine psi_dswap_vidx_multivect(ctxt,icomm,flag,beta,y,idx, & return end subroutine psi_dswap_vidx_multivect + + diff --git a/base/comm/psb_dhalo_a_new.f90 b/base/comm/psb_dhalo_a_new.f90 new file mode 100644 index 00000000..33b58608 --- /dev/null +++ b/base/comm/psb_dhalo_a_new.f90 @@ -0,0 +1,390 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! 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. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! +! File: psb_dhalo_a_new.f90 +! +! Subroutine: psb_dhalom_new +! This subroutine performs the exchange of the halo elements in a +! distributed dense matrix between all the processes. +! The comm_type argument selects the communication scheme: +! psb_comm_type_isend_ (0) = classic irecv/send (default) +! psb_comm_type_neigh_a2av_ (1) = MPI_Alltoallv collective +! +! Arguments: +! x - real,dimension(:,:). The local part of the dense matrix. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! comm_type - integer. Communication scheme selector +! 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(optional). Which index list in desc_a should be used. +! +subroutine psb_dhalom_new(x,desc_a,info,comm_type,jx,ik,work,tran,mode,data) + use psb_base_mod, psb_protect_name => psb_dhalom_new + use psi_mod + implicit none + + real(psb_dpk_), intent(inout), target :: x(:,:) + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in) :: comm_type + real(psb_dpk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,jx,ik,data + character, intent(in), optional :: tran + + ! locals + type(psb_ctxt_type) :: ctxt + integer(psb_mpk_) :: np, me, k + integer(psb_ipk_) :: err_act, iix, jjx, maxk, nrow, imode, i,& + & liwork, data_, ldx + integer(psb_lpk_) :: m, n, ix, ijx + real(psb_dpk_), pointer :: iwork(:), xp(:,:) + character :: tran_ + character(len=20) :: name, ch_err + logical :: aliw + + name='psb_dhalom_new' + 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() + + ! check on blacs grid + call psb_info(ctxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + ix = 1 + if (present(jx)) then + ijx = jx + else + ijx = 1 + endif + + m = desc_a%get_global_rows() + n = desc_a%get_global_cols() + nrow = desc_a%get_local_rows() + + maxk=size(x,2)-ijx+1 + + if(present(ik)) then + if(ik > maxk) then + k=maxk + else + k=ik + end if + else + k = maxk + end if + + if (present(tran)) then + tran_ = psb_toupper(tran) + else + tran_ = 'N' + endif + + if (present(data)) then + data_ = data + else + data_ = psb_comm_halo_ + endif + + ! + ! Select the communication mode based on comm_type + ! + select case(comm_type) + case(0) + ! + ! Classic irecv/send scheme (default) + ! + if (present(mode)) then + imode = mode + else + imode = IOR(psb_swap_send_,psb_swap_recv_) + endif + + case(1) + if(present(mode)) then + imode = mode + else + imode = IOR(psb_swap_start_,psb_swap_wait_) + endif + + case default + info = psb_err_input_value_invalid_i_ + call psb_errpush(info,name,i_err=(/5_psb_ipk_,comm_type,izero,izero,izero/)) + goto 9999 + end select + + ldx = size(x,1) + ! check vector correctness + call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ ; ch_err='psb_chkvect' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + liwork=nrow + if (present(work)) then + if(size(work) >= liwork) then + aliw=.false. + iwork => work + 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 + xp => x(iix:size(x,1),jjx:jjx+k-1) + if(tran_ == 'N') then + call psi_swapdata(imode,k,dzero,xp,& + & desc_a,iwork,info,data=data_) + else if((tran_ == 'T').or.(tran_ == 'C')) then + call psi_swaptran(imode,k,done,xp,& + &desc_a,iwork,info) + else + info = psb_err_internal_error_ + call psb_errpush(info,name,a_err='invalid tran') + goto 9999 + end if + + if(info /= psb_success_) then + 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 + +9999 call psb_error_handler(ctxt,err_act) + + return +end subroutine psb_dhalom_new + + +! +! Subroutine: psb_dhalov_new +! This subroutine performs the exchange of the halo elements in a +! distributed dense vector between all the processes. +! The comm_type argument selects the communication scheme: +! psb_comm_type_isend_ (0) = classic irecv/send (default) +! psb_comm_type_neigh_a2av_ (1) = MPI_Alltoallv collective +! +! Arguments: +! x - real,dimension(:). The local part of the dense vector. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! comm_type - integer. Communication scheme selector +! work - real(optional). Work area. +! tran - character(optional). Transpose exchange. +! mode - integer(optional). Communication mode (see Swapdata) +! data - integer(optional). Which index list in desc_a should be used. +! +subroutine psb_dhalov_new(x,desc_a,info,comm_type,work,tran,mode,data) + use psb_base_mod, psb_protect_name => psb_dhalov_new + use psi_mod + implicit none + + real(psb_dpk_), intent(inout) :: x(:) + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in) :: comm_type + real(psb_dpk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + + ! locals + type(psb_ctxt_type) :: ctxt + integer(psb_mpk_) :: np, me + integer(psb_ipk_) :: err_act, ldx, iix, jjx, nrow, imode, liwork, 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_new' + 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() + + ! check on blacs grid + call psb_info(ctxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + ix = 1 + ijx = 1 + + m = desc_a%get_global_rows() + n = desc_a%get_global_cols() + nrow = desc_a%get_local_rows() + + if (present(tran)) then + tran_ = psb_toupper(tran) + else + tran_ = 'N' + endif + + if (present(data)) then + data_ = data + else + data_ = psb_comm_halo_ + endif + + ! + ! Select the communication mode based on comm_type + ! + select case(comm_type) + case(0) + ! + ! Classic irecv/send scheme (default) + ! + if (present(mode)) then + imode = mode + else + imode = IOR(psb_swap_send_,psb_swap_recv_) + endif + + case(1) + if(present(mode)) then + imode = mode + else + imode = IOR(psb_swap_start_,psb_swap_wait_) + endif + + case default + info = psb_err_input_value_invalid_i_ + call psb_errpush(info,name,i_err=(/4_psb_ipk_,comm_type,izero,izero,izero/)) + goto 9999 + end select + + ldx = size(x,1) + ! check vector correctness + call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ ; ch_err='psb_chkvect' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + liwork=nrow + if (present(work)) then + if(size(work) >= liwork) then + aliw=.false. + iwork => work + 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,dzero,x(iix:size(x)),& + & desc_a,iwork,info,data=data_) + else if((tran_ == 'T').or.(tran_ == 'C')) then + call psi_swaptran(imode,done,x(iix:size(x)),& + & desc_a,iwork,info) + else + info = psb_err_internal_error_ + call psb_errpush(info,name,a_err='invalid tran') + goto 9999 + end if + + if(info /= psb_success_) then + 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 + +9999 call psb_error_handler(ctxt,err_act) + + return +end subroutine psb_dhalov_new diff --git a/base/comm/psb_dhalo_new.F90 b/base/comm/psb_dhalo_new.F90 new file mode 100644 index 00000000..785ecaaa --- /dev/null +++ b/base/comm/psb_dhalo_new.F90 @@ -0,0 +1,298 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! 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. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! +! File: psb_dhalo_new.f90 +! +! Subroutine: psb_dhalo_vect_new +! Halo exchange for a distributed vector. +! comm_type selects the communication scheme: +! psb_comm_type_isend_ (0) : classic isend/irecv (delegates to psi_swapdata) +! psb_comm_type_neigh_a2av_ (1) : MPI_Neighbor_alltoallv via pre-built topology +! +subroutine psb_dhalo_vect_new(x,desc_a,info,comm_type,work,tran,mode,data) + use psb_base_mod, psb_protect_name => psb_dhalo_vect_new + 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 + integer(psb_ipk_), intent(in) :: comm_type + real(psb_dpk_), target, optional, intent(inout) :: work(:) + 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, & + & nrow, ncol, lldx, imode, liwork, data_ + real(psb_dpk_),pointer :: iwork(:) + real(psb_dpk_), allocatable :: sndbuf(:), rcvbuf(:) + character :: tran_ + character(len=40) :: name, ch_err + logical :: aliw + integer(psb_mpk_) :: iret + integer(psb_ipk_) :: k + + name='psb_dhalo_vect_new' + 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() + call psb_info(ctxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + if (.not.allocated(x%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + + nrow = desc_a%get_local_rows() + ncol = desc_a%get_local_cols() + lldx = x%get_nrows() + + if (present(tran)) then + tran_ = psb_toupper(tran) + else + tran_ = 'N' + endif + if (present(data)) then + data_ = data + else + data_ = psb_comm_halo_ + endif + + if ((info == 0).and.(lldx < ncol)) call x%reall(ncol,info) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ ; ch_err='reall' + call psb_errpush(info,name,a_err=ch_err); goto 9999 + end if + + select case(comm_type) + case(0) ! psb_comm_type_isend_ + ! ---- Classic isend/irecv: delegate to psi_swapdata ---- + if (present(mode)) then + imode = mode + else + imode = IOR(psb_swap_send_,psb_swap_recv_) + 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) + end if + else + aliw=.true.; allocate(iwork(liwork),stat=info) + end if + if(info /= psb_success_) then + ch_err='psb_realloc' + call psb_errpush(psb_err_from_subroutine_,name,a_err=ch_err) + goto 9999 + end if + + if(tran_ == 'N') then + call psi_swapdata(imode,dzero,x%v,desc_a,iwork,info,data=data_) + else if((tran_ == 'T').or.(tran_ == 'C')) then + call psi_swaptran(imode,done,x%v,desc_a,iwork,info) + else + info = psb_err_internal_error_ + call psb_errpush(info,name,a_err='invalid tran'); goto 9999 + end if + + if (info /= psb_success_) then + 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) + + case(1) ! psb_comm_type_neigh_a2av_ + ! TODO + case default + info = psb_err_input_value_invalid_i_ + call psb_errpush(info,name,i_err=(/5_psb_ipk_,comm_type,izero,izero,izero/)) + goto 9999 + end select + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ctxt,err_act) + return +end subroutine psb_dhalo_vect_new + + +! +! Subroutine: psb_dhalo_multivect_new +! Halo exchange for a distributed multivector. +! comm_type selects the communication scheme: +! psb_comm_type_isend_ (0) : classic isend/irecv +! psb_comm_type_neigh_a2av_ (1) : MPI_Neighbor_alltoallv via pre-built topology +! +subroutine psb_dhalo_multivect_new(x,desc_a,info,comm_type,work,tran,mode,data) + use psb_base_mod, psb_protect_name => psb_dhalo_multivect_new + 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 + integer(psb_ipk_), intent(in) :: comm_type + real(psb_dpk_), target, optional, intent(inout) :: work(:) + 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, & + & nrow, ncol, lldx, imode, liwork, data_, nc + real(psb_dpk_),pointer :: iwork(:) + real(psb_dpk_), allocatable :: sndbuf(:), rcvbuf(:) + integer(psb_mpk_), allocatable :: mv_sndcnts(:), mv_rcvcnts(:), & + & mv_snddispls(:), mv_rcvdispls(:) + character :: tran_ + character(len=40) :: name, ch_err + logical :: aliw + integer(psb_mpk_) :: iret + integer(psb_ipk_) :: k, j, bp, nn + + name='psb_dhalo_multivect_new' + 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() + call psb_info(ctxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name); goto 9999 + endif + + if (.not.allocated(x%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name); goto 9999 + endif + + nrow = desc_a%get_local_rows() + ncol = desc_a%get_local_cols() + lldx = x%get_nrows() + nc = x%get_ncols() + + if (present(tran)) then + tran_ = psb_toupper(tran) + else + tran_ = 'N' + endif + if (present(data)) then + data_ = data + else + data_ = psb_comm_halo_ + endif + + if (lldx < ncol) call x%reall(ncol,nc,info) + if(info /= psb_success_) then + ch_err='psb_reall' + call psb_errpush(psb_err_from_subroutine_,name,a_err=ch_err) + goto 9999 + end if + + select case(comm_type) + case(0) + ! ---- Classic isend/irecv ---- + if (present(mode)) then + imode = mode + else + imode = IOR(psb_swap_send_,psb_swap_recv_) + 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) + end if + else + aliw=.true.; allocate(iwork(liwork),stat=info) + end if + if(info /= psb_success_) then + ch_err='psb_realloc' + call psb_errpush(psb_err_from_subroutine_,name,a_err=ch_err) + goto 9999 + end if + + if(tran_ == 'N') then + call psi_swapdata(imode,dzero,x%v,desc_a,iwork,info,data=data_) + else if((tran_ == 'T').or.(tran_ == 'C')) then + call psi_swaptran(imode,done,x%v,desc_a,iwork,info) + else + info = psb_err_internal_error_ + call psb_errpush(info,name,a_err='invalid tran'); goto 9999 + end if + + if (info /= psb_success_) then + 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) + + case(1) + ! TODO + + case default + info = psb_err_input_value_invalid_i_ + call psb_errpush(info,name,i_err=(/5_psb_ipk_,comm_type,izero,izero,izero/)) + goto 9999 + end select + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ctxt,err_act) + return +end subroutine psb_dhalo_multivect_new diff --git a/base/modules/Makefile b/base/modules/Makefile index b582b8b7..4be058d7 100644 --- a/base/modules/Makefile +++ b/base/modules/Makefile @@ -28,6 +28,7 @@ COMMINT= penv/psi_penv_mod.o \ SERIAL_MODS=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\ @@ -181,6 +182,7 @@ auxil/psb_string_mod.o auxil/psb_m_realloc_mod.o auxil/psb_e_realloc_mod.o auxil auxil/psb_d_realloc_mod.o auxil/psb_c_realloc_mod.o auxil/psb_z_realloc_mod.o \ desc/psb_desc_const_mod.o psi_penv_mod.o: psb_const_mod.o +comm/psb_neighbor_topology_mod.o: psb_const_mod.o desc/psb_desc_const_mod.o desc/psb_indx_map_mod.o desc/psb_hash_mod.o: psb_realloc_mod.o psb_const_mod.o desc/psb_desc_const_mod.o auxil/psb_i_sort_mod.o auxil/psb_s_sort_mod.o auxil/psb_d_sort_mod.o auxil/psb_c_sort_mod.o auxil/psb_z_sort_mod.o \ @@ -261,7 +263,7 @@ serial/psb_d_base_mat_mod.o: serial/psb_d_base_vect_mod.o serial/psb_c_base_mat_mod.o: serial/psb_c_base_vect_mod.o serial/psb_z_base_mat_mod.o: serial/psb_z_base_vect_mod.o serial/psb_l_base_vect_mod.o: serial/psb_i_base_vect_mod.o -serial/psb_c_base_vect_mod.o serial/psb_s_base_vect_mod.o serial/psb_d_base_vect_mod.o serial/psb_z_base_vect_mod.o: serial/psb_i_base_vect_mod.o serial/psb_l_base_vect_mod.o +serial/psb_c_base_vect_mod.o serial/psb_s_base_vect_mod.o serial/psb_d_base_vect_mod.o serial/psb_z_base_vect_mod.o: serial/psb_i_base_vect_mod.o serial/psb_l_base_vect_mod.o comm/psb_neighbor_topology_mod.o serial/psb_i_base_vect_mod.o serial/psb_l_base_vect_mod.o serial/psb_c_base_vect_mod.o serial/psb_s_base_vect_mod.o serial/psb_d_base_vect_mod.o serial/psb_z_base_vect_mod.o: auxil/psi_serial_mod.o psb_realloc_mod.o serial/psb_s_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_vect_mod.o \ serial/psb_i_vect_mod.o serial/psb_l_vect_mod.o diff --git a/base/modules/comm/psb_c_comm_a_mod.f90 b/base/modules/comm/psb_c_comm_a_mod.f90 index 0fbcf01e..b374e6a9 100644 --- a/base/modules/comm/psb_c_comm_a_mod.f90 +++ b/base/modules/comm/psb_c_comm_a_mod.f90 @@ -76,6 +76,31 @@ module psb_c_comm_a_mod end subroutine psb_chalov end interface psb_halo + interface psb_halo_new + subroutine psb_chalom_new(x,desc_a,info,comm_type,jx,ik,work,tran,mode,data) + import + implicit none + complex(psb_spk_), intent(inout), target :: x(:,:) + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in) :: comm_type + complex(psb_spk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,jx,ik,data + character, intent(in), optional :: tran + end subroutine psb_chalom_new + subroutine psb_chalov_new(x,desc_a,info,comm_type,work,tran,mode,data) + import + implicit none + complex(psb_spk_), intent(inout) :: x(:) + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in) :: comm_type + complex(psb_spk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_chalov_new + end interface psb_halo_new + interface psb_scatter subroutine psb_cscatterm(globx, locx, desc_a, info, root) diff --git a/base/modules/comm/psb_c_comm_mod.f90 b/base/modules/comm/psb_c_comm_mod.f90 index 1bd46197..c2d5723d 100644 --- a/base/modules/comm/psb_c_comm_mod.f90 +++ b/base/modules/comm/psb_c_comm_mod.f90 @@ -57,6 +57,31 @@ module psb_c_comm_mod end subroutine psb_covrl_multivect end interface psb_ovrl + interface psb_halo_new + subroutine psb_chalo_vect_new(x,desc_a,info,comm_type,work,tran,mode,data) + 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 + integer(psb_ipk_), intent(in) :: comm_type + complex(psb_spk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_chalo_vect_new + subroutine psb_chalo_multivect_new(x,desc_a,info,comm_type,work,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 + integer(psb_ipk_), intent(in) :: comm_type + complex(psb_spk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_chalo_multivect_new + end interface psb_halo_new + interface psb_halo subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data) import diff --git a/base/modules/comm/psb_d_comm_a_mod.f90 b/base/modules/comm/psb_d_comm_a_mod.f90 index 5fb410f2..3e3515bc 100644 --- a/base/modules/comm/psb_d_comm_a_mod.f90 +++ b/base/modules/comm/psb_d_comm_a_mod.f90 @@ -53,6 +53,31 @@ module psb_d_comm_a_mod end subroutine psb_dovrlv end interface psb_ovrl + interface psb_halo_new + subroutine psb_dhalom_new(x,desc_a,info,comm_type,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 + integer(psb_ipk_), intent(in) :: comm_type + real(psb_dpk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,jx,ik,data + character, intent(in), optional :: tran + end subroutine psb_dhalom_new + subroutine psb_dhalov_new(x,desc_a,info,comm_type,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 + integer(psb_ipk_), intent(in) :: comm_type + real(psb_dpk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_dhalov_new + end interface psb_halo_new + interface psb_halo subroutine psb_dhalom(x,desc_a,info,jx,ik,work,tran,mode,data) import diff --git a/base/modules/comm/psb_d_comm_mod.f90 b/base/modules/comm/psb_d_comm_mod.f90 index 013c76e2..f9b8a809 100644 --- a/base/modules/comm/psb_d_comm_mod.f90 +++ b/base/modules/comm/psb_d_comm_mod.f90 @@ -57,6 +57,32 @@ module psb_d_comm_mod end subroutine psb_dovrl_multivect end interface psb_ovrl + + interface psb_halo_new + subroutine psb_dhalo_vect_new(x,desc_a,info,comm_type,work,tran,mode,data) + 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 + integer(psb_ipk_), intent(in) :: comm_type + real(psb_dpk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_dhalo_vect_new + subroutine psb_dhalo_multivect_new(x,desc_a,info,comm_type,work,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 + integer(psb_ipk_), intent(in) :: comm_type + real(psb_dpk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_dhalo_multivect_new + end interface psb_halo_new + interface psb_halo subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data) import diff --git a/base/modules/comm/psb_neighbor_topology_mod.F90 b/base/modules/comm/psb_neighbor_topology_mod.F90 new file mode 100644 index 00000000..07b7986d --- /dev/null +++ b/base/modules/comm/psb_neighbor_topology_mod.F90 @@ -0,0 +1,422 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! 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. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! +! Module: psb_neighbor_topology_mod +! Provides a type to hold pre-built MPI neighborhood topology +! information for persistent/repeated halo exchanges via +! MPI_Neighbor_alltoallv (MPI >= 3.0). +! +! The topology is stored inside the vector type (psb_d_base_vect_type) +! and lazily created on the first psi_swapdata call with the +! neighbor-alltoallv communication mode. Once built it is reused +! for every subsequent halo exchange, avoiding the per-call overhead +! of re-scanning the index list and allocating temporary arrays. +! +! The graph communicator and per-neighbor counts/displacements +! are built once and reused. +! +! The gather/scatter index arrays (send_indexes, recv_indexes) record +! which local vector positions must be packed / unpacked. +! +module psb_neighbor_topology_mod + use psb_const_mod + use psb_desc_const_mod + use psb_error_mod + ! + ! Only import mpi_comm_null here (needed for type default initializer). + ! Full MPI access is done inside each contained subroutine so that + ! MPI symbols do NOT leak into modules that use psb_neighbor_topology_mod. + ! +#ifdef PSB_MPI_MOD + use mpi, only: mpi_comm_null +#endif + implicit none +#ifdef PSB_MPI_H + include 'mpif.h' +#endif + + type :: psb_neighbor_topology_type + ! + ! MPI dist-graph communicator (only communicating neighbors). + ! + integer(psb_mpk_) :: graph_comm = mpi_comm_null + ! + ! Number of neighbors (processes I exchange with, excluding self). + ! + integer(psb_ipk_) :: num_neighbors = 0 + ! + ! Per-neighbor send/recv counts and displacements (units of + ! single elements; for n-column multivectors multiply by n). + ! send_counts(i) = number of elements sent to i-th neighbor + ! recv_counts(i) = number of elements received from i-th neighbor + ! send_displs(i) = displacement into contiguous send buffer + ! recv_displs(i) = displacement into contiguous recv buffer + ! + integer(psb_mpk_), allocatable :: send_counts(:), recv_counts(:) + integer(psb_mpk_), allocatable :: send_displs(:), recv_displs(:) + ! + ! Gather indexes: the k-th element of the send buffer is + ! y%v( send_indexes(k) ) + ! Scatter indexes: the k-th element of the recv buffer goes to + ! y%v( recv_indexes(k) ) + ! + integer(psb_ipk_), allocatable :: send_indexes(:) + integer(psb_ipk_), allocatable :: recv_indexes(:) + ! + ! Total number of elements to send / receive (per single column), + ! excluding self-exchange. + ! + integer(psb_ipk_) :: total_send = 0 + integer(psb_ipk_) :: total_recv = 0 + ! + + ! Initialization flag. + ! + logical :: is_initialized = .false. + contains + procedure, pass(topology) :: init => neighbor_topology_init + procedure, pass(topology) :: free => neighbor_topology_free + procedure, pass(topology) :: sizeof => neighbor_topology_sizeof + end type psb_neighbor_topology_type + +contains + + ! --------------------------------------------------------------- + ! neighbor_topology_init + ! + ! Parse the halo index list (obtained via desc_a%get_list_p) + ! and build: + ! - MPI dist-graph communicator with only the true neighbors + ! - per-neighbor send/recv counts and displacements + ! - contiguous gather/scatter index arrays + ! + ! The topology is stored inside the vector and lazily built + ! on the first psi_swapdata call that uses the neighbor-alltoallv + ! communication mode. + ! + ! Arguments: + ! topology - the persistent state (output, intent inout) + ! halo_index - halo_index array (from get_list_p, intent in) + ! num_neighbors - number of exchanges (from get_list_p) + ! total_send_elems - total send count (from get_list_p) + ! total_recv_elems - total recv count (from get_list_p) + ! ctxt - PSBLAS context + ! icomm - MPI communicator + ! info - error code (output) + ! --------------------------------------------------------------- + subroutine neighbor_topology_init(topology, halo_index, num_neighbors, & + & total_send_elems, total_recv_elems, ctxt, icomm, info) +#ifdef PSB_MPI_MOD + use mpi +#endif + implicit none +#ifdef PSB_MPI_H + include 'mpif.h' +#endif + + class(psb_neighbor_topology_type), intent(inout) :: topology + integer(psb_ipk_), intent(in) :: halo_index(:) + integer(psb_ipk_), intent(in) :: num_neighbors, total_send_elems, total_recv_elems + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_mpk_), intent(in) :: icomm + integer(psb_ipk_), intent(out) :: info + + ! locals + integer(psb_mpk_) :: iret + integer(psb_ipk_) :: i, k, idx_ptr, num_elem_recv, num_elem_send, partner_proc + integer(psb_ipk_) :: nbr_count, send_offset, recv_offset + integer(psb_mpk_), allocatable :: source_ranks(:), dest_ranks(:) + integer(psb_mpk_), allocatable :: source_weights(:), dest_weights(:) + integer(psb_mpk_) :: in_degree, out_degree + character(len=40) :: name + integer(psb_ipk_) :: proc_id + integer(psb_ipk_) :: position + integer(psb_ipk_) :: err_act + + info = psb_success_ + name = 'neighbor_topology_init' + call psb_erractionsave(err_act) + + ! Clean up any previous state + call topology%free(info) + + ! ---------------------------------------------------------- + ! First pass: count neighbors (excluding self) and totals + ! ---------------------------------------------------------- + topology%num_neighbors = 0 + topology%total_send = 0 + topology%total_recv = 0 + + if(size(halo_index) < 1) then + call psb_errpush(psb_err_topology_invalid_args_,name) + goto 9999 + end if + + allocate(source_ranks(num_neighbors), stat=info) + if (info /= psb_success_) then + info = psb_err_alloc_dealloc_ + call psb_errpush(info, name, a_err='Source ranks allocation failed') + goto 9999 + end if + + allocate(dest_ranks(num_neighbors), stat=info) + if (info /= psb_success_) then + info = psb_err_alloc_dealloc_ + call psb_errpush(info, name, a_err='Destination ranks allocation failed') + goto 9999 + end if + + allocate(source_weights(num_neighbors), stat=info) + if (info /= psb_success_) then + info = psb_err_alloc_dealloc_ + call psb_errpush(info, name, a_err='Source weights allocation failed') + goto 9999 + end if + + allocate(dest_weights(num_neighbors), stat=info) + if (info /= psb_success_) then + info = psb_err_alloc_dealloc_ + call psb_errpush(info, name, a_err='Destination weights allocation failed') + goto 9999 + end if + + allocate(topology%send_counts(num_neighbors), stat=info) + if (info /= psb_success_) then + info = psb_err_alloc_dealloc_ + call psb_errpush(info, name, a_err='Send counts allocation failed') + goto 9999 + end if + + allocate(topology%recv_counts(num_neighbors), stat=info) + if (info /= psb_success_) then + info = psb_err_alloc_dealloc_ + call psb_errpush(info, name, a_err='Receive counts allocation failed') + goto 9999 + end if + + allocate(topology%send_displs(num_neighbors), stat=info) + if (info /= psb_success_) then + info = psb_err_alloc_dealloc_ + call psb_errpush(info, name, a_err='Send displacements allocation failed') + goto 9999 + end if + + allocate(topology%recv_displs(num_neighbors), stat=info) + if (info /= psb_success_) then + info = psb_err_alloc_dealloc_ + call psb_errpush(info, name, a_err='Receive displacements allocation failed') + goto 9999 + end if + + + ! ----------------------------------------------------------- + ! Allocate the gather/scatter index arrays + ! ----------------------------------------------------------- + allocate(topology%send_indexes(total_send_elems), stat=info) + if (info /= psb_success_) then + info = psb_err_alloc_dealloc_ + call psb_errpush(info, name, a_err='Send indexes allocation failed') + goto 9999 + end if + + allocate(topology%recv_indexes(total_recv_elems), stat=info) + if (info /= psb_success_) then + info = psb_err_alloc_dealloc_ + call psb_errpush(info, name, a_err='Recv indexes allocation failed') + goto 9999 + end if + + ! ----------------------------------------------------------- + ! Fill neighbor ranks, weights, counts, displacements, + ! and gather/scatter index arrays. + ! + ! The halo_index layout per neighbor (starting at position): + ! position + 0 : process id + ! position + 1 : nerv (num recv elements) + ! position + 2 .. +1+nerv : recv element indexes + ! position + 2+nerv : nesd (num send elements) + ! position + 3+nerv .. +2+nerv+nesd : send element indexes + ! Total stride per neighbor: nerv + nesd + 3 + ! ----------------------------------------------------------- + send_offset = 0 + recv_offset = 0 + position = 1 + + do i = 1, num_neighbors + proc_id = halo_index(position) + num_elem_recv = halo_index(position + 1) + num_elem_send = halo_index(position + num_elem_recv + 2) + + ! Fill source/destination ranks and weights (weights are all 1 for now) + source_ranks(i) = int(proc_id, psb_mpk_) + dest_ranks(i) = int(proc_id, psb_mpk_) + source_weights(i) = 1 + dest_weights(i) = 1 + + ! Counts and displacements (displs set BEFORE accumulating offset) + topology%send_counts(i) = int(num_elem_send, psb_mpk_) + topology%recv_counts(i) = int(num_elem_recv, psb_mpk_) + topology%send_displs(i) = int(send_offset, psb_mpk_) + topology%recv_displs(i) = int(recv_offset, psb_mpk_) + + ! Fill recv_indexes from halo_index(position+2 .. position+1+nerv) + do k = 1, num_elem_recv + topology%recv_indexes(recv_offset + k) = halo_index(position + psb_elem_recv_ + k - 1) + end do + + ! Fill send_indexes from halo_index(position+3+nerv .. position+2+nerv+nesd) + do k = 1, num_elem_send + topology%send_indexes(send_offset + k) = halo_index(position + num_elem_recv + psb_elem_send_ + k - 1) + end do + + send_offset = send_offset + num_elem_send + recv_offset = recv_offset + num_elem_recv + + topology%num_neighbors = topology%num_neighbors + 1 + topology%total_send = topology%total_send + num_elem_send + topology%total_recv = topology%total_recv + num_elem_recv + + position = position + num_elem_recv + num_elem_send + 3 + end do + + ! ---------------------------------------------------------- + ! Sanity check: the totals computed from the neighbor list + ! should match the totals returned by get_list_p. + ! ---------------------------------------------------------- + if (topology%total_send /= total_send_elems) then + info = psb_err_topology_args_mismatch_ + call psb_errpush(info, name, a_err='Send elements mismatch') + goto 9999 + end if + + if (topology%total_recv /= total_recv_elems) then + info = psb_err_topology_args_mismatch_ + call psb_errpush(info, name, a_err='Receive elements mismatch') + goto 9999 + end if + + if(topology%num_neighbors /= num_neighbors) then + info = psb_err_topology_args_mismatch_ + call psb_errpush(info, name, a_err='Number of neighbors mismatch') + goto 9999 + end if + + + ! ---------------------------------------------------------- + ! Build the dist-graph communicator + ! ---------------------------------------------------------- + in_degree = topology%num_neighbors !! Just for clarity + out_degree = topology%num_neighbors !! Just for clarity + + call mpi_dist_graph_create_adjacent(icomm, & + & in_degree, source_ranks, source_weights, & + & out_degree, dest_ranks, dest_weights, & + & mpi_info_null, .false., & ! Check this line for optimizations + & topology%graph_comm, info) + if (info /= mpi_success) then + info = psb_err_topology_error_ + call psb_errpush(info, name) + goto 9999 + end if + + topology%is_initialized = .true. + + ! TODO: Is it safe to deallocate these temporary arrays here, or do we need them for the gather/scatter indexes? + ! deallocate(source_ranks, dest_ranks, source_weights, dest_weights) + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ctxt,err_act) + + return + end subroutine neighbor_topology_init + + + ! --------------------------------------------------------------- + ! neighbor_topology_free + ! Release all resources held by the persistent state. + ! --------------------------------------------------------------- + subroutine neighbor_topology_free(topology, info) +#ifdef PSB_MPI_MOD + use mpi +#endif + implicit none +#ifdef PSB_MPI_H + include 'mpif.h' +#endif + class(psb_neighbor_topology_type), intent(inout) :: topology + integer(psb_ipk_), intent(out) :: info + integer(psb_mpk_) :: iret + + info = psb_success_ + + if (topology%graph_comm /= mpi_comm_null) then + call mpi_comm_free(topology%graph_comm, iret) + topology%graph_comm = mpi_comm_null + end if + + if (allocated(topology%send_counts)) deallocate(topology%send_counts) + if (allocated(topology%recv_counts)) deallocate(topology%recv_counts) + if (allocated(topology%send_displs)) deallocate(topology%send_displs) + if (allocated(topology%recv_displs)) deallocate(topology%recv_displs) + if (allocated(topology%send_indexes)) deallocate(topology%send_indexes) + if (allocated(topology%recv_indexes)) deallocate(topology%recv_indexes) + + topology%num_neighbors = 0 + topology%total_send = 0 + topology%total_recv = 0 + topology%is_initialized = .false. + + end subroutine neighbor_topology_free + + + ! --------------------------------------------------------------- + ! neighbor_topology_sizeof + ! Return approximate memory footprint in bytes. + ! --------------------------------------------------------------- + function neighbor_topology_sizeof(topology) result(val) + implicit none + class(psb_neighbor_topology_type), intent(in) :: topology + integer(psb_epk_) :: val + + val = 0 + val = val + psb_sizeof_ip * 6 ! scalar integers + logicals + if (allocated(topology%send_counts)) val = val + psb_sizeof_ip * size(topology%send_counts) + if (allocated(topology%recv_counts)) val = val + psb_sizeof_ip * size(topology%recv_counts) + if (allocated(topology%send_displs)) val = val + psb_sizeof_ip * size(topology%send_displs) + if (allocated(topology%recv_displs)) val = val + psb_sizeof_ip * size(topology%recv_displs) + if (allocated(topology%send_indexes)) val = val + psb_sizeof_ip * size(topology%send_indexes) + if (allocated(topology%recv_indexes)) val = val + psb_sizeof_ip * size(topology%recv_indexes) + + + end function neighbor_topology_sizeof + +end module psb_neighbor_topology_mod diff --git a/base/modules/comm/psb_s_comm_a_mod.f90 b/base/modules/comm/psb_s_comm_a_mod.f90 index 5ceaad8b..7d67c7ca 100644 --- a/base/modules/comm/psb_s_comm_a_mod.f90 +++ b/base/modules/comm/psb_s_comm_a_mod.f90 @@ -76,6 +76,31 @@ module psb_s_comm_a_mod end subroutine psb_shalov end interface psb_halo + interface psb_halo_new + subroutine psb_shalom_new(x,desc_a,info,comm_type,jx,ik,work,tran,mode,data) + import + implicit none + real(psb_spk_), intent(inout), target :: x(:,:) + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in) :: comm_type + real(psb_spk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,jx,ik,data + character, intent(in), optional :: tran + end subroutine psb_shalom_new + subroutine psb_shalov_new(x,desc_a,info,comm_type,work,tran,mode,data) + import + implicit none + real(psb_spk_), intent(inout) :: x(:) + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in) :: comm_type + real(psb_spk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_shalov_new + end interface psb_halo_new + interface psb_scatter subroutine psb_sscatterm(globx, locx, desc_a, info, root) diff --git a/base/modules/comm/psb_s_comm_mod.f90 b/base/modules/comm/psb_s_comm_mod.f90 index a202b5b6..7c333f84 100644 --- a/base/modules/comm/psb_s_comm_mod.f90 +++ b/base/modules/comm/psb_s_comm_mod.f90 @@ -57,6 +57,31 @@ module psb_s_comm_mod end subroutine psb_sovrl_multivect end interface psb_ovrl + interface psb_halo_new + subroutine psb_shalo_vect_new(x,desc_a,info,comm_type,work,tran,mode,data) + 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 + integer(psb_ipk_), intent(in) :: comm_type + real(psb_spk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_shalo_vect_new + subroutine psb_shalo_multivect_new(x,desc_a,info,comm_type,work,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 + integer(psb_ipk_), intent(in) :: comm_type + real(psb_spk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_shalo_multivect_new + end interface psb_halo_new + interface psb_halo subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data) import diff --git a/base/modules/comm/psb_z_comm_mod.f90 b/base/modules/comm/psb_z_comm_mod.f90 index 304cdfb9..4c9ca091 100644 --- a/base/modules/comm/psb_z_comm_mod.f90 +++ b/base/modules/comm/psb_z_comm_mod.f90 @@ -57,6 +57,31 @@ module psb_z_comm_mod end subroutine psb_zovrl_multivect end interface psb_ovrl + interface psb_halo_new + subroutine psb_zhalo_vect_new(x,desc_a,info,comm_type,work,tran,mode,data) + 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 + integer(psb_ipk_), intent(in) :: comm_type + complex(psb_dpk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_zhalo_vect_new + subroutine psb_zhalo_multivect_new(x,desc_a,info,comm_type,work,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 + integer(psb_ipk_), intent(in) :: comm_type + complex(psb_dpk_), target, optional, intent(inout) :: work(:) + integer(psb_ipk_), intent(in), optional :: mode,data + character, intent(in), optional :: tran + end subroutine psb_zhalo_multivect_new + end interface psb_halo_new + interface psb_halo subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data) import diff --git a/base/modules/comm/psi_d_comm_v_mod.f90 b/base/modules/comm/psi_d_comm_v_mod.f90 index b7a902da..418b0789 100644 --- a/base/modules/comm/psi_d_comm_v_mod.f90 +++ b/base/modules/comm/psi_d_comm_v_mod.f90 @@ -36,54 +36,94 @@ module psi_d_comm_v_mod use psb_d_base_multivect_mod, only : psb_d_base_multivect_type interface psi_swapdata + ! --------------------------------------------------------------- + ! Upper call in order to populate idx using desc_a%get_list_p + ! --------------------------------------------------------------- subroutine psi_dswapdata_vect(flag,beta,y,desc_a,work,info,data) import 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 + class(psb_d_base_vect_type) :: y + real(psb_dpk_), intent(in) :: beta + real(psb_dpk_),target :: work(:) + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), optional :: data end subroutine psi_dswapdata_vect subroutine psi_dswapdata_multivect(flag,beta,y,desc_a,work,info,data) import 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 + class(psb_d_base_multivect_type) :: y + real(psb_dpk_), intent(in) :: beta + real(psb_dpk_),target :: work(:) + type(psb_desc_type), target :: desc_a + integer(psb_ipk_), optional :: data end subroutine psi_dswapdata_multivect + + ! --------------------------------------------------------------- + ! Wrapper that calls different communications schemes depending on + ! flag variable + ! --------------------------------------------------------------- subroutine psi_dswap_vidx_vect(ctxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) import - type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_mpk_), intent(in) :: icomm - 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_mpk_), intent(in) :: 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 + real(psb_dpk_), target :: work(:) + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_dswap_vidx_vect subroutine psi_dswap_vidx_multivect(ctxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) import - type(psb_ctxt_type), intent(in) :: ctxt - integer(psb_mpk_), intent(in) :: icomm - 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_mpk_), intent(in) :: 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 + real(psb_dpk_), target :: work(:) + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv end subroutine psi_dswap_vidx_multivect + ! --------------------------------------------------------------- end interface psi_swapdata + interface psi_dswap_baseline_vect + subroutine psi_dswap_baseline_vect(ctxt,icomm,flag,beta,y,idx,& + & totxch,totsnd,totrcv,work,info) + import + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_mpk_), intent(in) :: 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 + real(psb_dpk_), target :: work(:) + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + end subroutine psi_dswap_baseline_vect + end interface psi_dswap_baseline_vect + + interface psi_dswap_neighbor_topology_vect + subroutine psi_dswap_neighbor_topology_vect(ctxt,icomm,flag,beta,y,idx,& + & totxch,totsnd,totrcv,work,info) + import + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_mpk_), intent(in) :: 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 + real(psb_dpk_), target :: work(:) + class(psb_i_base_vect_type), intent(inout) :: idx + integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv + end subroutine psi_dswap_neighbor_topology_vect + end interface psi_dswap_neighbor_topology_vect interface psi_swaptran subroutine psi_dswaptran_vect(flag,beta,y,desc_a,work,info,data) diff --git a/base/modules/desc/psb_desc_const_mod.f90 b/base/modules/desc/psb_desc_const_mod.f90 index 280d1f2a..b5346515 100644 --- a/base/modules/desc/psb_desc_const_mod.f90 +++ b/base/modules/desc/psb_desc_const_mod.f90 @@ -49,10 +49,12 @@ module psb_desc_const_mod integer(psb_ipk_), parameter :: psb_setzero_ = 4 ! The following are bit fields. - integer(psb_ipk_), parameter :: psb_swap_send_ = 1 - integer(psb_ipk_), parameter :: psb_swap_recv_ = 2 - integer(psb_ipk_), parameter :: psb_swap_sync_ = 4 - integer(psb_ipk_), parameter :: psb_swap_mpi_ = 8 + integer(psb_ipk_), parameter :: psb_swap_send_ = 1 + integer(psb_ipk_), parameter :: psb_swap_recv_ = 2 + integer(psb_ipk_), parameter :: psb_swap_sync_ = 4 + integer(psb_ipk_), parameter :: psb_swap_mpi_ = 8 + integer(psb_ipk_), parameter :: psb_swap_start_ = 16 + integer(psb_ipk_), parameter :: psb_swap_wait_ = 32 integer(psb_ipk_), parameter :: psb_collective_start_ = 1 integer(psb_ipk_), parameter :: psb_collective_end_ = 2 integer(psb_ipk_), parameter :: psb_collective_sync_ = 4 diff --git a/base/modules/psb_const_mod.F90 b/base/modules/psb_const_mod.F90 index ee11beaf..34b08343 100644 --- a/base/modules/psb_const_mod.F90 +++ b/base/modules/psb_const_mod.F90 @@ -326,6 +326,9 @@ module psb_const_mod integer(psb_ipk_), parameter, public :: psb_err_invalid_irst_ =5002 integer(psb_ipk_), parameter, public :: psb_err_invalid_preci_=5003 integer(psb_ipk_), parameter, public :: psb_err_invalid_preca_=5004 + integer(psb_ipk_), parameter, public :: psb_err_topology_error_=6000 + integer(psb_ipk_), parameter, public :: psb_err_topology_invalid_args_=6001 + integer(psb_ipk_), parameter, public :: psb_err_topology_args_mismatch_=6002 type :: psb_ctxt_type diff --git a/base/modules/psb_error_mod.F90 b/base/modules/psb_error_mod.F90 index a13dd97f..c14cdc00 100644 --- a/base/modules/psb_error_mod.F90 +++ b/base/modules/psb_error_mod.F90 @@ -390,13 +390,13 @@ contains ! pushes an error on the error stack subroutine psb_errpush(err_c, r_name, a_err, i_err, l_err, m_err, e_err) - integer(psb_ipk_), intent(in) :: err_c - character(len=*), intent(in) :: r_name - character(len=*), optional :: a_err - integer(psb_ipk_), optional :: i_err(:) - integer(psb_lpk_), optional :: l_err(:) - integer(psb_mpk_), optional :: m_err(:) - integer(psb_epk_), optional :: e_err(:) + integer(psb_ipk_), intent(in) :: err_c + character(len=*), intent(in) :: r_name + character(len=*), optional :: a_err + integer(psb_ipk_), optional :: i_err(:) + integer(psb_lpk_), optional :: l_err(:) + integer(psb_mpk_), optional :: m_err(:) + integer(psb_epk_), optional :: e_err(:) call psb_set_errstatus(psb_err_fatal_) call psb_stackpush(err_c, r_name, a_err, i_err, l_err, m_err, e_err) diff --git a/base/modules/serial/psb_d_base_vect_mod.F90 b/base/modules/serial/psb_d_base_vect_mod.F90 index 27b8fe4b..b671943d 100644 --- a/base/modules/serial/psb_d_base_vect_mod.F90 +++ b/base/modules/serial/psb_d_base_vect_mod.F90 @@ -49,6 +49,7 @@ module psb_d_base_vect_mod use psb_realloc_mod use psb_i_base_vect_mod use psb_l_base_vect_mod + use psb_neighbor_topology_mod !> \namespace psb_base_mod \class psb_d_base_vect_type !! The psb_d_base_vect_type @@ -62,9 +63,10 @@ module psb_d_base_vect_mod !! type psb_d_base_vect_type !> Values. - real(psb_dpk_), allocatable :: v(:) - real(psb_dpk_), allocatable :: combuf(:) - integer(psb_mpk_), allocatable :: comid(:,:) + real(psb_dpk_), allocatable :: v(:) + real(psb_dpk_), allocatable :: combuf(:) + integer(psb_mpk_), allocatable :: comid(:,:) ! This is used only for Isend/Irecv scheme, to store the communication handles for each neighbor + integer(psb_mpk_) :: communication_handle ! This is used only for Isend/Irecv scheme, to store the communication handle for the whole halo exchange !> vector bldstate: !! null: pristine; !! build: it's being filled with entries; @@ -73,10 +75,11 @@ module psb_d_base_vect_mod !! in already existing entries. !! The transitions among the states are detailed in !! psb_T_vect_mod. - integer(psb_ipk_), private :: bldstate = psb_vect_null_ - integer(psb_ipk_), private :: dupl = psb_dupl_null_ - integer(psb_ipk_), private :: ncfs = 0 - integer(psb_ipk_), allocatable :: iv(:) + integer(psb_ipk_), private :: bldstate = psb_vect_null_ + integer(psb_ipk_), private :: dupl = psb_dupl_null_ + integer(psb_ipk_), private :: ncfs = 0 + integer(psb_ipk_), allocatable :: iv(:) + type(psb_neighbor_topology_type) :: neighbor_topology contains ! ! Constructors/allocators @@ -249,6 +252,10 @@ module psb_d_base_vect_mod procedure, pass(x) :: minquotient_a2 => d_base_minquotient_a2 generic, public :: minquotient => minquotient_v, minquotient_a2 + ! Methods used to handle topology in neighbor_alltoallv communication scheme + procedure, pass(x) :: init_topology => d_base_init_topology + procedure, pass(x) :: free_topology => d_base_free_topology + end type psb_d_base_vect_type public :: psb_d_base_vect @@ -821,6 +828,7 @@ contains if (allocated(x%v)) deallocate(x%v, stat=info) if ((info == 0).and.allocated(x%combuf)) call x%free_buffer(info) if ((info == 0).and.allocated(x%comid)) call x%free_comid(info) + x%communication_handle = 0 if ((info == 0).and.allocated(x%iv)) deallocate(x%iv, stat=info) if (info /= 0) call & & psb_errpush(psb_err_alloc_dealloc_,'vect_free') @@ -2595,12 +2603,44 @@ contains class(psb_d_base_vect_type), intent(inout) :: x real(psb_dpk_), intent(in) :: b class(psb_d_base_vect_type), intent(inout) :: z - integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(out) :: info info = 0 if (x%is_dev()) call x%sync() call z%addconst(x%v,b,info) end subroutine d_base_addconst_v2 + + + ! -------------------------------------------------------------------- + ! Implementation of methods used for neighbor alltoallv communication + ! -------------------------------------------------------------------- + subroutine d_base_init_topology(x, halo_index, num_exchanges, & + & total_send_elems, total_recv_elems, ctxt, icomm, info) + implicit none + class(psb_d_base_vect_type), intent(inout) :: x + integer(psb_ipk_), intent(in) :: halo_index(:) + integer(psb_ipk_), intent(in) :: num_exchanges, total_send_elems, total_recv_elems + type(psb_ctxt_type), intent(in) :: ctxt + integer(psb_mpk_), intent(in) :: icomm + integer(psb_ipk_), intent(out) :: info + + call x%neighbor_topology%init(halo_index, num_exchanges, & + & total_send_elems, total_recv_elems, ctxt, icomm, info) + + end subroutine d_base_init_topology + + subroutine d_base_free_topology(x, info) + implicit none + class(psb_d_base_vect_type), intent(inout) :: x + integer(psb_ipk_), intent(out) :: info + + call x%neighbor_topology%free(info) + + end subroutine d_base_free_topology + ! -------------------------------------------------------------------- + + + end module psb_d_base_vect_mod diff --git a/base/modules/serial/psb_d_vect_mod.F90 b/base/modules/serial/psb_d_vect_mod.F90 index f13bd517..86ea5f98 100644 --- a/base/modules/serial/psb_d_vect_mod.F90 +++ b/base/modules/serial/psb_d_vect_mod.F90 @@ -46,7 +46,7 @@ module psb_d_vect_mod type psb_d_vect_type class(psb_d_base_vect_type), allocatable :: v integer(psb_ipk_) :: nrmv = 0 - integer(psb_ipk_) :: remote_build=psb_matbld_noremote_ + integer(psb_ipk_) :: remote_build = psb_matbld_noremote_ integer(psb_ipk_) :: dupl = psb_dupl_add_ real(psb_dpk_), allocatable :: rmtv(:) integer(psb_lpk_), allocatable :: rmidx(:) diff --git a/cbind/base/psb_c_base.h b/cbind/base/psb_c_base.h index 1242fd81..e1e18670 100644 --- a/cbind/base/psb_c_base.h +++ b/cbind/base/psb_c_base.h @@ -131,6 +131,8 @@ extern "C" { #define psb_swap_recv_ 2 #define psb_swap_sync_ 4 #define psb_swap_mpi_ 8 +#define psb_swap_start_ 16 +#define psb_swap_wait_ 32 /* legal values for ovrl update argument */ #define psb_none_ 0 diff --git a/cbind/psb_c_base.h b/cbind/psb_c_base.h index 1242fd81..e1e18670 100644 --- a/cbind/psb_c_base.h +++ b/cbind/psb_c_base.h @@ -131,6 +131,8 @@ extern "C" { #define psb_swap_recv_ 2 #define psb_swap_sync_ 4 #define psb_swap_mpi_ 8 +#define psb_swap_start_ 16 +#define psb_swap_wait_ 32 /* legal values for ovrl update argument */ #define psb_none_ 0 diff --git a/test/halo_new/Makefile b/test/halo_new/Makefile new file mode 100644 index 00000000..840f433e --- /dev/null +++ b/test/halo_new/Makefile @@ -0,0 +1,34 @@ +INSTALLDIR=../.. +INCDIR=$(INSTALLDIR)/include/ +MODDIR=$(INSTALLDIR)/modules/ +include $(INCDIR)/Make.inc.psblas +# +# Libraries used +# +LIBDIR=$(INSTALLDIR)/lib/ +PSBLAS_LIB= -L$(LIBDIR) -lpsb_util -lpsb_linsolve -lpsb_prec -lpsb_base +LDLIBS=$(PSBLDLIBS) + +FINCLUDES=$(FMFLAG)$(MODDIR) $(FMFLAG). + +TOBJS=test_halo_new.o + +EXEDIR=./runs + +all: runsd test_halo_new + +runsd: + (if test ! -d runs ; then mkdir runs; fi) + +test_halo_new: $(TOBJS) + $(FLINK) $(LOPT) $(TOBJS) -o test_halo_new $(PSBLAS_LIB) $(LDLIBS) + /bin/mv test_halo_new $(EXEDIR) + +clean: + /bin/rm -f $(TOBJS) *$(.mod) $(EXEDIR)/test_halo_new + +lib: + (cd ../../; make library) +verycleanlib: + (cd ../../; make veryclean) + diff --git a/test/halo_new/test_halo_new.F90 b/test/halo_new/test_halo_new.F90 new file mode 100644 index 00000000..5e82c691 --- /dev/null +++ b/test/halo_new/test_halo_new.F90 @@ -0,0 +1,279 @@ +! +! Test program for D-type halo exchange: baseline vs neighbor topology. +! +! This test exercises the lower-level psi_swapdata interface directly +! to compare the two communication paths implemented in psi_dswapdata.F90: +! +! 1. Baseline (Isend/Irecv) : flag = IOR(psb_swap_send_, psb_swap_recv_) +! 2. Neighbor topology (Ineighbor_alltoallv) : flag = psb_swap_start_ then psb_swap_wait_ +! +! It builds a 3D block-partitioned descriptor with a 7-point stencil, +! fills owned entries with their global index, performs halo exchange +! via both paths, then checks: +! (a) The two paths produce identical results (cross-check) +! (b) Every halo entry equals the global index of its source (absolute check) +! +! Run with: mpirun -np
./test_halo_new +! +program test_halo_new + use psb_base_mod + use psi_mod + implicit none + + ! ---- parameters ---- + integer(psb_ipk_), parameter :: idim = 10 ! grid idim x idim x idim + + ! ---- descriptor / context ---- + type(psb_ctxt_type) :: ctxt + type(psb_desc_type) :: desc_a + integer(psb_ipk_) :: iam, np, info, i, nr, nlr + integer(psb_lpk_) :: m, nt + integer(psb_lpk_), allocatable :: myidx(:) + + ! ---- vectors ---- + type(psb_d_vect_type) :: v_baseline, v_neighbor + + ! ---- temporary / comparison arrays ---- + real(psb_dpk_), allocatable :: vals(:) + real(psb_dpk_), allocatable :: res_bl(:), res_nb(:) + real(psb_dpk_), allocatable :: expected(:) + + ! ---- work buffer for psi_swapdata ---- + real(psb_dpk_), allocatable :: work(:) + + ! ---- halo index bookkeeping ---- + integer(psb_ipk_) :: nrow, ncol, totxch, idxs, idxr, data_ + class(psb_i_base_vect_type), pointer :: d_vidx + + ! ---- error / reporting ---- + integer(psb_ipk_) :: n_pass, n_total, imode + real(psb_dpk_) :: err, tol + integer(psb_lpk_), allocatable :: glob_col(:) + character(len=40) :: name + + name = 'test_halo_new' + tol = 1.0d-12 + n_pass = 0 + n_total = 0 + + ! ================================================================== + ! 1. Initialise MPI / PSBLAS context + ! ================================================================== + call psb_init(ctxt) + call psb_info(ctxt, iam, np) + + if (iam == 0) then + write(psb_out_unit,'("================================================")') + write(psb_out_unit,'(" Test: D-type halo baseline vs neighbor topo")') + write(psb_out_unit,'(" Processes : ",i0)') np + write(psb_out_unit,'(" Grid : ",i0," x ",i0," x ",i0)') idim,idim,idim + write(psb_out_unit,'("================================================")') + end if + + ! ================================================================== + ! 2. Build descriptor with 7-point stencil connectivity + ! ================================================================== + m = (1_psb_lpk_ * idim) * idim * idim + nt = (m + np - 1) / np + nr = max(0, min(int(nt,psb_ipk_), int(m - (iam * nt),psb_ipk_))) + + call psb_cdall(ctxt, desc_a, info, nl=nr) + if (info /= psb_success_) then + write(psb_err_unit,*) iam, 'cdall error:', info + call psb_abort(ctxt) + end if + + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + do i = 1, nlr + call psb_cdins(1_psb_ipk_, (/myidx(i)/), (/myidx(i)/), desc_a, info) + if (myidx(i) > 1) & + & call psb_cdins(1_psb_ipk_, (/myidx(i)/), (/myidx(i)-1/), desc_a, info) + if (myidx(i) < m) & + & call psb_cdins(1_psb_ipk_, (/myidx(i)/), (/myidx(i)+1/), desc_a, info) + if (myidx(i) > idim) & + & call psb_cdins(1_psb_ipk_, (/myidx(i)/), (/myidx(i)-idim/), desc_a, info) + if (myidx(i) + idim <= m) & + & call psb_cdins(1_psb_ipk_, (/myidx(i)/), (/myidx(i)+idim/), desc_a, info) + if (myidx(i) > int(idim,psb_lpk_)*idim) & + & call psb_cdins(1_psb_ipk_, (/myidx(i)/), & + & (/myidx(i) - int(idim,psb_lpk_)*idim/), desc_a, info) + if (myidx(i) + int(idim,psb_lpk_)*idim <= m) & + & call psb_cdins(1_psb_ipk_, (/myidx(i)/), & + & (/myidx(i) + int(idim,psb_lpk_)*idim/), desc_a, info) + end do + + call psb_cdasb(desc_a, info) + if (info /= psb_success_) then + write(psb_err_unit,*) iam, 'cdasb error:', info + call psb_abort(ctxt) + end if + + nrow = desc_a%get_local_rows() ! owned + ncol = desc_a%get_local_cols() ! owned + halo + + ! ================================================================== + ! 3. Allocate two D vectors (scratch) and fill owned entries + ! ================================================================== + call psb_geall(v_baseline, desc_a, info) + call psb_geall(v_neighbor, desc_a, info) + call psb_geasb(v_baseline, desc_a, info, scratch=.true.) + call psb_geasb(v_neighbor, desc_a, info, scratch=.true.) + + ! Fill owned entries with the global index value + allocate(vals(ncol)) + vals = dzero + do i = 1, nlr + vals(i) = real(myidx(i), psb_dpk_) + end do + call v_baseline%set_vect(vals) + call v_neighbor%set_vect(vals) + deallocate(vals) + + ! ================================================================== + ! 4. Build the expected result for halo positions + ! glob_col(j) = global index of local column j + ! After halo exchange every position j should hold glob_col(j). + ! ================================================================== + allocate(glob_col(ncol), expected(ncol)) + glob_col = desc_a%get_global_indices(owned=.false.) + do i = 1, ncol + expected(i) = real(glob_col(i), psb_dpk_) + end do + + ! ================================================================== + ! 5. Retrieve halo index list (same list used by both paths) + ! ================================================================== + data_ = psb_comm_halo_ + call desc_a%get_list_p(data_, d_vidx, totxch, idxr, idxs, info) + if (info /= psb_success_) then + write(psb_err_unit,*) iam, 'get_list_p error:', info + call psb_abort(ctxt) + end if + + allocate(work(nrow)) + work = dzero + + ! ================================================================== + ! 6. Baseline halo exchange (Isend/Irecv in one call) + ! ================================================================== + imode = IOR(psb_swap_send_, psb_swap_recv_) + call psi_swapdata(ctxt, desc_a%get_mpic(), imode, dzero, & + & v_baseline%v, d_vidx, totxch, idxs, idxr, work, info) + if (info /= psb_success_) then + write(psb_err_unit,*) iam, 'baseline swap error:', info + call psb_abort(ctxt) + end if + + ! ================================================================== + ! 7. Neighbor topology halo exchange (start + wait) + ! ================================================================== + call psi_swapdata(ctxt, desc_a%get_mpic(), psb_swap_start_, dzero, & + & v_neighbor%v, d_vidx, totxch, idxs, idxr, work, info) + if (info /= psb_success_) then + write(psb_err_unit,*) iam, 'neighbor start error:', info + call psb_abort(ctxt) + end if + + call psi_swapdata(ctxt, desc_a%get_mpic(), psb_swap_wait_, dzero, & + & v_neighbor%v, d_vidx, totxch, idxs, idxr, work, info) + if (info /= psb_success_) then + write(psb_err_unit,*) iam, 'neighbor wait error:', info + call psb_abort(ctxt) + end if + + ! ================================================================== + ! 8. Extract results and compare + ! ================================================================== + res_bl = v_baseline%get_vect() + res_nb = v_neighbor%get_vect() + + ! ---- Test 1: cross-check baseline vs neighbor (all entries) ---- + n_total = n_total + 1 + err = maxval(abs(res_bl(1:ncol) - res_nb(1:ncol))) + call psb_amx(ctxt, err) + if (iam == 0) then + if (err < tol) then + write(psb_out_unit,'(" [PASS] cross-check baseline vs neighbor : err = ",es12.5)') err + n_pass = n_pass + 1 + else + write(psb_out_unit,'(" [FAIL] cross-check baseline vs neighbor : err = ",es12.5)') err + end if + end if + + ! ---- Test 2: baseline absolute correctness (halo = global index) ---- + n_total = n_total + 1 + err = maxval(abs(res_bl(1:ncol) - expected(1:ncol))) + call psb_amx(ctxt, err) + if (iam == 0) then + if (err < tol) then + write(psb_out_unit,'(" [PASS] baseline absolute correctness : err = ",es12.5)') err + n_pass = n_pass + 1 + else + write(psb_out_unit,'(" [FAIL] baseline absolute correctness : err = ",es12.5)') err + end if + end if + + ! ---- Test 3: neighbor absolute correctness (halo = global index) ---- + n_total = n_total + 1 + err = maxval(abs(res_nb(1:ncol) - expected(1:ncol))) + call psb_amx(ctxt, err) + if (iam == 0) then + if (err < tol) then + write(psb_out_unit,'(" [PASS] neighbor absolute correctness : err = ",es12.5)') err + n_pass = n_pass + 1 + else + write(psb_out_unit,'(" [FAIL] neighbor absolute correctness : err = ",es12.5)') err + end if + end if + + ! ---- Test 4: repeat neighbor exchange (topology reuse) ---- + ! Reset halo entries to zero, run again, and check + do i = nrow+1, ncol + res_nb(i) = dzero + end do + call v_neighbor%set_vect(res_nb) + + call psi_swapdata(ctxt, desc_a%get_mpic(), psb_swap_start_, dzero, & + & v_neighbor%v, d_vidx, totxch, idxs, idxr, work, info) + call psi_swapdata(ctxt, desc_a%get_mpic(), psb_swap_wait_, dzero, & + & v_neighbor%v, d_vidx, totxch, idxs, idxr, work, info) + + res_nb = v_neighbor%get_vect() + n_total = n_total + 1 + err = maxval(abs(res_nb(1:ncol) - expected(1:ncol))) + call psb_amx(ctxt, err) + if (iam == 0) then + if (err < tol) then + write(psb_out_unit,'(" [PASS] neighbor topology reuse : err = ",es12.5)') err + n_pass = n_pass + 1 + else + write(psb_out_unit,'(" [FAIL] neighbor topology reuse : err = ",es12.5)') err + end if + end if + + ! ================================================================== + ! 9. Summary + ! ================================================================== + if (iam == 0) then + write(psb_out_unit,'("================================================")') + write(psb_out_unit,'(" Results: ",i0," / ",i0," tests passed")') n_pass, n_total + if (n_pass == n_total) then + write(psb_out_unit,'(" STATUS: ALL PASSED")') + else + write(psb_out_unit,'(" STATUS: SOME FAILURES")') + end if + write(psb_out_unit,'("================================================")') + end if + + ! ================================================================== + ! 10. Cleanup + ! ================================================================== + deallocate(res_bl, res_nb, expected, glob_col, work) + call psb_gefree(v_baseline, desc_a, info) + call psb_gefree(v_neighbor, desc_a, info) + call psb_cdfree(desc_a, info) + call psb_exit(ctxt) + +end program test_halo_new diff --git a/tmp.log b/tmp.log new file mode 100644 index 00000000..eb45513f --- /dev/null +++ b/tmp.log @@ -0,0 +1,1413 @@ +(if test ! -d lib ; then mkdir lib; fi) +make -C base mods +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 +(if test ! -d modules ; then mkdir modules; fi;) +/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» +make -C util mods +make -C prec mods +make -C ext mods +make -C base objs +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/util» +/usr/bin/install -c -p -p *.mod ../modules +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base» +make -C modules objs F90="" F90COPT=" " +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext» +/bin/cp -p *.mod ../modules +make[1]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec» +mpifort -frecursive -g -O3 -I. -I../modules -c psb_z_bjacprec.f90 -o psb_z_bjacprec.o +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/modules» +/usr/bin/install -c -p -p *.mod ../../modules +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/util» +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 -c psb_d_hbio_impl.f90 -o psb_d_hbio_impl.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 -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 -c psb_d_mmio_impl.f90 -o psb_d_mmio_impl.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 -c psb_z_mmio_impl.f90 -o psb_z_mmio_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_i_mmio_impl.F90 -o psb_i_mmio_impl.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 -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 -c psb_z_mat_dist_impl.f90 -o psb_z_mat_dist_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_s_renum_impl.F90 -o psb_s_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_d_renum_impl.F90 -o psb_d_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_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 +/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» +make[3]: Nessuna operazione da eseguire per «objs». +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial/impl» +make -C sort objs +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» +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 +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/ext» +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 -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.. -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 +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 +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 -I../.. -c psi_iovrl_save.f90 -o psi_iovrl_save.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 -I../.. -c psi_lovrl_restr.f90 -o psi_lovrl_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_zscatter.F90 -o psb_zscatter.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dgather.f90 -o psb_dgather.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 psi_lovrl_save.f90 -o psi_lovrl_save.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 +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../modules -I.. -c psb_damax.f90 -o psb_damax.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 psi_fnd_owner.F90 -o psi_fnd_owner.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.. -c psb_dasum.f90 -o psb_dasum.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 -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.. -c psb_daxpby.f90 -o psb_daxpby.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../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../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_dscatter_a.F90 -o psb_dscatter_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_sswapdata.F90 -o psi_sswapdata.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 psi_crea_index.f90 -o psi_crea_index.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.. -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 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_dhalo_new.F90 -o psb_dhalo_new.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.. -c psb_sgather.f90 -o psb_sgather.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.. -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../modules -I.. -c psi_sort_dl.f90 -o psi_sort_dl.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 +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.. -I../modules -c psb_cdall.f90 -o psb_cdall.o +/usr/bin/install -c -p -p *.mod ../modules +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/prec» +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.. -c psb_dspmm.f90 -o psb_dspmm.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.. -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 -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.. -I../modules -c psb_cdals.f90 -o psb_cdals.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.. -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.. -I../modules -c psb_cdalv.f90 -o psb_cdalv.o +make -C ext objs +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» +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../../include -I.. -c psb_s_hll_reallocate_nz.f90 -o psb_s_hll_reallocate_nz.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../../include -I.. -c psb_s_hll_reinit.f90 -o psb_s_hll_reinit.o +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_rowsum.f90 -o psb_s_hll_rowsum.o +make[1]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/util» +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_s_hll_scal.f90 -o psb_s_hll_scal.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 -I.. -c psi_hash_impl.f90 -o psi_hash_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_escatter_a.F90 -o psb_escatter_a.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 -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.. -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 -I.. -I../modules -c psb_cdprt.f90 -o psb_cdprt.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.. -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.. -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../../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 -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 psi_sovrl_restr.f90 -o psi_sovrl_restr.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.. -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_symm_dep_list.F90 -o psi_symm_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 -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 -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_s_linsolve_conv_mod.f90 -o psb_s_linsolve_conv_mod.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.. -c psb_shalo.f90 -o psb_shalo.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 -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.. -c psb_sspnrm1.f90 -o psb_sspnrm1.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../../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_sovrl.f90 -o psb_sovrl.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.. -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../../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.. -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 psi_lswapdata.F90 -o psi_lswapdata.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.. -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.. -c psb_ihalo.f90 -o psb_ihalo.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.. -c psb_zspnrm1.f90 -o psb_zspnrm1.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 +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.. -I../modules -c psb_cdren.f90 -o psb_cdren.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.. -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.. -c psb_srwextd.f90 -o psb_srwextd.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 -I../.. -c psi_sovrl_save.f90 -o psi_sovrl_save.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 psi_sovrl_upd.f90 -o psi_sovrl_upd.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_get_overlap.f90 -o psb_get_overlap.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 -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 -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.. -c psb_lgather.f90 -o psb_lgather.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 +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 +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +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 +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/auxil» +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.. -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 -c psb_skrylov.f90 -o psb_skrylov.o +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.. -c psb_drwextd.f90 -o psb_drwextd.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 -c psb_ckrylov.f90 -o psb_ckrylov.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 -c psb_z_prec_type_impl.f90 -o psb_z_prec_type_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_cswapdata.F90 -o psi_cswapdata.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../.. -c psi_dovrl_upd.f90 -o psi_dovrl_upd.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../../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.. -c psb_zaxpby.f90 -o psb_zaxpby.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zdot.f90 -o psb_zdot.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 -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 -c psb_zkrylov.f90 -o psb_zkrylov.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../.. -c psi_covrl_restr.f90 -o psi_covrl_restr.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../../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 -c psb_drichardson.f90 -o psb_drichardson.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_srichardson.f90 -o psb_srichardson.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 +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 -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 +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_cgather.f90 -o psb_cgather.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_crichardson.f90 -o psb_crichardson.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.. -c psb_chalo.f90 -o psb_chalo.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../../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 psi_covrl_save.f90 -o psi_covrl_save.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../.. -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../.. -c psi_zovrl_upd.f90 -o psi_zovrl_upd.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../../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_crwextd.f90 -o psb_crwextd.o +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 -c psb_d_nullprec_impl.f90 -o psb_d_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_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.. -c psb_znrm2.f90 -o psb_znrm2.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_zrwextd.f90 -o psb_zrwextd.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zrichardson.f90 -o psb_zrichardson.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 -c psb_cd_switch_ovl_indxmap.f90 -o psb_cd_switch_ovl_indxmap.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 -I../.. -c psi_movrl_save_a.f90 -o psi_movrl_save_a.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.. -c psb_znrmi.f90 -o psb_znrmi.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.. -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../../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../.. -c psi_eovrl_restr_a.f90 -o psi_eovrl_restr_a.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.. -c psb_saxpby.f90 -o psb_saxpby.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 psi_eovrl_upd_a.f90 -o psi_eovrl_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_dfcg.F90 -o psb_dfcg.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dgcr.f90 -o psb_dgcr.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 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 psi_zswaptran.F90 -o psi_zswaptran.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 -c psb_dcgs.f90 -o psb_dcgs.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dbicg.f90 -o psb_dbicg.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_c_cp_hll_to_coo.f90 -o psb_c_cp_hll_to_coo.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 +mpifort -frecursive -g -O3 -I.. -I../../modules -I../../include -I.. -c psb_c_dia_aclsum.f90 -o psb_c_dia_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_dcgstabl.f90 -o psb_dcgstabl.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.. -c psb_sdot.f90 -o psb_sdot.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 -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_drgmres.f90 -o psb_drgmres.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../../include -I.. -c psb_c_dia_colsum.f90 -o psb_c_dia_colsum.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 -c psb_d_iluk_fact.f90 -o psb_d_iluk_fact.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_scgstab.f90 -o psb_scgstab.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 -I../../include -I.. -c psb_c_dia_csmm.f90 -o psb_c_dia_csmm.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../../include -I.. -c psb_c_dia_csmv.f90 -o psb_c_dia_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_dswapdata_a.F90 -o psi_dswapdata_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 -I../.. -c psi_dovrl_restr_a.f90 -o psi_dovrl_restr_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_scg.F90 -o psb_scg.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_d_ilut_fact.f90 -o psb_d_ilut_fact.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 -I.. -c psb_ssymbmm.f90 -o psb_ssymbmm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_dsymbmm.f90 -o psb_dsymbmm.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_dprecbld.f90 -o psb_dprecbld.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_samax.f90 -o psb_samax.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_sgcr.f90 -o psb_sgcr.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.. -c psb_zgather.f90 -o psb_zgather.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 -c psb_scgs.f90 -o psb_scgs.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.. -c psb_snrm2.f90 -o psb_snrm2.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 -c psb_dspasb.f90 -o psb_dspasb.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 -c psb_dprecinit.f90 -o psb_dprecinit.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_zhalo.f90 -o psb_zhalo.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_sbicg.f90 -o psb_sbicg.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_csymbmm.f90 -o psb_csymbmm.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../.. -c psi_dovrl_save_a.f90 -o psi_dovrl_save_a.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../../include -I.. -c psb_c_dia_mold.f90 -o psb_c_dia_mold.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 -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 -c psb_s_bjacprec_impl.f90 -o psb_s_bjacprec_impl.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_zovrl.f90 -o psb_zovrl.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.. -c psb_snrmi.f90 -o psb_snrmi.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../.. -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 -c psb_scgstabl.f90 -o psb_scgstabl.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_srgmres.f90 -o psb_srgmres.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 -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_scdbldext.F90 -o psb_scdbldext.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.. -c psb_dhalo_a_new.f90 -o psb_dhalo_a_new.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.. -c psb_cnumbmm.f90 -o psb_cnumbmm.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.. -I../modules -c psb_dspfree.f90 -o psb_dspfree.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.. -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 smmp.f90 -o smmp.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_ccgstab.f90 -o psb_ccgstab.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c lsmmp.f90 -o lsmmp.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 -I.. -I../modules -c psb_dsprn.f90 -o psb_dsprn.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_s_ilu0_fact.f90 -o psb_s_ilu0_fact.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_dgeprt.f90 -o psb_dgeprt.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.. -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_casum.f90 -o psb_casum.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 -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 -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.. -I../modules -c psb_sspasb.f90 -o psb_sspasb.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 -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.. -I../modules -c psb_sspfree.f90 -o psb_sspfree.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 -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 -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_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.. -c psb_shalo_a.f90 -o psb_shalo_a.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 -I../../include -I.. -c psb_c_ell_arwsum.f90 -o psb_c_ell_arwsum.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.. -c psb_sovrl_a.f90 -o psb_sovrl_a.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../.. -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.. -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../../include -I.. -c psb_c_ell_colsum.f90 -o psb_c_ell_colsum.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 -c psb_cbicg.f90 -o psb_cbicg.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_mhalo_a.f90 -o psb_mhalo_a.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.. -I../modules -c psb_loc_to_glob.f90 -o psb_loc_to_glob.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.. -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.. -c psb_movrl_a.f90 -o psb_movrl_a.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_cgeprt.f90 -o psb_cgeprt.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../.. -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 -c psb_ccgstabl.f90 -o psb_ccgstabl.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.. -I../modules -c psb_iallc.f90 -o psb_iallc.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../../include -I.. -c psb_c_ell_csgetrow.f90 -o psb_c_ell_csgetrow.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.. -I../modules -c psb_ifree.f90 -o psb_ifree.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.. -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 -c psb_crgmres.f90 -o psb_crgmres.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 -I.. -c psb_cnrm2.f90 -o psb_cnrm2.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.. -c psb_aspxpby.f90 -o psb_aspxpby.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 -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 -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_s_iluk_fact.f90 -o psb_s_iluk_fact.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.. -c psb_spge_dot.f90 -o psb_spge_dot.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.. -c psb_saplusat.f90 -o psb_saplusat.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_ehalo_a.f90 -o psb_ehalo_a.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.. -I../modules -c psb_lallc.f90 -o psb_lallc.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 -c psb_zgcr.f90 -o psb_zgcr.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.. -c psb_eovrl_a.f90 -o psb_eovrl_a.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 -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 -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.. -c psb_cgather_a.f90 -o psb_cgather_a.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zcgs.f90 -o psb_zcgs.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../../include -I.. -c psb_c_ell_csnm1.f90 -o psb_c_ell_csnm1.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 -I.. -c psb_zhalo_a.f90 -o psb_zhalo_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 -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 psb_cmlt_vect.f90 -o psb_cmlt_vect.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zbicg.f90 -o psb_zbicg.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 -I../../include -I.. -c psb_c_ell_csput.f90 -o psb_c_ell_csput.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../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 -I.. -I../modules -c psb_lasb.f90 -o psb_lasb.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_zcgstabl.f90 -o psb_zcgstabl.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 -c psb_zrgmres.f90 -o psb_zrgmres.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../../include -I.. -c psb_c_ell_cssv.f90 -o psb_c_ell_cssv.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.. -I../modules -c psb_lins.f90 -o psb_lins.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sallc.f90 -o psb_sallc.o +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +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 -I.. -c psb_zovrl_a.f90 -o psb_zovrl_a.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../../include -I.. -c psb_c_ell_mold.f90 -o psb_c_ell_mold.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 -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.. -c psb_zmlt_vect.f90 -o psb_zmlt_vect.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -c psb_smlt_vect.f90 -o psb_smlt_vect.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 -I.. -c psb_cdiv_vect.f90 -o psb_cdiv_vect.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../../include -I.. -c psb_c_ell_reinit.f90 -o psb_c_ell_reinit.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../.. -c psi_covrl_save_a.f90 -o psi_covrl_save_a.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 +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 +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 +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 +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_zbase.c -o psb_c_zbase.o +mpicc -g -O3 -I. -I.. -I../../include -c psb_c_scomm.c -o psb_c_scomm.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_sins.f90 -o psb_sins.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../../include -I.. -c psb_c_ell_rowsum.f90 -o psb_c_ell_rowsum.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../../include -I.. -c psb_c_ell_scal.f90 -o psb_c_ell_scal.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 -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 -I../../include -I.. -c psb_c_hdia_csmv.f90 -o psb_c_hdia_csmv.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../../modules -c psb_c_diagprec_impl.f90 -o psb_c_diagprec_impl.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 -I../.. -c psi_covrl_upd_a.f90 -o psi_covrl_upd_a.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 -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 psi_zovrl_save_a.f90 -o psi_zovrl_save_a.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 psi_zovrl_upd_a.f90 -o psi_zovrl_upd_a.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.. -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 +make[4]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm/internals» +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.. -c psb_samax_s.f90 -o psb_samax_s.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 -I.. -c psb_zdiv_vect.f90 -o psb_zdiv_vect.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.. -c psb_damax_s.f90 -o psb_damax_s.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.. -c psb_camax_s.f90 -o psb_camax_s.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 -c psb_c_ilu0_fact.f90 -o psb_c_ilu0_fact.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.. -I../modules -c psb_dfree.f90 -o psb_dfree.o +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_dins.f90 -o psb_dins.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_c_hll_allocate_mnnz.f90 -o psb_c_hll_allocate_mnnz.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_zamax_s.f90 -o psb_zamax_s.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_sasum_s.f90 -o psb_sasum_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../../include -I.. -c psb_c_hll_arwsum.f90 -o psb_c_hll_arwsum.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 -c psb_c_iluk_fact.f90 -o psb_c_iluk_fact.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 -c psb_c_ilut_fact.f90 -o psb_c_ilut_fact.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../modules -I.. -I../modules -c psb_cins.f90 -o psb_cins.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 -I.. -c psb_casum_s.f90 -o psb_casum_s.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 -c psb_cprecbld.f90 -o psb_cprecbld.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_z_diagprec_impl.f90 -o psb_z_diagprec_impl.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.. -I../../modules -c psb_d_psblas_cbind_mod.f90 -o psb_d_psblas_cbind_mod.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.. -c psb_zinv_vect.f90 -o psb_zinv_vect.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.. -I../../modules -c psb_c_psblas_cbind_mod.f90 -o psb_c_psblas_cbind_mod.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.. -I../modules -c psb_zasb.f90 -o psb_zasb.o +mpifort -frecursive -g -O3 -I.. -I../../modules -c psb_z_ilu0_fact.f90 -o psb_z_ilu0_fact.o +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial» +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 -I.. -I../modules -c psb_zfree.f90 -o psb_zfree.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.. -I../../modules -c psb_z_psblas_cbind_mod.f90 -o psb_z_psblas_cbind_mod.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 -I../../include -I.. -c psb_c_hll_csmm.f90 -o psb_c_hll_csmm.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 -c psb_zprecbld.f90 -o psb_zprecbld.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 -c psb_zprecinit.f90 -o psb_zprecinit.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_d_sparsify.f90 -o psb_d_sparsify.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.. -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.. -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../../modules -c psb_s_sparsify.f90 -o psb_s_sparsify.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 -c psb_crwclip.f90 -o psb_crwclip.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 -c psb_zrwclip.f90 -o psb_zrwclip.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 -c psb_c_sp_drop.f90 -o psb_c_sp_drop.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 -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 -c psb_z_sp_drop.f90 -o psb_z_sp_drop.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_noth.F90 -o psb_dsparse_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_dsparse_biconjg_llk.F90 -o psb_dsparse_biconjg_llk.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.. -c psb_cabs_vect.f90 -o psb_cabs_vect.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 -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.. -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.. -c psb_zabs_vect.f90 -o psb_zabs_vect.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 -I../../include -I.. -c psb_c_hll_cssv.f90 -o psb_c_hll_cssv.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.. -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../../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.. -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.. -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 -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 -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 -I.. -I../modules -c psb_mins_a.f90 -o psb_mins_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_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 -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 -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.. -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../../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 -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_mold.f90 -o psb_c_hll_mold.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 -I.. -I../modules -c psb_eallc_a.f90 -o psb_eallc_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_zgetmatinfo.F90 -o psb_zgetmatinfo.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 -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 -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 -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.. -I../modules -c psb_easb_a.f90 -o psb_easb_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_zsparse_biconjg_llk_noth.F90 -o psb_zsparse_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_zsparse_biconjg_llk.F90 -o psb_zsparse_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_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 -I../../include -I.. -c psb_c_hll_scal.f90 -o psb_c_hll_scal.o +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/psblas» +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 -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 -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.. -I../../modules -c psb_s_comm_cbind_mod.f90 -o psb_s_comm_cbind_mod.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 -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.. -I../modules -c psb_efree_a.f90 -o psb_efree_a.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 -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.. -I../modules -c psb_eins_a.f90 -o psb_eins_a.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 -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.. -I../../modules -c psb_c_comm_cbind_mod.f90 -o psb_c_comm_cbind_mod.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 -I.. -I../modules -c psb_sallc_a.f90 -o psb_sallc_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_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 -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.. -I../../modules -c psb_base_psblas_cbind_mod.f90 -o psb_base_psblas_cbind_mod.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 -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 -c psb_d_ainv_bld.f90 -o psb_d_ainv_bld.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../../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.. -I../modules -c psb_sfree_a.f90 -o psb_sfree_a.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 -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 -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 -I.. -I../modules -c psb_dasb_a.f90 -o psb_dasb_a.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_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_fmt.f90 -o psb_c_mv_hll_to_fmt.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.. -I../modules -c psb_callc_a.f90 -o psb_callc_a.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 -c psb_d_invt_fact.f90 -o psb_d_invt_fact.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 -c psb_z_invt_fact.f90 -o psb_z_invt_fact.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.. -I../modules -c psb_casb_a.f90 -o psb_casb_a.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.. -I../modules -c psb_cfree_a.f90 -o psb_cfree_a.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 -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_dia_to_coo.f90 -o psb_d_cp_dia_to_coo.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../../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.. -I../modules -c psb_zfree_a.f90 -o psb_zfree_a.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 -I.. -I../modules -c psb_zins_a.f90 -o psb_zins_a.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 -c psb_s_invk_fact.f90 -o psb_s_invk_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_d_cp_ell_to_coo.f90 -o psb_d_cp_ell_to_coo.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 -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_z_invk_fact.f90 -o psb_z_invk_fact.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 +mpifort -frecursive -g -O3 -I. -I../modules -I.. -I../modules -c psb_zspfree.f90 -o psb_zspfree.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../modules -I.. -I../modules -c psb_zsprn.f90 -o psb_zsprn.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.. -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 -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../../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.. -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 -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.. -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_d_dia_aclsum.f90 -o psb_d_dia_aclsum.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 -I.. -I../modules -c psb_z_map.f90 -o psb_z_map.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.. -I../modules -c psb_s_par_csr_spspmm.f90 -o psb_s_par_csr_spspmm.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 -I../../include -I.. -c psb_d_dia_csgetrow.f90 -o psb_d_dia_csgetrow.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 -I../../include -I.. -c psb_d_dia_csmm.f90 -o psb_d_dia_csmm.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_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.. -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 -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 -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../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 -I../../include -I.. -c psb_d_dia_mold.f90 -o psb_d_dia_mold.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 -I../../include -I.. -c psb_d_dia_print.f90 -o psb_d_dia_print.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 -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.. -I../modules -c psb_sgetelem.f90 -o psb_sgetelem.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 -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 +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 -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 +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_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 +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_cprec_cbind_mod.f90 -o psb_cprec_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_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» +/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/linsolve» +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 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 +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/modules» +make -C serial objs +make -C comm objs +make -C auxil objs +make -C psblas objs +make -C tools objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/serial» +make -C impl objs +make[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/comm» +make -C internals objs +make -C sort 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 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/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[2]: ingresso nella directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/psblas» +make[2]: Nessuna operazione da eseguire per «objs». +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/psblas» +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» +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[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]: «psb_zscatter.o» è aggiornato. +make[3]: «psb_iscatter.o» è aggiornato. +make[3]: «psb_lscatter.o» è aggiornato. +make[3]: «psb_cscatter.o» è aggiornato. +make[3]: «psb_sscatter.o» è aggiornato. +make[3]: «psb_dscatter_a.o» è aggiornato. +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[3]: «psi_desc_index.o» è aggiornato. +make[3]: «psi_fnd_owner.o» è aggiornato. +make[3]: «psi_a2a_fnd_owner.o» è aggiornato. +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» +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[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[4]: «psi_dswapdata.o» è aggiornato. +make[3]: «psb_s_remote_mat.o» è aggiornato. +make[4]: «psi_dswaptran.o» è aggiornato. +make[3]: «psb_d_remote_mat.o» è aggiornato. +make[4]: «psi_sswapdata.o» è aggiornato. +make[3]: «psb_c_remote_mat.o» è aggiornato. +make[4]: «psi_sswaptran.o» è aggiornato. +make[3]: «psb_z_remote_mat.o» è aggiornato. +make[4]: «psi_iswapdata.o» è aggiornato. +make[3]: «psb_s_remote_vect.o» è aggiornato. +make[4]: «psi_iswaptran.o» è aggiornato. +make[3]: «psb_d_remote_vect.o» è aggiornato. +make[4]: «psi_lswapdata.o» è aggiornato. +make[3]: «psb_c_remote_vect.o» è aggiornato. +make[4]: «psi_lswaptran.o» è aggiornato. +make[3]: «psb_z_remote_vect.o» è aggiornato. +make[4]: «psi_cswapdata.o» è aggiornato. +make[3]: «psb_e_remote_vect.o» è aggiornato. +make[4]: «psi_cswaptran.o» è aggiornato. +make[3]: «psb_m_remote_vect.o» è aggiornato. +make[4]: «psi_zswapdata.o» è aggiornato. +make[3]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +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[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/base/tools» +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. +make[3]: «psb_iscatter.o» è aggiornato. +make[3]: «psb_lscatter.o» è aggiornato. +make[3]: «psb_cscatter.o» è aggiornato. +make[3]: «psb_sscatter.o» è aggiornato. +make[3]: «psb_dscatter_a.o» è aggiornato. +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[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_dhalo_new.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_dhalo_a_new.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. +make[3]: «psi_desc_index.o» è aggiornato. +make[3]: «psi_fnd_owner.o» è aggiornato. +make[3]: «psi_a2a_fnd_owner.o» è aggiornato. +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[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» +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/linsolve» +make[2]: uscita dalla directory «/home/stack/Desktop/PSBLAS/comm/psblas3/cbind/util» +/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» +===================================== +PSBLAS libraries Compilation Successful.