diff --git a/amgprec/amg_base_prec_type.F90 b/amgprec/amg_base_prec_type.F90 index edbb8b24..373da1d7 100644 --- a/amgprec/amg_base_prec_type.F90 +++ b/amgprec/amg_base_prec_type.F90 @@ -1050,49 +1050,49 @@ contains end function pr_to_str - subroutine amg_ml_bcast(ictxt,dat,root) + subroutine amg_ml_bcast(ctxt,dat,root) implicit none - integer(psb_ipk_), intent(in) :: ictxt + type(psb_ctxt_type), intent(in) :: ctxt type(amg_ml_parms), intent(inout) :: dat integer(psb_ipk_), intent(in), optional :: root - call psb_bcast(ictxt,dat%sweeps_pre,root) - call psb_bcast(ictxt,dat%sweeps_post,root) - call psb_bcast(ictxt,dat%ml_cycle,root) - call psb_bcast(ictxt,dat%aggr_type,root) - call psb_bcast(ictxt,dat%par_aggr_alg,root) - call psb_bcast(ictxt,dat%aggr_ord,root) - call psb_bcast(ictxt,dat%aggr_prol,root) - call psb_bcast(ictxt,dat%aggr_omega_alg,root) - call psb_bcast(ictxt,dat%aggr_eig,root) - call psb_bcast(ictxt,dat%aggr_filter,root) - call psb_bcast(ictxt,dat%coarse_mat,root) - call psb_bcast(ictxt,dat%coarse_solve,root) + call psb_bcast(ctxt,dat%sweeps_pre,root) + call psb_bcast(ctxt,dat%sweeps_post,root) + call psb_bcast(ctxt,dat%ml_cycle,root) + call psb_bcast(ctxt,dat%aggr_type,root) + call psb_bcast(ctxt,dat%par_aggr_alg,root) + call psb_bcast(ctxt,dat%aggr_ord,root) + call psb_bcast(ctxt,dat%aggr_prol,root) + call psb_bcast(ctxt,dat%aggr_omega_alg,root) + call psb_bcast(ctxt,dat%aggr_eig,root) + call psb_bcast(ctxt,dat%aggr_filter,root) + call psb_bcast(ctxt,dat%coarse_mat,root) + call psb_bcast(ctxt,dat%coarse_solve,root) end subroutine amg_ml_bcast - subroutine amg_sml_bcast(ictxt,dat,root) + subroutine amg_sml_bcast(ctxt,dat,root) implicit none - integer(psb_ipk_), intent(in) :: ictxt + type(psb_ctxt_type), intent(in) :: ctxt type(amg_sml_parms), intent(inout) :: dat integer(psb_ipk_), intent(in), optional :: root - call psb_bcast(ictxt,dat%amg_ml_parms,root) - call psb_bcast(ictxt,dat%aggr_omega_val,root) - call psb_bcast(ictxt,dat%aggr_thresh,root) + call psb_bcast(ctxt,dat%amg_ml_parms,root) + call psb_bcast(ctxt,dat%aggr_omega_val,root) + call psb_bcast(ctxt,dat%aggr_thresh,root) end subroutine amg_sml_bcast - subroutine amg_dml_bcast(ictxt,dat,root) + subroutine amg_dml_bcast(ctxt,dat,root) implicit none - integer(psb_ipk_), intent(in) :: ictxt + type(psb_ctxt_type), intent(in) :: ctxt type(amg_dml_parms), intent(inout) :: dat integer(psb_ipk_), intent(in), optional :: root - call psb_bcast(ictxt,dat%amg_ml_parms,root) - call psb_bcast(ictxt,dat%aggr_omega_val,root) - call psb_bcast(ictxt,dat%aggr_thresh,root) + call psb_bcast(ctxt,dat%amg_ml_parms,root) + call psb_bcast(ctxt,dat%aggr_omega_val,root) + call psb_bcast(ctxt,dat%aggr_thresh,root) end subroutine amg_dml_bcast subroutine ml_parms_clone(pm,pmout,info) diff --git a/amgprec/amg_c_mumps_solver.F90 b/amgprec/amg_c_mumps_solver.F90 index 1cc2f8c5..d30c1892 100644 --- a/amgprec/amg_c_mumps_solver.F90 +++ b/amgprec/amg_c_mumps_solver.F90 @@ -82,7 +82,7 @@ module amg_c_mumps_solver ! IPAR(2) : MUMPS_PRINT_ERR print verbosity (see MUMPS) ! IPAR(3) : MUMPS_SYM 0: non-symmetric 2: symmetric integer(psb_ipk_), dimension(3) :: ipar - integer(psb_ipk_), allocatable :: local_ictxt + type(psb_ctxt_type), allocatable :: local_ctxt logical :: built = .false. contains procedure, pass(sv) :: build => c_mumps_solver_bld @@ -248,9 +248,9 @@ contains if (info /= psb_success_) goto 9999 end if deallocate(sv%id, stat=info) - if (allocated(sv%local_ictxt)) then - call psb_exit(sv%local_ictxt,close=.false.) - deallocate(sv%local_ictxt,stat=info) + if (allocated(sv%local_ctxt)) then + call psb_exit(sv%local_ctxt,close=.false.) + deallocate(sv%local_ctxt,stat=info) end if sv%built=.false. end if @@ -324,8 +324,9 @@ subroutine c_mumps_solver_descr(sv,info,iout,coarse) logical, intent(in), optional :: coarse ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, me, np + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np character(len=20), parameter :: name='amg_z_mumps_solver_descr' integer(psb_ipk_) :: iout_ diff --git a/amgprec/amg_c_prec_type.f90 b/amgprec/amg_c_prec_type.f90 index 02ba9231..95c99194 100644 --- a/amgprec/amg_c_prec_type.f90 +++ b/amgprec/amg_c_prec_type.f90 @@ -57,7 +57,8 @@ module amg_c_prec_type use amg_c_base_smoother_mod use amg_c_base_aggregator_mod use amg_c_onelev_mod - use psb_base_mod, only : psb_erractionsave, psb_erractionrestore, psb_errstatus_fatal + use psb_base_mod, only : psb_erractionsave, psb_erractionrestore, & + & psb_errstatus_fatal, psb_ctxt_type use psb_prec_mod, only : psb_cprec_type ! @@ -85,7 +86,6 @@ module amg_c_prec_type integer, parameter, private :: wv_size_=4 type, extends(psb_cprec_type) :: amg_cprec_type - ! integer(psb_ipk_) :: ictxt ! Now it's in the PSBLAS prec. type(amg_saggr_data) :: ag_data ! ! Number of outer sweeps. Sometimes 2 V-cycles may be better than 1 W-cycle. @@ -272,13 +272,13 @@ module amg_c_prec_type end interface interface amg_precinit - subroutine amg_cprecinit(ictxt,prec,ptype,info) + subroutine amg_cprecinit(ctxt,prec,ptype,info) import :: psb_cspmat_type, psb_desc_type, psb_spk_, & - & amg_cprec_type, psb_ipk_ - integer(psb_ipk_), intent(in) :: ictxt - class(amg_cprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + & amg_cprec_type, psb_ipk_, psb_ctxt_type + type(psb_ctxt_type), intent(in) :: ctxt + class(amg_cprec_type), intent(inout) :: prec + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info end subroutine amg_cprecinit end interface amg_precinit @@ -460,12 +460,12 @@ contains class(amg_cprec_type), intent(inout) :: prec real(psb_spk_) :: num, den, nmin - integer(psb_ipk_) :: ictxt - integer(psb_ipk_) :: il + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: il num = -sone den = sone - ictxt = prec%ictxt + ctxt = prec%ctxt if (allocated(prec%precv)) then il = 1 num = prec%precv(il)%base_a%get_nzeros() @@ -477,13 +477,13 @@ contains end if end if nmin = num - call psb_min(ictxt,nmin) + call psb_min(ctxt,nmin) if (nmin < szero) then num = szero den = sone else - call psb_sum(ictxt,num) - call psb_sum(ictxt,den) + call psb_sum(ctxt,num) + call psb_sum(ctxt,den) end if prec%ag_data%op_complexity = num/den end subroutine amg_c_cmp_compl @@ -506,14 +506,14 @@ contains implicit none class(amg_cprec_type), intent(inout) :: prec - real(psb_spk_) :: avgcr - integer(psb_ipk_) :: ictxt - integer(psb_ipk_) :: il, nl, iam, np + real(psb_spk_) :: avgcr + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: il, nl, iam, np avgcr = szero - ictxt = prec%ictxt - call psb_info(ictxt,iam,np) + ctxt = prec%ctxt + call psb_info(ctxt,iam,np) if (allocated(prec%precv)) then nl = size(prec%precv) do il=2,nl @@ -521,7 +521,7 @@ contains end do avgcr = avgcr / (nl-1) end if - call psb_sum(ictxt,avgcr) + call psb_sum(ctxt,avgcr) prec%ag_data%avg_cr = avgcr/np end subroutine amg_c_cmp_avg_cr @@ -737,14 +737,15 @@ contains integer(psb_ipk_), intent(in), optional :: istart, iend, iproc character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num - integer(psb_ipk_) :: i, j, il1, iln, lev - integer(psb_ipk_) :: icontxt, iam, np, iproc_ - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lev + type(psb_ctxt_type) :: icontxt + integer(psb_ipk_) :: iam, np, iproc_ + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than ! len of prefix_ info = 0 - icontxt = prec%ictxt + icontxt = prec%ctxt call psb_info(icontxt,iam,np) iln = size(prec%precv) @@ -810,13 +811,14 @@ contains class(psb_cprec_type), target, intent(inout) :: precout integer(psb_ipk_), intent(out) :: info ! Local vars - integer(psb_ipk_) :: i, j, ln, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: i, j, ln, lev + type(psb_ctxt_type) :: icontxt + integer(psb_ipk_) :: iam, np info = psb_success_ select type(pout => precout) class is (amg_cprec_type) - pout%ictxt = prec%ictxt + pout%ctxt = prec%ctxt pout%ag_data = prec%ag_data pout%outer_sweeps = prec%outer_sweeps if (allocated(prec%precv)) then @@ -864,7 +866,7 @@ contains !!$ return endif end if - b%ictxt = prec%ictxt + b%ctxt = prec%ctxt b%ag_data = prec%ag_data b%outer_sweeps = prec%outer_sweeps diff --git a/amgprec/amg_c_slu_solver.F90 b/amgprec/amg_c_slu_solver.F90 index 99384a6c..4445a1c7 100644 --- a/amgprec/amg_c_slu_solver.F90 +++ b/amgprec/amg_c_slu_solver.F90 @@ -137,7 +137,8 @@ contains integer :: n_row,n_col complex(psb_spk_), pointer :: ww(:) - integer :: ictxt,np,me,i, err_act + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act character :: trans_ character(len=20) :: name='c_slu_solver_apply' @@ -268,15 +269,16 @@ contains type(psb_c_csc_sparse_mat) :: acsc type(psb_c_coo_sparse_mat) :: acoo integer :: n_row,n_col, nrow_a, nztota - integer :: ictxt,np,me,i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act, debug_unit, debug_level character(len=20) :: name='c_slu_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -395,7 +397,6 @@ contains ! Local variables integer :: err_act - integer :: ictxt, me, np character(len=20), parameter :: name='amg_c_slu_solver_descr' integer :: iout_ diff --git a/amgprec/amg_d_mumps_solver.F90 b/amgprec/amg_d_mumps_solver.F90 index 3fd017e9..3bc61f3c 100644 --- a/amgprec/amg_d_mumps_solver.F90 +++ b/amgprec/amg_d_mumps_solver.F90 @@ -82,7 +82,7 @@ module amg_d_mumps_solver ! IPAR(2) : MUMPS_PRINT_ERR print verbosity (see MUMPS) ! IPAR(3) : MUMPS_SYM 0: non-symmetric 2: symmetric integer(psb_ipk_), dimension(3) :: ipar - integer(psb_ipk_), allocatable :: local_ictxt + type(psb_ctxt_type), allocatable :: local_ctxt logical :: built = .false. contains procedure, pass(sv) :: build => d_mumps_solver_bld @@ -248,9 +248,9 @@ contains if (info /= psb_success_) goto 9999 end if deallocate(sv%id, stat=info) - if (allocated(sv%local_ictxt)) then - call psb_exit(sv%local_ictxt,close=.false.) - deallocate(sv%local_ictxt,stat=info) + if (allocated(sv%local_ctxt)) then + call psb_exit(sv%local_ctxt,close=.false.) + deallocate(sv%local_ctxt,stat=info) end if sv%built=.false. end if @@ -324,8 +324,9 @@ subroutine d_mumps_solver_descr(sv,info,iout,coarse) logical, intent(in), optional :: coarse ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, me, np + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np character(len=20), parameter :: name='amg_z_mumps_solver_descr' integer(psb_ipk_) :: iout_ diff --git a/amgprec/amg_d_prec_type.f90 b/amgprec/amg_d_prec_type.f90 index 03ede9da..d1ec709b 100644 --- a/amgprec/amg_d_prec_type.f90 +++ b/amgprec/amg_d_prec_type.f90 @@ -57,7 +57,8 @@ module amg_d_prec_type use amg_d_base_smoother_mod use amg_d_base_aggregator_mod use amg_d_onelev_mod - use psb_base_mod, only : psb_erractionsave, psb_erractionrestore, psb_errstatus_fatal + use psb_base_mod, only : psb_erractionsave, psb_erractionrestore, & + & psb_errstatus_fatal, psb_ctxt_type use psb_prec_mod, only : psb_dprec_type ! @@ -85,7 +86,6 @@ module amg_d_prec_type integer, parameter, private :: wv_size_=4 type, extends(psb_dprec_type) :: amg_dprec_type - ! integer(psb_ipk_) :: ictxt ! Now it's in the PSBLAS prec. type(amg_daggr_data) :: ag_data ! ! Number of outer sweeps. Sometimes 2 V-cycles may be better than 1 W-cycle. @@ -272,13 +272,13 @@ module amg_d_prec_type end interface interface amg_precinit - subroutine amg_dprecinit(ictxt,prec,ptype,info) + subroutine amg_dprecinit(ctxt,prec,ptype,info) import :: psb_dspmat_type, psb_desc_type, psb_dpk_, & - & amg_dprec_type, psb_ipk_ - integer(psb_ipk_), intent(in) :: ictxt - class(amg_dprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + & amg_dprec_type, psb_ipk_, psb_ctxt_type + type(psb_ctxt_type), intent(in) :: ctxt + class(amg_dprec_type), intent(inout) :: prec + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info end subroutine amg_dprecinit end interface amg_precinit @@ -460,12 +460,12 @@ contains class(amg_dprec_type), intent(inout) :: prec real(psb_dpk_) :: num, den, nmin - integer(psb_ipk_) :: ictxt - integer(psb_ipk_) :: il + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: il num = -done den = done - ictxt = prec%ictxt + ctxt = prec%ctxt if (allocated(prec%precv)) then il = 1 num = prec%precv(il)%base_a%get_nzeros() @@ -477,13 +477,13 @@ contains end if end if nmin = num - call psb_min(ictxt,nmin) + call psb_min(ctxt,nmin) if (nmin < dzero) then num = dzero den = done else - call psb_sum(ictxt,num) - call psb_sum(ictxt,den) + call psb_sum(ctxt,num) + call psb_sum(ctxt,den) end if prec%ag_data%op_complexity = num/den end subroutine amg_d_cmp_compl @@ -506,14 +506,14 @@ contains implicit none class(amg_dprec_type), intent(inout) :: prec - real(psb_dpk_) :: avgcr - integer(psb_ipk_) :: ictxt - integer(psb_ipk_) :: il, nl, iam, np + real(psb_dpk_) :: avgcr + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: il, nl, iam, np avgcr = dzero - ictxt = prec%ictxt - call psb_info(ictxt,iam,np) + ctxt = prec%ctxt + call psb_info(ctxt,iam,np) if (allocated(prec%precv)) then nl = size(prec%precv) do il=2,nl @@ -521,7 +521,7 @@ contains end do avgcr = avgcr / (nl-1) end if - call psb_sum(ictxt,avgcr) + call psb_sum(ctxt,avgcr) prec%ag_data%avg_cr = avgcr/np end subroutine amg_d_cmp_avg_cr @@ -737,14 +737,15 @@ contains integer(psb_ipk_), intent(in), optional :: istart, iend, iproc character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num - integer(psb_ipk_) :: i, j, il1, iln, lev - integer(psb_ipk_) :: icontxt, iam, np, iproc_ - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lev + type(psb_ctxt_type) :: icontxt + integer(psb_ipk_) :: iam, np, iproc_ + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than ! len of prefix_ info = 0 - icontxt = prec%ictxt + icontxt = prec%ctxt call psb_info(icontxt,iam,np) iln = size(prec%precv) @@ -810,13 +811,14 @@ contains class(psb_dprec_type), target, intent(inout) :: precout integer(psb_ipk_), intent(out) :: info ! Local vars - integer(psb_ipk_) :: i, j, ln, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: i, j, ln, lev + type(psb_ctxt_type) :: icontxt + integer(psb_ipk_) :: iam, np info = psb_success_ select type(pout => precout) class is (amg_dprec_type) - pout%ictxt = prec%ictxt + pout%ctxt = prec%ctxt pout%ag_data = prec%ag_data pout%outer_sweeps = prec%outer_sweeps if (allocated(prec%precv)) then @@ -864,7 +866,7 @@ contains !!$ return endif end if - b%ictxt = prec%ictxt + b%ctxt = prec%ctxt b%ag_data = prec%ag_data b%outer_sweeps = prec%outer_sweeps diff --git a/amgprec/amg_d_slu_solver.F90 b/amgprec/amg_d_slu_solver.F90 index 9a1987e8..8f918fd7 100644 --- a/amgprec/amg_d_slu_solver.F90 +++ b/amgprec/amg_d_slu_solver.F90 @@ -137,7 +137,8 @@ contains integer :: n_row,n_col real(psb_dpk_), pointer :: ww(:) - integer :: ictxt,np,me,i, err_act + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act character :: trans_ character(len=20) :: name='d_slu_solver_apply' @@ -268,15 +269,16 @@ contains type(psb_d_csc_sparse_mat) :: acsc type(psb_d_coo_sparse_mat) :: acoo integer :: n_row,n_col, nrow_a, nztota - integer :: ictxt,np,me,i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act, debug_unit, debug_level character(len=20) :: name='d_slu_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -395,7 +397,6 @@ contains ! Local variables integer :: err_act - integer :: ictxt, me, np character(len=20), parameter :: name='amg_d_slu_solver_descr' integer :: iout_ diff --git a/amgprec/amg_d_sludist_solver.F90 b/amgprec/amg_d_sludist_solver.F90 index 2bf533aa..5cec9233 100644 --- a/amgprec/amg_d_sludist_solver.F90 +++ b/amgprec/amg_d_sludist_solver.F90 @@ -136,9 +136,10 @@ contains integer :: n_row,n_col real(psb_dpk_), pointer :: ww(:) - integer :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='d_sludist_solver_apply' + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act + character :: trans_ + character(len=20) :: name='d_sludist_solver_apply' call psb_erractionsave(err_act) @@ -271,15 +272,16 @@ contains type(psb_d_csr_sparse_mat) :: acsr integer :: n_row,n_col, nrow_a, nztota, nglob, nzt, npr, npc integer :: ifrst, ibcheck - integer :: ictxt,np,me,i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act, debug_unit, debug_level character(len=20) :: name='d_sludist_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) npr = np npc = 1 if (debug_level >= psb_debug_outer_) & @@ -413,7 +415,8 @@ contains ! Local variables integer :: err_act - integer :: ictxt, me, np + type(psb_ctxt_type) :: ctxt + integer :: me, np character(len=20), parameter :: name='amg_d_sludist_solver_descr' integer :: iout_ diff --git a/amgprec/amg_d_umf_solver.F90 b/amgprec/amg_d_umf_solver.F90 index 000cf6a9..8dd95bf8 100644 --- a/amgprec/amg_d_umf_solver.F90 +++ b/amgprec/amg_d_umf_solver.F90 @@ -137,7 +137,7 @@ contains integer :: n_row,n_col real(psb_dpk_), pointer :: ww(:) - integer :: ictxt,np,me,i, err_act + integer(psb_ipk_) :: i, err_act character :: trans_ character(len=20) :: name='d_umf_solver_apply' @@ -271,15 +271,16 @@ contains type(psb_dspmat_type) :: atmp type(psb_d_csc_sparse_mat) :: acsc integer :: n_row,n_col, nrow_a, nztota - integer :: ictxt,np,me,i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act, debug_unit, debug_level character(len=20) :: name='d_umf_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -401,7 +402,6 @@ contains ! Local variables integer :: err_act - integer :: ictxt, me, np character(len=20), parameter :: name='amg_d_umf_solver_descr' integer :: iout_ diff --git a/amgprec/amg_s_mumps_solver.F90 b/amgprec/amg_s_mumps_solver.F90 index 21fc3b95..5db2f43f 100644 --- a/amgprec/amg_s_mumps_solver.F90 +++ b/amgprec/amg_s_mumps_solver.F90 @@ -82,7 +82,7 @@ module amg_s_mumps_solver ! IPAR(2) : MUMPS_PRINT_ERR print verbosity (see MUMPS) ! IPAR(3) : MUMPS_SYM 0: non-symmetric 2: symmetric integer(psb_ipk_), dimension(3) :: ipar - integer(psb_ipk_), allocatable :: local_ictxt + type(psb_ctxt_type), allocatable :: local_ctxt logical :: built = .false. contains procedure, pass(sv) :: build => s_mumps_solver_bld @@ -248,9 +248,9 @@ contains if (info /= psb_success_) goto 9999 end if deallocate(sv%id, stat=info) - if (allocated(sv%local_ictxt)) then - call psb_exit(sv%local_ictxt,close=.false.) - deallocate(sv%local_ictxt,stat=info) + if (allocated(sv%local_ctxt)) then + call psb_exit(sv%local_ctxt,close=.false.) + deallocate(sv%local_ctxt,stat=info) end if sv%built=.false. end if @@ -324,8 +324,9 @@ subroutine s_mumps_solver_descr(sv,info,iout,coarse) logical, intent(in), optional :: coarse ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, me, np + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np character(len=20), parameter :: name='amg_z_mumps_solver_descr' integer(psb_ipk_) :: iout_ diff --git a/amgprec/amg_s_prec_type.f90 b/amgprec/amg_s_prec_type.f90 index 160fe758..df0f0718 100644 --- a/amgprec/amg_s_prec_type.f90 +++ b/amgprec/amg_s_prec_type.f90 @@ -57,7 +57,8 @@ module amg_s_prec_type use amg_s_base_smoother_mod use amg_s_base_aggregator_mod use amg_s_onelev_mod - use psb_base_mod, only : psb_erractionsave, psb_erractionrestore, psb_errstatus_fatal + use psb_base_mod, only : psb_erractionsave, psb_erractionrestore, & + & psb_errstatus_fatal, psb_ctxt_type use psb_prec_mod, only : psb_sprec_type ! @@ -85,7 +86,6 @@ module amg_s_prec_type integer, parameter, private :: wv_size_=4 type, extends(psb_sprec_type) :: amg_sprec_type - ! integer(psb_ipk_) :: ictxt ! Now it's in the PSBLAS prec. type(amg_saggr_data) :: ag_data ! ! Number of outer sweeps. Sometimes 2 V-cycles may be better than 1 W-cycle. @@ -272,13 +272,13 @@ module amg_s_prec_type end interface interface amg_precinit - subroutine amg_sprecinit(ictxt,prec,ptype,info) + subroutine amg_sprecinit(ctxt,prec,ptype,info) import :: psb_sspmat_type, psb_desc_type, psb_spk_, & - & amg_sprec_type, psb_ipk_ - integer(psb_ipk_), intent(in) :: ictxt - class(amg_sprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + & amg_sprec_type, psb_ipk_, psb_ctxt_type + type(psb_ctxt_type), intent(in) :: ctxt + class(amg_sprec_type), intent(inout) :: prec + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info end subroutine amg_sprecinit end interface amg_precinit @@ -460,12 +460,12 @@ contains class(amg_sprec_type), intent(inout) :: prec real(psb_spk_) :: num, den, nmin - integer(psb_ipk_) :: ictxt - integer(psb_ipk_) :: il + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: il num = -sone den = sone - ictxt = prec%ictxt + ctxt = prec%ctxt if (allocated(prec%precv)) then il = 1 num = prec%precv(il)%base_a%get_nzeros() @@ -477,13 +477,13 @@ contains end if end if nmin = num - call psb_min(ictxt,nmin) + call psb_min(ctxt,nmin) if (nmin < szero) then num = szero den = sone else - call psb_sum(ictxt,num) - call psb_sum(ictxt,den) + call psb_sum(ctxt,num) + call psb_sum(ctxt,den) end if prec%ag_data%op_complexity = num/den end subroutine amg_s_cmp_compl @@ -506,14 +506,14 @@ contains implicit none class(amg_sprec_type), intent(inout) :: prec - real(psb_spk_) :: avgcr - integer(psb_ipk_) :: ictxt - integer(psb_ipk_) :: il, nl, iam, np + real(psb_spk_) :: avgcr + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: il, nl, iam, np avgcr = szero - ictxt = prec%ictxt - call psb_info(ictxt,iam,np) + ctxt = prec%ctxt + call psb_info(ctxt,iam,np) if (allocated(prec%precv)) then nl = size(prec%precv) do il=2,nl @@ -521,7 +521,7 @@ contains end do avgcr = avgcr / (nl-1) end if - call psb_sum(ictxt,avgcr) + call psb_sum(ctxt,avgcr) prec%ag_data%avg_cr = avgcr/np end subroutine amg_s_cmp_avg_cr @@ -737,14 +737,15 @@ contains integer(psb_ipk_), intent(in), optional :: istart, iend, iproc character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num - integer(psb_ipk_) :: i, j, il1, iln, lev - integer(psb_ipk_) :: icontxt, iam, np, iproc_ - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lev + type(psb_ctxt_type) :: icontxt + integer(psb_ipk_) :: iam, np, iproc_ + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than ! len of prefix_ info = 0 - icontxt = prec%ictxt + icontxt = prec%ctxt call psb_info(icontxt,iam,np) iln = size(prec%precv) @@ -810,13 +811,14 @@ contains class(psb_sprec_type), target, intent(inout) :: precout integer(psb_ipk_), intent(out) :: info ! Local vars - integer(psb_ipk_) :: i, j, ln, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: i, j, ln, lev + type(psb_ctxt_type) :: icontxt + integer(psb_ipk_) :: iam, np info = psb_success_ select type(pout => precout) class is (amg_sprec_type) - pout%ictxt = prec%ictxt + pout%ctxt = prec%ctxt pout%ag_data = prec%ag_data pout%outer_sweeps = prec%outer_sweeps if (allocated(prec%precv)) then @@ -864,7 +866,7 @@ contains !!$ return endif end if - b%ictxt = prec%ictxt + b%ctxt = prec%ctxt b%ag_data = prec%ag_data b%outer_sweeps = prec%outer_sweeps diff --git a/amgprec/amg_s_slu_solver.F90 b/amgprec/amg_s_slu_solver.F90 index 73af1717..d5a29575 100644 --- a/amgprec/amg_s_slu_solver.F90 +++ b/amgprec/amg_s_slu_solver.F90 @@ -137,7 +137,8 @@ contains integer :: n_row,n_col real(psb_spk_), pointer :: ww(:) - integer :: ictxt,np,me,i, err_act + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act character :: trans_ character(len=20) :: name='s_slu_solver_apply' @@ -268,15 +269,16 @@ contains type(psb_s_csc_sparse_mat) :: acsc type(psb_s_coo_sparse_mat) :: acoo integer :: n_row,n_col, nrow_a, nztota - integer :: ictxt,np,me,i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act, debug_unit, debug_level character(len=20) :: name='s_slu_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -395,7 +397,6 @@ contains ! Local variables integer :: err_act - integer :: ictxt, me, np character(len=20), parameter :: name='amg_s_slu_solver_descr' integer :: iout_ diff --git a/amgprec/amg_z_mumps_solver.F90 b/amgprec/amg_z_mumps_solver.F90 index ad6d1aae..6bcb6b12 100644 --- a/amgprec/amg_z_mumps_solver.F90 +++ b/amgprec/amg_z_mumps_solver.F90 @@ -82,7 +82,7 @@ module amg_z_mumps_solver ! IPAR(2) : MUMPS_PRINT_ERR print verbosity (see MUMPS) ! IPAR(3) : MUMPS_SYM 0: non-symmetric 2: symmetric integer(psb_ipk_), dimension(3) :: ipar - integer(psb_ipk_), allocatable :: local_ictxt + type(psb_ctxt_type), allocatable :: local_ctxt logical :: built = .false. contains procedure, pass(sv) :: build => z_mumps_solver_bld @@ -248,9 +248,9 @@ contains if (info /= psb_success_) goto 9999 end if deallocate(sv%id, stat=info) - if (allocated(sv%local_ictxt)) then - call psb_exit(sv%local_ictxt,close=.false.) - deallocate(sv%local_ictxt,stat=info) + if (allocated(sv%local_ctxt)) then + call psb_exit(sv%local_ctxt,close=.false.) + deallocate(sv%local_ctxt,stat=info) end if sv%built=.false. end if @@ -324,8 +324,9 @@ subroutine z_mumps_solver_descr(sv,info,iout,coarse) logical, intent(in), optional :: coarse ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, me, np + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np character(len=20), parameter :: name='amg_z_mumps_solver_descr' integer(psb_ipk_) :: iout_ diff --git a/amgprec/amg_z_prec_type.f90 b/amgprec/amg_z_prec_type.f90 index 41aee715..2637a5ff 100644 --- a/amgprec/amg_z_prec_type.f90 +++ b/amgprec/amg_z_prec_type.f90 @@ -57,7 +57,8 @@ module amg_z_prec_type use amg_z_base_smoother_mod use amg_z_base_aggregator_mod use amg_z_onelev_mod - use psb_base_mod, only : psb_erractionsave, psb_erractionrestore, psb_errstatus_fatal + use psb_base_mod, only : psb_erractionsave, psb_erractionrestore, & + & psb_errstatus_fatal, psb_ctxt_type use psb_prec_mod, only : psb_zprec_type ! @@ -85,7 +86,6 @@ module amg_z_prec_type integer, parameter, private :: wv_size_=4 type, extends(psb_zprec_type) :: amg_zprec_type - ! integer(psb_ipk_) :: ictxt ! Now it's in the PSBLAS prec. type(amg_daggr_data) :: ag_data ! ! Number of outer sweeps. Sometimes 2 V-cycles may be better than 1 W-cycle. @@ -272,13 +272,13 @@ module amg_z_prec_type end interface interface amg_precinit - subroutine amg_zprecinit(ictxt,prec,ptype,info) + subroutine amg_zprecinit(ctxt,prec,ptype,info) import :: psb_zspmat_type, psb_desc_type, psb_dpk_, & - & amg_zprec_type, psb_ipk_ - integer(psb_ipk_), intent(in) :: ictxt - class(amg_zprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + & amg_zprec_type, psb_ipk_, psb_ctxt_type + type(psb_ctxt_type), intent(in) :: ctxt + class(amg_zprec_type), intent(inout) :: prec + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info end subroutine amg_zprecinit end interface amg_precinit @@ -460,12 +460,12 @@ contains class(amg_zprec_type), intent(inout) :: prec real(psb_dpk_) :: num, den, nmin - integer(psb_ipk_) :: ictxt - integer(psb_ipk_) :: il + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: il num = -done den = done - ictxt = prec%ictxt + ctxt = prec%ctxt if (allocated(prec%precv)) then il = 1 num = prec%precv(il)%base_a%get_nzeros() @@ -477,13 +477,13 @@ contains end if end if nmin = num - call psb_min(ictxt,nmin) + call psb_min(ctxt,nmin) if (nmin < dzero) then num = dzero den = done else - call psb_sum(ictxt,num) - call psb_sum(ictxt,den) + call psb_sum(ctxt,num) + call psb_sum(ctxt,den) end if prec%ag_data%op_complexity = num/den end subroutine amg_z_cmp_compl @@ -506,14 +506,14 @@ contains implicit none class(amg_zprec_type), intent(inout) :: prec - real(psb_dpk_) :: avgcr - integer(psb_ipk_) :: ictxt - integer(psb_ipk_) :: il, nl, iam, np + real(psb_dpk_) :: avgcr + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: il, nl, iam, np avgcr = dzero - ictxt = prec%ictxt - call psb_info(ictxt,iam,np) + ctxt = prec%ctxt + call psb_info(ctxt,iam,np) if (allocated(prec%precv)) then nl = size(prec%precv) do il=2,nl @@ -521,7 +521,7 @@ contains end do avgcr = avgcr / (nl-1) end if - call psb_sum(ictxt,avgcr) + call psb_sum(ctxt,avgcr) prec%ag_data%avg_cr = avgcr/np end subroutine amg_z_cmp_avg_cr @@ -737,14 +737,15 @@ contains integer(psb_ipk_), intent(in), optional :: istart, iend, iproc character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num - integer(psb_ipk_) :: i, j, il1, iln, lev - integer(psb_ipk_) :: icontxt, iam, np, iproc_ - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lev + type(psb_ctxt_type) :: icontxt + integer(psb_ipk_) :: iam, np, iproc_ + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than ! len of prefix_ info = 0 - icontxt = prec%ictxt + icontxt = prec%ctxt call psb_info(icontxt,iam,np) iln = size(prec%precv) @@ -810,13 +811,14 @@ contains class(psb_zprec_type), target, intent(inout) :: precout integer(psb_ipk_), intent(out) :: info ! Local vars - integer(psb_ipk_) :: i, j, ln, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: i, j, ln, lev + type(psb_ctxt_type) :: icontxt + integer(psb_ipk_) :: iam, np info = psb_success_ select type(pout => precout) class is (amg_zprec_type) - pout%ictxt = prec%ictxt + pout%ctxt = prec%ctxt pout%ag_data = prec%ag_data pout%outer_sweeps = prec%outer_sweeps if (allocated(prec%precv)) then @@ -864,7 +866,7 @@ contains !!$ return endif end if - b%ictxt = prec%ictxt + b%ctxt = prec%ctxt b%ag_data = prec%ag_data b%outer_sweeps = prec%outer_sweeps diff --git a/amgprec/amg_z_slu_solver.F90 b/amgprec/amg_z_slu_solver.F90 index 29e0ef1b..f918bbd6 100644 --- a/amgprec/amg_z_slu_solver.F90 +++ b/amgprec/amg_z_slu_solver.F90 @@ -137,7 +137,8 @@ contains integer :: n_row,n_col complex(psb_dpk_), pointer :: ww(:) - integer :: ictxt,np,me,i, err_act + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act character :: trans_ character(len=20) :: name='z_slu_solver_apply' @@ -268,15 +269,16 @@ contains type(psb_z_csc_sparse_mat) :: acsc type(psb_z_coo_sparse_mat) :: acoo integer :: n_row,n_col, nrow_a, nztota - integer :: ictxt,np,me,i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act, debug_unit, debug_level character(len=20) :: name='z_slu_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -395,7 +397,6 @@ contains ! Local variables integer :: err_act - integer :: ictxt, me, np character(len=20), parameter :: name='amg_z_slu_solver_descr' integer :: iout_ diff --git a/amgprec/amg_z_sludist_solver.F90 b/amgprec/amg_z_sludist_solver.F90 index 23a82cc8..116ba754 100644 --- a/amgprec/amg_z_sludist_solver.F90 +++ b/amgprec/amg_z_sludist_solver.F90 @@ -136,9 +136,10 @@ contains integer :: n_row,n_col complex(psb_dpk_), pointer :: ww(:) - integer :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='z_sludist_solver_apply' + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act + character :: trans_ + character(len=20) :: name='z_sludist_solver_apply' call psb_erractionsave(err_act) @@ -271,15 +272,16 @@ contains type(psb_z_csr_sparse_mat) :: acsr integer :: n_row,n_col, nrow_a, nztota, nglob, nzt, npr, npc integer :: ifrst, ibcheck - integer :: ictxt,np,me,i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act, debug_unit, debug_level character(len=20) :: name='z_sludist_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) npr = np npc = 1 if (debug_level >= psb_debug_outer_) & @@ -413,7 +415,8 @@ contains ! Local variables integer :: err_act - integer :: ictxt, me, np + type(psb_ctxt_type) :: ctxt + integer :: me, np character(len=20), parameter :: name='amg_z_sludist_solver_descr' integer :: iout_ diff --git a/amgprec/amg_z_umf_solver.F90 b/amgprec/amg_z_umf_solver.F90 index d7831422..fc6c2748 100644 --- a/amgprec/amg_z_umf_solver.F90 +++ b/amgprec/amg_z_umf_solver.F90 @@ -137,7 +137,7 @@ contains integer :: n_row,n_col complex(psb_dpk_), pointer :: ww(:) - integer :: ictxt,np,me,i, err_act + integer(psb_ipk_) :: i, err_act character :: trans_ character(len=20) :: name='z_umf_solver_apply' @@ -271,15 +271,16 @@ contains type(psb_zspmat_type) :: atmp type(psb_z_csc_sparse_mat) :: acsc integer :: n_row,n_col, nrow_a, nztota - integer :: ictxt,np,me,i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt + integer :: np,me,i, err_act, debug_unit, debug_level character(len=20) :: name='z_umf_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -401,7 +402,6 @@ contains ! Local variables integer :: err_act - integer :: ictxt, me, np character(len=20), parameter :: name='amg_z_umf_solver_descr' integer :: iout_ diff --git a/amgprec/impl/aggregator/amg_c_dec_aggregator_mat_asb.f90 b/amgprec/impl/aggregator/amg_c_dec_aggregator_mat_asb.f90 index dbe0cfc8..0270c05d 100644 --- a/amgprec/impl/aggregator/amg_c_dec_aggregator_mat_asb.f90 +++ b/amgprec/impl/aggregator/amg_c_dec_aggregator_mat_asb.f90 @@ -97,7 +97,8 @@ subroutine amg_c_dec_aggregator_mat_asb(ag,parms,a,desc_a,& type(psb_desc_type), intent(inout) :: desc_ac integer(psb_ipk_), intent(out) :: info ! - integer(psb_ipk_) :: ictxt, np, me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me type(psb_lc_coo_sparse_mat) :: tmpcoo type(psb_lcspmat_type) :: tmp_ac integer(psb_ipk_) :: i_nr, i_nc, i_nl, nzl @@ -111,8 +112,8 @@ subroutine amg_c_dec_aggregator_mat_asb(ag,parms,a,desc_a,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) select case(parms%coarse_mat) @@ -158,7 +159,7 @@ subroutine amg_c_dec_aggregator_mat_asb(ag,parms,a,desc_a,& call tmp_ac%mv_to(tmpcoo) call ac%mv_from(tmpcoo) - call psb_cdall(ictxt,desc_ac,info,mg=ntaggr,repl=.true.) + call psb_cdall(ctxt,desc_ac,info,mg=ntaggr,repl=.true.) if (info == psb_success_) call psb_cdasb(desc_ac,info) if (info /= psb_success_) goto 9999 diff --git a/amgprec/impl/aggregator/amg_c_dec_aggregator_mat_bld.f90 b/amgprec/impl/aggregator/amg_c_dec_aggregator_mat_bld.f90 index d1f7264f..d74a7d1e 100644 --- a/amgprec/impl/aggregator/amg_c_dec_aggregator_mat_bld.f90 +++ b/amgprec/impl/aggregator/amg_c_dec_aggregator_mat_bld.f90 @@ -151,11 +151,12 @@ subroutine amg_c_dec_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,& integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_lpk_) :: nzl,ntaggr - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_lpk_) :: nzl,ntaggr + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: debug_level, debug_unit name='amg_c_dec_aggregator_mat_bld' call psb_erractionsave(err_act) @@ -165,8 +166,8 @@ subroutine amg_c_dec_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) ! ! Build the coarse-level matrix from the fine-level one, starting from diff --git a/amgprec/impl/aggregator/amg_c_dec_aggregator_tprol.f90 b/amgprec/impl/aggregator/amg_c_dec_aggregator_tprol.f90 index 543a6139..24ce6817 100644 --- a/amgprec/impl/aggregator/amg_c_dec_aggregator_tprol.f90 +++ b/amgprec/impl/aggregator/amg_c_dec_aggregator_tprol.f90 @@ -90,12 +90,13 @@ subroutine amg_c_dec_aggregator_build_tprol(ag,parms,ag_data,& integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_lpk_) :: ntaggr - integer(psb_ipk_) :: debug_level, debug_unit - logical :: clean_zeros + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_lpk_) :: ntaggr + integer(psb_ipk_) :: debug_level, debug_unit + logical :: clean_zeros name='amg_c_dec_aggregator_tprol' call psb_erractionsave(err_act) @@ -105,8 +106,8 @@ subroutine amg_c_dec_aggregator_build_tprol(ag,parms,ag_data,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(parms%ml_cycle,'Multilevel cycle',& & amg_mult_ml_,is_legal_ml_cycle) diff --git a/amgprec/impl/aggregator/amg_c_map_to_tprol.f90 b/amgprec/impl/aggregator/amg_c_map_to_tprol.f90 index 9557b7bd..ea05094a 100644 --- a/amgprec/impl/aggregator/amg_c_map_to_tprol.f90 +++ b/amgprec/impl/aggregator/amg_c_map_to_tprol.f90 @@ -95,9 +95,10 @@ subroutine amg_c_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) integer(psb_lpk_) :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m,naggrm1, naggrp1, ntaggr type(psb_lc_coo_sparse_mat) :: tmpcoo integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me - integer(psb_lpk_) :: nrow, ncol, n_ne - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_lpk_) :: nrow, ncol, n_ne + character(len=20) :: name, ch_err info=psb_success_ name = 'amg_map_to_tprol' @@ -108,8 +109,8 @@ subroutine amg_c_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() diff --git a/amgprec/impl/aggregator/amg_c_ptap_bld.f90 b/amgprec/impl/aggregator/amg_c_ptap_bld.f90 index fa1fa19a..11563199 100644 --- a/amgprec/impl/aggregator/amg_c_ptap_bld.f90 +++ b/amgprec/impl/aggregator/amg_c_ptap_bld.f90 @@ -63,9 +63,9 @@ subroutine amg_c_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& ! Local variables integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx character(len=40) :: name - integer(psb_ipk_) :: ierr(5) type(psb_lc_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_c_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -81,9 +81,8 @@ subroutine amg_c_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() @@ -276,10 +275,10 @@ subroutine amg_c_lc_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& type(psb_desc_type), intent(inout), optional :: desc_ax ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo - character(len=40) :: name - integer(psb_ipk_) :: ierr(5) + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx + character(len=40) :: name type(psb_lc_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_c_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -295,9 +294,8 @@ subroutine amg_c_lc_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() @@ -494,9 +492,9 @@ subroutine amg_lc_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& ! Local variables integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx character(len=40) :: name - integer(psb_ipk_) :: ierr(5) type(psb_lc_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_lc_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -512,9 +510,8 @@ subroutine amg_lc_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() diff --git a/amgprec/impl/aggregator/amg_c_rap.f90 b/amgprec/impl/aggregator/amg_c_rap.f90 index d3af7536..30ccea97 100644 --- a/amgprec/impl/aggregator/amg_c_rap.f90 +++ b/amgprec/impl/aggregator/amg_c_rap.f90 @@ -60,10 +60,10 @@ subroutine amg_c_rap(a_csr,desc_a,nlaggr,parms,ac,& integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo - character(len=40) :: name - integer(psb_ipk_) :: ierr(5) + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx + character(len=40) :: name type(psb_lc_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_c_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -78,9 +78,8 @@ subroutine amg_c_rap(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() diff --git a/amgprec/impl/aggregator/amg_c_soc1_map_bld.f90 b/amgprec/impl/aggregator/amg_c_soc1_map_bld.f90 index 4ea90962..c846bbcb 100644 --- a/amgprec/impl/aggregator/amg_c_soc1_map_bld.f90 +++ b/amgprec/impl/aggregator/amg_c_soc1_map_bld.f90 @@ -94,10 +94,11 @@ subroutine amg_c_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in real(psb_spk_) :: cpling, tcl logical :: disjoint integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: nrow, ncol, n_ne - integer(psb_lpk_) :: nrglob - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: nrow, ncol, n_ne + integer(psb_lpk_) :: nrglob + character(len=20) :: name, ch_err info=psb_success_ name = 'amg_soc1_map_bld' @@ -108,8 +109,8 @@ subroutine amg_c_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() nrglob = desc_a%get_global_rows() @@ -334,7 +335,7 @@ subroutine amg_c_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in nlaggr(:) = 0 nlaggr(me+1) = naggr - call psb_sum(ictxt,nlaggr(1:np)) + call psb_sum(ctxt,nlaggr(1:np)) call acsr%free() diff --git a/amgprec/impl/aggregator/amg_c_soc2_map_bld.f90 b/amgprec/impl/aggregator/amg_c_soc2_map_bld.f90 index 4add56e6..8d9c0a0b 100644 --- a/amgprec/impl/aggregator/amg_c_soc2_map_bld.f90 +++ b/amgprec/impl/aggregator/amg_c_soc2_map_bld.f90 @@ -95,7 +95,8 @@ subroutine amg_c_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in real(psb_spk_) :: cpling, tcl logical :: disjoint integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me integer(psb_ipk_) :: nrow, ncol, n_ne character(len=20) :: name, ch_err @@ -108,8 +109,8 @@ subroutine amg_c_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() nrglob = desc_a%get_global_rows() @@ -335,7 +336,7 @@ subroutine amg_c_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in nlaggr(:) = 0 nlaggr(me+1) = naggr - call psb_sum(ictxt,nlaggr(1:np)) + call psb_sum(ctxt,nlaggr(1:np)) call psb_erractionrestore(err_act) return diff --git a/amgprec/impl/aggregator/amg_c_symdec_aggregator_tprol.f90 b/amgprec/impl/aggregator/amg_c_symdec_aggregator_tprol.f90 index 87b163d8..1002c3f4 100644 --- a/amgprec/impl/aggregator/amg_c_symdec_aggregator_tprol.f90 +++ b/amgprec/impl/aggregator/amg_c_symdec_aggregator_tprol.f90 @@ -94,13 +94,14 @@ subroutine amg_c_symdec_aggregator_build_tprol(ag,parms,ag_data,& ! Local variables type(psb_cspmat_type) :: atmp, atrans - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: nr - integer(psb_lpk_) :: ntaggr - integer(psb_ipk_) :: debug_level, debug_unit - logical :: clean_zeros + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: nr + integer(psb_lpk_) :: ntaggr + integer(psb_ipk_) :: debug_level, debug_unit + logical :: clean_zeros name='amg_c_symdec_aggregator_tprol' call psb_erractionsave(err_act) @@ -110,8 +111,8 @@ subroutine amg_c_symdec_aggregator_build_tprol(ag,parms,ag_data,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(parms%ml_cycle,'Multilevel cycle',& & amg_mult_ml_,is_legal_ml_cycle) diff --git a/amgprec/impl/aggregator/amg_caggrmat_minnrg_bld.f90 b/amgprec/impl/aggregator/amg_caggrmat_minnrg_bld.f90 index f50d3ee5..41c7d196 100644 --- a/amgprec/impl/aggregator/amg_caggrmat_minnrg_bld.f90 +++ b/amgprec/impl/aggregator/amg_caggrmat_minnrg_bld.f90 @@ -125,8 +125,9 @@ subroutine amg_caggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& ! Local variables integer(psb_lpk_) :: nrow, nglob, ncol, ntaggr, nzac, ip, ndx,& & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF, nrt - integer(psb_ipk_) :: ictxt,np,me, icomm - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, icomm + character(len=20) :: name type(psb_lcspmat_type) :: la, af, ptilde, rtilde, atran, atp, atdatp type(psb_lcspmat_type) :: am3,am4, ap, adap,atmp,rada, ra, atmp2, dap, dadap, da type(psb_lcspmat_type) :: dat, datp, datdatp, atmp3, tmp_prol @@ -151,11 +152,10 @@ subroutine amg_caggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() + ctxt = desc_a%get_context() icomm = desc_a%get_mpic() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() @@ -246,8 +246,8 @@ subroutine amg_caggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& call csc_mat_col_prod(csc_dap,csc_dadap,omp,info) call csc_mat_col_prod(csc_dadap,csc_dadap,oden,info) - call psb_sum(ictxt,omp) - call psb_sum(ictxt,oden) + call psb_sum(ctxt,omp) + call psb_sum(ctxt,oden) ! !$ write(0,*) trim(name),' OMP :',omp ! !$ write(0,*) trim(name),' ODEN:',oden @@ -404,8 +404,8 @@ subroutine amg_caggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& call csc_mat_col_prod(csc_datp,csc_datdatp,omp,info) call csc_mat_col_prod(csc_datdatp,csc_datdatp,oden,info) - call psb_sum(ictxt,omp) - call psb_sum(ictxt,oden) + call psb_sum(ctxt,omp) + call psb_sum(ctxt,oden) ! !$ write(debug_unit,*) trim(name),' OMP_R :',omp diff --git a/amgprec/impl/aggregator/amg_caggrmat_nosmth_bld.f90 b/amgprec/impl/aggregator/amg_caggrmat_nosmth_bld.f90 index af00bf1c..2838e6aa 100644 --- a/amgprec/impl/aggregator/amg_caggrmat_nosmth_bld.f90 +++ b/amgprec/impl/aggregator/amg_caggrmat_nosmth_bld.f90 @@ -115,9 +115,10 @@ subroutine amg_caggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, np, me, icomm, minfo - character(len=20) :: name + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + character(len=20) :: name type(psb_lc_coo_sparse_mat) :: lcoo_prol type(psb_c_coo_sparse_mat) :: coo_prol, coo_restr type(psb_c_csr_sparse_mat) :: acsr @@ -134,9 +135,8 @@ subroutine amg_caggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& info = psb_err_internal_error_; goto 9999 end if - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() @@ -149,7 +149,7 @@ subroutine amg_caggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& call a%cp_to(acsr) call t_prol%mv_to(lcoo_prol) inaggr = naggr - call psb_cdall(ictxt,desc_ac,info,nl=inaggr) + call psb_cdall(ctxt,desc_ac,info,nl=inaggr) nzlp = lcoo_prol%get_nzeros() call desc_ac%indxmap%g2lip_ins(lcoo_prol%ja(1:nzlp),info) call lcoo_prol%set_ncols(desc_ac%get_local_cols()) diff --git a/amgprec/impl/aggregator/amg_caggrmat_smth_bld.f90 b/amgprec/impl/aggregator/amg_caggrmat_smth_bld.f90 index b1011ea1..0dffddae 100644 --- a/amgprec/impl/aggregator/amg_caggrmat_smth_bld.f90 +++ b/amgprec/impl/aggregator/amg_caggrmat_smth_bld.f90 @@ -125,7 +125,8 @@ subroutine amg_caggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& integer(psb_lpk_) :: nrow, nglob, ncol, ntaggr, ip, & & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF, nrw integer(psb_ipk_) :: inaggr, nzlp - integer(psb_ipk_) :: ictxt, np, me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me character(len=20) :: name type(psb_lc_coo_sparse_mat) :: tmpcoo type(psb_c_coo_sparse_mat) :: coo_prol, coo_restr @@ -149,9 +150,9 @@ subroutine amg_caggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() + ctxt = desc_a%get_context() - call psb_info(ictxt, me, np) + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() @@ -232,7 +233,7 @@ subroutine amg_caggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& allocate(arwsum(nrow)) call acsr%arwsum(arwsum) anorm = maxval(abs(adiag(1:nrow)*arwsum(1:nrow))) - call psb_amx(ictxt,anorm) + call psb_amx(ctxt,anorm) omega = 4.d0/(3.d0*anorm) parms%aggr_omega_val = omega @@ -258,7 +259,7 @@ subroutine amg_caggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& call t_prol%mv_to(tmpcoo) inaggr = naggr - call psb_cdall(ictxt,desc_ac,info,nl=inaggr) + call psb_cdall(ctxt,desc_ac,info,nl=inaggr) nzlp = tmpcoo%get_nzeros() call desc_ac%indxmap%g2lip_ins(tmpcoo%ja(1:nzlp),info) call tmpcoo%set_ncols(desc_ac%get_local_cols()) diff --git a/amgprec/impl/aggregator/amg_d_dec_aggregator_mat_asb.f90 b/amgprec/impl/aggregator/amg_d_dec_aggregator_mat_asb.f90 index ee1b1a34..bea0a7cf 100644 --- a/amgprec/impl/aggregator/amg_d_dec_aggregator_mat_asb.f90 +++ b/amgprec/impl/aggregator/amg_d_dec_aggregator_mat_asb.f90 @@ -97,7 +97,8 @@ subroutine amg_d_dec_aggregator_mat_asb(ag,parms,a,desc_a,& type(psb_desc_type), intent(inout) :: desc_ac integer(psb_ipk_), intent(out) :: info ! - integer(psb_ipk_) :: ictxt, np, me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me type(psb_ld_coo_sparse_mat) :: tmpcoo type(psb_ldspmat_type) :: tmp_ac integer(psb_ipk_) :: i_nr, i_nc, i_nl, nzl @@ -111,8 +112,8 @@ subroutine amg_d_dec_aggregator_mat_asb(ag,parms,a,desc_a,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) select case(parms%coarse_mat) @@ -158,7 +159,7 @@ subroutine amg_d_dec_aggregator_mat_asb(ag,parms,a,desc_a,& call tmp_ac%mv_to(tmpcoo) call ac%mv_from(tmpcoo) - call psb_cdall(ictxt,desc_ac,info,mg=ntaggr,repl=.true.) + call psb_cdall(ctxt,desc_ac,info,mg=ntaggr,repl=.true.) if (info == psb_success_) call psb_cdasb(desc_ac,info) if (info /= psb_success_) goto 9999 diff --git a/amgprec/impl/aggregator/amg_d_dec_aggregator_mat_bld.f90 b/amgprec/impl/aggregator/amg_d_dec_aggregator_mat_bld.f90 index b304acf7..688dc136 100644 --- a/amgprec/impl/aggregator/amg_d_dec_aggregator_mat_bld.f90 +++ b/amgprec/impl/aggregator/amg_d_dec_aggregator_mat_bld.f90 @@ -151,11 +151,12 @@ subroutine amg_d_dec_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,& integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_lpk_) :: nzl,ntaggr - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_lpk_) :: nzl,ntaggr + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: debug_level, debug_unit name='amg_d_dec_aggregator_mat_bld' call psb_erractionsave(err_act) @@ -165,8 +166,8 @@ subroutine amg_d_dec_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) ! ! Build the coarse-level matrix from the fine-level one, starting from diff --git a/amgprec/impl/aggregator/amg_d_dec_aggregator_tprol.f90 b/amgprec/impl/aggregator/amg_d_dec_aggregator_tprol.f90 index b80a1b02..6d5cb423 100644 --- a/amgprec/impl/aggregator/amg_d_dec_aggregator_tprol.f90 +++ b/amgprec/impl/aggregator/amg_d_dec_aggregator_tprol.f90 @@ -90,12 +90,13 @@ subroutine amg_d_dec_aggregator_build_tprol(ag,parms,ag_data,& integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_lpk_) :: ntaggr - integer(psb_ipk_) :: debug_level, debug_unit - logical :: clean_zeros + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_lpk_) :: ntaggr + integer(psb_ipk_) :: debug_level, debug_unit + logical :: clean_zeros name='amg_d_dec_aggregator_tprol' call psb_erractionsave(err_act) @@ -105,8 +106,8 @@ subroutine amg_d_dec_aggregator_build_tprol(ag,parms,ag_data,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(parms%ml_cycle,'Multilevel cycle',& & amg_mult_ml_,is_legal_ml_cycle) diff --git a/amgprec/impl/aggregator/amg_d_map_to_tprol.f90 b/amgprec/impl/aggregator/amg_d_map_to_tprol.f90 index 5dc5e1f0..4e5c7c5c 100644 --- a/amgprec/impl/aggregator/amg_d_map_to_tprol.f90 +++ b/amgprec/impl/aggregator/amg_d_map_to_tprol.f90 @@ -95,9 +95,10 @@ subroutine amg_d_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) integer(psb_lpk_) :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m,naggrm1, naggrp1, ntaggr type(psb_ld_coo_sparse_mat) :: tmpcoo integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me - integer(psb_lpk_) :: nrow, ncol, n_ne - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_lpk_) :: nrow, ncol, n_ne + character(len=20) :: name, ch_err info=psb_success_ name = 'amg_map_to_tprol' @@ -108,8 +109,8 @@ subroutine amg_d_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() diff --git a/amgprec/impl/aggregator/amg_d_ptap_bld.f90 b/amgprec/impl/aggregator/amg_d_ptap_bld.f90 index 0a29ca6b..4b07d716 100644 --- a/amgprec/impl/aggregator/amg_d_ptap_bld.f90 +++ b/amgprec/impl/aggregator/amg_d_ptap_bld.f90 @@ -63,9 +63,9 @@ subroutine amg_d_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& ! Local variables integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx character(len=40) :: name - integer(psb_ipk_) :: ierr(5) type(psb_ld_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_d_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -81,9 +81,8 @@ subroutine amg_d_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() @@ -276,10 +275,10 @@ subroutine amg_d_ld_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& type(psb_desc_type), intent(inout), optional :: desc_ax ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo - character(len=40) :: name - integer(psb_ipk_) :: ierr(5) + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx + character(len=40) :: name type(psb_ld_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_d_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -295,9 +294,8 @@ subroutine amg_d_ld_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() @@ -494,9 +492,9 @@ subroutine amg_ld_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& ! Local variables integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx character(len=40) :: name - integer(psb_ipk_) :: ierr(5) type(psb_ld_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_ld_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -512,9 +510,8 @@ subroutine amg_ld_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() diff --git a/amgprec/impl/aggregator/amg_d_rap.f90 b/amgprec/impl/aggregator/amg_d_rap.f90 index 5f5bb52e..64069417 100644 --- a/amgprec/impl/aggregator/amg_d_rap.f90 +++ b/amgprec/impl/aggregator/amg_d_rap.f90 @@ -60,10 +60,10 @@ subroutine amg_d_rap(a_csr,desc_a,nlaggr,parms,ac,& integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo - character(len=40) :: name - integer(psb_ipk_) :: ierr(5) + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx + character(len=40) :: name type(psb_ld_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_d_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -78,9 +78,8 @@ subroutine amg_d_rap(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() diff --git a/amgprec/impl/aggregator/amg_d_soc1_map_bld.f90 b/amgprec/impl/aggregator/amg_d_soc1_map_bld.f90 index 4224dd26..8bcb10d0 100644 --- a/amgprec/impl/aggregator/amg_d_soc1_map_bld.f90 +++ b/amgprec/impl/aggregator/amg_d_soc1_map_bld.f90 @@ -94,10 +94,11 @@ subroutine amg_d_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in real(psb_dpk_) :: cpling, tcl logical :: disjoint integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: nrow, ncol, n_ne - integer(psb_lpk_) :: nrglob - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: nrow, ncol, n_ne + integer(psb_lpk_) :: nrglob + character(len=20) :: name, ch_err info=psb_success_ name = 'amg_soc1_map_bld' @@ -108,8 +109,8 @@ subroutine amg_d_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() nrglob = desc_a%get_global_rows() @@ -334,7 +335,7 @@ subroutine amg_d_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in nlaggr(:) = 0 nlaggr(me+1) = naggr - call psb_sum(ictxt,nlaggr(1:np)) + call psb_sum(ctxt,nlaggr(1:np)) call acsr%free() diff --git a/amgprec/impl/aggregator/amg_d_soc2_map_bld.f90 b/amgprec/impl/aggregator/amg_d_soc2_map_bld.f90 index fc128f3d..9a92a58d 100644 --- a/amgprec/impl/aggregator/amg_d_soc2_map_bld.f90 +++ b/amgprec/impl/aggregator/amg_d_soc2_map_bld.f90 @@ -95,7 +95,8 @@ subroutine amg_d_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in real(psb_dpk_) :: cpling, tcl logical :: disjoint integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me integer(psb_ipk_) :: nrow, ncol, n_ne character(len=20) :: name, ch_err @@ -108,8 +109,8 @@ subroutine amg_d_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() nrglob = desc_a%get_global_rows() @@ -335,7 +336,7 @@ subroutine amg_d_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in nlaggr(:) = 0 nlaggr(me+1) = naggr - call psb_sum(ictxt,nlaggr(1:np)) + call psb_sum(ctxt,nlaggr(1:np)) call psb_erractionrestore(err_act) return diff --git a/amgprec/impl/aggregator/amg_d_symdec_aggregator_tprol.f90 b/amgprec/impl/aggregator/amg_d_symdec_aggregator_tprol.f90 index 8260adbe..4a4a1fbe 100644 --- a/amgprec/impl/aggregator/amg_d_symdec_aggregator_tprol.f90 +++ b/amgprec/impl/aggregator/amg_d_symdec_aggregator_tprol.f90 @@ -94,13 +94,14 @@ subroutine amg_d_symdec_aggregator_build_tprol(ag,parms,ag_data,& ! Local variables type(psb_dspmat_type) :: atmp, atrans - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: nr - integer(psb_lpk_) :: ntaggr - integer(psb_ipk_) :: debug_level, debug_unit - logical :: clean_zeros + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: nr + integer(psb_lpk_) :: ntaggr + integer(psb_ipk_) :: debug_level, debug_unit + logical :: clean_zeros name='amg_d_symdec_aggregator_tprol' call psb_erractionsave(err_act) @@ -110,8 +111,8 @@ subroutine amg_d_symdec_aggregator_build_tprol(ag,parms,ag_data,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(parms%ml_cycle,'Multilevel cycle',& & amg_mult_ml_,is_legal_ml_cycle) diff --git a/amgprec/impl/aggregator/amg_daggrmat_minnrg_bld.f90 b/amgprec/impl/aggregator/amg_daggrmat_minnrg_bld.f90 index e8838c6b..fb3efb52 100644 --- a/amgprec/impl/aggregator/amg_daggrmat_minnrg_bld.f90 +++ b/amgprec/impl/aggregator/amg_daggrmat_minnrg_bld.f90 @@ -125,8 +125,9 @@ subroutine amg_daggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& ! Local variables integer(psb_lpk_) :: nrow, nglob, ncol, ntaggr, nzac, ip, ndx,& & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF, nrt - integer(psb_ipk_) :: ictxt,np,me, icomm - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, icomm + character(len=20) :: name type(psb_ldspmat_type) :: la, af, ptilde, rtilde, atran, atp, atdatp type(psb_ldspmat_type) :: am3,am4, ap, adap,atmp,rada, ra, atmp2, dap, dadap, da type(psb_ldspmat_type) :: dat, datp, datdatp, atmp3, tmp_prol @@ -151,11 +152,10 @@ subroutine amg_daggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() + ctxt = desc_a%get_context() icomm = desc_a%get_mpic() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() @@ -246,8 +246,8 @@ subroutine amg_daggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& call csc_mat_col_prod(csc_dap,csc_dadap,omp,info) call csc_mat_col_prod(csc_dadap,csc_dadap,oden,info) - call psb_sum(ictxt,omp) - call psb_sum(ictxt,oden) + call psb_sum(ctxt,omp) + call psb_sum(ctxt,oden) ! !$ write(0,*) trim(name),' OMP :',omp ! !$ write(0,*) trim(name),' ODEN:',oden @@ -404,8 +404,8 @@ subroutine amg_daggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& call csc_mat_col_prod(csc_datp,csc_datdatp,omp,info) call csc_mat_col_prod(csc_datdatp,csc_datdatp,oden,info) - call psb_sum(ictxt,omp) - call psb_sum(ictxt,oden) + call psb_sum(ctxt,omp) + call psb_sum(ctxt,oden) ! !$ write(debug_unit,*) trim(name),' OMP_R :',omp diff --git a/amgprec/impl/aggregator/amg_daggrmat_nosmth_bld.f90 b/amgprec/impl/aggregator/amg_daggrmat_nosmth_bld.f90 index 8be8a25d..4adeea89 100644 --- a/amgprec/impl/aggregator/amg_daggrmat_nosmth_bld.f90 +++ b/amgprec/impl/aggregator/amg_daggrmat_nosmth_bld.f90 @@ -115,9 +115,10 @@ subroutine amg_daggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, np, me, icomm, minfo - character(len=20) :: name + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + character(len=20) :: name type(psb_ld_coo_sparse_mat) :: lcoo_prol type(psb_d_coo_sparse_mat) :: coo_prol, coo_restr type(psb_d_csr_sparse_mat) :: acsr @@ -134,9 +135,8 @@ subroutine amg_daggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& info = psb_err_internal_error_; goto 9999 end if - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() @@ -149,7 +149,7 @@ subroutine amg_daggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& call a%cp_to(acsr) call t_prol%mv_to(lcoo_prol) inaggr = naggr - call psb_cdall(ictxt,desc_ac,info,nl=inaggr) + call psb_cdall(ctxt,desc_ac,info,nl=inaggr) nzlp = lcoo_prol%get_nzeros() call desc_ac%indxmap%g2lip_ins(lcoo_prol%ja(1:nzlp),info) call lcoo_prol%set_ncols(desc_ac%get_local_cols()) diff --git a/amgprec/impl/aggregator/amg_daggrmat_smth_bld.f90 b/amgprec/impl/aggregator/amg_daggrmat_smth_bld.f90 index e486cc68..cb296e8d 100644 --- a/amgprec/impl/aggregator/amg_daggrmat_smth_bld.f90 +++ b/amgprec/impl/aggregator/amg_daggrmat_smth_bld.f90 @@ -125,7 +125,8 @@ subroutine amg_daggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& integer(psb_lpk_) :: nrow, nglob, ncol, ntaggr, ip, & & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF, nrw integer(psb_ipk_) :: inaggr, nzlp - integer(psb_ipk_) :: ictxt, np, me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me character(len=20) :: name type(psb_ld_coo_sparse_mat) :: tmpcoo type(psb_d_coo_sparse_mat) :: coo_prol, coo_restr @@ -149,9 +150,9 @@ subroutine amg_daggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() + ctxt = desc_a%get_context() - call psb_info(ictxt, me, np) + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() @@ -232,7 +233,7 @@ subroutine amg_daggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& allocate(arwsum(nrow)) call acsr%arwsum(arwsum) anorm = maxval(abs(adiag(1:nrow)*arwsum(1:nrow))) - call psb_amx(ictxt,anorm) + call psb_amx(ctxt,anorm) omega = 4.d0/(3.d0*anorm) parms%aggr_omega_val = omega @@ -258,7 +259,7 @@ subroutine amg_daggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& call t_prol%mv_to(tmpcoo) inaggr = naggr - call psb_cdall(ictxt,desc_ac,info,nl=inaggr) + call psb_cdall(ctxt,desc_ac,info,nl=inaggr) nzlp = tmpcoo%get_nzeros() call desc_ac%indxmap%g2lip_ins(tmpcoo%ja(1:nzlp),info) call tmpcoo%set_ncols(desc_ac%get_local_cols()) diff --git a/amgprec/impl/aggregator/amg_s_dec_aggregator_mat_asb.f90 b/amgprec/impl/aggregator/amg_s_dec_aggregator_mat_asb.f90 index 63076bb4..d675df78 100644 --- a/amgprec/impl/aggregator/amg_s_dec_aggregator_mat_asb.f90 +++ b/amgprec/impl/aggregator/amg_s_dec_aggregator_mat_asb.f90 @@ -97,7 +97,8 @@ subroutine amg_s_dec_aggregator_mat_asb(ag,parms,a,desc_a,& type(psb_desc_type), intent(inout) :: desc_ac integer(psb_ipk_), intent(out) :: info ! - integer(psb_ipk_) :: ictxt, np, me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me type(psb_ls_coo_sparse_mat) :: tmpcoo type(psb_lsspmat_type) :: tmp_ac integer(psb_ipk_) :: i_nr, i_nc, i_nl, nzl @@ -111,8 +112,8 @@ subroutine amg_s_dec_aggregator_mat_asb(ag,parms,a,desc_a,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) select case(parms%coarse_mat) @@ -158,7 +159,7 @@ subroutine amg_s_dec_aggregator_mat_asb(ag,parms,a,desc_a,& call tmp_ac%mv_to(tmpcoo) call ac%mv_from(tmpcoo) - call psb_cdall(ictxt,desc_ac,info,mg=ntaggr,repl=.true.) + call psb_cdall(ctxt,desc_ac,info,mg=ntaggr,repl=.true.) if (info == psb_success_) call psb_cdasb(desc_ac,info) if (info /= psb_success_) goto 9999 diff --git a/amgprec/impl/aggregator/amg_s_dec_aggregator_mat_bld.f90 b/amgprec/impl/aggregator/amg_s_dec_aggregator_mat_bld.f90 index b8cfb775..73c2c502 100644 --- a/amgprec/impl/aggregator/amg_s_dec_aggregator_mat_bld.f90 +++ b/amgprec/impl/aggregator/amg_s_dec_aggregator_mat_bld.f90 @@ -151,11 +151,12 @@ subroutine amg_s_dec_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,& integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_lpk_) :: nzl,ntaggr - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_lpk_) :: nzl,ntaggr + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: debug_level, debug_unit name='amg_s_dec_aggregator_mat_bld' call psb_erractionsave(err_act) @@ -165,8 +166,8 @@ subroutine amg_s_dec_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) ! ! Build the coarse-level matrix from the fine-level one, starting from diff --git a/amgprec/impl/aggregator/amg_s_dec_aggregator_tprol.f90 b/amgprec/impl/aggregator/amg_s_dec_aggregator_tprol.f90 index 2d4e164c..a5380c29 100644 --- a/amgprec/impl/aggregator/amg_s_dec_aggregator_tprol.f90 +++ b/amgprec/impl/aggregator/amg_s_dec_aggregator_tprol.f90 @@ -90,12 +90,13 @@ subroutine amg_s_dec_aggregator_build_tprol(ag,parms,ag_data,& integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_lpk_) :: ntaggr - integer(psb_ipk_) :: debug_level, debug_unit - logical :: clean_zeros + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_lpk_) :: ntaggr + integer(psb_ipk_) :: debug_level, debug_unit + logical :: clean_zeros name='amg_s_dec_aggregator_tprol' call psb_erractionsave(err_act) @@ -105,8 +106,8 @@ subroutine amg_s_dec_aggregator_build_tprol(ag,parms,ag_data,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(parms%ml_cycle,'Multilevel cycle',& & amg_mult_ml_,is_legal_ml_cycle) diff --git a/amgprec/impl/aggregator/amg_s_map_to_tprol.f90 b/amgprec/impl/aggregator/amg_s_map_to_tprol.f90 index fb353f76..8cc76026 100644 --- a/amgprec/impl/aggregator/amg_s_map_to_tprol.f90 +++ b/amgprec/impl/aggregator/amg_s_map_to_tprol.f90 @@ -95,9 +95,10 @@ subroutine amg_s_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) integer(psb_lpk_) :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m,naggrm1, naggrp1, ntaggr type(psb_ls_coo_sparse_mat) :: tmpcoo integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me - integer(psb_lpk_) :: nrow, ncol, n_ne - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_lpk_) :: nrow, ncol, n_ne + character(len=20) :: name, ch_err info=psb_success_ name = 'amg_map_to_tprol' @@ -108,8 +109,8 @@ subroutine amg_s_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() diff --git a/amgprec/impl/aggregator/amg_s_ptap_bld.f90 b/amgprec/impl/aggregator/amg_s_ptap_bld.f90 index a3dad635..4e7ef403 100644 --- a/amgprec/impl/aggregator/amg_s_ptap_bld.f90 +++ b/amgprec/impl/aggregator/amg_s_ptap_bld.f90 @@ -63,9 +63,9 @@ subroutine amg_s_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& ! Local variables integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx character(len=40) :: name - integer(psb_ipk_) :: ierr(5) type(psb_ls_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_s_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -81,9 +81,8 @@ subroutine amg_s_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() @@ -276,10 +275,10 @@ subroutine amg_s_ls_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& type(psb_desc_type), intent(inout), optional :: desc_ax ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo - character(len=40) :: name - integer(psb_ipk_) :: ierr(5) + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx + character(len=40) :: name type(psb_ls_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_s_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -295,9 +294,8 @@ subroutine amg_s_ls_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() @@ -494,9 +492,9 @@ subroutine amg_ls_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& ! Local variables integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx character(len=40) :: name - integer(psb_ipk_) :: ierr(5) type(psb_ls_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_ls_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -512,9 +510,8 @@ subroutine amg_ls_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() diff --git a/amgprec/impl/aggregator/amg_s_rap.f90 b/amgprec/impl/aggregator/amg_s_rap.f90 index 45cb019c..4ec96247 100644 --- a/amgprec/impl/aggregator/amg_s_rap.f90 +++ b/amgprec/impl/aggregator/amg_s_rap.f90 @@ -60,10 +60,10 @@ subroutine amg_s_rap(a_csr,desc_a,nlaggr,parms,ac,& integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo - character(len=40) :: name - integer(psb_ipk_) :: ierr(5) + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx + character(len=40) :: name type(psb_ls_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_s_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -78,9 +78,8 @@ subroutine amg_s_rap(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() diff --git a/amgprec/impl/aggregator/amg_s_soc1_map_bld.f90 b/amgprec/impl/aggregator/amg_s_soc1_map_bld.f90 index b7ed4123..c06f73ce 100644 --- a/amgprec/impl/aggregator/amg_s_soc1_map_bld.f90 +++ b/amgprec/impl/aggregator/amg_s_soc1_map_bld.f90 @@ -94,10 +94,11 @@ subroutine amg_s_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in real(psb_spk_) :: cpling, tcl logical :: disjoint integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: nrow, ncol, n_ne - integer(psb_lpk_) :: nrglob - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: nrow, ncol, n_ne + integer(psb_lpk_) :: nrglob + character(len=20) :: name, ch_err info=psb_success_ name = 'amg_soc1_map_bld' @@ -108,8 +109,8 @@ subroutine amg_s_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() nrglob = desc_a%get_global_rows() @@ -334,7 +335,7 @@ subroutine amg_s_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in nlaggr(:) = 0 nlaggr(me+1) = naggr - call psb_sum(ictxt,nlaggr(1:np)) + call psb_sum(ctxt,nlaggr(1:np)) call acsr%free() diff --git a/amgprec/impl/aggregator/amg_s_soc2_map_bld.f90 b/amgprec/impl/aggregator/amg_s_soc2_map_bld.f90 index 106efcb2..3dcc3541 100644 --- a/amgprec/impl/aggregator/amg_s_soc2_map_bld.f90 +++ b/amgprec/impl/aggregator/amg_s_soc2_map_bld.f90 @@ -95,7 +95,8 @@ subroutine amg_s_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in real(psb_spk_) :: cpling, tcl logical :: disjoint integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me integer(psb_ipk_) :: nrow, ncol, n_ne character(len=20) :: name, ch_err @@ -108,8 +109,8 @@ subroutine amg_s_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() nrglob = desc_a%get_global_rows() @@ -335,7 +336,7 @@ subroutine amg_s_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in nlaggr(:) = 0 nlaggr(me+1) = naggr - call psb_sum(ictxt,nlaggr(1:np)) + call psb_sum(ctxt,nlaggr(1:np)) call psb_erractionrestore(err_act) return diff --git a/amgprec/impl/aggregator/amg_s_symdec_aggregator_tprol.f90 b/amgprec/impl/aggregator/amg_s_symdec_aggregator_tprol.f90 index 89f92101..9f63c979 100644 --- a/amgprec/impl/aggregator/amg_s_symdec_aggregator_tprol.f90 +++ b/amgprec/impl/aggregator/amg_s_symdec_aggregator_tprol.f90 @@ -94,13 +94,14 @@ subroutine amg_s_symdec_aggregator_build_tprol(ag,parms,ag_data,& ! Local variables type(psb_sspmat_type) :: atmp, atrans - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: nr - integer(psb_lpk_) :: ntaggr - integer(psb_ipk_) :: debug_level, debug_unit - logical :: clean_zeros + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: nr + integer(psb_lpk_) :: ntaggr + integer(psb_ipk_) :: debug_level, debug_unit + logical :: clean_zeros name='amg_s_symdec_aggregator_tprol' call psb_erractionsave(err_act) @@ -110,8 +111,8 @@ subroutine amg_s_symdec_aggregator_build_tprol(ag,parms,ag_data,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(parms%ml_cycle,'Multilevel cycle',& & amg_mult_ml_,is_legal_ml_cycle) diff --git a/amgprec/impl/aggregator/amg_saggrmat_minnrg_bld.f90 b/amgprec/impl/aggregator/amg_saggrmat_minnrg_bld.f90 index aae81c4e..552279c8 100644 --- a/amgprec/impl/aggregator/amg_saggrmat_minnrg_bld.f90 +++ b/amgprec/impl/aggregator/amg_saggrmat_minnrg_bld.f90 @@ -125,8 +125,9 @@ subroutine amg_saggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& ! Local variables integer(psb_lpk_) :: nrow, nglob, ncol, ntaggr, nzac, ip, ndx,& & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF, nrt - integer(psb_ipk_) :: ictxt,np,me, icomm - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, icomm + character(len=20) :: name type(psb_lsspmat_type) :: la, af, ptilde, rtilde, atran, atp, atdatp type(psb_lsspmat_type) :: am3,am4, ap, adap,atmp,rada, ra, atmp2, dap, dadap, da type(psb_lsspmat_type) :: dat, datp, datdatp, atmp3, tmp_prol @@ -151,11 +152,10 @@ subroutine amg_saggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() + ctxt = desc_a%get_context() icomm = desc_a%get_mpic() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() @@ -246,8 +246,8 @@ subroutine amg_saggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& call csc_mat_col_prod(csc_dap,csc_dadap,omp,info) call csc_mat_col_prod(csc_dadap,csc_dadap,oden,info) - call psb_sum(ictxt,omp) - call psb_sum(ictxt,oden) + call psb_sum(ctxt,omp) + call psb_sum(ctxt,oden) ! !$ write(0,*) trim(name),' OMP :',omp ! !$ write(0,*) trim(name),' ODEN:',oden @@ -404,8 +404,8 @@ subroutine amg_saggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& call csc_mat_col_prod(csc_datp,csc_datdatp,omp,info) call csc_mat_col_prod(csc_datdatp,csc_datdatp,oden,info) - call psb_sum(ictxt,omp) - call psb_sum(ictxt,oden) + call psb_sum(ctxt,omp) + call psb_sum(ctxt,oden) ! !$ write(debug_unit,*) trim(name),' OMP_R :',omp diff --git a/amgprec/impl/aggregator/amg_saggrmat_nosmth_bld.f90 b/amgprec/impl/aggregator/amg_saggrmat_nosmth_bld.f90 index 068b1b4c..5cec849d 100644 --- a/amgprec/impl/aggregator/amg_saggrmat_nosmth_bld.f90 +++ b/amgprec/impl/aggregator/amg_saggrmat_nosmth_bld.f90 @@ -115,9 +115,10 @@ subroutine amg_saggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, np, me, icomm, minfo - character(len=20) :: name + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + character(len=20) :: name type(psb_ls_coo_sparse_mat) :: lcoo_prol type(psb_s_coo_sparse_mat) :: coo_prol, coo_restr type(psb_s_csr_sparse_mat) :: acsr @@ -134,9 +135,8 @@ subroutine amg_saggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& info = psb_err_internal_error_; goto 9999 end if - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() @@ -149,7 +149,7 @@ subroutine amg_saggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& call a%cp_to(acsr) call t_prol%mv_to(lcoo_prol) inaggr = naggr - call psb_cdall(ictxt,desc_ac,info,nl=inaggr) + call psb_cdall(ctxt,desc_ac,info,nl=inaggr) nzlp = lcoo_prol%get_nzeros() call desc_ac%indxmap%g2lip_ins(lcoo_prol%ja(1:nzlp),info) call lcoo_prol%set_ncols(desc_ac%get_local_cols()) diff --git a/amgprec/impl/aggregator/amg_saggrmat_smth_bld.f90 b/amgprec/impl/aggregator/amg_saggrmat_smth_bld.f90 index e74ba228..7de4a2a8 100644 --- a/amgprec/impl/aggregator/amg_saggrmat_smth_bld.f90 +++ b/amgprec/impl/aggregator/amg_saggrmat_smth_bld.f90 @@ -125,7 +125,8 @@ subroutine amg_saggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& integer(psb_lpk_) :: nrow, nglob, ncol, ntaggr, ip, & & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF, nrw integer(psb_ipk_) :: inaggr, nzlp - integer(psb_ipk_) :: ictxt, np, me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me character(len=20) :: name type(psb_ls_coo_sparse_mat) :: tmpcoo type(psb_s_coo_sparse_mat) :: coo_prol, coo_restr @@ -149,9 +150,9 @@ subroutine amg_saggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() + ctxt = desc_a%get_context() - call psb_info(ictxt, me, np) + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() @@ -232,7 +233,7 @@ subroutine amg_saggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& allocate(arwsum(nrow)) call acsr%arwsum(arwsum) anorm = maxval(abs(adiag(1:nrow)*arwsum(1:nrow))) - call psb_amx(ictxt,anorm) + call psb_amx(ctxt,anorm) omega = 4.d0/(3.d0*anorm) parms%aggr_omega_val = omega @@ -258,7 +259,7 @@ subroutine amg_saggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& call t_prol%mv_to(tmpcoo) inaggr = naggr - call psb_cdall(ictxt,desc_ac,info,nl=inaggr) + call psb_cdall(ctxt,desc_ac,info,nl=inaggr) nzlp = tmpcoo%get_nzeros() call desc_ac%indxmap%g2lip_ins(tmpcoo%ja(1:nzlp),info) call tmpcoo%set_ncols(desc_ac%get_local_cols()) diff --git a/amgprec/impl/aggregator/amg_z_dec_aggregator_mat_asb.f90 b/amgprec/impl/aggregator/amg_z_dec_aggregator_mat_asb.f90 index 1ab87ca9..a3e44803 100644 --- a/amgprec/impl/aggregator/amg_z_dec_aggregator_mat_asb.f90 +++ b/amgprec/impl/aggregator/amg_z_dec_aggregator_mat_asb.f90 @@ -97,7 +97,8 @@ subroutine amg_z_dec_aggregator_mat_asb(ag,parms,a,desc_a,& type(psb_desc_type), intent(inout) :: desc_ac integer(psb_ipk_), intent(out) :: info ! - integer(psb_ipk_) :: ictxt, np, me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me type(psb_lz_coo_sparse_mat) :: tmpcoo type(psb_lzspmat_type) :: tmp_ac integer(psb_ipk_) :: i_nr, i_nc, i_nl, nzl @@ -111,8 +112,8 @@ subroutine amg_z_dec_aggregator_mat_asb(ag,parms,a,desc_a,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) select case(parms%coarse_mat) @@ -158,7 +159,7 @@ subroutine amg_z_dec_aggregator_mat_asb(ag,parms,a,desc_a,& call tmp_ac%mv_to(tmpcoo) call ac%mv_from(tmpcoo) - call psb_cdall(ictxt,desc_ac,info,mg=ntaggr,repl=.true.) + call psb_cdall(ctxt,desc_ac,info,mg=ntaggr,repl=.true.) if (info == psb_success_) call psb_cdasb(desc_ac,info) if (info /= psb_success_) goto 9999 diff --git a/amgprec/impl/aggregator/amg_z_dec_aggregator_mat_bld.f90 b/amgprec/impl/aggregator/amg_z_dec_aggregator_mat_bld.f90 index 13aba6d6..06a6bdae 100644 --- a/amgprec/impl/aggregator/amg_z_dec_aggregator_mat_bld.f90 +++ b/amgprec/impl/aggregator/amg_z_dec_aggregator_mat_bld.f90 @@ -151,11 +151,12 @@ subroutine amg_z_dec_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,& integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_lpk_) :: nzl,ntaggr - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_lpk_) :: nzl,ntaggr + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: debug_level, debug_unit name='amg_z_dec_aggregator_mat_bld' call psb_erractionsave(err_act) @@ -165,8 +166,8 @@ subroutine amg_z_dec_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) ! ! Build the coarse-level matrix from the fine-level one, starting from diff --git a/amgprec/impl/aggregator/amg_z_dec_aggregator_tprol.f90 b/amgprec/impl/aggregator/amg_z_dec_aggregator_tprol.f90 index 85bb6715..1ee90201 100644 --- a/amgprec/impl/aggregator/amg_z_dec_aggregator_tprol.f90 +++ b/amgprec/impl/aggregator/amg_z_dec_aggregator_tprol.f90 @@ -90,12 +90,13 @@ subroutine amg_z_dec_aggregator_build_tprol(ag,parms,ag_data,& integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_lpk_) :: ntaggr - integer(psb_ipk_) :: debug_level, debug_unit - logical :: clean_zeros + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_lpk_) :: ntaggr + integer(psb_ipk_) :: debug_level, debug_unit + logical :: clean_zeros name='amg_z_dec_aggregator_tprol' call psb_erractionsave(err_act) @@ -105,8 +106,8 @@ subroutine amg_z_dec_aggregator_build_tprol(ag,parms,ag_data,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(parms%ml_cycle,'Multilevel cycle',& & amg_mult_ml_,is_legal_ml_cycle) diff --git a/amgprec/impl/aggregator/amg_z_map_to_tprol.f90 b/amgprec/impl/aggregator/amg_z_map_to_tprol.f90 index 14feafc0..c9bce1e6 100644 --- a/amgprec/impl/aggregator/amg_z_map_to_tprol.f90 +++ b/amgprec/impl/aggregator/amg_z_map_to_tprol.f90 @@ -95,9 +95,10 @@ subroutine amg_z_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) integer(psb_lpk_) :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m,naggrm1, naggrp1, ntaggr type(psb_lz_coo_sparse_mat) :: tmpcoo integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me - integer(psb_lpk_) :: nrow, ncol, n_ne - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_lpk_) :: nrow, ncol, n_ne + character(len=20) :: name, ch_err info=psb_success_ name = 'amg_map_to_tprol' @@ -108,8 +109,8 @@ subroutine amg_z_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() diff --git a/amgprec/impl/aggregator/amg_z_ptap_bld.f90 b/amgprec/impl/aggregator/amg_z_ptap_bld.f90 index 54696ecf..7ecbec32 100644 --- a/amgprec/impl/aggregator/amg_z_ptap_bld.f90 +++ b/amgprec/impl/aggregator/amg_z_ptap_bld.f90 @@ -63,9 +63,9 @@ subroutine amg_z_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& ! Local variables integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx character(len=40) :: name - integer(psb_ipk_) :: ierr(5) type(psb_lz_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_z_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -81,9 +81,8 @@ subroutine amg_z_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() @@ -276,10 +275,10 @@ subroutine amg_z_lz_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& type(psb_desc_type), intent(inout), optional :: desc_ax ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo - character(len=40) :: name - integer(psb_ipk_) :: ierr(5) + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx + character(len=40) :: name type(psb_lz_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_z_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -295,9 +294,8 @@ subroutine amg_z_lz_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() @@ -494,9 +492,9 @@ subroutine amg_lz_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& ! Local variables integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx character(len=40) :: name - integer(psb_ipk_) :: ierr(5) type(psb_lz_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_lz_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -512,9 +510,8 @@ subroutine amg_lz_ptap_bld(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() diff --git a/amgprec/impl/aggregator/amg_z_rap.f90 b/amgprec/impl/aggregator/amg_z_rap.f90 index 2ddb2467..132b29f8 100644 --- a/amgprec/impl/aggregator/amg_z_rap.f90 +++ b/amgprec/impl/aggregator/amg_z_rap.f90 @@ -60,10 +60,10 @@ subroutine amg_z_rap(a_csr,desc_a,nlaggr,parms,ac,& integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo - character(len=40) :: name - integer(psb_ipk_) :: ierr(5) + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, ndx + character(len=40) :: name type(psb_lz_coo_sparse_mat) :: ac_coo, tmpcoo type(psb_z_csr_sparse_mat) :: acsr3, csr_prol, ac_csr, csr_restr integer(psb_ipk_) :: debug_level, debug_unit, naggr @@ -78,9 +78,8 @@ subroutine amg_z_rap(a_csr,desc_a,nlaggr,parms,ac,& call psb_erractionsave(err_act) - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() diff --git a/amgprec/impl/aggregator/amg_z_soc1_map_bld.f90 b/amgprec/impl/aggregator/amg_z_soc1_map_bld.f90 index abb4eae1..cbf739a2 100644 --- a/amgprec/impl/aggregator/amg_z_soc1_map_bld.f90 +++ b/amgprec/impl/aggregator/amg_z_soc1_map_bld.f90 @@ -94,10 +94,11 @@ subroutine amg_z_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in real(psb_dpk_) :: cpling, tcl logical :: disjoint integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: nrow, ncol, n_ne - integer(psb_lpk_) :: nrglob - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: nrow, ncol, n_ne + integer(psb_lpk_) :: nrglob + character(len=20) :: name, ch_err info=psb_success_ name = 'amg_soc1_map_bld' @@ -108,8 +109,8 @@ subroutine amg_z_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() nrglob = desc_a%get_global_rows() @@ -334,7 +335,7 @@ subroutine amg_z_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in nlaggr(:) = 0 nlaggr(me+1) = naggr - call psb_sum(ictxt,nlaggr(1:np)) + call psb_sum(ctxt,nlaggr(1:np)) call acsr%free() diff --git a/amgprec/impl/aggregator/amg_z_soc2_map_bld.f90 b/amgprec/impl/aggregator/amg_z_soc2_map_bld.f90 index ff469d51..768235fc 100644 --- a/amgprec/impl/aggregator/amg_z_soc2_map_bld.f90 +++ b/amgprec/impl/aggregator/amg_z_soc2_map_bld.f90 @@ -95,7 +95,8 @@ subroutine amg_z_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in real(psb_dpk_) :: cpling, tcl logical :: disjoint integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me integer(psb_ipk_) :: nrow, ncol, n_ne character(len=20) :: name, ch_err @@ -108,8 +109,8 @@ subroutine amg_z_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() nrglob = desc_a%get_global_rows() @@ -335,7 +336,7 @@ subroutine amg_z_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in nlaggr(:) = 0 nlaggr(me+1) = naggr - call psb_sum(ictxt,nlaggr(1:np)) + call psb_sum(ctxt,nlaggr(1:np)) call psb_erractionrestore(err_act) return diff --git a/amgprec/impl/aggregator/amg_z_symdec_aggregator_tprol.f90 b/amgprec/impl/aggregator/amg_z_symdec_aggregator_tprol.f90 index 900e53bc..5eb39a98 100644 --- a/amgprec/impl/aggregator/amg_z_symdec_aggregator_tprol.f90 +++ b/amgprec/impl/aggregator/amg_z_symdec_aggregator_tprol.f90 @@ -94,13 +94,14 @@ subroutine amg_z_symdec_aggregator_build_tprol(ag,parms,ag_data,& ! Local variables type(psb_zspmat_type) :: atmp, atrans - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: nr - integer(psb_lpk_) :: ntaggr - integer(psb_ipk_) :: debug_level, debug_unit - logical :: clean_zeros + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: nr + integer(psb_lpk_) :: ntaggr + integer(psb_ipk_) :: debug_level, debug_unit + logical :: clean_zeros name='amg_z_symdec_aggregator_tprol' call psb_erractionsave(err_act) @@ -110,8 +111,8 @@ subroutine amg_z_symdec_aggregator_build_tprol(ag,parms,ag_data,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(parms%ml_cycle,'Multilevel cycle',& & amg_mult_ml_,is_legal_ml_cycle) diff --git a/amgprec/impl/aggregator/amg_zaggrmat_minnrg_bld.f90 b/amgprec/impl/aggregator/amg_zaggrmat_minnrg_bld.f90 index 04c6a372..d903c695 100644 --- a/amgprec/impl/aggregator/amg_zaggrmat_minnrg_bld.f90 +++ b/amgprec/impl/aggregator/amg_zaggrmat_minnrg_bld.f90 @@ -125,8 +125,9 @@ subroutine amg_zaggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& ! Local variables integer(psb_lpk_) :: nrow, nglob, ncol, ntaggr, nzac, ip, ndx,& & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF, nrt - integer(psb_ipk_) :: ictxt,np,me, icomm - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, icomm + character(len=20) :: name type(psb_lzspmat_type) :: la, af, ptilde, rtilde, atran, atp, atdatp type(psb_lzspmat_type) :: am3,am4, ap, adap,atmp,rada, ra, atmp2, dap, dadap, da type(psb_lzspmat_type) :: dat, datp, datdatp, atmp3, tmp_prol @@ -151,11 +152,10 @@ subroutine amg_zaggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() + ctxt = desc_a%get_context() icomm = desc_a%get_mpic() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() @@ -246,8 +246,8 @@ subroutine amg_zaggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& call csc_mat_col_prod(csc_dap,csc_dadap,omp,info) call csc_mat_col_prod(csc_dadap,csc_dadap,oden,info) - call psb_sum(ictxt,omp) - call psb_sum(ictxt,oden) + call psb_sum(ctxt,omp) + call psb_sum(ctxt,oden) ! !$ write(0,*) trim(name),' OMP :',omp ! !$ write(0,*) trim(name),' ODEN:',oden @@ -404,8 +404,8 @@ subroutine amg_zaggrmat_minnrg_bld(a,desc_a,ilaggr,nlaggr,parms,& call csc_mat_col_prod(csc_datp,csc_datdatp,omp,info) call csc_mat_col_prod(csc_datdatp,csc_datdatp,oden,info) - call psb_sum(ictxt,omp) - call psb_sum(ictxt,oden) + call psb_sum(ctxt,omp) + call psb_sum(ctxt,oden) ! !$ write(debug_unit,*) trim(name),' OMP_R :',omp diff --git a/amgprec/impl/aggregator/amg_zaggrmat_nosmth_bld.f90 b/amgprec/impl/aggregator/amg_zaggrmat_nosmth_bld.f90 index 271e1dd7..e71ef55e 100644 --- a/amgprec/impl/aggregator/amg_zaggrmat_nosmth_bld.f90 +++ b/amgprec/impl/aggregator/amg_zaggrmat_nosmth_bld.f90 @@ -115,9 +115,10 @@ subroutine amg_zaggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, np, me, icomm, minfo - character(len=20) :: name + integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + character(len=20) :: name type(psb_lz_coo_sparse_mat) :: lcoo_prol type(psb_z_coo_sparse_mat) :: coo_prol, coo_restr type(psb_z_csr_sparse_mat) :: acsr @@ -134,9 +135,8 @@ subroutine amg_zaggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& info = psb_err_internal_error_; goto 9999 end if - ictxt = desc_a%get_context() - icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() @@ -149,7 +149,7 @@ subroutine amg_zaggrmat_nosmth_bld(a,desc_a,ilaggr,nlaggr,parms,& call a%cp_to(acsr) call t_prol%mv_to(lcoo_prol) inaggr = naggr - call psb_cdall(ictxt,desc_ac,info,nl=inaggr) + call psb_cdall(ctxt,desc_ac,info,nl=inaggr) nzlp = lcoo_prol%get_nzeros() call desc_ac%indxmap%g2lip_ins(lcoo_prol%ja(1:nzlp),info) call lcoo_prol%set_ncols(desc_ac%get_local_cols()) diff --git a/amgprec/impl/aggregator/amg_zaggrmat_smth_bld.f90 b/amgprec/impl/aggregator/amg_zaggrmat_smth_bld.f90 index 3cfc65fe..615ab59a 100644 --- a/amgprec/impl/aggregator/amg_zaggrmat_smth_bld.f90 +++ b/amgprec/impl/aggregator/amg_zaggrmat_smth_bld.f90 @@ -125,7 +125,8 @@ subroutine amg_zaggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& integer(psb_lpk_) :: nrow, nglob, ncol, ntaggr, ip, & & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF, nrw integer(psb_ipk_) :: inaggr, nzlp - integer(psb_ipk_) :: ictxt, np, me + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me character(len=20) :: name type(psb_lz_coo_sparse_mat) :: tmpcoo type(psb_z_coo_sparse_mat) :: coo_prol, coo_restr @@ -149,9 +150,9 @@ subroutine amg_zaggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() + ctxt = desc_a%get_context() - call psb_info(ictxt, me, np) + call psb_info(ctxt, me, np) nglob = desc_a%get_global_rows() nrow = desc_a%get_local_rows() @@ -232,7 +233,7 @@ subroutine amg_zaggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& allocate(arwsum(nrow)) call acsr%arwsum(arwsum) anorm = maxval(abs(adiag(1:nrow)*arwsum(1:nrow))) - call psb_amx(ictxt,anorm) + call psb_amx(ctxt,anorm) omega = 4.d0/(3.d0*anorm) parms%aggr_omega_val = omega @@ -258,7 +259,7 @@ subroutine amg_zaggrmat_smth_bld(a,desc_a,ilaggr,nlaggr,parms,& call t_prol%mv_to(tmpcoo) inaggr = naggr - call psb_cdall(ictxt,desc_ac,info,nl=inaggr) + call psb_cdall(ctxt,desc_ac,info,nl=inaggr) nzlp = tmpcoo%get_nzeros() call desc_ac%indxmap%g2lip_ins(tmpcoo%ja(1:nzlp),info) call tmpcoo%set_ncols(desc_ac%get_local_cols()) diff --git a/amgprec/impl/amg_c_extprol_bld.F90 b/amgprec/impl/amg_c_extprol_bld.F90 index f544faee..0f73e5ee 100644 --- a/amgprec/impl/amg_c_extprol_bld.F90 +++ b/amgprec/impl/amg_c_extprol_bld.F90 @@ -94,10 +94,11 @@ subroutine amg_c_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) ! !$ character, intent(in), optional :: upd ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs - integer(psb_ipk_) :: nprolv, nrestrv - real(psb_spk_) :: mnaggratio + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me,np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs + integer(psb_ipk_) :: nprolv, nrestrv + real(psb_spk_) :: mnaggratio integer(psb_ipk_) :: ipv(amg_ifpsz_), val class(amg_c_base_smoother_type), allocatable :: coarse_sm, base_sm, med_sm type(amg_sml_parms) :: baseparms, medparms, coarseparms @@ -120,9 +121,9 @@ subroutine amg_c_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) name = 'amg_c_extprol_bld' info = psb_success_ int_err(1) = 0 - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - p%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + p%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' @@ -166,12 +167,12 @@ subroutine amg_c_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) iszv = size(p%precv) nprolv = size(prolv) nrestrv = size(restrv) - call psb_bcast(ictxt,iszv) - call psb_bcast(ictxt,casize) - call psb_bcast(ictxt,mxplevs) - call psb_bcast(ictxt,mnaggratio) - call psb_bcast(ictxt,nprolv) - call psb_bcast(ictxt,nrestrv) + call psb_bcast(ctxt,iszv) + call psb_bcast(ctxt,casize) + call psb_bcast(ctxt,mxplevs) + call psb_bcast(ctxt,mnaggratio) + call psb_bcast(ctxt,nprolv) + call psb_bcast(ctxt,nrestrv) if (casize /= p%ag_data%min_coarse_size) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent min_coarse_size') @@ -313,7 +314,7 @@ subroutine amg_c_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) if (all(p%precv(i)%map%naggr == p%precv(i-1)%map%naggr)) then newsz=i-1 end if - call psb_bcast(ictxt,newsz) + call psb_bcast(ctxt,newsz) if (newsz > 0) exit array_build_loop end if end do array_build_loop @@ -354,9 +355,10 @@ contains integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me, ncol - integer(psb_ipk_) :: err_act,ntaggr,nzl + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_mpk_) :: np, me, ncol + integer(psb_ipk_) :: err_act,ntaggr,nzl integer(psb_ipk_), allocatable :: ilaggr(:), nlaggr(:) type(psb_cspmat_type) :: ac, am2, am3, am4 type(psb_c_coo_sparse_mat) :: acoo, bcoo @@ -369,8 +371,8 @@ contains info = psb_err_internal_error_; goto 9999 end if info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) #if defined(LPK8) info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Need fix for LPK8') @@ -391,7 +393,7 @@ contains call psb_errpush(info,name,a_err='Inconsistent restr/prol sizes') goto 9999 end if - call psb_sum(ictxt,nlaggr) + call psb_sum(ctxt,nlaggr) ntaggr = sum(nlaggr) ncol = desc_a%get_local_cols() if (debug) write(0,*)me,' Sizes:',op_restr%get_nrows(),op_restr%get_ncols(),& @@ -432,7 +434,7 @@ contains call ac%mv_to(bcoo) nzl = bcoo%get_nzeros() - if (info == psb_success_) call psb_cdall(ictxt,p%desc_ac,info,nl=nlaggr(me+1)) + if (info == psb_success_) call psb_cdall(ctxt,p%desc_ac,info,nl=nlaggr(me+1)) if (info == psb_success_) call psb_cdins(nzl,bcoo%ia,bcoo%ja,p%desc_ac,info) if (info == psb_success_) call psb_cdasb(p%desc_ac,info) if (info == psb_success_) call psb_glob_to_loc(bcoo%ia(1:nzl),p%desc_ac,info,iact='I') @@ -491,7 +493,7 @@ contains case(amg_repl_mat_) ! ! - call psb_cdall(ictxt,p%desc_ac,info,mg=ntaggr,repl=.true.) + call psb_cdall(ctxt,p%desc_ac,info,mg=ntaggr,repl=.true.) if (info == psb_success_) call psb_cdasb(p%desc_ac,info) if (info == psb_success_) & & call psb_gather(p%ac,ac,p%desc_ac,info,dupl=psb_dupl_add_,keeploc=.false.) diff --git a/amgprec/impl/amg_c_hierarchy_bld.f90 b/amgprec/impl/amg_c_hierarchy_bld.f90 index 69f7e70a..c9c57560 100644 --- a/amgprec/impl/amg_c_hierarchy_bld.f90 +++ b/amgprec/impl/amg_c_hierarchy_bld.f90 @@ -78,8 +78,9 @@ subroutine amg_c_hierarchy_bld(a,desc_a,prec,info) integer(psb_ipk_), intent(out) :: info ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me,np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& & nplevs, mxplevs integer(psb_lpk_) :: iaggsize, casize real(psb_spk_) :: mnaggratio, sizeratio, athresh, aomega @@ -106,9 +107,9 @@ subroutine amg_c_hierarchy_bld(a,desc_a,prec,info) name = 'amg_c_hierarchy_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' @@ -133,10 +134,10 @@ subroutine amg_c_hierarchy_bld(a,desc_a,prec,info) mnaggratio = prec%ag_data%min_cr_ratio casize = prec%ag_data%min_coarse_size iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) - call psb_bcast(ictxt,casize) - call psb_bcast(ictxt,mxplevs) - call psb_bcast(ictxt,mnaggratio) + call psb_bcast(ctxt,iszv) + call psb_bcast(ctxt,casize) + call psb_bcast(ctxt,mxplevs) + call psb_bcast(ctxt,mnaggratio) if (casize /= prec%ag_data%min_coarse_size) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent min_coarse_size') @@ -200,7 +201,7 @@ subroutine amg_c_hierarchy_bld(a,desc_a,prec,info) casize = int((sone*casize)**(sone/(sone*3)),psb_lpk_) casize = max(casize,lone) casize = casize*40_psb_lpk_ - call psb_bcast(ictxt,casize) + call psb_bcast(ctxt,casize) if (casize > huge(prec%ag_data%min_coarse_size)) then ! ! computed coarse size does not fit in IPK_. @@ -285,7 +286,7 @@ subroutine amg_c_hierarchy_bld(a,desc_a,prec,info) ! Check on the iprcparm contents: they should be the same ! on all processes. ! - call psb_bcast(ictxt,prec%precv(i)%parms) + call psb_bcast(ctxt,prec%precv(i)%parms) ! ! Sanity checks on the parameters @@ -367,7 +368,7 @@ subroutine amg_c_hierarchy_bld(a,desc_a,prec,info) end if end if end if - call psb_bcast(ictxt,newsz) + call psb_bcast(ctxt,newsz) if (newsz > 0) then ! diff --git a/amgprec/impl/amg_c_hierarchy_rebld.f90 b/amgprec/impl/amg_c_hierarchy_rebld.f90 index f4acba27..71e4cf8b 100644 --- a/amgprec/impl/amg_c_hierarchy_rebld.f90 +++ b/amgprec/impl/amg_c_hierarchy_rebld.f90 @@ -78,8 +78,9 @@ subroutine amg_c_hierarchy_rebld(a,desc_a,prec,info) integer(psb_ipk_), intent(out) :: info ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& & nplevs, mxplevs integer(psb_lpk_) :: iaggsize, casize real(psb_spk_) :: mnaggratio, sizeratio, athresh, aomega @@ -105,9 +106,9 @@ subroutine amg_c_hierarchy_rebld(a,desc_a,prec,info) name = 'amg_hierarchy_rebld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' diff --git a/amgprec/impl/amg_c_smoothers_bld.f90 b/amgprec/impl/amg_c_smoothers_bld.f90 index 6104e312..5dffeec6 100644 --- a/amgprec/impl/amg_c_smoothers_bld.f90 +++ b/amgprec/impl/amg_c_smoothers_bld.f90 @@ -96,12 +96,13 @@ subroutine amg_c_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, nplevs, mxplevs + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, nplevs, mxplevs real(psb_spk_) :: mnaggratio - integer(psb_ipk_) :: coarse_solve_id - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + integer(psb_ipk_) :: coarse_solve_id + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err info=psb_success_ err=0 @@ -114,8 +115,8 @@ subroutine amg_c_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) name = 'amg_c_smoothers_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& @@ -132,7 +133,7 @@ subroutine amg_c_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) ! Check to ensure all procs have the same ! iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) + call psb_bcast(ctxt,iszv) if (iszv /= size(prec%precv)) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent size of precv') diff --git a/amgprec/impl/amg_cfile_prec_descr.f90 b/amgprec/impl/amg_cfile_prec_descr.f90 index 04082dfa..a087584d 100644 --- a/amgprec/impl/amg_cfile_prec_descr.f90 +++ b/amgprec/impl/amg_cfile_prec_descr.f90 @@ -71,9 +71,10 @@ subroutine amg_cfile_prec_descr(prec,iout,root) integer(psb_ipk_), intent(in), optional :: root ! Local variables - integer(psb_ipk_) :: ilev, nlev, ilmin, info, nswps - integer(psb_ipk_) :: ictxt, me, np - logical :: is_symgs + integer(psb_ipk_) :: ilev, nlev, ilmin, info, nswps + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + logical :: is_symgs character(len=20), parameter :: name='amg_file_prec_descr' integer(psb_ipk_) :: iout_ integer(psb_ipk_) :: root_ @@ -86,11 +87,11 @@ subroutine amg_cfile_prec_descr(prec,iout,root) end if if (iout_ < 0) iout_ = psb_out_unit - ictxt = prec%ictxt + ctxt = prec%ctxt if (allocated(prec%precv)) then - call psb_info(ictxt,me,np) + call psb_info(ctxt,me,np) if (present(root)) then root_ = root else diff --git a/amgprec/impl/amg_cmlprec_aply.f90 b/amgprec/impl/amg_cmlprec_aply.f90 index 8931d7db..3e3b6b75 100644 --- a/amgprec/impl/amg_cmlprec_aply.f90 +++ b/amgprec/impl/amg_cmlprec_aply.f90 @@ -222,11 +222,12 @@ subroutine amg_cmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, nc2l, level, isweep, err_act - character(len=20) :: name - character :: trans_ + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, nc2l, level, isweep, err_act + character(len=20) :: name + character :: trans_ complex(psb_spk_) :: beta_ logical :: do_alloc_wrk type(amg_cmlprec_wrk_type), allocatable, target :: mlprec_wrk(:) @@ -237,8 +238,8 @@ subroutine amg_cmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),& @@ -365,12 +366,13 @@ contains type(psb_c_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -385,8 +387,8 @@ contains & a_err='wrong call level to inner_ml') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' Start inner_ml_aply at level ',level, info @@ -450,12 +452,13 @@ contains type(psb_c_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act, k - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act, k + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -470,8 +473,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_add at level ',level @@ -578,12 +581,13 @@ contains type(psb_c_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name name = 'inner_inner_mult' info = psb_success_ @@ -596,8 +600,8 @@ contains & a_err='wrong call level to inner_mult') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_mult at level ',level @@ -802,12 +806,13 @@ contains type(psb_c_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -822,8 +827,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,name,' start at level ',level @@ -1166,11 +1171,12 @@ subroutine amg_cmlprec_aply(alpha,p,x,beta,y,desc_data,trans,work,info) integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: debug_level, debug_unit, nlev,nc2l,nr2l,level - character(len=20) :: name - character :: trans_ + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: debug_level, debug_unit, nlev,nc2l,nr2l,level + character(len=20) :: name + character :: trans_ type amg_mlwrk_type complex(psb_spk_), allocatable :: tx(:), ty(:), x2l(:), y2l(:) end type amg_mlwrk_type @@ -1182,8 +1188,8 @@ subroutine amg_cmlprec_aply(alpha,p,x,beta,y,desc_data,trans,work,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),& @@ -1285,12 +1291,13 @@ contains type(psb_c_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1305,8 +1312,8 @@ contains & a_err='wrong call level to inner_ml') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_ml_aply at level ',level @@ -1368,12 +1375,13 @@ contains type(psb_c_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1388,8 +1396,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_add at level ',level @@ -1472,12 +1480,13 @@ contains type(psb_c_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1492,8 +1501,8 @@ contains & a_err='wrong call level to inner_mult') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_mult at level ',level diff --git a/amgprec/impl/amg_cmlprec_bld.f90 b/amgprec/impl/amg_cmlprec_bld.f90 index f9df1a8c..0d8716af 100644 --- a/amgprec/impl/amg_cmlprec_bld.f90 +++ b/amgprec/impl/amg_cmlprec_bld.f90 @@ -94,12 +94,13 @@ subroutine amg_cmlprec_bld(a,desc_a,p,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs - real(psb_spk_) :: mnaggratio - integer(psb_ipk_) :: ipv(amg_ifpsz_), val - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs + real(psb_spk_) :: mnaggratio + integer(psb_ipk_) :: ipv(amg_ifpsz_), val + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err info=psb_success_ err=0 @@ -112,8 +113,8 @@ subroutine amg_cmlprec_bld(a,desc_a,p,info,amold,vmold,imold) name = 'amg_cmlprec_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& diff --git a/amgprec/impl/amg_cprecaply.f90 b/amgprec/impl/amg_cprecaply.f90 index 7f8ff87e..262ff626 100644 --- a/amgprec/impl/amg_cprecaply.f90 +++ b/amgprec/impl/amg_cprecaply.f90 @@ -91,16 +91,17 @@ subroutine amg_cprecaply(prec,x,y,desc_data,info,trans,work) complex(psb_spk_), pointer :: work_(:) complex(psb_spk_), allocatable :: w1(:), w2(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + character(len=20) :: name name='amg_cprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) @@ -256,8 +257,9 @@ subroutine amg_cprecaply1(prec,x,desc_data,info,trans) character(len=1), optional :: trans ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act complex(psb_spk_), pointer :: ww(:), w1(:) character(len=20) :: name @@ -266,8 +268,8 @@ subroutine amg_cprecaply1(prec,x,desc_data,info,trans) call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) allocate(ww(size(x)),w1(size(x)),stat=info) if (info /= psb_success_) then @@ -321,17 +323,18 @@ subroutine amg_cprecaply2_vect(prec,x,y,desc_data,info,trans,work) ! Local variables character :: trans_ complex(psb_spk_), pointer :: work_(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - logical :: do_alloc_wrk - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + logical :: do_alloc_wrk + character(len=20) :: name name='amg_cprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) @@ -470,17 +473,18 @@ subroutine amg_cprecaply1_vect(prec,x,desc_data,info,trans,work) ! Local variables character :: trans_ complex(psb_spk_), pointer :: work_(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - logical :: do_alloc_wrk - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + logical :: do_alloc_wrk + character(len=20) :: name name='amg_cprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) diff --git a/amgprec/impl/amg_cprecbld.f90 b/amgprec/impl/amg_cprecbld.f90 index a7a88512..eb64b2be 100644 --- a/amgprec/impl/amg_cprecbld.f90 +++ b/amgprec/impl/amg_cprecbld.f90 @@ -75,10 +75,10 @@ subroutine amg_cprecbld(a,desc_a,prec,info,amold,vmold,imold) ! Local Variables type(amg_cprec_type) :: t_prec - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k,err_act, iszv, newsz - integer(psb_ipk_) :: ipv(amg_ifpsz_), val - integer(psb_ipk_) :: int_err(5) + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k,err_act, iszv, newsz + integer(psb_ipk_) :: ipv(amg_ifpsz_), val type(amg_dml_parms) :: prm integer(psb_ipk_) :: debug_level, debug_unit character(len=20) :: name, ch_err @@ -94,10 +94,9 @@ subroutine amg_cprecbld(a,desc_a,prec,info,amold,vmold,imold) name = 'amg_cprecbld' info = psb_success_ - int_err(1) = 0 - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& @@ -116,7 +115,7 @@ subroutine amg_cprecbld(a,desc_a,prec,info,amold,vmold,imold) ! newsz = -1 iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) + call psb_bcast(ctxt,iszv) if (iszv /= size(prec%precv)) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent size of precv') diff --git a/amgprec/impl/amg_cprecinit.F90 b/amgprec/impl/amg_cprecinit.F90 index 04a879a1..38560a8c 100644 --- a/amgprec/impl/amg_cprecinit.F90 +++ b/amgprec/impl/amg_cprecinit.F90 @@ -88,7 +88,7 @@ ! info - integer, output. ! Error code. ! -subroutine amg_cprecinit(ictxt,prec,ptype,info) +subroutine amg_cprecinit(ctxt,prec,ptype,info) use psb_base_mod use amg_c_prec_mod, amg_protect_name => amg_cprecinit @@ -106,15 +106,15 @@ subroutine amg_cprecinit(ictxt,prec,ptype,info) implicit none ! Arguments - integer(psb_ipk_), intent(in) :: ictxt + type(psb_ctxt_type), intent(in) :: ctxt class(amg_cprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: nlev_, ilev_ - real(psb_spk_) :: thr - character(len=*), parameter :: name='amg_precinit' + integer(psb_ipk_) :: nlev_, ilev_ + real(psb_spk_) :: thr + character(len=*), parameter :: name='amg_precinit' info = psb_success_ if (allocated(prec%precv)) then @@ -123,7 +123,7 @@ subroutine amg_cprecinit(ictxt,prec,ptype,info) ! Do we want to do something? endif endif - prec%ictxt = ictxt + prec%ctxt = ctxt prec%ag_data%min_coarse_size = -1 select case(psb_toupper(trim(ptype))) diff --git a/amgprec/impl/amg_d_extprol_bld.F90 b/amgprec/impl/amg_d_extprol_bld.F90 index 592bd90a..c169d5c9 100644 --- a/amgprec/impl/amg_d_extprol_bld.F90 +++ b/amgprec/impl/amg_d_extprol_bld.F90 @@ -94,10 +94,11 @@ subroutine amg_d_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) ! !$ character, intent(in), optional :: upd ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs - integer(psb_ipk_) :: nprolv, nrestrv - real(psb_dpk_) :: mnaggratio + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me,np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs + integer(psb_ipk_) :: nprolv, nrestrv + real(psb_dpk_) :: mnaggratio integer(psb_ipk_) :: ipv(amg_ifpsz_), val class(amg_d_base_smoother_type), allocatable :: coarse_sm, base_sm, med_sm type(amg_dml_parms) :: baseparms, medparms, coarseparms @@ -120,9 +121,9 @@ subroutine amg_d_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) name = 'amg_d_extprol_bld' info = psb_success_ int_err(1) = 0 - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - p%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + p%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' @@ -166,12 +167,12 @@ subroutine amg_d_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) iszv = size(p%precv) nprolv = size(prolv) nrestrv = size(restrv) - call psb_bcast(ictxt,iszv) - call psb_bcast(ictxt,casize) - call psb_bcast(ictxt,mxplevs) - call psb_bcast(ictxt,mnaggratio) - call psb_bcast(ictxt,nprolv) - call psb_bcast(ictxt,nrestrv) + call psb_bcast(ctxt,iszv) + call psb_bcast(ctxt,casize) + call psb_bcast(ctxt,mxplevs) + call psb_bcast(ctxt,mnaggratio) + call psb_bcast(ctxt,nprolv) + call psb_bcast(ctxt,nrestrv) if (casize /= p%ag_data%min_coarse_size) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent min_coarse_size') @@ -313,7 +314,7 @@ subroutine amg_d_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) if (all(p%precv(i)%map%naggr == p%precv(i-1)%map%naggr)) then newsz=i-1 end if - call psb_bcast(ictxt,newsz) + call psb_bcast(ctxt,newsz) if (newsz > 0) exit array_build_loop end if end do array_build_loop @@ -354,9 +355,10 @@ contains integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me, ncol - integer(psb_ipk_) :: err_act,ntaggr,nzl + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_mpk_) :: np, me, ncol + integer(psb_ipk_) :: err_act,ntaggr,nzl integer(psb_ipk_), allocatable :: ilaggr(:), nlaggr(:) type(psb_dspmat_type) :: ac, am2, am3, am4 type(psb_d_coo_sparse_mat) :: acoo, bcoo @@ -369,8 +371,8 @@ contains info = psb_err_internal_error_; goto 9999 end if info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) #if defined(LPK8) info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Need fix for LPK8') @@ -391,7 +393,7 @@ contains call psb_errpush(info,name,a_err='Inconsistent restr/prol sizes') goto 9999 end if - call psb_sum(ictxt,nlaggr) + call psb_sum(ctxt,nlaggr) ntaggr = sum(nlaggr) ncol = desc_a%get_local_cols() if (debug) write(0,*)me,' Sizes:',op_restr%get_nrows(),op_restr%get_ncols(),& @@ -432,7 +434,7 @@ contains call ac%mv_to(bcoo) nzl = bcoo%get_nzeros() - if (info == psb_success_) call psb_cdall(ictxt,p%desc_ac,info,nl=nlaggr(me+1)) + if (info == psb_success_) call psb_cdall(ctxt,p%desc_ac,info,nl=nlaggr(me+1)) if (info == psb_success_) call psb_cdins(nzl,bcoo%ia,bcoo%ja,p%desc_ac,info) if (info == psb_success_) call psb_cdasb(p%desc_ac,info) if (info == psb_success_) call psb_glob_to_loc(bcoo%ia(1:nzl),p%desc_ac,info,iact='I') @@ -491,7 +493,7 @@ contains case(amg_repl_mat_) ! ! - call psb_cdall(ictxt,p%desc_ac,info,mg=ntaggr,repl=.true.) + call psb_cdall(ctxt,p%desc_ac,info,mg=ntaggr,repl=.true.) if (info == psb_success_) call psb_cdasb(p%desc_ac,info) if (info == psb_success_) & & call psb_gather(p%ac,ac,p%desc_ac,info,dupl=psb_dupl_add_,keeploc=.false.) diff --git a/amgprec/impl/amg_d_hierarchy_bld.f90 b/amgprec/impl/amg_d_hierarchy_bld.f90 index 394ddc29..d1a0fd9e 100644 --- a/amgprec/impl/amg_d_hierarchy_bld.f90 +++ b/amgprec/impl/amg_d_hierarchy_bld.f90 @@ -78,8 +78,9 @@ subroutine amg_d_hierarchy_bld(a,desc_a,prec,info) integer(psb_ipk_), intent(out) :: info ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me,np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& & nplevs, mxplevs integer(psb_lpk_) :: iaggsize, casize real(psb_dpk_) :: mnaggratio, sizeratio, athresh, aomega @@ -106,9 +107,9 @@ subroutine amg_d_hierarchy_bld(a,desc_a,prec,info) name = 'amg_d_hierarchy_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' @@ -133,10 +134,10 @@ subroutine amg_d_hierarchy_bld(a,desc_a,prec,info) mnaggratio = prec%ag_data%min_cr_ratio casize = prec%ag_data%min_coarse_size iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) - call psb_bcast(ictxt,casize) - call psb_bcast(ictxt,mxplevs) - call psb_bcast(ictxt,mnaggratio) + call psb_bcast(ctxt,iszv) + call psb_bcast(ctxt,casize) + call psb_bcast(ctxt,mxplevs) + call psb_bcast(ctxt,mnaggratio) if (casize /= prec%ag_data%min_coarse_size) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent min_coarse_size') @@ -200,7 +201,7 @@ subroutine amg_d_hierarchy_bld(a,desc_a,prec,info) casize = int((done*casize)**(done/(done*3)),psb_lpk_) casize = max(casize,lone) casize = casize*40_psb_lpk_ - call psb_bcast(ictxt,casize) + call psb_bcast(ctxt,casize) if (casize > huge(prec%ag_data%min_coarse_size)) then ! ! computed coarse size does not fit in IPK_. @@ -285,7 +286,7 @@ subroutine amg_d_hierarchy_bld(a,desc_a,prec,info) ! Check on the iprcparm contents: they should be the same ! on all processes. ! - call psb_bcast(ictxt,prec%precv(i)%parms) + call psb_bcast(ctxt,prec%precv(i)%parms) ! ! Sanity checks on the parameters @@ -367,7 +368,7 @@ subroutine amg_d_hierarchy_bld(a,desc_a,prec,info) end if end if end if - call psb_bcast(ictxt,newsz) + call psb_bcast(ctxt,newsz) if (newsz > 0) then ! diff --git a/amgprec/impl/amg_d_hierarchy_rebld.f90 b/amgprec/impl/amg_d_hierarchy_rebld.f90 index c926bc8d..7a6cce96 100644 --- a/amgprec/impl/amg_d_hierarchy_rebld.f90 +++ b/amgprec/impl/amg_d_hierarchy_rebld.f90 @@ -78,8 +78,9 @@ subroutine amg_d_hierarchy_rebld(a,desc_a,prec,info) integer(psb_ipk_), intent(out) :: info ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& & nplevs, mxplevs integer(psb_lpk_) :: iaggsize, casize real(psb_dpk_) :: mnaggratio, sizeratio, athresh, aomega @@ -105,9 +106,9 @@ subroutine amg_d_hierarchy_rebld(a,desc_a,prec,info) name = 'amg_hierarchy_rebld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' diff --git a/amgprec/impl/amg_d_smoothers_bld.f90 b/amgprec/impl/amg_d_smoothers_bld.f90 index 570e57a7..e9dd0d93 100644 --- a/amgprec/impl/amg_d_smoothers_bld.f90 +++ b/amgprec/impl/amg_d_smoothers_bld.f90 @@ -96,12 +96,13 @@ subroutine amg_d_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, nplevs, mxplevs + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, nplevs, mxplevs real(psb_dpk_) :: mnaggratio - integer(psb_ipk_) :: coarse_solve_id - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + integer(psb_ipk_) :: coarse_solve_id + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err info=psb_success_ err=0 @@ -114,8 +115,8 @@ subroutine amg_d_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) name = 'amg_d_smoothers_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& @@ -132,7 +133,7 @@ subroutine amg_d_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) ! Check to ensure all procs have the same ! iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) + call psb_bcast(ctxt,iszv) if (iszv /= size(prec%precv)) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent size of precv') diff --git a/amgprec/impl/amg_dfile_prec_descr.f90 b/amgprec/impl/amg_dfile_prec_descr.f90 index dbc6e9db..e3f7c662 100644 --- a/amgprec/impl/amg_dfile_prec_descr.f90 +++ b/amgprec/impl/amg_dfile_prec_descr.f90 @@ -71,9 +71,10 @@ subroutine amg_dfile_prec_descr(prec,iout,root) integer(psb_ipk_), intent(in), optional :: root ! Local variables - integer(psb_ipk_) :: ilev, nlev, ilmin, info, nswps - integer(psb_ipk_) :: ictxt, me, np - logical :: is_symgs + integer(psb_ipk_) :: ilev, nlev, ilmin, info, nswps + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + logical :: is_symgs character(len=20), parameter :: name='amg_file_prec_descr' integer(psb_ipk_) :: iout_ integer(psb_ipk_) :: root_ @@ -86,11 +87,11 @@ subroutine amg_dfile_prec_descr(prec,iout,root) end if if (iout_ < 0) iout_ = psb_out_unit - ictxt = prec%ictxt + ctxt = prec%ctxt if (allocated(prec%precv)) then - call psb_info(ictxt,me,np) + call psb_info(ctxt,me,np) if (present(root)) then root_ = root else diff --git a/amgprec/impl/amg_dmlprec_aply.f90 b/amgprec/impl/amg_dmlprec_aply.f90 index 3e7381e6..6c5b075c 100644 --- a/amgprec/impl/amg_dmlprec_aply.f90 +++ b/amgprec/impl/amg_dmlprec_aply.f90 @@ -222,11 +222,12 @@ subroutine amg_dmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, nc2l, level, isweep, err_act - character(len=20) :: name - character :: trans_ + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, nc2l, level, isweep, err_act + character(len=20) :: name + character :: trans_ real(psb_dpk_) :: beta_ logical :: do_alloc_wrk type(amg_dmlprec_wrk_type), allocatable, target :: mlprec_wrk(:) @@ -237,8 +238,8 @@ subroutine amg_dmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),& @@ -365,12 +366,13 @@ contains type(psb_d_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -385,8 +387,8 @@ contains & a_err='wrong call level to inner_ml') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' Start inner_ml_aply at level ',level, info @@ -450,12 +452,13 @@ contains type(psb_d_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act, k - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act, k + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -470,8 +473,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_add at level ',level @@ -578,12 +581,13 @@ contains type(psb_d_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name name = 'inner_inner_mult' info = psb_success_ @@ -596,8 +600,8 @@ contains & a_err='wrong call level to inner_mult') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_mult at level ',level @@ -802,12 +806,13 @@ contains type(psb_d_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -822,8 +827,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,name,' start at level ',level @@ -1166,11 +1171,12 @@ subroutine amg_dmlprec_aply(alpha,p,x,beta,y,desc_data,trans,work,info) integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: debug_level, debug_unit, nlev,nc2l,nr2l,level - character(len=20) :: name - character :: trans_ + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: debug_level, debug_unit, nlev,nc2l,nr2l,level + character(len=20) :: name + character :: trans_ type amg_mlwrk_type real(psb_dpk_), allocatable :: tx(:), ty(:), x2l(:), y2l(:) end type amg_mlwrk_type @@ -1182,8 +1188,8 @@ subroutine amg_dmlprec_aply(alpha,p,x,beta,y,desc_data,trans,work,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),& @@ -1285,12 +1291,13 @@ contains type(psb_d_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1305,8 +1312,8 @@ contains & a_err='wrong call level to inner_ml') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_ml_aply at level ',level @@ -1368,12 +1375,13 @@ contains type(psb_d_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1388,8 +1396,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_add at level ',level @@ -1472,12 +1480,13 @@ contains type(psb_d_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1492,8 +1501,8 @@ contains & a_err='wrong call level to inner_mult') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_mult at level ',level diff --git a/amgprec/impl/amg_dmlprec_bld.f90 b/amgprec/impl/amg_dmlprec_bld.f90 index fb051fe3..039409f1 100644 --- a/amgprec/impl/amg_dmlprec_bld.f90 +++ b/amgprec/impl/amg_dmlprec_bld.f90 @@ -94,12 +94,13 @@ subroutine amg_dmlprec_bld(a,desc_a,p,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs - real(psb_dpk_) :: mnaggratio - integer(psb_ipk_) :: ipv(amg_ifpsz_), val - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs + real(psb_dpk_) :: mnaggratio + integer(psb_ipk_) :: ipv(amg_ifpsz_), val + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err info=psb_success_ err=0 @@ -112,8 +113,8 @@ subroutine amg_dmlprec_bld(a,desc_a,p,info,amold,vmold,imold) name = 'amg_dmlprec_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& diff --git a/amgprec/impl/amg_dprecaply.f90 b/amgprec/impl/amg_dprecaply.f90 index b2cb1680..4b4c0e99 100644 --- a/amgprec/impl/amg_dprecaply.f90 +++ b/amgprec/impl/amg_dprecaply.f90 @@ -91,16 +91,17 @@ subroutine amg_dprecaply(prec,x,y,desc_data,info,trans,work) real(psb_dpk_), pointer :: work_(:) real(psb_dpk_), allocatable :: w1(:), w2(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + character(len=20) :: name name='amg_dprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) @@ -256,8 +257,9 @@ subroutine amg_dprecaply1(prec,x,desc_data,info,trans) character(len=1), optional :: trans ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act real(psb_dpk_), pointer :: ww(:), w1(:) character(len=20) :: name @@ -266,8 +268,8 @@ subroutine amg_dprecaply1(prec,x,desc_data,info,trans) call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) allocate(ww(size(x)),w1(size(x)),stat=info) if (info /= psb_success_) then @@ -321,17 +323,18 @@ subroutine amg_dprecaply2_vect(prec,x,y,desc_data,info,trans,work) ! Local variables character :: trans_ real(psb_dpk_), pointer :: work_(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - logical :: do_alloc_wrk - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + logical :: do_alloc_wrk + character(len=20) :: name name='amg_dprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) @@ -470,17 +473,18 @@ subroutine amg_dprecaply1_vect(prec,x,desc_data,info,trans,work) ! Local variables character :: trans_ real(psb_dpk_), pointer :: work_(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - logical :: do_alloc_wrk - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + logical :: do_alloc_wrk + character(len=20) :: name name='amg_dprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) diff --git a/amgprec/impl/amg_dprecbld.f90 b/amgprec/impl/amg_dprecbld.f90 index edcc667b..c05a6790 100644 --- a/amgprec/impl/amg_dprecbld.f90 +++ b/amgprec/impl/amg_dprecbld.f90 @@ -75,10 +75,10 @@ subroutine amg_dprecbld(a,desc_a,prec,info,amold,vmold,imold) ! Local Variables type(amg_dprec_type) :: t_prec - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k,err_act, iszv, newsz - integer(psb_ipk_) :: ipv(amg_ifpsz_), val - integer(psb_ipk_) :: int_err(5) + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k,err_act, iszv, newsz + integer(psb_ipk_) :: ipv(amg_ifpsz_), val type(amg_dml_parms) :: prm integer(psb_ipk_) :: debug_level, debug_unit character(len=20) :: name, ch_err @@ -94,10 +94,9 @@ subroutine amg_dprecbld(a,desc_a,prec,info,amold,vmold,imold) name = 'amg_dprecbld' info = psb_success_ - int_err(1) = 0 - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& @@ -116,7 +115,7 @@ subroutine amg_dprecbld(a,desc_a,prec,info,amold,vmold,imold) ! newsz = -1 iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) + call psb_bcast(ctxt,iszv) if (iszv /= size(prec%precv)) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent size of precv') diff --git a/amgprec/impl/amg_dprecinit.F90 b/amgprec/impl/amg_dprecinit.F90 index f22d175b..352966fd 100644 --- a/amgprec/impl/amg_dprecinit.F90 +++ b/amgprec/impl/amg_dprecinit.F90 @@ -88,7 +88,7 @@ ! info - integer, output. ! Error code. ! -subroutine amg_dprecinit(ictxt,prec,ptype,info) +subroutine amg_dprecinit(ctxt,prec,ptype,info) use psb_base_mod use amg_d_prec_mod, amg_protect_name => amg_dprecinit @@ -109,15 +109,15 @@ subroutine amg_dprecinit(ictxt,prec,ptype,info) implicit none ! Arguments - integer(psb_ipk_), intent(in) :: ictxt + type(psb_ctxt_type), intent(in) :: ctxt class(amg_dprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: nlev_, ilev_ - real(psb_dpk_) :: thr - character(len=*), parameter :: name='amg_precinit' + integer(psb_ipk_) :: nlev_, ilev_ + real(psb_dpk_) :: thr + character(len=*), parameter :: name='amg_precinit' info = psb_success_ if (allocated(prec%precv)) then @@ -126,7 +126,7 @@ subroutine amg_dprecinit(ictxt,prec,ptype,info) ! Do we want to do something? endif endif - prec%ictxt = ictxt + prec%ctxt = ctxt prec%ag_data%min_coarse_size = -1 select case(psb_toupper(trim(ptype))) diff --git a/amgprec/impl/amg_s_extprol_bld.F90 b/amgprec/impl/amg_s_extprol_bld.F90 index c5141b59..b1e22213 100644 --- a/amgprec/impl/amg_s_extprol_bld.F90 +++ b/amgprec/impl/amg_s_extprol_bld.F90 @@ -94,10 +94,11 @@ subroutine amg_s_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) ! !$ character, intent(in), optional :: upd ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs - integer(psb_ipk_) :: nprolv, nrestrv - real(psb_spk_) :: mnaggratio + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me,np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs + integer(psb_ipk_) :: nprolv, nrestrv + real(psb_spk_) :: mnaggratio integer(psb_ipk_) :: ipv(amg_ifpsz_), val class(amg_s_base_smoother_type), allocatable :: coarse_sm, base_sm, med_sm type(amg_sml_parms) :: baseparms, medparms, coarseparms @@ -120,9 +121,9 @@ subroutine amg_s_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) name = 'amg_s_extprol_bld' info = psb_success_ int_err(1) = 0 - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - p%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + p%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' @@ -166,12 +167,12 @@ subroutine amg_s_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) iszv = size(p%precv) nprolv = size(prolv) nrestrv = size(restrv) - call psb_bcast(ictxt,iszv) - call psb_bcast(ictxt,casize) - call psb_bcast(ictxt,mxplevs) - call psb_bcast(ictxt,mnaggratio) - call psb_bcast(ictxt,nprolv) - call psb_bcast(ictxt,nrestrv) + call psb_bcast(ctxt,iszv) + call psb_bcast(ctxt,casize) + call psb_bcast(ctxt,mxplevs) + call psb_bcast(ctxt,mnaggratio) + call psb_bcast(ctxt,nprolv) + call psb_bcast(ctxt,nrestrv) if (casize /= p%ag_data%min_coarse_size) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent min_coarse_size') @@ -313,7 +314,7 @@ subroutine amg_s_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) if (all(p%precv(i)%map%naggr == p%precv(i-1)%map%naggr)) then newsz=i-1 end if - call psb_bcast(ictxt,newsz) + call psb_bcast(ctxt,newsz) if (newsz > 0) exit array_build_loop end if end do array_build_loop @@ -354,9 +355,10 @@ contains integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me, ncol - integer(psb_ipk_) :: err_act,ntaggr,nzl + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_mpk_) :: np, me, ncol + integer(psb_ipk_) :: err_act,ntaggr,nzl integer(psb_ipk_), allocatable :: ilaggr(:), nlaggr(:) type(psb_sspmat_type) :: ac, am2, am3, am4 type(psb_s_coo_sparse_mat) :: acoo, bcoo @@ -369,8 +371,8 @@ contains info = psb_err_internal_error_; goto 9999 end if info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) #if defined(LPK8) info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Need fix for LPK8') @@ -391,7 +393,7 @@ contains call psb_errpush(info,name,a_err='Inconsistent restr/prol sizes') goto 9999 end if - call psb_sum(ictxt,nlaggr) + call psb_sum(ctxt,nlaggr) ntaggr = sum(nlaggr) ncol = desc_a%get_local_cols() if (debug) write(0,*)me,' Sizes:',op_restr%get_nrows(),op_restr%get_ncols(),& @@ -432,7 +434,7 @@ contains call ac%mv_to(bcoo) nzl = bcoo%get_nzeros() - if (info == psb_success_) call psb_cdall(ictxt,p%desc_ac,info,nl=nlaggr(me+1)) + if (info == psb_success_) call psb_cdall(ctxt,p%desc_ac,info,nl=nlaggr(me+1)) if (info == psb_success_) call psb_cdins(nzl,bcoo%ia,bcoo%ja,p%desc_ac,info) if (info == psb_success_) call psb_cdasb(p%desc_ac,info) if (info == psb_success_) call psb_glob_to_loc(bcoo%ia(1:nzl),p%desc_ac,info,iact='I') @@ -491,7 +493,7 @@ contains case(amg_repl_mat_) ! ! - call psb_cdall(ictxt,p%desc_ac,info,mg=ntaggr,repl=.true.) + call psb_cdall(ctxt,p%desc_ac,info,mg=ntaggr,repl=.true.) if (info == psb_success_) call psb_cdasb(p%desc_ac,info) if (info == psb_success_) & & call psb_gather(p%ac,ac,p%desc_ac,info,dupl=psb_dupl_add_,keeploc=.false.) diff --git a/amgprec/impl/amg_s_hierarchy_bld.f90 b/amgprec/impl/amg_s_hierarchy_bld.f90 index 5b9effd2..d413e394 100644 --- a/amgprec/impl/amg_s_hierarchy_bld.f90 +++ b/amgprec/impl/amg_s_hierarchy_bld.f90 @@ -78,8 +78,9 @@ subroutine amg_s_hierarchy_bld(a,desc_a,prec,info) integer(psb_ipk_), intent(out) :: info ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me,np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& & nplevs, mxplevs integer(psb_lpk_) :: iaggsize, casize real(psb_spk_) :: mnaggratio, sizeratio, athresh, aomega @@ -106,9 +107,9 @@ subroutine amg_s_hierarchy_bld(a,desc_a,prec,info) name = 'amg_s_hierarchy_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' @@ -133,10 +134,10 @@ subroutine amg_s_hierarchy_bld(a,desc_a,prec,info) mnaggratio = prec%ag_data%min_cr_ratio casize = prec%ag_data%min_coarse_size iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) - call psb_bcast(ictxt,casize) - call psb_bcast(ictxt,mxplevs) - call psb_bcast(ictxt,mnaggratio) + call psb_bcast(ctxt,iszv) + call psb_bcast(ctxt,casize) + call psb_bcast(ctxt,mxplevs) + call psb_bcast(ctxt,mnaggratio) if (casize /= prec%ag_data%min_coarse_size) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent min_coarse_size') @@ -200,7 +201,7 @@ subroutine amg_s_hierarchy_bld(a,desc_a,prec,info) casize = int((sone*casize)**(sone/(sone*3)),psb_lpk_) casize = max(casize,lone) casize = casize*40_psb_lpk_ - call psb_bcast(ictxt,casize) + call psb_bcast(ctxt,casize) if (casize > huge(prec%ag_data%min_coarse_size)) then ! ! computed coarse size does not fit in IPK_. @@ -285,7 +286,7 @@ subroutine amg_s_hierarchy_bld(a,desc_a,prec,info) ! Check on the iprcparm contents: they should be the same ! on all processes. ! - call psb_bcast(ictxt,prec%precv(i)%parms) + call psb_bcast(ctxt,prec%precv(i)%parms) ! ! Sanity checks on the parameters @@ -367,7 +368,7 @@ subroutine amg_s_hierarchy_bld(a,desc_a,prec,info) end if end if end if - call psb_bcast(ictxt,newsz) + call psb_bcast(ctxt,newsz) if (newsz > 0) then ! diff --git a/amgprec/impl/amg_s_hierarchy_rebld.f90 b/amgprec/impl/amg_s_hierarchy_rebld.f90 index f3f20f29..4e816a8f 100644 --- a/amgprec/impl/amg_s_hierarchy_rebld.f90 +++ b/amgprec/impl/amg_s_hierarchy_rebld.f90 @@ -78,8 +78,9 @@ subroutine amg_s_hierarchy_rebld(a,desc_a,prec,info) integer(psb_ipk_), intent(out) :: info ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& & nplevs, mxplevs integer(psb_lpk_) :: iaggsize, casize real(psb_spk_) :: mnaggratio, sizeratio, athresh, aomega @@ -105,9 +106,9 @@ subroutine amg_s_hierarchy_rebld(a,desc_a,prec,info) name = 'amg_hierarchy_rebld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' diff --git a/amgprec/impl/amg_s_smoothers_bld.f90 b/amgprec/impl/amg_s_smoothers_bld.f90 index 82f74b1d..ba54fd19 100644 --- a/amgprec/impl/amg_s_smoothers_bld.f90 +++ b/amgprec/impl/amg_s_smoothers_bld.f90 @@ -96,12 +96,13 @@ subroutine amg_s_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, nplevs, mxplevs + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, nplevs, mxplevs real(psb_spk_) :: mnaggratio - integer(psb_ipk_) :: coarse_solve_id - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + integer(psb_ipk_) :: coarse_solve_id + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err info=psb_success_ err=0 @@ -114,8 +115,8 @@ subroutine amg_s_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) name = 'amg_s_smoothers_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& @@ -132,7 +133,7 @@ subroutine amg_s_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) ! Check to ensure all procs have the same ! iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) + call psb_bcast(ctxt,iszv) if (iszv /= size(prec%precv)) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent size of precv') diff --git a/amgprec/impl/amg_sfile_prec_descr.f90 b/amgprec/impl/amg_sfile_prec_descr.f90 index a41bf790..08eda380 100644 --- a/amgprec/impl/amg_sfile_prec_descr.f90 +++ b/amgprec/impl/amg_sfile_prec_descr.f90 @@ -71,9 +71,10 @@ subroutine amg_sfile_prec_descr(prec,iout,root) integer(psb_ipk_), intent(in), optional :: root ! Local variables - integer(psb_ipk_) :: ilev, nlev, ilmin, info, nswps - integer(psb_ipk_) :: ictxt, me, np - logical :: is_symgs + integer(psb_ipk_) :: ilev, nlev, ilmin, info, nswps + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + logical :: is_symgs character(len=20), parameter :: name='amg_file_prec_descr' integer(psb_ipk_) :: iout_ integer(psb_ipk_) :: root_ @@ -86,11 +87,11 @@ subroutine amg_sfile_prec_descr(prec,iout,root) end if if (iout_ < 0) iout_ = psb_out_unit - ictxt = prec%ictxt + ctxt = prec%ctxt if (allocated(prec%precv)) then - call psb_info(ictxt,me,np) + call psb_info(ctxt,me,np) if (present(root)) then root_ = root else diff --git a/amgprec/impl/amg_smlprec_aply.f90 b/amgprec/impl/amg_smlprec_aply.f90 index 305af31e..452fe8c1 100644 --- a/amgprec/impl/amg_smlprec_aply.f90 +++ b/amgprec/impl/amg_smlprec_aply.f90 @@ -222,11 +222,12 @@ subroutine amg_smlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, nc2l, level, isweep, err_act - character(len=20) :: name - character :: trans_ + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, nc2l, level, isweep, err_act + character(len=20) :: name + character :: trans_ real(psb_spk_) :: beta_ logical :: do_alloc_wrk type(amg_smlprec_wrk_type), allocatable, target :: mlprec_wrk(:) @@ -237,8 +238,8 @@ subroutine amg_smlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),& @@ -365,12 +366,13 @@ contains type(psb_s_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -385,8 +387,8 @@ contains & a_err='wrong call level to inner_ml') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' Start inner_ml_aply at level ',level, info @@ -450,12 +452,13 @@ contains type(psb_s_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act, k - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act, k + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -470,8 +473,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_add at level ',level @@ -578,12 +581,13 @@ contains type(psb_s_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name name = 'inner_inner_mult' info = psb_success_ @@ -596,8 +600,8 @@ contains & a_err='wrong call level to inner_mult') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_mult at level ',level @@ -802,12 +806,13 @@ contains type(psb_s_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -822,8 +827,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,name,' start at level ',level @@ -1166,11 +1171,12 @@ subroutine amg_smlprec_aply(alpha,p,x,beta,y,desc_data,trans,work,info) integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: debug_level, debug_unit, nlev,nc2l,nr2l,level - character(len=20) :: name - character :: trans_ + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: debug_level, debug_unit, nlev,nc2l,nr2l,level + character(len=20) :: name + character :: trans_ type amg_mlwrk_type real(psb_spk_), allocatable :: tx(:), ty(:), x2l(:), y2l(:) end type amg_mlwrk_type @@ -1182,8 +1188,8 @@ subroutine amg_smlprec_aply(alpha,p,x,beta,y,desc_data,trans,work,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),& @@ -1285,12 +1291,13 @@ contains type(psb_s_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1305,8 +1312,8 @@ contains & a_err='wrong call level to inner_ml') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_ml_aply at level ',level @@ -1368,12 +1375,13 @@ contains type(psb_s_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1388,8 +1396,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_add at level ',level @@ -1472,12 +1480,13 @@ contains type(psb_s_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1492,8 +1501,8 @@ contains & a_err='wrong call level to inner_mult') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_mult at level ',level diff --git a/amgprec/impl/amg_smlprec_bld.f90 b/amgprec/impl/amg_smlprec_bld.f90 index 260c8022..c0cfd020 100644 --- a/amgprec/impl/amg_smlprec_bld.f90 +++ b/amgprec/impl/amg_smlprec_bld.f90 @@ -94,12 +94,13 @@ subroutine amg_smlprec_bld(a,desc_a,p,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs - real(psb_spk_) :: mnaggratio - integer(psb_ipk_) :: ipv(amg_ifpsz_), val - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs + real(psb_spk_) :: mnaggratio + integer(psb_ipk_) :: ipv(amg_ifpsz_), val + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err info=psb_success_ err=0 @@ -112,8 +113,8 @@ subroutine amg_smlprec_bld(a,desc_a,p,info,amold,vmold,imold) name = 'amg_smlprec_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& diff --git a/amgprec/impl/amg_sprecaply.f90 b/amgprec/impl/amg_sprecaply.f90 index e4123a2e..d9dc3463 100644 --- a/amgprec/impl/amg_sprecaply.f90 +++ b/amgprec/impl/amg_sprecaply.f90 @@ -91,16 +91,17 @@ subroutine amg_sprecaply(prec,x,y,desc_data,info,trans,work) real(psb_spk_), pointer :: work_(:) real(psb_spk_), allocatable :: w1(:), w2(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + character(len=20) :: name name='amg_sprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) @@ -256,8 +257,9 @@ subroutine amg_sprecaply1(prec,x,desc_data,info,trans) character(len=1), optional :: trans ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act real(psb_spk_), pointer :: ww(:), w1(:) character(len=20) :: name @@ -266,8 +268,8 @@ subroutine amg_sprecaply1(prec,x,desc_data,info,trans) call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) allocate(ww(size(x)),w1(size(x)),stat=info) if (info /= psb_success_) then @@ -321,17 +323,18 @@ subroutine amg_sprecaply2_vect(prec,x,y,desc_data,info,trans,work) ! Local variables character :: trans_ real(psb_spk_), pointer :: work_(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - logical :: do_alloc_wrk - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + logical :: do_alloc_wrk + character(len=20) :: name name='amg_sprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) @@ -470,17 +473,18 @@ subroutine amg_sprecaply1_vect(prec,x,desc_data,info,trans,work) ! Local variables character :: trans_ real(psb_spk_), pointer :: work_(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - logical :: do_alloc_wrk - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + logical :: do_alloc_wrk + character(len=20) :: name name='amg_sprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) diff --git a/amgprec/impl/amg_sprecbld.f90 b/amgprec/impl/amg_sprecbld.f90 index ec85bd8d..b95e1ab2 100644 --- a/amgprec/impl/amg_sprecbld.f90 +++ b/amgprec/impl/amg_sprecbld.f90 @@ -75,10 +75,10 @@ subroutine amg_sprecbld(a,desc_a,prec,info,amold,vmold,imold) ! Local Variables type(amg_sprec_type) :: t_prec - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k,err_act, iszv, newsz - integer(psb_ipk_) :: ipv(amg_ifpsz_), val - integer(psb_ipk_) :: int_err(5) + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k,err_act, iszv, newsz + integer(psb_ipk_) :: ipv(amg_ifpsz_), val type(amg_dml_parms) :: prm integer(psb_ipk_) :: debug_level, debug_unit character(len=20) :: name, ch_err @@ -94,10 +94,9 @@ subroutine amg_sprecbld(a,desc_a,prec,info,amold,vmold,imold) name = 'amg_sprecbld' info = psb_success_ - int_err(1) = 0 - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& @@ -116,7 +115,7 @@ subroutine amg_sprecbld(a,desc_a,prec,info,amold,vmold,imold) ! newsz = -1 iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) + call psb_bcast(ctxt,iszv) if (iszv /= size(prec%precv)) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent size of precv') diff --git a/amgprec/impl/amg_sprecinit.F90 b/amgprec/impl/amg_sprecinit.F90 index d339429d..9ac17196 100644 --- a/amgprec/impl/amg_sprecinit.F90 +++ b/amgprec/impl/amg_sprecinit.F90 @@ -88,7 +88,7 @@ ! info - integer, output. ! Error code. ! -subroutine amg_sprecinit(ictxt,prec,ptype,info) +subroutine amg_sprecinit(ctxt,prec,ptype,info) use psb_base_mod use amg_s_prec_mod, amg_protect_name => amg_sprecinit @@ -106,15 +106,15 @@ subroutine amg_sprecinit(ictxt,prec,ptype,info) implicit none ! Arguments - integer(psb_ipk_), intent(in) :: ictxt + type(psb_ctxt_type), intent(in) :: ctxt class(amg_sprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: nlev_, ilev_ - real(psb_spk_) :: thr - character(len=*), parameter :: name='amg_precinit' + integer(psb_ipk_) :: nlev_, ilev_ + real(psb_spk_) :: thr + character(len=*), parameter :: name='amg_precinit' info = psb_success_ if (allocated(prec%precv)) then @@ -123,7 +123,7 @@ subroutine amg_sprecinit(ictxt,prec,ptype,info) ! Do we want to do something? endif endif - prec%ictxt = ictxt + prec%ctxt = ctxt prec%ag_data%min_coarse_size = -1 select case(psb_toupper(trim(ptype))) diff --git a/amgprec/impl/amg_z_extprol_bld.F90 b/amgprec/impl/amg_z_extprol_bld.F90 index ed558899..2c6eef63 100644 --- a/amgprec/impl/amg_z_extprol_bld.F90 +++ b/amgprec/impl/amg_z_extprol_bld.F90 @@ -94,10 +94,11 @@ subroutine amg_z_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) ! !$ character, intent(in), optional :: upd ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs - integer(psb_ipk_) :: nprolv, nrestrv - real(psb_dpk_) :: mnaggratio + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me,np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs + integer(psb_ipk_) :: nprolv, nrestrv + real(psb_dpk_) :: mnaggratio integer(psb_ipk_) :: ipv(amg_ifpsz_), val class(amg_z_base_smoother_type), allocatable :: coarse_sm, base_sm, med_sm type(amg_dml_parms) :: baseparms, medparms, coarseparms @@ -120,9 +121,9 @@ subroutine amg_z_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) name = 'amg_z_extprol_bld' info = psb_success_ int_err(1) = 0 - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - p%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + p%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' @@ -166,12 +167,12 @@ subroutine amg_z_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) iszv = size(p%precv) nprolv = size(prolv) nrestrv = size(restrv) - call psb_bcast(ictxt,iszv) - call psb_bcast(ictxt,casize) - call psb_bcast(ictxt,mxplevs) - call psb_bcast(ictxt,mnaggratio) - call psb_bcast(ictxt,nprolv) - call psb_bcast(ictxt,nrestrv) + call psb_bcast(ctxt,iszv) + call psb_bcast(ctxt,casize) + call psb_bcast(ctxt,mxplevs) + call psb_bcast(ctxt,mnaggratio) + call psb_bcast(ctxt,nprolv) + call psb_bcast(ctxt,nrestrv) if (casize /= p%ag_data%min_coarse_size) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent min_coarse_size') @@ -313,7 +314,7 @@ subroutine amg_z_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold) if (all(p%precv(i)%map%naggr == p%precv(i-1)%map%naggr)) then newsz=i-1 end if - call psb_bcast(ictxt,newsz) + call psb_bcast(ctxt,newsz) if (newsz > 0) exit array_build_loop end if end do array_build_loop @@ -354,9 +355,10 @@ contains integer(psb_ipk_), intent(out) :: info ! Local variables - character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me, ncol - integer(psb_ipk_) :: err_act,ntaggr,nzl + character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_mpk_) :: np, me, ncol + integer(psb_ipk_) :: err_act,ntaggr,nzl integer(psb_ipk_), allocatable :: ilaggr(:), nlaggr(:) type(psb_zspmat_type) :: ac, am2, am3, am4 type(psb_z_coo_sparse_mat) :: acoo, bcoo @@ -369,8 +371,8 @@ contains info = psb_err_internal_error_; goto 9999 end if info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) #if defined(LPK8) info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Need fix for LPK8') @@ -391,7 +393,7 @@ contains call psb_errpush(info,name,a_err='Inconsistent restr/prol sizes') goto 9999 end if - call psb_sum(ictxt,nlaggr) + call psb_sum(ctxt,nlaggr) ntaggr = sum(nlaggr) ncol = desc_a%get_local_cols() if (debug) write(0,*)me,' Sizes:',op_restr%get_nrows(),op_restr%get_ncols(),& @@ -432,7 +434,7 @@ contains call ac%mv_to(bcoo) nzl = bcoo%get_nzeros() - if (info == psb_success_) call psb_cdall(ictxt,p%desc_ac,info,nl=nlaggr(me+1)) + if (info == psb_success_) call psb_cdall(ctxt,p%desc_ac,info,nl=nlaggr(me+1)) if (info == psb_success_) call psb_cdins(nzl,bcoo%ia,bcoo%ja,p%desc_ac,info) if (info == psb_success_) call psb_cdasb(p%desc_ac,info) if (info == psb_success_) call psb_glob_to_loc(bcoo%ia(1:nzl),p%desc_ac,info,iact='I') @@ -491,7 +493,7 @@ contains case(amg_repl_mat_) ! ! - call psb_cdall(ictxt,p%desc_ac,info,mg=ntaggr,repl=.true.) + call psb_cdall(ctxt,p%desc_ac,info,mg=ntaggr,repl=.true.) if (info == psb_success_) call psb_cdasb(p%desc_ac,info) if (info == psb_success_) & & call psb_gather(p%ac,ac,p%desc_ac,info,dupl=psb_dupl_add_,keeploc=.false.) diff --git a/amgprec/impl/amg_z_hierarchy_bld.f90 b/amgprec/impl/amg_z_hierarchy_bld.f90 index bcdb0296..2e48f7cc 100644 --- a/amgprec/impl/amg_z_hierarchy_bld.f90 +++ b/amgprec/impl/amg_z_hierarchy_bld.f90 @@ -78,8 +78,9 @@ subroutine amg_z_hierarchy_bld(a,desc_a,prec,info) integer(psb_ipk_), intent(out) :: info ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me,np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& & nplevs, mxplevs integer(psb_lpk_) :: iaggsize, casize real(psb_dpk_) :: mnaggratio, sizeratio, athresh, aomega @@ -106,9 +107,9 @@ subroutine amg_z_hierarchy_bld(a,desc_a,prec,info) name = 'amg_z_hierarchy_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' @@ -133,10 +134,10 @@ subroutine amg_z_hierarchy_bld(a,desc_a,prec,info) mnaggratio = prec%ag_data%min_cr_ratio casize = prec%ag_data%min_coarse_size iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) - call psb_bcast(ictxt,casize) - call psb_bcast(ictxt,mxplevs) - call psb_bcast(ictxt,mnaggratio) + call psb_bcast(ctxt,iszv) + call psb_bcast(ctxt,casize) + call psb_bcast(ctxt,mxplevs) + call psb_bcast(ctxt,mnaggratio) if (casize /= prec%ag_data%min_coarse_size) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent min_coarse_size') @@ -200,7 +201,7 @@ subroutine amg_z_hierarchy_bld(a,desc_a,prec,info) casize = int((done*casize)**(done/(done*3)),psb_lpk_) casize = max(casize,lone) casize = casize*40_psb_lpk_ - call psb_bcast(ictxt,casize) + call psb_bcast(ctxt,casize) if (casize > huge(prec%ag_data%min_coarse_size)) then ! ! computed coarse size does not fit in IPK_. @@ -285,7 +286,7 @@ subroutine amg_z_hierarchy_bld(a,desc_a,prec,info) ! Check on the iprcparm contents: they should be the same ! on all processes. ! - call psb_bcast(ictxt,prec%precv(i)%parms) + call psb_bcast(ctxt,prec%precv(i)%parms) ! ! Sanity checks on the parameters @@ -367,7 +368,7 @@ subroutine amg_z_hierarchy_bld(a,desc_a,prec,info) end if end if end if - call psb_bcast(ictxt,newsz) + call psb_bcast(ctxt,newsz) if (newsz > 0) then ! diff --git a/amgprec/impl/amg_z_hierarchy_rebld.f90 b/amgprec/impl/amg_z_hierarchy_rebld.f90 index 5625918e..a33461d4 100644 --- a/amgprec/impl/amg_z_hierarchy_rebld.f90 +++ b/amgprec/impl/amg_z_hierarchy_rebld.f90 @@ -78,8 +78,9 @@ subroutine amg_z_hierarchy_rebld(a,desc_a,prec,info) integer(psb_ipk_), intent(out) :: info ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz,& & nplevs, mxplevs integer(psb_lpk_) :: iaggsize, casize real(psb_dpk_) :: mnaggratio, sizeratio, athresh, aomega @@ -105,9 +106,9 @@ subroutine amg_z_hierarchy_rebld(a,desc_a,prec,info) name = 'amg_hierarchy_rebld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Entering ' diff --git a/amgprec/impl/amg_z_smoothers_bld.f90 b/amgprec/impl/amg_z_smoothers_bld.f90 index fbed219d..d2cdd7d9 100644 --- a/amgprec/impl/amg_z_smoothers_bld.f90 +++ b/amgprec/impl/amg_z_smoothers_bld.f90 @@ -96,12 +96,13 @@ subroutine amg_z_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, nplevs, mxplevs + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, nplevs, mxplevs real(psb_dpk_) :: mnaggratio - integer(psb_ipk_) :: coarse_solve_id - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + integer(psb_ipk_) :: coarse_solve_id + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err info=psb_success_ err=0 @@ -114,8 +115,8 @@ subroutine amg_z_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) name = 'amg_z_smoothers_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& @@ -132,7 +133,7 @@ subroutine amg_z_smoothers_bld(a,desc_a,prec,info,amold,vmold,imold) ! Check to ensure all procs have the same ! iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) + call psb_bcast(ctxt,iszv) if (iszv /= size(prec%precv)) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent size of precv') diff --git a/amgprec/impl/amg_zfile_prec_descr.f90 b/amgprec/impl/amg_zfile_prec_descr.f90 index 0c03f5cf..b6807a66 100644 --- a/amgprec/impl/amg_zfile_prec_descr.f90 +++ b/amgprec/impl/amg_zfile_prec_descr.f90 @@ -71,9 +71,10 @@ subroutine amg_zfile_prec_descr(prec,iout,root) integer(psb_ipk_), intent(in), optional :: root ! Local variables - integer(psb_ipk_) :: ilev, nlev, ilmin, info, nswps - integer(psb_ipk_) :: ictxt, me, np - logical :: is_symgs + integer(psb_ipk_) :: ilev, nlev, ilmin, info, nswps + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + logical :: is_symgs character(len=20), parameter :: name='amg_file_prec_descr' integer(psb_ipk_) :: iout_ integer(psb_ipk_) :: root_ @@ -86,11 +87,11 @@ subroutine amg_zfile_prec_descr(prec,iout,root) end if if (iout_ < 0) iout_ = psb_out_unit - ictxt = prec%ictxt + ctxt = prec%ctxt if (allocated(prec%precv)) then - call psb_info(ictxt,me,np) + call psb_info(ctxt,me,np) if (present(root)) then root_ = root else diff --git a/amgprec/impl/amg_zmlprec_aply.f90 b/amgprec/impl/amg_zmlprec_aply.f90 index 1b1534f1..007cc9cb 100644 --- a/amgprec/impl/amg_zmlprec_aply.f90 +++ b/amgprec/impl/amg_zmlprec_aply.f90 @@ -222,11 +222,12 @@ subroutine amg_zmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, nc2l, level, isweep, err_act - character(len=20) :: name - character :: trans_ + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, nc2l, level, isweep, err_act + character(len=20) :: name + character :: trans_ complex(psb_dpk_) :: beta_ logical :: do_alloc_wrk type(amg_zmlprec_wrk_type), allocatable, target :: mlprec_wrk(:) @@ -237,8 +238,8 @@ subroutine amg_zmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),& @@ -365,12 +366,13 @@ contains type(psb_z_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -385,8 +387,8 @@ contains & a_err='wrong call level to inner_ml') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' Start inner_ml_aply at level ',level, info @@ -450,12 +452,13 @@ contains type(psb_z_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act, k - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act, k + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -470,8 +473,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_add at level ',level @@ -578,12 +581,13 @@ contains type(psb_z_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name name = 'inner_inner_mult' info = psb_success_ @@ -596,8 +600,8 @@ contains & a_err='wrong call level to inner_mult') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_mult at level ',level @@ -802,12 +806,13 @@ contains type(psb_z_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -822,8 +827,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,name,' start at level ',level @@ -1166,11 +1171,12 @@ subroutine amg_zmlprec_aply(alpha,p,x,beta,y,desc_data,trans,work,info) integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: debug_level, debug_unit, nlev,nc2l,nr2l,level - character(len=20) :: name - character :: trans_ + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + integer(psb_ipk_) :: debug_level, debug_unit, nlev,nc2l,nr2l,level + character(len=20) :: name + character :: trans_ type amg_mlwrk_type complex(psb_dpk_), allocatable :: tx(:), ty(:), x2l(:), y2l(:) end type amg_mlwrk_type @@ -1182,8 +1188,8 @@ subroutine amg_zmlprec_aply(alpha,p,x,beta,y,desc_data,trans,work,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),& @@ -1285,12 +1291,13 @@ contains type(psb_z_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1305,8 +1312,8 @@ contains & a_err='wrong call level to inner_ml') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_ml_aply at level ',level @@ -1368,12 +1375,13 @@ contains type(psb_z_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1388,8 +1396,8 @@ contains & a_err='wrong call level to inner_add') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_add at level ',level @@ -1472,12 +1480,13 @@ contains type(psb_z_vect_type), pointer :: current integer(psb_ipk_) :: sweeps_post, sweeps_pre ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: i, err_act - integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_ipk_) :: nlev, ilev, sweeps - logical :: pre, post - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: i, err_act + integer(psb_ipk_) :: debug_level, debug_unit + integer(psb_ipk_) :: nlev, ilev, sweeps + logical :: pre, post + character(len=20) :: name @@ -1492,8 +1501,8 @@ contains & a_err='wrong call level to inner_mult') goto 9999 end if - ictxt = p%precv(level)%base_desc%get_context() - call psb_info(ictxt, me, np) + ctxt = p%precv(level)%base_desc%get_context() + call psb_info(ctxt, me, np) if(debug_level > 1) then write(debug_unit,*) me,' inner_mult at level ',level diff --git a/amgprec/impl/amg_zmlprec_bld.f90 b/amgprec/impl/amg_zmlprec_bld.f90 index 99e44ad0..bb8621d8 100644 --- a/amgprec/impl/amg_zmlprec_bld.f90 +++ b/amgprec/impl/amg_zmlprec_bld.f90 @@ -94,12 +94,13 @@ subroutine amg_zmlprec_bld(a,desc_a,p,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local Variables - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs - real(psb_dpk_) :: mnaggratio - integer(psb_ipk_) :: ipv(amg_ifpsz_), val - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k, err_act, iszv, newsz, casize, nplevs, mxplevs + real(psb_dpk_) :: mnaggratio + integer(psb_ipk_) :: ipv(amg_ifpsz_), val + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err info=psb_success_ err=0 @@ -112,8 +113,8 @@ subroutine amg_zmlprec_bld(a,desc_a,p,info,amold,vmold,imold) name = 'amg_zmlprec_bld' info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& diff --git a/amgprec/impl/amg_zprecaply.f90 b/amgprec/impl/amg_zprecaply.f90 index 9de0ab3c..622c84a6 100644 --- a/amgprec/impl/amg_zprecaply.f90 +++ b/amgprec/impl/amg_zprecaply.f90 @@ -91,16 +91,17 @@ subroutine amg_zprecaply(prec,x,y,desc_data,info,trans,work) complex(psb_dpk_), pointer :: work_(:) complex(psb_dpk_), allocatable :: w1(:), w2(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + character(len=20) :: name name='amg_zprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) @@ -256,8 +257,9 @@ subroutine amg_zprecaply1(prec,x,desc_data,info,trans) character(len=1), optional :: trans ! Local variables - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act complex(psb_dpk_), pointer :: ww(:), w1(:) character(len=20) :: name @@ -266,8 +268,8 @@ subroutine amg_zprecaply1(prec,x,desc_data,info,trans) call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) allocate(ww(size(x)),w1(size(x)),stat=info) if (info /= psb_success_) then @@ -321,17 +323,18 @@ subroutine amg_zprecaply2_vect(prec,x,y,desc_data,info,trans,work) ! Local variables character :: trans_ complex(psb_dpk_), pointer :: work_(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - logical :: do_alloc_wrk - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + logical :: do_alloc_wrk + character(len=20) :: name name='amg_zprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) @@ -470,17 +473,18 @@ subroutine amg_zprecaply1_vect(prec,x,desc_data,info,trans,work) ! Local variables character :: trans_ complex(psb_dpk_), pointer :: work_(:) - integer(psb_ipk_) :: ictxt,np,me - integer(psb_ipk_) :: err_act,iwsz, k, nswps - logical :: do_alloc_wrk - character(len=20) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act,iwsz, k, nswps + logical :: do_alloc_wrk + character(len=20) :: name name='amg_zprecaply' info = psb_success_ call psb_erractionsave(err_act) - ictxt = desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_data%get_context() + call psb_info(ctxt, me, np) if (present(trans)) then trans_=psb_toupper(trans) diff --git a/amgprec/impl/amg_zprecbld.f90 b/amgprec/impl/amg_zprecbld.f90 index 4421180a..0de2ff9a 100644 --- a/amgprec/impl/amg_zprecbld.f90 +++ b/amgprec/impl/amg_zprecbld.f90 @@ -75,10 +75,10 @@ subroutine amg_zprecbld(a,desc_a,prec,info,amold,vmold,imold) ! Local Variables type(amg_zprec_type) :: t_prec - integer(psb_ipk_) :: ictxt, me,np - integer(psb_ipk_) :: err,i,k,err_act, iszv, newsz - integer(psb_ipk_) :: ipv(amg_ifpsz_), val - integer(psb_ipk_) :: int_err(5) + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: err,i,k,err_act, iszv, newsz + integer(psb_ipk_) :: ipv(amg_ifpsz_), val type(amg_dml_parms) :: prm integer(psb_ipk_) :: debug_level, debug_unit character(len=20) :: name, ch_err @@ -94,10 +94,9 @@ subroutine amg_zprecbld(a,desc_a,prec,info,amold,vmold,imold) name = 'amg_zprecbld' info = psb_success_ - int_err(1) = 0 - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) - prec%ictxt = ictxt + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) + prec%ctxt = ctxt if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& @@ -116,7 +115,7 @@ subroutine amg_zprecbld(a,desc_a,prec,info,amold,vmold,imold) ! newsz = -1 iszv = size(prec%precv) - call psb_bcast(ictxt,iszv) + call psb_bcast(ctxt,iszv) if (iszv /= size(prec%precv)) then info=psb_err_internal_error_ call psb_errpush(info,name,a_err='Inconsistent size of precv') diff --git a/amgprec/impl/amg_zprecinit.F90 b/amgprec/impl/amg_zprecinit.F90 index bb7d321c..e256c750 100644 --- a/amgprec/impl/amg_zprecinit.F90 +++ b/amgprec/impl/amg_zprecinit.F90 @@ -88,7 +88,7 @@ ! info - integer, output. ! Error code. ! -subroutine amg_zprecinit(ictxt,prec,ptype,info) +subroutine amg_zprecinit(ctxt,prec,ptype,info) use psb_base_mod use amg_z_prec_mod, amg_protect_name => amg_zprecinit @@ -109,15 +109,15 @@ subroutine amg_zprecinit(ictxt,prec,ptype,info) implicit none ! Arguments - integer(psb_ipk_), intent(in) :: ictxt + type(psb_ctxt_type), intent(in) :: ctxt class(amg_zprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info ! Local variables - integer(psb_ipk_) :: nlev_, ilev_ - real(psb_dpk_) :: thr - character(len=*), parameter :: name='amg_precinit' + integer(psb_ipk_) :: nlev_, ilev_ + real(psb_dpk_) :: thr + character(len=*), parameter :: name='amg_precinit' info = psb_success_ if (allocated(prec%precv)) then @@ -126,7 +126,7 @@ subroutine amg_zprecinit(ictxt,prec,ptype,info) ! Do we want to do something? endif endif - prec%ictxt = ictxt + prec%ctxt = ctxt prec%ag_data%min_coarse_size = -1 select case(psb_toupper(trim(ptype))) diff --git a/amgprec/impl/level/amg_c_base_onelev_build.f90 b/amgprec/impl/level/amg_c_base_onelev_build.f90 index 5d1de2f8..9af46a8f 100644 --- a/amgprec/impl/level/amg_c_base_onelev_build.f90 +++ b/amgprec/impl/level/amg_c_base_onelev_build.f90 @@ -46,10 +46,11 @@ subroutine amg_c_base_onelev_build(lv,info,amold,vmold,imold,ilv) class(psb_i_base_vect_type), intent(in), optional :: imold integer(psb_ipk_), intent(in), optional :: ilv ! Local - integer(psb_ipk_) :: err,i,k, err_act - integer(psb_ipk_) :: ictxt, me, np - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + integer(psb_ipk_) :: err,i,k, err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err name = 'amg_onelev_build' info=psb_success_ @@ -67,8 +68,8 @@ subroutine amg_c_base_onelev_build(lv,info,amold,vmold,imold,ilv) goto 9999 end if info = psb_success_ - ictxt = lv%base_desc%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = lv%base_desc%get_ctxt() + call psb_info(ctxt,me,np) if (.not.allocated(lv%sm)) then !! Error: should have called amg_dprecinit @@ -86,7 +87,7 @@ subroutine amg_c_base_onelev_build(lv,info,amold,vmold,imold,ilv) lv%ac_nz_tot = lv%ac_nz_loc select case(lv%parms%coarse_mat) case(amg_distr_mat_) - call psb_sum(ictxt,lv%ac_nz_tot) + call psb_sum(ctxt,lv%ac_nz_tot) case(amg_repl_mat_) ! Do nothing case default diff --git a/amgprec/impl/level/amg_c_base_onelev_dump.f90 b/amgprec/impl/level/amg_c_base_onelev_dump.f90 index 2086541b..6da63d94 100644 --- a/amgprec/impl/level/amg_c_base_onelev_dump.f90 +++ b/amgprec/impl/level/amg_c_base_onelev_dump.f90 @@ -47,9 +47,10 @@ subroutine amg_c_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: ac, rp, smoother, solver, tprol, global_num ! Local variables - integer(psb_ipk_) :: i, j, il1, iln, lname, lev, ni - integer(psb_ipk_) :: icontxt,iam, np - character(len=80) :: prefix_, frmt + integer(psb_ipk_) :: i, j, il1, iln, lname, lev, ni + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_, frmt character(len=1024) :: fname logical :: ac_, rp_, tprol_, global_num_ integer(psb_lpk_), allocatable :: ivr(:), ivc(:) @@ -63,10 +64,9 @@ subroutine amg_c_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& end if if (associated(lv%base_desc)) then - icontxt = lv%base_desc%get_context() - call psb_info(icontxt,iam,np) + ctxt = lv%base_desc%get_context() + call psb_info(ctxt,iam,np) else - icontxt = -1 iam = -1 np = -1 end if diff --git a/amgprec/impl/level/amg_c_base_onelev_mat_asb.f90 b/amgprec/impl/level/amg_c_base_onelev_mat_asb.f90 index a26266be..ad2a869e 100644 --- a/amgprec/impl/level/amg_c_base_onelev_mat_asb.f90 +++ b/amgprec/impl/level/amg_c_base_onelev_mat_asb.f90 @@ -102,12 +102,13 @@ subroutine amg_c_base_onelev_mat_asb(lv,a,desc_a,ilaggr,nlaggr,t_prol,info) ! Local variables - character(len=24) :: name - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - type(psb_cspmat_type) :: ac, op_restr, op_prol - integer(psb_ipk_) :: nzl, inl - integer(psb_ipk_) :: debug_level, debug_unit + character(len=24) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + type(psb_cspmat_type) :: ac, op_restr, op_prol + integer(psb_ipk_) :: nzl, inl + integer(psb_ipk_) :: debug_level, debug_unit name='amg_c_onelev_mat_asb' call psb_erractionsave(err_act) @@ -117,8 +118,8 @@ subroutine amg_c_base_onelev_mat_asb(lv,a,desc_a,ilaggr,nlaggr,t_prol,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(lv%parms%aggr_prol,'Smoother',& & amg_smooth_prol_,is_legal_ml_aggr_prol) diff --git a/amgprec/impl/level/amg_d_base_onelev_build.f90 b/amgprec/impl/level/amg_d_base_onelev_build.f90 index 1c57bbea..345fbfd4 100644 --- a/amgprec/impl/level/amg_d_base_onelev_build.f90 +++ b/amgprec/impl/level/amg_d_base_onelev_build.f90 @@ -46,10 +46,11 @@ subroutine amg_d_base_onelev_build(lv,info,amold,vmold,imold,ilv) class(psb_i_base_vect_type), intent(in), optional :: imold integer(psb_ipk_), intent(in), optional :: ilv ! Local - integer(psb_ipk_) :: err,i,k, err_act - integer(psb_ipk_) :: ictxt, me, np - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + integer(psb_ipk_) :: err,i,k, err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err name = 'amg_onelev_build' info=psb_success_ @@ -67,8 +68,8 @@ subroutine amg_d_base_onelev_build(lv,info,amold,vmold,imold,ilv) goto 9999 end if info = psb_success_ - ictxt = lv%base_desc%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = lv%base_desc%get_ctxt() + call psb_info(ctxt,me,np) if (.not.allocated(lv%sm)) then !! Error: should have called amg_dprecinit @@ -86,7 +87,7 @@ subroutine amg_d_base_onelev_build(lv,info,amold,vmold,imold,ilv) lv%ac_nz_tot = lv%ac_nz_loc select case(lv%parms%coarse_mat) case(amg_distr_mat_) - call psb_sum(ictxt,lv%ac_nz_tot) + call psb_sum(ctxt,lv%ac_nz_tot) case(amg_repl_mat_) ! Do nothing case default diff --git a/amgprec/impl/level/amg_d_base_onelev_dump.f90 b/amgprec/impl/level/amg_d_base_onelev_dump.f90 index 58904107..b48ad0b1 100644 --- a/amgprec/impl/level/amg_d_base_onelev_dump.f90 +++ b/amgprec/impl/level/amg_d_base_onelev_dump.f90 @@ -47,9 +47,10 @@ subroutine amg_d_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: ac, rp, smoother, solver, tprol, global_num ! Local variables - integer(psb_ipk_) :: i, j, il1, iln, lname, lev, ni - integer(psb_ipk_) :: icontxt,iam, np - character(len=80) :: prefix_, frmt + integer(psb_ipk_) :: i, j, il1, iln, lname, lev, ni + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_, frmt character(len=1024) :: fname logical :: ac_, rp_, tprol_, global_num_ integer(psb_lpk_), allocatable :: ivr(:), ivc(:) @@ -63,10 +64,9 @@ subroutine amg_d_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& end if if (associated(lv%base_desc)) then - icontxt = lv%base_desc%get_context() - call psb_info(icontxt,iam,np) + ctxt = lv%base_desc%get_context() + call psb_info(ctxt,iam,np) else - icontxt = -1 iam = -1 np = -1 end if diff --git a/amgprec/impl/level/amg_d_base_onelev_mat_asb.f90 b/amgprec/impl/level/amg_d_base_onelev_mat_asb.f90 index 76b0f390..72dc551f 100644 --- a/amgprec/impl/level/amg_d_base_onelev_mat_asb.f90 +++ b/amgprec/impl/level/amg_d_base_onelev_mat_asb.f90 @@ -102,12 +102,13 @@ subroutine amg_d_base_onelev_mat_asb(lv,a,desc_a,ilaggr,nlaggr,t_prol,info) ! Local variables - character(len=24) :: name - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - type(psb_dspmat_type) :: ac, op_restr, op_prol - integer(psb_ipk_) :: nzl, inl - integer(psb_ipk_) :: debug_level, debug_unit + character(len=24) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + type(psb_dspmat_type) :: ac, op_restr, op_prol + integer(psb_ipk_) :: nzl, inl + integer(psb_ipk_) :: debug_level, debug_unit name='amg_d_onelev_mat_asb' call psb_erractionsave(err_act) @@ -117,8 +118,8 @@ subroutine amg_d_base_onelev_mat_asb(lv,a,desc_a,ilaggr,nlaggr,t_prol,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(lv%parms%aggr_prol,'Smoother',& & amg_smooth_prol_,is_legal_ml_aggr_prol) diff --git a/amgprec/impl/level/amg_s_base_onelev_build.f90 b/amgprec/impl/level/amg_s_base_onelev_build.f90 index 29e69ac7..4a2e207a 100644 --- a/amgprec/impl/level/amg_s_base_onelev_build.f90 +++ b/amgprec/impl/level/amg_s_base_onelev_build.f90 @@ -46,10 +46,11 @@ subroutine amg_s_base_onelev_build(lv,info,amold,vmold,imold,ilv) class(psb_i_base_vect_type), intent(in), optional :: imold integer(psb_ipk_), intent(in), optional :: ilv ! Local - integer(psb_ipk_) :: err,i,k, err_act - integer(psb_ipk_) :: ictxt, me, np - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + integer(psb_ipk_) :: err,i,k, err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err name = 'amg_onelev_build' info=psb_success_ @@ -67,8 +68,8 @@ subroutine amg_s_base_onelev_build(lv,info,amold,vmold,imold,ilv) goto 9999 end if info = psb_success_ - ictxt = lv%base_desc%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = lv%base_desc%get_ctxt() + call psb_info(ctxt,me,np) if (.not.allocated(lv%sm)) then !! Error: should have called amg_dprecinit @@ -86,7 +87,7 @@ subroutine amg_s_base_onelev_build(lv,info,amold,vmold,imold,ilv) lv%ac_nz_tot = lv%ac_nz_loc select case(lv%parms%coarse_mat) case(amg_distr_mat_) - call psb_sum(ictxt,lv%ac_nz_tot) + call psb_sum(ctxt,lv%ac_nz_tot) case(amg_repl_mat_) ! Do nothing case default diff --git a/amgprec/impl/level/amg_s_base_onelev_dump.f90 b/amgprec/impl/level/amg_s_base_onelev_dump.f90 index 376f4b0c..2cd17503 100644 --- a/amgprec/impl/level/amg_s_base_onelev_dump.f90 +++ b/amgprec/impl/level/amg_s_base_onelev_dump.f90 @@ -47,9 +47,10 @@ subroutine amg_s_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: ac, rp, smoother, solver, tprol, global_num ! Local variables - integer(psb_ipk_) :: i, j, il1, iln, lname, lev, ni - integer(psb_ipk_) :: icontxt,iam, np - character(len=80) :: prefix_, frmt + integer(psb_ipk_) :: i, j, il1, iln, lname, lev, ni + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_, frmt character(len=1024) :: fname logical :: ac_, rp_, tprol_, global_num_ integer(psb_lpk_), allocatable :: ivr(:), ivc(:) @@ -63,10 +64,9 @@ subroutine amg_s_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& end if if (associated(lv%base_desc)) then - icontxt = lv%base_desc%get_context() - call psb_info(icontxt,iam,np) + ctxt = lv%base_desc%get_context() + call psb_info(ctxt,iam,np) else - icontxt = -1 iam = -1 np = -1 end if diff --git a/amgprec/impl/level/amg_s_base_onelev_mat_asb.f90 b/amgprec/impl/level/amg_s_base_onelev_mat_asb.f90 index cdbb348d..4fc7c4b8 100644 --- a/amgprec/impl/level/amg_s_base_onelev_mat_asb.f90 +++ b/amgprec/impl/level/amg_s_base_onelev_mat_asb.f90 @@ -102,12 +102,13 @@ subroutine amg_s_base_onelev_mat_asb(lv,a,desc_a,ilaggr,nlaggr,t_prol,info) ! Local variables - character(len=24) :: name - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - type(psb_sspmat_type) :: ac, op_restr, op_prol - integer(psb_ipk_) :: nzl, inl - integer(psb_ipk_) :: debug_level, debug_unit + character(len=24) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + type(psb_sspmat_type) :: ac, op_restr, op_prol + integer(psb_ipk_) :: nzl, inl + integer(psb_ipk_) :: debug_level, debug_unit name='amg_s_onelev_mat_asb' call psb_erractionsave(err_act) @@ -117,8 +118,8 @@ subroutine amg_s_base_onelev_mat_asb(lv,a,desc_a,ilaggr,nlaggr,t_prol,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(lv%parms%aggr_prol,'Smoother',& & amg_smooth_prol_,is_legal_ml_aggr_prol) diff --git a/amgprec/impl/level/amg_z_base_onelev_build.f90 b/amgprec/impl/level/amg_z_base_onelev_build.f90 index 5abbc092..57020edf 100644 --- a/amgprec/impl/level/amg_z_base_onelev_build.f90 +++ b/amgprec/impl/level/amg_z_base_onelev_build.f90 @@ -46,10 +46,11 @@ subroutine amg_z_base_onelev_build(lv,info,amold,vmold,imold,ilv) class(psb_i_base_vect_type), intent(in), optional :: imold integer(psb_ipk_), intent(in), optional :: ilv ! Local - integer(psb_ipk_) :: err,i,k, err_act - integer(psb_ipk_) :: ictxt, me, np - integer(psb_ipk_) :: debug_level, debug_unit - character(len=20) :: name, ch_err + integer(psb_ipk_) :: err,i,k, err_act + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: me, np + integer(psb_ipk_) :: debug_level, debug_unit + character(len=20) :: name, ch_err name = 'amg_onelev_build' info=psb_success_ @@ -67,8 +68,8 @@ subroutine amg_z_base_onelev_build(lv,info,amold,vmold,imold,ilv) goto 9999 end if info = psb_success_ - ictxt = lv%base_desc%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = lv%base_desc%get_ctxt() + call psb_info(ctxt,me,np) if (.not.allocated(lv%sm)) then !! Error: should have called amg_dprecinit @@ -86,7 +87,7 @@ subroutine amg_z_base_onelev_build(lv,info,amold,vmold,imold,ilv) lv%ac_nz_tot = lv%ac_nz_loc select case(lv%parms%coarse_mat) case(amg_distr_mat_) - call psb_sum(ictxt,lv%ac_nz_tot) + call psb_sum(ctxt,lv%ac_nz_tot) case(amg_repl_mat_) ! Do nothing case default diff --git a/amgprec/impl/level/amg_z_base_onelev_dump.f90 b/amgprec/impl/level/amg_z_base_onelev_dump.f90 index 3704f7bf..5bd45f1e 100644 --- a/amgprec/impl/level/amg_z_base_onelev_dump.f90 +++ b/amgprec/impl/level/amg_z_base_onelev_dump.f90 @@ -47,9 +47,10 @@ subroutine amg_z_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: ac, rp, smoother, solver, tprol, global_num ! Local variables - integer(psb_ipk_) :: i, j, il1, iln, lname, lev, ni - integer(psb_ipk_) :: icontxt,iam, np - character(len=80) :: prefix_, frmt + integer(psb_ipk_) :: i, j, il1, iln, lname, lev, ni + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_, frmt character(len=1024) :: fname logical :: ac_, rp_, tprol_, global_num_ integer(psb_lpk_), allocatable :: ivr(:), ivc(:) @@ -63,10 +64,9 @@ subroutine amg_z_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& end if if (associated(lv%base_desc)) then - icontxt = lv%base_desc%get_context() - call psb_info(icontxt,iam,np) + ctxt = lv%base_desc%get_context() + call psb_info(ctxt,iam,np) else - icontxt = -1 iam = -1 np = -1 end if diff --git a/amgprec/impl/level/amg_z_base_onelev_mat_asb.f90 b/amgprec/impl/level/amg_z_base_onelev_mat_asb.f90 index 0f3df41a..f15960f5 100644 --- a/amgprec/impl/level/amg_z_base_onelev_mat_asb.f90 +++ b/amgprec/impl/level/amg_z_base_onelev_mat_asb.f90 @@ -102,12 +102,13 @@ subroutine amg_z_base_onelev_mat_asb(lv,a,desc_a,ilaggr,nlaggr,t_prol,info) ! Local variables - character(len=24) :: name - integer(psb_ipk_) :: ictxt, np, me - integer(psb_ipk_) :: err_act - type(psb_zspmat_type) :: ac, op_restr, op_prol - integer(psb_ipk_) :: nzl, inl - integer(psb_ipk_) :: debug_level, debug_unit + character(len=24) :: name + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me + integer(psb_ipk_) :: err_act + type(psb_zspmat_type) :: ac, op_restr, op_prol + integer(psb_ipk_) :: nzl, inl + integer(psb_ipk_) :: debug_level, debug_unit name='amg_z_onelev_mat_asb' call psb_erractionsave(err_act) @@ -117,8 +118,8 @@ subroutine amg_z_base_onelev_mat_asb(lv,a,desc_a,ilaggr,nlaggr,t_prol,info) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) call amg_check_def(lv%parms%aggr_prol,'Smoother',& & amg_smooth_prol_,is_legal_ml_aggr_prol) diff --git a/amgprec/impl/smoother/amg_c_as_smoother_apply.f90 b/amgprec/impl/smoother/amg_c_as_smoother_apply.f90 index e4a46327..e3ec1007 100644 --- a/amgprec/impl/smoother/amg_c_as_smoother_apply.f90 +++ b/amgprec/impl/smoother/amg_c_as_smoother_apply.f90 @@ -55,15 +55,16 @@ subroutine amg_c_as_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col, nrow_d, i complex(psb_spk_), pointer :: aux(:) complex(psb_spk_), allocatable :: tx(:),ty(:), ww(:) - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5) - character :: trans_, init_ - character(len=20) :: name='c_as_smoother_apply', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5) + character :: trans_, init_ + character(len=20) :: name='c_as_smoother_apply', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then init_ = psb_toupper(init) diff --git a/amgprec/impl/smoother/amg_c_as_smoother_apply_vect.f90 b/amgprec/impl/smoother/amg_c_as_smoother_apply_vect.f90 index 3edfe44c..023a4862 100644 --- a/amgprec/impl/smoother/amg_c_as_smoother_apply_vect.f90 +++ b/amgprec/impl/smoother/amg_c_as_smoother_apply_vect.f90 @@ -56,16 +56,17 @@ subroutine amg_c_as_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col, nrow_d, i complex(psb_spk_), pointer :: aux(:) type(psb_c_vect_type) :: tx, ty, ww - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5) - character :: trans_, init_ - logical :: do_realloc_wv - character(len=20) :: name='c_as_smoother_apply_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5) + character :: trans_, init_ + logical :: do_realloc_wv + character(len=20) :: name='c_as_smoother_apply_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then init_ = psb_toupper(init) diff --git a/amgprec/impl/smoother/amg_c_as_smoother_bld.f90 b/amgprec/impl/smoother/amg_c_as_smoother_bld.f90 index 26f96313..cf83e90d 100644 --- a/amgprec/impl/smoother/amg_c_as_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_c_as_smoother_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_c_as_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) type(psb_cspmat_type) :: blck, atmp integer(psb_ipk_) :: n_row,n_col, nrow_a, nhalo, novr, data_ complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='c_as_smoother_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act, debug_unit, debug_level + character(len=20) :: name='c_as_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -169,7 +170,7 @@ subroutine amg_c_as_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) goto 9999 end if sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' end' diff --git a/amgprec/impl/smoother/amg_c_as_smoother_cnv.f90 b/amgprec/impl/smoother/amg_c_as_smoother_cnv.f90 index fe3b2c6d..fc3dd1b8 100644 --- a/amgprec/impl/smoother/amg_c_as_smoother_cnv.f90 +++ b/amgprec/impl/smoother/amg_c_as_smoother_cnv.f90 @@ -52,15 +52,16 @@ subroutine amg_c_as_smoother_cnv(sm,info,amold,vmold,imold) type(psb_dspmat_type) :: blck, atmp integer(psb_ipk_) :: n_row,n_col, nrow_a, nhalo, novr, data_, nzeros real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_as_smoother_cnv', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_as_smoother_cnv', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = sm%desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/smoother/amg_c_as_smoother_dmp.f90 b/amgprec/impl/smoother/amg_c_as_smoother_dmp.f90 index e160d682..53fb95f6 100644 --- a/amgprec/impl/smoother/amg_c_as_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_c_as_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_c_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver, character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: smoother_, global_num_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_c_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver, else prefix_ = "dump_smth_c" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(smoother)) then smoother_ = smoother diff --git a/amgprec/impl/smoother/amg_c_as_smoother_prol_a.f90 b/amgprec/impl/smoother/amg_c_as_smoother_prol_a.f90 index 8ed46397..2852573f 100644 --- a/amgprec/impl/smoother/amg_c_as_smoother_prol_a.f90 +++ b/amgprec/impl/smoother/amg_c_as_smoother_prol_a.f90 @@ -46,15 +46,16 @@ subroutine amg_c_as_smoother_prol_a(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='c_as_smther_prol_a', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='c_as_smther_prol_a', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_c_as_smoother_prol_v.f90 b/amgprec/impl/smoother/amg_c_as_smoother_prol_v.f90 index 8c0c9fd6..80912ddc 100644 --- a/amgprec/impl/smoother/amg_c_as_smoother_prol_v.f90 +++ b/amgprec/impl/smoother/amg_c_as_smoother_prol_v.f90 @@ -46,15 +46,16 @@ subroutine amg_c_as_smoother_prol_v(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='c_as_smther_prol_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='c_as_smther_prol_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_c_as_smoother_restr_a.f90 b/amgprec/impl/smoother/amg_c_as_smoother_restr_a.f90 index 36316311..980a82b8 100644 --- a/amgprec/impl/smoother/amg_c_as_smoother_restr_a.f90 +++ b/amgprec/impl/smoother/amg_c_as_smoother_restr_a.f90 @@ -46,15 +46,16 @@ subroutine amg_c_as_smoother_restr_a(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='c_as_smther_restr_a', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='c_as_smther_restr_a', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_c_as_smoother_restr_v.f90 b/amgprec/impl/smoother/amg_c_as_smoother_restr_v.f90 index 0ea05181..3c698c66 100644 --- a/amgprec/impl/smoother/amg_c_as_smoother_restr_v.f90 +++ b/amgprec/impl/smoother/amg_c_as_smoother_restr_v.f90 @@ -46,15 +46,16 @@ subroutine amg_c_as_smoother_restr_v(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='c_as_smther_restr_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='c_as_smther_restr_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_c_base_smoother_descr.f90 b/amgprec/impl/smoother/amg_c_base_smoother_descr.f90 index 612e9135..2b25fe14 100644 --- a/amgprec/impl/smoother/amg_c_base_smoother_descr.f90 +++ b/amgprec/impl/smoother/amg_c_base_smoother_descr.f90 @@ -49,10 +49,9 @@ subroutine amg_c_base_smoother_descr(sm,info,iout,coarse) logical, intent(in), optional :: coarse ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, me, np + integer(psb_ipk_) :: err_act character(len=20), parameter :: name='amg_c_base_smoother_descr' - integer(psb_ipk_) :: iout_ + integer(psb_ipk_) :: iout_ logical :: coarse_ diff --git a/amgprec/impl/smoother/amg_c_base_smoother_dmp.f90 b/amgprec/impl/smoother/amg_c_base_smoother_dmp.f90 index 47d32d8c..a3ab7e00 100644 --- a/amgprec/impl/smoother/amg_c_base_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_c_base_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_c_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solve character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: smoother_, global_num_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_c_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solve else prefix_ = "dump_smth_c" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(global_num)) then global_num_ = global_num diff --git a/amgprec/impl/smoother/amg_c_jac_smoother_apply.f90 b/amgprec/impl/smoother/amg_c_jac_smoother_apply.f90 index d655aac2..9794c8b2 100644 --- a/amgprec/impl/smoother/amg_c_jac_smoother_apply.f90 +++ b/amgprec/impl/smoother/amg_c_jac_smoother_apply.f90 @@ -55,15 +55,16 @@ subroutine amg_c_jac_smoother_apply(alpha,sm,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col complex(psb_spk_), allocatable :: tx(:),ty(:) complex(psb_spk_), pointer :: aux(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='c_jac_smoother_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act + character :: trans_, init_ + character(len=20) :: name='c_jac_smoother_apply' call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then diff --git a/amgprec/impl/smoother/amg_c_jac_smoother_apply_vect.f90 b/amgprec/impl/smoother/amg_c_jac_smoother_apply_vect.f90 index 79d1b069..aecb1ccb 100644 --- a/amgprec/impl/smoother/amg_c_jac_smoother_apply_vect.f90 +++ b/amgprec/impl/smoother/amg_c_jac_smoother_apply_vect.f90 @@ -59,16 +59,17 @@ subroutine amg_c_jac_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col type(psb_c_vect_type) :: tx, ty, r complex(psb_spk_), pointer :: aux(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - real(psb_dpk_) :: res, resdenum - character(len=20) :: name='c_jac_smoother_apply_v' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + real(psb_dpk_) :: res, resdenum + character(len=20) :: name='c_jac_smoother_apply_v' call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then diff --git a/amgprec/impl/smoother/amg_c_jac_smoother_bld.f90 b/amgprec/impl/smoother/amg_c_jac_smoother_bld.f90 index f399cdeb..c8cd9c35 100644 --- a/amgprec/impl/smoother/amg_c_jac_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_c_jac_smoother_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_c_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables type(psb_cspmat_type) :: tmpa - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='c_jac_smoother_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='c_jac_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -78,7 +79,7 @@ subroutine amg_c_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) call sm%nd%free() sm%pa => a sm%nd_nnz_tot = nztota - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) class default @@ -87,7 +88,7 @@ subroutine amg_c_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) ! is acting globally. call sm%nd%free() sm%nd_nnz_tot = 0 - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) else call a%csclip(sm%nd,info,& @@ -102,7 +103,7 @@ subroutine amg_c_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) endif end if sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call a%csclip(tmpa,info,& & jmax=nrow_a,rscale=.false.,cscale=.false.) call sm%sv%build(tmpa,desc_a,info,amold=amold,vmold=vmold) diff --git a/amgprec/impl/smoother/amg_c_jac_smoother_cnv.f90 b/amgprec/impl/smoother/amg_c_jac_smoother_cnv.f90 index a8d2277d..c55dbf6d 100644 --- a/amgprec/impl/smoother/amg_c_jac_smoother_cnv.f90 +++ b/amgprec/impl/smoother/amg_c_jac_smoother_cnv.f90 @@ -49,7 +49,7 @@ subroutine amg_c_jac_smoother_cnv(sm,info,amold,vmold,imold) class(psb_c_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level + integer(psb_ipk_) :: i, err_act, debug_unit, debug_level character(len=20) :: name='d_jac_smoother_cnv', ch_err info=psb_success_ diff --git a/amgprec/impl/smoother/amg_c_jac_smoother_dmp.f90 b/amgprec/impl/smoother/amg_c_jac_smoother_dmp.f90 index 6fa94373..47deb7e6 100644 --- a/amgprec/impl/smoother/amg_c_jac_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_c_jac_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_c_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than integer(psb_lpk_), allocatable :: iv(:) logical :: smoother_, global_num_ ! len of prefix_ @@ -61,8 +62,8 @@ subroutine amg_c_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver else prefix_ = "dump_smth_c" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(smoother)) then smoother_ = smoother diff --git a/amgprec/impl/smoother/amg_c_l1_jac_smoother_bld.f90 b/amgprec/impl/smoother/amg_c_l1_jac_smoother_bld.f90 index 1ef4c2a7..3d5f6de5 100644 --- a/amgprec/impl/smoother/amg_c_l1_jac_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_c_l1_jac_smoother_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_c_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros real(psb_spk_), allocatable :: arwsum(:) type(psb_cspmat_type) :: tmpa - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='c_l1_jac_smoother_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='c_l1_jac_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -80,7 +81,7 @@ subroutine amg_c_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) sm%pa => a sm%nd_nnz_tot = nztota - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) class default @@ -89,7 +90,7 @@ subroutine amg_c_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) ! is acting globally. call sm%nd%free() sm%nd_nnz_tot = 0 - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) else @@ -105,7 +106,7 @@ subroutine amg_c_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) call combine_dl1(sone,arwsum,tmpa,info) sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(tmpa,desc_a,info,amold=amold,vmold=vmold) diff --git a/amgprec/impl/smoother/amg_d_as_smoother_apply.f90 b/amgprec/impl/smoother/amg_d_as_smoother_apply.f90 index fcf9bdcf..5dc6f2d5 100644 --- a/amgprec/impl/smoother/amg_d_as_smoother_apply.f90 +++ b/amgprec/impl/smoother/amg_d_as_smoother_apply.f90 @@ -55,15 +55,16 @@ subroutine amg_d_as_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col, nrow_d, i real(psb_dpk_), pointer :: aux(:) real(psb_dpk_), allocatable :: tx(:),ty(:), ww(:) - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5) - character :: trans_, init_ - character(len=20) :: name='d_as_smoother_apply', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5) + character :: trans_, init_ + character(len=20) :: name='d_as_smoother_apply', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then init_ = psb_toupper(init) diff --git a/amgprec/impl/smoother/amg_d_as_smoother_apply_vect.f90 b/amgprec/impl/smoother/amg_d_as_smoother_apply_vect.f90 index 62a1820f..2f414d0b 100644 --- a/amgprec/impl/smoother/amg_d_as_smoother_apply_vect.f90 +++ b/amgprec/impl/smoother/amg_d_as_smoother_apply_vect.f90 @@ -56,16 +56,17 @@ subroutine amg_d_as_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col, nrow_d, i real(psb_dpk_), pointer :: aux(:) type(psb_d_vect_type) :: tx, ty, ww - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5) - character :: trans_, init_ - logical :: do_realloc_wv - character(len=20) :: name='d_as_smoother_apply_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5) + character :: trans_, init_ + logical :: do_realloc_wv + character(len=20) :: name='d_as_smoother_apply_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then init_ = psb_toupper(init) diff --git a/amgprec/impl/smoother/amg_d_as_smoother_bld.f90 b/amgprec/impl/smoother/amg_d_as_smoother_bld.f90 index 4c860ebb..d3ab1286 100644 --- a/amgprec/impl/smoother/amg_d_as_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_d_as_smoother_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_d_as_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) type(psb_dspmat_type) :: blck, atmp integer(psb_ipk_) :: n_row,n_col, nrow_a, nhalo, novr, data_ real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_as_smoother_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act, debug_unit, debug_level + character(len=20) :: name='d_as_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -169,7 +170,7 @@ subroutine amg_d_as_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) goto 9999 end if sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' end' diff --git a/amgprec/impl/smoother/amg_d_as_smoother_cnv.f90 b/amgprec/impl/smoother/amg_d_as_smoother_cnv.f90 index 660216d9..ef39ccb5 100644 --- a/amgprec/impl/smoother/amg_d_as_smoother_cnv.f90 +++ b/amgprec/impl/smoother/amg_d_as_smoother_cnv.f90 @@ -52,15 +52,16 @@ subroutine amg_d_as_smoother_cnv(sm,info,amold,vmold,imold) type(psb_dspmat_type) :: blck, atmp integer(psb_ipk_) :: n_row,n_col, nrow_a, nhalo, novr, data_, nzeros real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_as_smoother_cnv', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_as_smoother_cnv', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = sm%desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/smoother/amg_d_as_smoother_dmp.f90 b/amgprec/impl/smoother/amg_d_as_smoother_dmp.f90 index fadff51f..66ec5c1a 100644 --- a/amgprec/impl/smoother/amg_d_as_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_d_as_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_d_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver, character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: smoother_, global_num_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_d_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver, else prefix_ = "dump_smth_d" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(smoother)) then smoother_ = smoother diff --git a/amgprec/impl/smoother/amg_d_as_smoother_prol_a.f90 b/amgprec/impl/smoother/amg_d_as_smoother_prol_a.f90 index b1b67d7c..935fe3dd 100644 --- a/amgprec/impl/smoother/amg_d_as_smoother_prol_a.f90 +++ b/amgprec/impl/smoother/amg_d_as_smoother_prol_a.f90 @@ -46,15 +46,16 @@ subroutine amg_d_as_smoother_prol_a(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='d_as_smther_prol_a', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='d_as_smther_prol_a', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_d_as_smoother_prol_v.f90 b/amgprec/impl/smoother/amg_d_as_smoother_prol_v.f90 index 4a0fb1f5..724000cc 100644 --- a/amgprec/impl/smoother/amg_d_as_smoother_prol_v.f90 +++ b/amgprec/impl/smoother/amg_d_as_smoother_prol_v.f90 @@ -46,15 +46,16 @@ subroutine amg_d_as_smoother_prol_v(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='d_as_smther_prol_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='d_as_smther_prol_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_d_as_smoother_restr_a.f90 b/amgprec/impl/smoother/amg_d_as_smoother_restr_a.f90 index e6d4a760..f84e445c 100644 --- a/amgprec/impl/smoother/amg_d_as_smoother_restr_a.f90 +++ b/amgprec/impl/smoother/amg_d_as_smoother_restr_a.f90 @@ -46,15 +46,16 @@ subroutine amg_d_as_smoother_restr_a(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='d_as_smther_restr_a', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='d_as_smther_restr_a', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_d_as_smoother_restr_v.f90 b/amgprec/impl/smoother/amg_d_as_smoother_restr_v.f90 index 48dfe2d7..1b1f9850 100644 --- a/amgprec/impl/smoother/amg_d_as_smoother_restr_v.f90 +++ b/amgprec/impl/smoother/amg_d_as_smoother_restr_v.f90 @@ -46,15 +46,16 @@ subroutine amg_d_as_smoother_restr_v(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='d_as_smther_restr_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='d_as_smther_restr_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_d_base_smoother_descr.f90 b/amgprec/impl/smoother/amg_d_base_smoother_descr.f90 index 792cd4c4..70c92699 100644 --- a/amgprec/impl/smoother/amg_d_base_smoother_descr.f90 +++ b/amgprec/impl/smoother/amg_d_base_smoother_descr.f90 @@ -49,10 +49,9 @@ subroutine amg_d_base_smoother_descr(sm,info,iout,coarse) logical, intent(in), optional :: coarse ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, me, np + integer(psb_ipk_) :: err_act character(len=20), parameter :: name='amg_d_base_smoother_descr' - integer(psb_ipk_) :: iout_ + integer(psb_ipk_) :: iout_ logical :: coarse_ diff --git a/amgprec/impl/smoother/amg_d_base_smoother_dmp.f90 b/amgprec/impl/smoother/amg_d_base_smoother_dmp.f90 index fb8abebd..7a7410a5 100644 --- a/amgprec/impl/smoother/amg_d_base_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_d_base_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_d_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solve character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: smoother_, global_num_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_d_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solve else prefix_ = "dump_smth_d" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(global_num)) then global_num_ = global_num diff --git a/amgprec/impl/smoother/amg_d_jac_smoother_apply.f90 b/amgprec/impl/smoother/amg_d_jac_smoother_apply.f90 index 672438b6..723958d1 100644 --- a/amgprec/impl/smoother/amg_d_jac_smoother_apply.f90 +++ b/amgprec/impl/smoother/amg_d_jac_smoother_apply.f90 @@ -55,15 +55,16 @@ subroutine amg_d_jac_smoother_apply(alpha,sm,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col real(psb_dpk_), allocatable :: tx(:),ty(:) real(psb_dpk_), pointer :: aux(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='d_jac_smoother_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act + character :: trans_, init_ + character(len=20) :: name='d_jac_smoother_apply' call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then diff --git a/amgprec/impl/smoother/amg_d_jac_smoother_apply_vect.f90 b/amgprec/impl/smoother/amg_d_jac_smoother_apply_vect.f90 index 35b5da75..8eabf34f 100644 --- a/amgprec/impl/smoother/amg_d_jac_smoother_apply_vect.f90 +++ b/amgprec/impl/smoother/amg_d_jac_smoother_apply_vect.f90 @@ -59,16 +59,17 @@ subroutine amg_d_jac_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col type(psb_d_vect_type) :: tx, ty, r real(psb_dpk_), pointer :: aux(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - real(psb_dpk_) :: res, resdenum - character(len=20) :: name='d_jac_smoother_apply_v' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + real(psb_dpk_) :: res, resdenum + character(len=20) :: name='d_jac_smoother_apply_v' call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then diff --git a/amgprec/impl/smoother/amg_d_jac_smoother_bld.f90 b/amgprec/impl/smoother/amg_d_jac_smoother_bld.f90 index 820cece6..53f37e31 100644 --- a/amgprec/impl/smoother/amg_d_jac_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_d_jac_smoother_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_d_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables type(psb_dspmat_type) :: tmpa - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_jac_smoother_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_jac_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -78,7 +79,7 @@ subroutine amg_d_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) call sm%nd%free() sm%pa => a sm%nd_nnz_tot = nztota - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) class default @@ -87,7 +88,7 @@ subroutine amg_d_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) ! is acting globally. call sm%nd%free() sm%nd_nnz_tot = 0 - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) else call a%csclip(sm%nd,info,& @@ -102,7 +103,7 @@ subroutine amg_d_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) endif end if sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call a%csclip(tmpa,info,& & jmax=nrow_a,rscale=.false.,cscale=.false.) call sm%sv%build(tmpa,desc_a,info,amold=amold,vmold=vmold) diff --git a/amgprec/impl/smoother/amg_d_jac_smoother_cnv.f90 b/amgprec/impl/smoother/amg_d_jac_smoother_cnv.f90 index d3dac806..2945b926 100644 --- a/amgprec/impl/smoother/amg_d_jac_smoother_cnv.f90 +++ b/amgprec/impl/smoother/amg_d_jac_smoother_cnv.f90 @@ -49,7 +49,7 @@ subroutine amg_d_jac_smoother_cnv(sm,info,amold,vmold,imold) class(psb_d_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level + integer(psb_ipk_) :: i, err_act, debug_unit, debug_level character(len=20) :: name='d_jac_smoother_cnv', ch_err info=psb_success_ diff --git a/amgprec/impl/smoother/amg_d_jac_smoother_dmp.f90 b/amgprec/impl/smoother/amg_d_jac_smoother_dmp.f90 index e32b2375..db1b5e47 100644 --- a/amgprec/impl/smoother/amg_d_jac_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_d_jac_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_d_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than integer(psb_lpk_), allocatable :: iv(:) logical :: smoother_, global_num_ ! len of prefix_ @@ -61,8 +62,8 @@ subroutine amg_d_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver else prefix_ = "dump_smth_d" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(smoother)) then smoother_ = smoother diff --git a/amgprec/impl/smoother/amg_d_l1_jac_smoother_bld.f90 b/amgprec/impl/smoother/amg_d_l1_jac_smoother_bld.f90 index 697bf1cd..5fb43d8a 100644 --- a/amgprec/impl/smoother/amg_d_l1_jac_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_d_l1_jac_smoother_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_d_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros real(psb_dpk_), allocatable :: arwsum(:) type(psb_dspmat_type) :: tmpa - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_l1_jac_smoother_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_l1_jac_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -80,7 +81,7 @@ subroutine amg_d_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) sm%pa => a sm%nd_nnz_tot = nztota - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) class default @@ -89,7 +90,7 @@ subroutine amg_d_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) ! is acting globally. call sm%nd%free() sm%nd_nnz_tot = 0 - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) else @@ -105,7 +106,7 @@ subroutine amg_d_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) call combine_dl1(done,arwsum,tmpa,info) sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(tmpa,desc_a,info,amold=amold,vmold=vmold) diff --git a/amgprec/impl/smoother/amg_s_as_smoother_apply.f90 b/amgprec/impl/smoother/amg_s_as_smoother_apply.f90 index 20a798c4..ca9179c3 100644 --- a/amgprec/impl/smoother/amg_s_as_smoother_apply.f90 +++ b/amgprec/impl/smoother/amg_s_as_smoother_apply.f90 @@ -55,15 +55,16 @@ subroutine amg_s_as_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col, nrow_d, i real(psb_spk_), pointer :: aux(:) real(psb_spk_), allocatable :: tx(:),ty(:), ww(:) - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5) - character :: trans_, init_ - character(len=20) :: name='s_as_smoother_apply', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5) + character :: trans_, init_ + character(len=20) :: name='s_as_smoother_apply', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then init_ = psb_toupper(init) diff --git a/amgprec/impl/smoother/amg_s_as_smoother_apply_vect.f90 b/amgprec/impl/smoother/amg_s_as_smoother_apply_vect.f90 index 8b6c7830..f8a9d517 100644 --- a/amgprec/impl/smoother/amg_s_as_smoother_apply_vect.f90 +++ b/amgprec/impl/smoother/amg_s_as_smoother_apply_vect.f90 @@ -56,16 +56,17 @@ subroutine amg_s_as_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col, nrow_d, i real(psb_spk_), pointer :: aux(:) type(psb_s_vect_type) :: tx, ty, ww - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5) - character :: trans_, init_ - logical :: do_realloc_wv - character(len=20) :: name='s_as_smoother_apply_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5) + character :: trans_, init_ + logical :: do_realloc_wv + character(len=20) :: name='s_as_smoother_apply_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then init_ = psb_toupper(init) diff --git a/amgprec/impl/smoother/amg_s_as_smoother_bld.f90 b/amgprec/impl/smoother/amg_s_as_smoother_bld.f90 index 509169c2..c257c213 100644 --- a/amgprec/impl/smoother/amg_s_as_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_s_as_smoother_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_s_as_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) type(psb_sspmat_type) :: blck, atmp integer(psb_ipk_) :: n_row,n_col, nrow_a, nhalo, novr, data_ real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='s_as_smoother_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act, debug_unit, debug_level + character(len=20) :: name='s_as_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -169,7 +170,7 @@ subroutine amg_s_as_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) goto 9999 end if sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' end' diff --git a/amgprec/impl/smoother/amg_s_as_smoother_cnv.f90 b/amgprec/impl/smoother/amg_s_as_smoother_cnv.f90 index c5ebb44f..9f8983fe 100644 --- a/amgprec/impl/smoother/amg_s_as_smoother_cnv.f90 +++ b/amgprec/impl/smoother/amg_s_as_smoother_cnv.f90 @@ -52,15 +52,16 @@ subroutine amg_s_as_smoother_cnv(sm,info,amold,vmold,imold) type(psb_dspmat_type) :: blck, atmp integer(psb_ipk_) :: n_row,n_col, nrow_a, nhalo, novr, data_, nzeros real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_as_smoother_cnv', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_as_smoother_cnv', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = sm%desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/smoother/amg_s_as_smoother_dmp.f90 b/amgprec/impl/smoother/amg_s_as_smoother_dmp.f90 index 76aa3c6f..2476a391 100644 --- a/amgprec/impl/smoother/amg_s_as_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_s_as_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_s_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver, character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: smoother_, global_num_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_s_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver, else prefix_ = "dump_smth_s" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(smoother)) then smoother_ = smoother diff --git a/amgprec/impl/smoother/amg_s_as_smoother_prol_a.f90 b/amgprec/impl/smoother/amg_s_as_smoother_prol_a.f90 index cd7d4230..633e6afe 100644 --- a/amgprec/impl/smoother/amg_s_as_smoother_prol_a.f90 +++ b/amgprec/impl/smoother/amg_s_as_smoother_prol_a.f90 @@ -46,15 +46,16 @@ subroutine amg_s_as_smoother_prol_a(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='s_as_smther_prol_a', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='s_as_smther_prol_a', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_s_as_smoother_prol_v.f90 b/amgprec/impl/smoother/amg_s_as_smoother_prol_v.f90 index 43417998..f7ea0c93 100644 --- a/amgprec/impl/smoother/amg_s_as_smoother_prol_v.f90 +++ b/amgprec/impl/smoother/amg_s_as_smoother_prol_v.f90 @@ -46,15 +46,16 @@ subroutine amg_s_as_smoother_prol_v(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='s_as_smther_prol_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='s_as_smther_prol_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_s_as_smoother_restr_a.f90 b/amgprec/impl/smoother/amg_s_as_smoother_restr_a.f90 index afa95a86..874bc2ea 100644 --- a/amgprec/impl/smoother/amg_s_as_smoother_restr_a.f90 +++ b/amgprec/impl/smoother/amg_s_as_smoother_restr_a.f90 @@ -46,15 +46,16 @@ subroutine amg_s_as_smoother_restr_a(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='s_as_smther_restr_a', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='s_as_smther_restr_a', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_s_as_smoother_restr_v.f90 b/amgprec/impl/smoother/amg_s_as_smoother_restr_v.f90 index 933f5c62..c136e8e1 100644 --- a/amgprec/impl/smoother/amg_s_as_smoother_restr_v.f90 +++ b/amgprec/impl/smoother/amg_s_as_smoother_restr_v.f90 @@ -46,15 +46,16 @@ subroutine amg_s_as_smoother_restr_v(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='s_as_smther_restr_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='s_as_smther_restr_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_s_base_smoother_descr.f90 b/amgprec/impl/smoother/amg_s_base_smoother_descr.f90 index d17fe28e..5c773141 100644 --- a/amgprec/impl/smoother/amg_s_base_smoother_descr.f90 +++ b/amgprec/impl/smoother/amg_s_base_smoother_descr.f90 @@ -49,10 +49,9 @@ subroutine amg_s_base_smoother_descr(sm,info,iout,coarse) logical, intent(in), optional :: coarse ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, me, np + integer(psb_ipk_) :: err_act character(len=20), parameter :: name='amg_s_base_smoother_descr' - integer(psb_ipk_) :: iout_ + integer(psb_ipk_) :: iout_ logical :: coarse_ diff --git a/amgprec/impl/smoother/amg_s_base_smoother_dmp.f90 b/amgprec/impl/smoother/amg_s_base_smoother_dmp.f90 index a0258814..8b0d11e7 100644 --- a/amgprec/impl/smoother/amg_s_base_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_s_base_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_s_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solve character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: smoother_, global_num_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_s_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solve else prefix_ = "dump_smth_s" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(global_num)) then global_num_ = global_num diff --git a/amgprec/impl/smoother/amg_s_jac_smoother_apply.f90 b/amgprec/impl/smoother/amg_s_jac_smoother_apply.f90 index a8e7fcdd..747bbe70 100644 --- a/amgprec/impl/smoother/amg_s_jac_smoother_apply.f90 +++ b/amgprec/impl/smoother/amg_s_jac_smoother_apply.f90 @@ -55,15 +55,16 @@ subroutine amg_s_jac_smoother_apply(alpha,sm,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col real(psb_spk_), allocatable :: tx(:),ty(:) real(psb_spk_), pointer :: aux(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='s_jac_smoother_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act + character :: trans_, init_ + character(len=20) :: name='s_jac_smoother_apply' call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then diff --git a/amgprec/impl/smoother/amg_s_jac_smoother_apply_vect.f90 b/amgprec/impl/smoother/amg_s_jac_smoother_apply_vect.f90 index 72de2c40..ea34fc37 100644 --- a/amgprec/impl/smoother/amg_s_jac_smoother_apply_vect.f90 +++ b/amgprec/impl/smoother/amg_s_jac_smoother_apply_vect.f90 @@ -59,16 +59,17 @@ subroutine amg_s_jac_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col type(psb_s_vect_type) :: tx, ty, r real(psb_spk_), pointer :: aux(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - real(psb_dpk_) :: res, resdenum - character(len=20) :: name='s_jac_smoother_apply_v' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + real(psb_dpk_) :: res, resdenum + character(len=20) :: name='s_jac_smoother_apply_v' call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then diff --git a/amgprec/impl/smoother/amg_s_jac_smoother_bld.f90 b/amgprec/impl/smoother/amg_s_jac_smoother_bld.f90 index a0327f49..050a9e51 100644 --- a/amgprec/impl/smoother/amg_s_jac_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_s_jac_smoother_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_s_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables type(psb_sspmat_type) :: tmpa - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='s_jac_smoother_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='s_jac_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -78,7 +79,7 @@ subroutine amg_s_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) call sm%nd%free() sm%pa => a sm%nd_nnz_tot = nztota - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) class default @@ -87,7 +88,7 @@ subroutine amg_s_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) ! is acting globally. call sm%nd%free() sm%nd_nnz_tot = 0 - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) else call a%csclip(sm%nd,info,& @@ -102,7 +103,7 @@ subroutine amg_s_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) endif end if sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call a%csclip(tmpa,info,& & jmax=nrow_a,rscale=.false.,cscale=.false.) call sm%sv%build(tmpa,desc_a,info,amold=amold,vmold=vmold) diff --git a/amgprec/impl/smoother/amg_s_jac_smoother_cnv.f90 b/amgprec/impl/smoother/amg_s_jac_smoother_cnv.f90 index 6aa1b4c2..4eab4433 100644 --- a/amgprec/impl/smoother/amg_s_jac_smoother_cnv.f90 +++ b/amgprec/impl/smoother/amg_s_jac_smoother_cnv.f90 @@ -49,7 +49,7 @@ subroutine amg_s_jac_smoother_cnv(sm,info,amold,vmold,imold) class(psb_s_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level + integer(psb_ipk_) :: i, err_act, debug_unit, debug_level character(len=20) :: name='d_jac_smoother_cnv', ch_err info=psb_success_ diff --git a/amgprec/impl/smoother/amg_s_jac_smoother_dmp.f90 b/amgprec/impl/smoother/amg_s_jac_smoother_dmp.f90 index e2a318b7..3a4173c2 100644 --- a/amgprec/impl/smoother/amg_s_jac_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_s_jac_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_s_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than integer(psb_lpk_), allocatable :: iv(:) logical :: smoother_, global_num_ ! len of prefix_ @@ -61,8 +62,8 @@ subroutine amg_s_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver else prefix_ = "dump_smth_s" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(smoother)) then smoother_ = smoother diff --git a/amgprec/impl/smoother/amg_s_l1_jac_smoother_bld.f90 b/amgprec/impl/smoother/amg_s_l1_jac_smoother_bld.f90 index 6c408fe8..e072b6eb 100644 --- a/amgprec/impl/smoother/amg_s_l1_jac_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_s_l1_jac_smoother_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_s_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros real(psb_spk_), allocatable :: arwsum(:) type(psb_sspmat_type) :: tmpa - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='s_l1_jac_smoother_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='s_l1_jac_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -80,7 +81,7 @@ subroutine amg_s_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) sm%pa => a sm%nd_nnz_tot = nztota - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) class default @@ -89,7 +90,7 @@ subroutine amg_s_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) ! is acting globally. call sm%nd%free() sm%nd_nnz_tot = 0 - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) else @@ -105,7 +106,7 @@ subroutine amg_s_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) call combine_dl1(sone,arwsum,tmpa,info) sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(tmpa,desc_a,info,amold=amold,vmold=vmold) diff --git a/amgprec/impl/smoother/amg_z_as_smoother_apply.f90 b/amgprec/impl/smoother/amg_z_as_smoother_apply.f90 index 5a718643..90dcb20c 100644 --- a/amgprec/impl/smoother/amg_z_as_smoother_apply.f90 +++ b/amgprec/impl/smoother/amg_z_as_smoother_apply.f90 @@ -55,15 +55,16 @@ subroutine amg_z_as_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col, nrow_d, i complex(psb_dpk_), pointer :: aux(:) complex(psb_dpk_), allocatable :: tx(:),ty(:), ww(:) - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5) - character :: trans_, init_ - character(len=20) :: name='z_as_smoother_apply', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5) + character :: trans_, init_ + character(len=20) :: name='z_as_smoother_apply', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then init_ = psb_toupper(init) diff --git a/amgprec/impl/smoother/amg_z_as_smoother_apply_vect.f90 b/amgprec/impl/smoother/amg_z_as_smoother_apply_vect.f90 index ae66634f..03a3c9cc 100644 --- a/amgprec/impl/smoother/amg_z_as_smoother_apply_vect.f90 +++ b/amgprec/impl/smoother/amg_z_as_smoother_apply_vect.f90 @@ -56,16 +56,17 @@ subroutine amg_z_as_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col, nrow_d, i complex(psb_dpk_), pointer :: aux(:) type(psb_z_vect_type) :: tx, ty, ww - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5) - character :: trans_, init_ - logical :: do_realloc_wv - character(len=20) :: name='z_as_smoother_apply_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5) + character :: trans_, init_ + logical :: do_realloc_wv + character(len=20) :: name='z_as_smoother_apply_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then init_ = psb_toupper(init) diff --git a/amgprec/impl/smoother/amg_z_as_smoother_bld.f90 b/amgprec/impl/smoother/amg_z_as_smoother_bld.f90 index 16d443af..7bff38bd 100644 --- a/amgprec/impl/smoother/amg_z_as_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_z_as_smoother_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_z_as_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) type(psb_zspmat_type) :: blck, atmp integer(psb_ipk_) :: n_row,n_col, nrow_a, nhalo, novr, data_ complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='z_as_smoother_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act, debug_unit, debug_level + character(len=20) :: name='z_as_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -169,7 +170,7 @@ subroutine amg_z_as_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) goto 9999 end if sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' end' diff --git a/amgprec/impl/smoother/amg_z_as_smoother_cnv.f90 b/amgprec/impl/smoother/amg_z_as_smoother_cnv.f90 index 2a2e5ac5..f637629e 100644 --- a/amgprec/impl/smoother/amg_z_as_smoother_cnv.f90 +++ b/amgprec/impl/smoother/amg_z_as_smoother_cnv.f90 @@ -52,15 +52,16 @@ subroutine amg_z_as_smoother_cnv(sm,info,amold,vmold,imold) type(psb_dspmat_type) :: blck, atmp integer(psb_ipk_) :: n_row,n_col, nrow_a, nhalo, novr, data_, nzeros real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_as_smoother_cnv', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_as_smoother_cnv', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = sm%desc_data%get_context() - call psb_info(ictxt, me, np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/smoother/amg_z_as_smoother_dmp.f90 b/amgprec/impl/smoother/amg_z_as_smoother_dmp.f90 index 001d6339..36bf7204 100644 --- a/amgprec/impl/smoother/amg_z_as_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_z_as_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_z_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver, character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: smoother_, global_num_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_z_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver, else prefix_ = "dump_smth_z" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(smoother)) then smoother_ = smoother diff --git a/amgprec/impl/smoother/amg_z_as_smoother_prol_a.f90 b/amgprec/impl/smoother/amg_z_as_smoother_prol_a.f90 index eeff9f7e..e695f02e 100644 --- a/amgprec/impl/smoother/amg_z_as_smoother_prol_a.f90 +++ b/amgprec/impl/smoother/amg_z_as_smoother_prol_a.f90 @@ -46,15 +46,16 @@ subroutine amg_z_as_smoother_prol_a(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='z_as_smther_prol_a', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='z_as_smther_prol_a', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_z_as_smoother_prol_v.f90 b/amgprec/impl/smoother/amg_z_as_smoother_prol_v.f90 index 43acbd24..8747b818 100644 --- a/amgprec/impl/smoother/amg_z_as_smoother_prol_v.f90 +++ b/amgprec/impl/smoother/amg_z_as_smoother_prol_v.f90 @@ -46,15 +46,16 @@ subroutine amg_z_as_smoother_prol_v(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='z_as_smther_prol_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='z_as_smther_prol_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_z_as_smoother_restr_a.f90 b/amgprec/impl/smoother/amg_z_as_smoother_restr_a.f90 index 621ff469..7d4c4964 100644 --- a/amgprec/impl/smoother/amg_z_as_smoother_restr_a.f90 +++ b/amgprec/impl/smoother/amg_z_as_smoother_restr_a.f90 @@ -46,15 +46,16 @@ subroutine amg_z_as_smoother_restr_a(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='z_as_smther_restr_a', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='z_as_smther_restr_a', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_z_as_smoother_restr_v.f90 b/amgprec/impl/smoother/amg_z_as_smoother_restr_v.f90 index 175de8ad..e57f24a0 100644 --- a/amgprec/impl/smoother/amg_z_as_smoother_restr_v.f90 +++ b/amgprec/impl/smoother/amg_z_as_smoother_restr_v.f90 @@ -46,15 +46,16 @@ subroutine amg_z_as_smoother_restr_v(sm,x,trans,work,info,data) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: data !Local - integer(psb_ipk_) :: ictxt,np,me, err_act,isz,int_err(5), data_ - character :: trans_ - character(len=20) :: name='z_as_smther_restr_v', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, err_act,isz,int_err(5), data_ + character :: trans_ + character(len=20) :: name='z_as_smther_restr_v', ch_err call psb_erractionsave(err_act) info = psb_success_ - ictxt = sm%desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = sm%desc_data%get_context() + call psb_info(ctxt,me,np) trans_ = psb_toupper(trans) select case(trans_) diff --git a/amgprec/impl/smoother/amg_z_base_smoother_descr.f90 b/amgprec/impl/smoother/amg_z_base_smoother_descr.f90 index 76f7f3ba..3d632fab 100644 --- a/amgprec/impl/smoother/amg_z_base_smoother_descr.f90 +++ b/amgprec/impl/smoother/amg_z_base_smoother_descr.f90 @@ -49,10 +49,9 @@ subroutine amg_z_base_smoother_descr(sm,info,iout,coarse) logical, intent(in), optional :: coarse ! Local variables - integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt, me, np + integer(psb_ipk_) :: err_act character(len=20), parameter :: name='amg_z_base_smoother_descr' - integer(psb_ipk_) :: iout_ + integer(psb_ipk_) :: iout_ logical :: coarse_ diff --git a/amgprec/impl/smoother/amg_z_base_smoother_dmp.f90 b/amgprec/impl/smoother/amg_z_base_smoother_dmp.f90 index 0436f09b..89cd37bb 100644 --- a/amgprec/impl/smoother/amg_z_base_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_z_base_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_z_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solve character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: smoother_, global_num_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_z_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solve else prefix_ = "dump_smth_z" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(global_num)) then global_num_ = global_num diff --git a/amgprec/impl/smoother/amg_z_jac_smoother_apply.f90 b/amgprec/impl/smoother/amg_z_jac_smoother_apply.f90 index 0202af9b..d18fab58 100644 --- a/amgprec/impl/smoother/amg_z_jac_smoother_apply.f90 +++ b/amgprec/impl/smoother/amg_z_jac_smoother_apply.f90 @@ -55,15 +55,16 @@ subroutine amg_z_jac_smoother_apply(alpha,sm,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col complex(psb_dpk_), allocatable :: tx(:),ty(:) complex(psb_dpk_), pointer :: aux(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='z_jac_smoother_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act + character :: trans_, init_ + character(len=20) :: name='z_jac_smoother_apply' call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then diff --git a/amgprec/impl/smoother/amg_z_jac_smoother_apply_vect.f90 b/amgprec/impl/smoother/amg_z_jac_smoother_apply_vect.f90 index d91332d6..754c2bb6 100644 --- a/amgprec/impl/smoother/amg_z_jac_smoother_apply_vect.f90 +++ b/amgprec/impl/smoother/amg_z_jac_smoother_apply_vect.f90 @@ -59,16 +59,17 @@ subroutine amg_z_jac_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,& integer(psb_ipk_) :: n_row,n_col type(psb_z_vect_type) :: tx, ty, r complex(psb_dpk_), pointer :: aux(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - real(psb_dpk_) :: res, resdenum - character(len=20) :: name='z_jac_smoother_apply_v' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + real(psb_dpk_) :: res, resdenum + character(len=20) :: name='z_jac_smoother_apply_v' call psb_erractionsave(err_act) info = psb_success_ - ictxt = desc_data%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_context() + call psb_info(ctxt,me,np) if (present(init)) then diff --git a/amgprec/impl/smoother/amg_z_jac_smoother_bld.f90 b/amgprec/impl/smoother/amg_z_jac_smoother_bld.f90 index d253e15d..5bc1ac5d 100644 --- a/amgprec/impl/smoother/amg_z_jac_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_z_jac_smoother_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_z_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables type(psb_zspmat_type) :: tmpa - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='z_jac_smoother_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='z_jac_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -78,7 +79,7 @@ subroutine amg_z_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) call sm%nd%free() sm%pa => a sm%nd_nnz_tot = nztota - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) class default @@ -87,7 +88,7 @@ subroutine amg_z_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) ! is acting globally. call sm%nd%free() sm%nd_nnz_tot = 0 - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) else call a%csclip(sm%nd,info,& @@ -102,7 +103,7 @@ subroutine amg_z_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) endif end if sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call a%csclip(tmpa,info,& & jmax=nrow_a,rscale=.false.,cscale=.false.) call sm%sv%build(tmpa,desc_a,info,amold=amold,vmold=vmold) diff --git a/amgprec/impl/smoother/amg_z_jac_smoother_cnv.f90 b/amgprec/impl/smoother/amg_z_jac_smoother_cnv.f90 index e544bd71..8ff9f6c8 100644 --- a/amgprec/impl/smoother/amg_z_jac_smoother_cnv.f90 +++ b/amgprec/impl/smoother/amg_z_jac_smoother_cnv.f90 @@ -49,7 +49,7 @@ subroutine amg_z_jac_smoother_cnv(sm,info,amold,vmold,imold) class(psb_z_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level + integer(psb_ipk_) :: i, err_act, debug_unit, debug_level character(len=20) :: name='d_jac_smoother_cnv', ch_err info=psb_success_ diff --git a/amgprec/impl/smoother/amg_z_jac_smoother_dmp.f90 b/amgprec/impl/smoother/amg_z_jac_smoother_dmp.f90 index b3bd6cf2..450aa755 100644 --- a/amgprec/impl/smoother/amg_z_jac_smoother_dmp.f90 +++ b/amgprec/impl/smoother/amg_z_jac_smoother_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_z_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than integer(psb_lpk_), allocatable :: iv(:) logical :: smoother_, global_num_ ! len of prefix_ @@ -61,8 +62,8 @@ subroutine amg_z_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver else prefix_ = "dump_smth_z" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(smoother)) then smoother_ = smoother diff --git a/amgprec/impl/smoother/amg_z_l1_jac_smoother_bld.f90 b/amgprec/impl/smoother/amg_z_l1_jac_smoother_bld.f90 index e5812aa0..4ddbf779 100644 --- a/amgprec/impl/smoother/amg_z_l1_jac_smoother_bld.f90 +++ b/amgprec/impl/smoother/amg_z_l1_jac_smoother_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_z_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nzeros real(psb_dpk_), allocatable :: arwsum(:) type(psb_zspmat_type) :: tmpa - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='z_l1_jac_smoother_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='z_l1_jac_smoother_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -80,7 +81,7 @@ subroutine amg_z_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) sm%pa => a sm%nd_nnz_tot = nztota - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) class default @@ -89,7 +90,7 @@ subroutine amg_z_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) ! is acting globally. call sm%nd%free() sm%nd_nnz_tot = 0 - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(a,desc_a,info,amold=amold,vmold=vmold) else @@ -105,7 +106,7 @@ subroutine amg_z_l1_jac_smoother_bld(a,desc_a,sm,info,amold,vmold,imold) call combine_dl1(done,arwsum,tmpa,info) sm%nd_nnz_tot = sm%nd%get_nzeros() - call psb_sum(ictxt,sm%nd_nnz_tot) + call psb_sum(ctxt,sm%nd_nnz_tot) call sm%sv%build(tmpa,desc_a,info,amold=amold,vmold=vmold) diff --git a/amgprec/impl/solver/amg_c_base_solver_dmp.f90 b/amgprec/impl/solver/amg_c_base_solver_dmp.f90 index c6b4a4d9..fe3ec1d0 100644 --- a/amgprec/impl/solver/amg_c_base_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_c_base_solver_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_c_base_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_c_base_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu else prefix_ = "dump_slv_c" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_c_bwgs_solver_apply.f90 b/amgprec/impl/solver/amg_c_bwgs_solver_apply.f90 index 5704d118..83fe9e01 100644 --- a/amgprec/impl/solver/amg_c_bwgs_solver_apply.f90 +++ b/amgprec/impl/solver/amg_c_bwgs_solver_apply.f90 @@ -55,13 +55,14 @@ subroutine amg_c_bwgs_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_spk_), allocatable :: temp(:),wv(:),xit(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='c_bwgs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='c_bwgs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_c_bwgs_solver_apply_vect.f90 b/amgprec/impl/solver/amg_c_bwgs_solver_apply_vect.f90 index 4328b9e8..9c171055 100644 --- a/amgprec/impl/solver/amg_c_bwgs_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_c_bwgs_solver_apply_vect.f90 @@ -56,13 +56,14 @@ subroutine amg_c_bwgs_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_spk_), allocatable :: temp(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='c_bwgs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act + character :: trans_, init_ + character(len=20) :: name='c_bwgs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_c_bwgs_solver_bld.f90 b/amgprec/impl/solver/amg_c_bwgs_solver_bld.f90 index bb90f603..ab83d9d2 100644 --- a/amgprec/impl/solver/amg_c_bwgs_solver_bld.f90 +++ b/amgprec/impl/solver/amg_c_bwgs_solver_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_c_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) class(psb_c_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_bwgs_solver_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_bwgs_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_c_diag_solver_apply.f90 b/amgprec/impl/solver/amg_c_diag_solver_apply.f90 index a5ac1786..b2bf160e 100644 --- a/amgprec/impl/solver/amg_c_diag_solver_apply.f90 +++ b/amgprec/impl/solver/amg_c_diag_solver_apply.f90 @@ -54,9 +54,10 @@ subroutine amg_c_diag_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='c_diag_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='c_diag_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_c_diag_solver_apply_vect.f90 b/amgprec/impl/solver/amg_c_diag_solver_apply_vect.f90 index eda6b7a0..48589c2a 100644 --- a/amgprec/impl/solver/amg_c_diag_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_c_diag_solver_apply_vect.f90 @@ -55,9 +55,10 @@ subroutine amg_c_diag_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='c_diag_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='c_diag_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_c_diag_solver_bld.f90 b/amgprec/impl/solver/amg_c_diag_solver_bld.f90 index cef6a047..34390319 100644 --- a/amgprec/impl/solver/amg_c_diag_solver_bld.f90 +++ b/amgprec/impl/solver/amg_c_diag_solver_bld.f90 @@ -55,15 +55,16 @@ subroutine amg_c_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_spk_), allocatable :: tdb(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='c_diag_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='c_diag_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -133,15 +134,16 @@ subroutine amg_c_l1_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_spk_), allocatable :: tdb(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='c_l1_diag_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='c_l1_diag_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_c_diag_solver_dmp.f90 b/amgprec/impl/solver/amg_c_diag_solver_dmp.f90 index a0213dfd..a1967e7a 100644 --- a/amgprec/impl/solver/amg_c_diag_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_c_diag_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_c_diag_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ info = 0 - ictxt = desc%get_context() + ctxt = desc%get_context() - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver @@ -94,18 +95,19 @@ subroutine amg_c_l1_diag_solver_dmp(sv,desc,level,info,prefix,head,solver,global integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ info = 0 - ictxt = desc%get_context() + ctxt = desc%get_context() - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_c_gs_solver_apply.f90 b/amgprec/impl/solver/amg_c_gs_solver_apply.f90 index 7337aa37..852d7e6e 100644 --- a/amgprec/impl/solver/amg_c_gs_solver_apply.f90 +++ b/amgprec/impl/solver/amg_c_gs_solver_apply.f90 @@ -55,13 +55,14 @@ subroutine amg_c_gs_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_spk_), allocatable :: temp(:),wv(:),xit(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='c_gs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='c_gs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_c_gs_solver_apply_vect.f90 b/amgprec/impl/solver/amg_c_gs_solver_apply_vect.f90 index 28efb6ae..2dd6f12f 100644 --- a/amgprec/impl/solver/amg_c_gs_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_c_gs_solver_apply_vect.f90 @@ -56,13 +56,14 @@ subroutine amg_c_gs_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_spk_), allocatable :: temp(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='c_gs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='c_gs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_c_gs_solver_bld.f90 b/amgprec/impl/solver/amg_c_gs_solver_bld.f90 index 879963ff..8e3bb734 100644 --- a/amgprec/impl/solver/amg_c_gs_solver_bld.f90 +++ b/amgprec/impl/solver/amg_c_gs_solver_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_c_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) class(psb_c_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='c_gs_solver_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='c_gs_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_c_gs_solver_dmp.f90 b/amgprec/impl/solver/amg_c_gs_solver_dmp.f90 index b52e8127..70218df9 100644 --- a/amgprec/impl/solver/amg_c_gs_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_c_gs_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_c_gs_solver_dmp(sv,desc,level,info,prefix,head,solver,global_num) integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than integer(psb_lpk_), allocatable :: iv(:) logical :: solver_, global_num_ ! len of prefix_ info = 0 - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_c_id_solver_apply.f90 b/amgprec/impl/solver/amg_c_id_solver_apply.f90 index d47ac4b8..796ba994 100644 --- a/amgprec/impl/solver/amg_c_id_solver_apply.f90 +++ b/amgprec/impl/solver/amg_c_id_solver_apply.f90 @@ -52,10 +52,11 @@ subroutine amg_c_id_solver_apply(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init complex(psb_spk_),intent(inout), optional :: initu(:) - integer(psb_ipk_) :: n_row,n_col - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='c_id_solver_apply' + integer(psb_ipk_) :: n_row,n_col + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='c_id_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_c_id_solver_apply_vect.f90 b/amgprec/impl/solver/amg_c_id_solver_apply_vect.f90 index 2f1e26bc..9cdb55bc 100644 --- a/amgprec/impl/solver/amg_c_id_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_c_id_solver_apply_vect.f90 @@ -53,10 +53,11 @@ subroutine amg_c_id_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init type(psb_c_vect_type),intent(inout), optional :: initu - integer(psb_ipk_) :: n_row,n_col - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='c_id_solver_apply_vect' + integer(psb_ipk_) :: n_row,n_col + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='c_id_solver_apply_vect' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_c_ilu_solver_apply.f90 b/amgprec/impl/solver/amg_c_ilu_solver_apply.f90 index 2bd2dd36..50f31903 100644 --- a/amgprec/impl/solver/amg_c_ilu_solver_apply.f90 +++ b/amgprec/impl/solver/amg_c_ilu_solver_apply.f90 @@ -52,11 +52,11 @@ subroutine amg_c_ilu_solver_apply(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init complex(psb_spk_),intent(inout), optional :: initu(:) - integer(psb_ipk_) :: n_row,n_col + integer(psb_ipk_) :: n_row,n_col complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='c_ilu_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='c_ilu_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_c_ilu_solver_apply_vect.f90 b/amgprec/impl/solver/amg_c_ilu_solver_apply_vect.f90 index 4c461bf9..54a68fe9 100644 --- a/amgprec/impl/solver/amg_c_ilu_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_c_ilu_solver_apply_vect.f90 @@ -56,9 +56,9 @@ subroutine amg_c_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col type(psb_c_vect_type) :: tw, tw1 complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='c_ilu_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='c_ilu_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_c_ilu_solver_bld.f90 b/amgprec/impl/solver/amg_c_ilu_solver_bld.f90 index 76623674..3cdd43f5 100644 --- a/amgprec/impl/solver/amg_c_ilu_solver_bld.f90 +++ b/amgprec/impl/solver/amg_c_ilu_solver_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_c_ilu_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) ! Local variables integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota !!$ complex(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='c_ilu_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='c_ilu_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_c_ilu_solver_dmp.f90 b/amgprec/impl/solver/amg_c_ilu_solver_dmp.f90 index 979e6ac0..d74f4f71 100644 --- a/amgprec/impl/solver/amg_c_ilu_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_c_ilu_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_c_ilu_solver_dmp(sv,desc,level,info,prefix,head,solver,global_num integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_, global_num_ integer(psb_lpk_), allocatable :: iv(:) ! len of prefix_ info = 0 - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_c_mumps_solver_apply.F90 b/amgprec/impl/solver/amg_c_mumps_solver_apply.F90 index 2ae49b88..6096f330 100644 --- a/amgprec/impl/solver/amg_c_mumps_solver_apply.F90 +++ b/amgprec/impl/solver/amg_c_mumps_solver_apply.F90 @@ -60,9 +60,9 @@ subroutine c_mumps_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_epk_) :: eng complex(psb_spk_), allocatable :: ww(:) complex(psb_spk_), allocatable, target :: gx(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='c_mumps_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='c_mumps_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_c_mumps_solver_bld.F90 b/amgprec/impl/solver/amg_c_mumps_solver_bld.F90 index 7ce27962..1debd9a6 100644 --- a/amgprec/impl/solver/amg_c_mumps_solver_bld.F90 +++ b/amgprec/impl/solver/amg_c_mumps_solver_bld.F90 @@ -64,7 +64,9 @@ subroutine c_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nza, npr, npc integer(psb_lpk_) :: nglob, nglobrec, nzt integer(psb_ipk_) :: ifrst, ibcheck - integer(psb_ipk_) :: ictxt, ictxt1, icomm, np, iam, me, i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt, ctxt1 + integer(psb_mpk_) :: icomm + integer(psb_ipk_) :: np, iam, me, i, err_act, debug_unit, debug_level character(len=20) :: name='c_mumps_solver_bld', ch_err #if defined(HAVE_MUMPS_) @@ -74,20 +76,20 @@ subroutine c_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, iam, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, iam, np) if (sv%ipar(1) == amg_local_solver_ ) then - call psb_init(ictxt1,np=1,basectxt=ictxt,ids=(/iam/)) - icomm = psb_get_mpi_comm(ictxt1) - allocate(sv%local_ictxt,stat=info) - sv%local_ictxt = ictxt1 - !write(*,*)iam,'mumps_bld: local +++++>',icomm,sv%local_ictxt - call psb_info(ictxt1, me, np) + call psb_init(ctxt1,np=1,basectxt=ctxt,ids=(/iam/)) + icomm = psb_get_mpi_comm(ctxt1) + allocate(sv%local_ctxt,stat=info) + sv%local_ctxt = ctxt1 + !write(*,*)iam,'mumps_bld: local +++++>',icomm,sv%local_ctxt + call psb_info(ctxt1, me, np) npr = np else if (sv%ipar(1) == amg_global_solver_ ) then - icomm = psb_get_mpi_comm(ictxt) - !write(*,*)iam,'mumps_bld: global +++++>',icomm,ictxt - call psb_info(ictxt, iam, np) + icomm = psb_get_mpi_comm(ctxt) + !write(*,*)iam,'mumps_bld: global +++++>',icomm,ctxt + call psb_info(ctxt, iam, np) me = iam npr = np else @@ -222,12 +224,12 @@ subroutine c_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) sv%id%nnz = acoo%get_nzeros() sv%id%job = 4 if (sv%ipar(1) == amg_global_solver_ ) then - call psb_sum(ictxt,sv%id%nnz) + call psb_sum(ctxt,sv%id%nnz) end if - !call psb_barrier(ictxt) + !call psb_barrier(ctxt) write(*,*)iam, ' calling mumps N,nz,nz_loc',sv%id%n,sv%id%nnz,sv%id%nnz_loc call cmumps(sv%id) - !call psb_barrier(ictxt) + !call psb_barrier(ctxt) info = sv%id%infog(1) if (info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/amgprec/impl/solver/amg_d_base_solver_dmp.f90 b/amgprec/impl/solver/amg_d_base_solver_dmp.f90 index 1ff1d066..5118d48f 100644 --- a/amgprec/impl/solver/amg_d_base_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_d_base_solver_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_d_base_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_d_base_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu else prefix_ = "dump_slv_d" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_d_bwgs_solver_apply.f90 b/amgprec/impl/solver/amg_d_bwgs_solver_apply.f90 index e3f30e4d..b5bf2ae5 100644 --- a/amgprec/impl/solver/amg_d_bwgs_solver_apply.f90 +++ b/amgprec/impl/solver/amg_d_bwgs_solver_apply.f90 @@ -55,13 +55,14 @@ subroutine amg_d_bwgs_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_dpk_), allocatable :: temp(:),wv(:),xit(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='d_bwgs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='d_bwgs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_d_bwgs_solver_apply_vect.f90 b/amgprec/impl/solver/amg_d_bwgs_solver_apply_vect.f90 index 0d59f47a..e18f79db 100644 --- a/amgprec/impl/solver/amg_d_bwgs_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_d_bwgs_solver_apply_vect.f90 @@ -56,13 +56,14 @@ subroutine amg_d_bwgs_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_dpk_), allocatable :: temp(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='d_bwgs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act + character :: trans_, init_ + character(len=20) :: name='d_bwgs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_d_bwgs_solver_bld.f90 b/amgprec/impl/solver/amg_d_bwgs_solver_bld.f90 index d2a85608..47792131 100644 --- a/amgprec/impl/solver/amg_d_bwgs_solver_bld.f90 +++ b/amgprec/impl/solver/amg_d_bwgs_solver_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_d_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) class(psb_d_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_bwgs_solver_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_bwgs_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_d_diag_solver_apply.f90 b/amgprec/impl/solver/amg_d_diag_solver_apply.f90 index cd393c31..b029915c 100644 --- a/amgprec/impl/solver/amg_d_diag_solver_apply.f90 +++ b/amgprec/impl/solver/amg_d_diag_solver_apply.f90 @@ -54,9 +54,10 @@ subroutine amg_d_diag_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='d_diag_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='d_diag_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_d_diag_solver_apply_vect.f90 b/amgprec/impl/solver/amg_d_diag_solver_apply_vect.f90 index 240e5145..fd2cbdba 100644 --- a/amgprec/impl/solver/amg_d_diag_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_d_diag_solver_apply_vect.f90 @@ -55,9 +55,10 @@ subroutine amg_d_diag_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='d_diag_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='d_diag_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_d_diag_solver_bld.f90 b/amgprec/impl/solver/amg_d_diag_solver_bld.f90 index 66074d52..19642d64 100644 --- a/amgprec/impl/solver/amg_d_diag_solver_bld.f90 +++ b/amgprec/impl/solver/amg_d_diag_solver_bld.f90 @@ -55,15 +55,16 @@ subroutine amg_d_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_dpk_), allocatable :: tdb(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_diag_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_diag_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -133,15 +134,16 @@ subroutine amg_d_l1_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_dpk_), allocatable :: tdb(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_l1_diag_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_l1_diag_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_d_diag_solver_dmp.f90 b/amgprec/impl/solver/amg_d_diag_solver_dmp.f90 index c2182baa..6ef417c5 100644 --- a/amgprec/impl/solver/amg_d_diag_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_d_diag_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_d_diag_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ info = 0 - ictxt = desc%get_context() + ctxt = desc%get_context() - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver @@ -94,18 +95,19 @@ subroutine amg_d_l1_diag_solver_dmp(sv,desc,level,info,prefix,head,solver,global integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ info = 0 - ictxt = desc%get_context() + ctxt = desc%get_context() - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_d_gs_solver_apply.f90 b/amgprec/impl/solver/amg_d_gs_solver_apply.f90 index 409c063b..7e22dfbb 100644 --- a/amgprec/impl/solver/amg_d_gs_solver_apply.f90 +++ b/amgprec/impl/solver/amg_d_gs_solver_apply.f90 @@ -55,13 +55,14 @@ subroutine amg_d_gs_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_dpk_), allocatable :: temp(:),wv(:),xit(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='d_gs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='d_gs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_d_gs_solver_apply_vect.f90 b/amgprec/impl/solver/amg_d_gs_solver_apply_vect.f90 index 050bf725..5ef00a40 100644 --- a/amgprec/impl/solver/amg_d_gs_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_d_gs_solver_apply_vect.f90 @@ -56,13 +56,14 @@ subroutine amg_d_gs_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_dpk_), allocatable :: temp(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='d_gs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='d_gs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_d_gs_solver_bld.f90 b/amgprec/impl/solver/amg_d_gs_solver_bld.f90 index 75936e37..e84404e5 100644 --- a/amgprec/impl/solver/amg_d_gs_solver_bld.f90 +++ b/amgprec/impl/solver/amg_d_gs_solver_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_d_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) class(psb_d_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_gs_solver_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_gs_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_d_gs_solver_dmp.f90 b/amgprec/impl/solver/amg_d_gs_solver_dmp.f90 index 8de9c008..9c187090 100644 --- a/amgprec/impl/solver/amg_d_gs_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_d_gs_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_d_gs_solver_dmp(sv,desc,level,info,prefix,head,solver,global_num) integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than integer(psb_lpk_), allocatable :: iv(:) logical :: solver_, global_num_ ! len of prefix_ info = 0 - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_d_id_solver_apply.f90 b/amgprec/impl/solver/amg_d_id_solver_apply.f90 index 48e7b92c..27b7b030 100644 --- a/amgprec/impl/solver/amg_d_id_solver_apply.f90 +++ b/amgprec/impl/solver/amg_d_id_solver_apply.f90 @@ -52,10 +52,11 @@ subroutine amg_d_id_solver_apply(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init real(psb_dpk_),intent(inout), optional :: initu(:) - integer(psb_ipk_) :: n_row,n_col - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='d_id_solver_apply' + integer(psb_ipk_) :: n_row,n_col + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='d_id_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_d_id_solver_apply_vect.f90 b/amgprec/impl/solver/amg_d_id_solver_apply_vect.f90 index 15d99317..70681963 100644 --- a/amgprec/impl/solver/amg_d_id_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_d_id_solver_apply_vect.f90 @@ -53,10 +53,11 @@ subroutine amg_d_id_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init type(psb_d_vect_type),intent(inout), optional :: initu - integer(psb_ipk_) :: n_row,n_col - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='d_id_solver_apply_vect' + integer(psb_ipk_) :: n_row,n_col + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='d_id_solver_apply_vect' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_d_ilu_solver_apply.f90 b/amgprec/impl/solver/amg_d_ilu_solver_apply.f90 index 5c20645e..730fba03 100644 --- a/amgprec/impl/solver/amg_d_ilu_solver_apply.f90 +++ b/amgprec/impl/solver/amg_d_ilu_solver_apply.f90 @@ -52,11 +52,11 @@ subroutine amg_d_ilu_solver_apply(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init real(psb_dpk_),intent(inout), optional :: initu(:) - integer(psb_ipk_) :: n_row,n_col + integer(psb_ipk_) :: n_row,n_col real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='d_ilu_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='d_ilu_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_d_ilu_solver_apply_vect.f90 b/amgprec/impl/solver/amg_d_ilu_solver_apply_vect.f90 index 044c4d14..13e49dbf 100644 --- a/amgprec/impl/solver/amg_d_ilu_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_d_ilu_solver_apply_vect.f90 @@ -56,9 +56,9 @@ subroutine amg_d_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col type(psb_d_vect_type) :: tw, tw1 real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='d_ilu_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='d_ilu_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_d_ilu_solver_bld.f90 b/amgprec/impl/solver/amg_d_ilu_solver_bld.f90 index 1a68ed84..b1fe0539 100644 --- a/amgprec/impl/solver/amg_d_ilu_solver_bld.f90 +++ b/amgprec/impl/solver/amg_d_ilu_solver_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_d_ilu_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) ! Local variables integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota !!$ real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_ilu_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_ilu_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_d_ilu_solver_dmp.f90 b/amgprec/impl/solver/amg_d_ilu_solver_dmp.f90 index 7e4f9185..107721ef 100644 --- a/amgprec/impl/solver/amg_d_ilu_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_d_ilu_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_d_ilu_solver_dmp(sv,desc,level,info,prefix,head,solver,global_num integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_, global_num_ integer(psb_lpk_), allocatable :: iv(:) ! len of prefix_ info = 0 - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_d_mumps_solver_apply.F90 b/amgprec/impl/solver/amg_d_mumps_solver_apply.F90 index 1b4133ba..92636306 100644 --- a/amgprec/impl/solver/amg_d_mumps_solver_apply.F90 +++ b/amgprec/impl/solver/amg_d_mumps_solver_apply.F90 @@ -60,9 +60,9 @@ subroutine d_mumps_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_epk_) :: eng real(psb_dpk_), allocatable :: ww(:) real(psb_dpk_), allocatable, target :: gx(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='d_mumps_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='d_mumps_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_d_mumps_solver_bld.F90 b/amgprec/impl/solver/amg_d_mumps_solver_bld.F90 index dcb360ee..da9a1f21 100644 --- a/amgprec/impl/solver/amg_d_mumps_solver_bld.F90 +++ b/amgprec/impl/solver/amg_d_mumps_solver_bld.F90 @@ -64,7 +64,9 @@ subroutine d_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nza, npr, npc integer(psb_lpk_) :: nglob, nglobrec, nzt integer(psb_ipk_) :: ifrst, ibcheck - integer(psb_ipk_) :: ictxt, ictxt1, icomm, np, iam, me, i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt, ctxt1 + integer(psb_mpk_) :: icomm + integer(psb_ipk_) :: np, iam, me, i, err_act, debug_unit, debug_level character(len=20) :: name='d_mumps_solver_bld', ch_err #if defined(HAVE_MUMPS_) @@ -74,20 +76,20 @@ subroutine d_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, iam, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, iam, np) if (sv%ipar(1) == amg_local_solver_ ) then - call psb_init(ictxt1,np=1,basectxt=ictxt,ids=(/iam/)) - icomm = psb_get_mpi_comm(ictxt1) - allocate(sv%local_ictxt,stat=info) - sv%local_ictxt = ictxt1 - !write(*,*)iam,'mumps_bld: local +++++>',icomm,sv%local_ictxt - call psb_info(ictxt1, me, np) + call psb_init(ctxt1,np=1,basectxt=ctxt,ids=(/iam/)) + icomm = psb_get_mpi_comm(ctxt1) + allocate(sv%local_ctxt,stat=info) + sv%local_ctxt = ctxt1 + !write(*,*)iam,'mumps_bld: local +++++>',icomm,sv%local_ctxt + call psb_info(ctxt1, me, np) npr = np else if (sv%ipar(1) == amg_global_solver_ ) then - icomm = psb_get_mpi_comm(ictxt) - !write(*,*)iam,'mumps_bld: global +++++>',icomm,ictxt - call psb_info(ictxt, iam, np) + icomm = psb_get_mpi_comm(ctxt) + !write(*,*)iam,'mumps_bld: global +++++>',icomm,ctxt + call psb_info(ctxt, iam, np) me = iam npr = np else @@ -222,12 +224,12 @@ subroutine d_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) sv%id%nnz = acoo%get_nzeros() sv%id%job = 4 if (sv%ipar(1) == amg_global_solver_ ) then - call psb_sum(ictxt,sv%id%nnz) + call psb_sum(ctxt,sv%id%nnz) end if - !call psb_barrier(ictxt) + !call psb_barrier(ctxt) write(*,*)iam, ' calling mumps N,nz,nz_loc',sv%id%n,sv%id%nnz,sv%id%nnz_loc call dmumps(sv%id) - !call psb_barrier(ictxt) + !call psb_barrier(ctxt) info = sv%id%infog(1) if (info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/amgprec/impl/solver/amg_s_base_solver_dmp.f90 b/amgprec/impl/solver/amg_s_base_solver_dmp.f90 index f5d0b994..d277106f 100644 --- a/amgprec/impl/solver/amg_s_base_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_s_base_solver_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_s_base_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_s_base_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu else prefix_ = "dump_slv_s" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_s_bwgs_solver_apply.f90 b/amgprec/impl/solver/amg_s_bwgs_solver_apply.f90 index 7d73ae70..4c62b9bc 100644 --- a/amgprec/impl/solver/amg_s_bwgs_solver_apply.f90 +++ b/amgprec/impl/solver/amg_s_bwgs_solver_apply.f90 @@ -55,13 +55,14 @@ subroutine amg_s_bwgs_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_spk_), allocatable :: temp(:),wv(:),xit(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='s_bwgs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='s_bwgs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_s_bwgs_solver_apply_vect.f90 b/amgprec/impl/solver/amg_s_bwgs_solver_apply_vect.f90 index 06997b64..d9bdccd0 100644 --- a/amgprec/impl/solver/amg_s_bwgs_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_s_bwgs_solver_apply_vect.f90 @@ -56,13 +56,14 @@ subroutine amg_s_bwgs_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_spk_), allocatable :: temp(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='s_bwgs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act + character :: trans_, init_ + character(len=20) :: name='s_bwgs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_s_bwgs_solver_bld.f90 b/amgprec/impl/solver/amg_s_bwgs_solver_bld.f90 index d0e6c780..242d7943 100644 --- a/amgprec/impl/solver/amg_s_bwgs_solver_bld.f90 +++ b/amgprec/impl/solver/amg_s_bwgs_solver_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_s_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) class(psb_s_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_bwgs_solver_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_bwgs_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_s_diag_solver_apply.f90 b/amgprec/impl/solver/amg_s_diag_solver_apply.f90 index cd15bd87..e7d0c002 100644 --- a/amgprec/impl/solver/amg_s_diag_solver_apply.f90 +++ b/amgprec/impl/solver/amg_s_diag_solver_apply.f90 @@ -54,9 +54,10 @@ subroutine amg_s_diag_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='s_diag_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='s_diag_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_s_diag_solver_apply_vect.f90 b/amgprec/impl/solver/amg_s_diag_solver_apply_vect.f90 index 166e81f6..e17ccc70 100644 --- a/amgprec/impl/solver/amg_s_diag_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_s_diag_solver_apply_vect.f90 @@ -55,9 +55,10 @@ subroutine amg_s_diag_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='s_diag_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='s_diag_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_s_diag_solver_bld.f90 b/amgprec/impl/solver/amg_s_diag_solver_bld.f90 index 7e6181bc..8db6f0f4 100644 --- a/amgprec/impl/solver/amg_s_diag_solver_bld.f90 +++ b/amgprec/impl/solver/amg_s_diag_solver_bld.f90 @@ -55,15 +55,16 @@ subroutine amg_s_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_spk_), allocatable :: tdb(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='s_diag_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='s_diag_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -133,15 +134,16 @@ subroutine amg_s_l1_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_spk_), allocatable :: tdb(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='s_l1_diag_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='s_l1_diag_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_s_diag_solver_dmp.f90 b/amgprec/impl/solver/amg_s_diag_solver_dmp.f90 index 00831222..e7620115 100644 --- a/amgprec/impl/solver/amg_s_diag_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_s_diag_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_s_diag_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ info = 0 - ictxt = desc%get_context() + ctxt = desc%get_context() - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver @@ -94,18 +95,19 @@ subroutine amg_s_l1_diag_solver_dmp(sv,desc,level,info,prefix,head,solver,global integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ info = 0 - ictxt = desc%get_context() + ctxt = desc%get_context() - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_s_gs_solver_apply.f90 b/amgprec/impl/solver/amg_s_gs_solver_apply.f90 index 52dae772..d37544d0 100644 --- a/amgprec/impl/solver/amg_s_gs_solver_apply.f90 +++ b/amgprec/impl/solver/amg_s_gs_solver_apply.f90 @@ -55,13 +55,14 @@ subroutine amg_s_gs_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_spk_), allocatable :: temp(:),wv(:),xit(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='s_gs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='s_gs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_s_gs_solver_apply_vect.f90 b/amgprec/impl/solver/amg_s_gs_solver_apply_vect.f90 index 97a82258..c25e3a83 100644 --- a/amgprec/impl/solver/amg_s_gs_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_s_gs_solver_apply_vect.f90 @@ -56,13 +56,14 @@ subroutine amg_s_gs_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) real(psb_spk_), allocatable :: temp(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='s_gs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='s_gs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_s_gs_solver_bld.f90 b/amgprec/impl/solver/amg_s_gs_solver_bld.f90 index e8907b9f..389c3217 100644 --- a/amgprec/impl/solver/amg_s_gs_solver_bld.f90 +++ b/amgprec/impl/solver/amg_s_gs_solver_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_s_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) class(psb_s_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='s_gs_solver_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='s_gs_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_s_gs_solver_dmp.f90 b/amgprec/impl/solver/amg_s_gs_solver_dmp.f90 index 30dd0ece..e3e6b0e2 100644 --- a/amgprec/impl/solver/amg_s_gs_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_s_gs_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_s_gs_solver_dmp(sv,desc,level,info,prefix,head,solver,global_num) integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than integer(psb_lpk_), allocatable :: iv(:) logical :: solver_, global_num_ ! len of prefix_ info = 0 - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_s_id_solver_apply.f90 b/amgprec/impl/solver/amg_s_id_solver_apply.f90 index b032b057..fc560edb 100644 --- a/amgprec/impl/solver/amg_s_id_solver_apply.f90 +++ b/amgprec/impl/solver/amg_s_id_solver_apply.f90 @@ -52,10 +52,11 @@ subroutine amg_s_id_solver_apply(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init real(psb_spk_),intent(inout), optional :: initu(:) - integer(psb_ipk_) :: n_row,n_col - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='s_id_solver_apply' + integer(psb_ipk_) :: n_row,n_col + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='s_id_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_s_id_solver_apply_vect.f90 b/amgprec/impl/solver/amg_s_id_solver_apply_vect.f90 index 4b21c3d5..54df2676 100644 --- a/amgprec/impl/solver/amg_s_id_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_s_id_solver_apply_vect.f90 @@ -53,10 +53,11 @@ subroutine amg_s_id_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init type(psb_s_vect_type),intent(inout), optional :: initu - integer(psb_ipk_) :: n_row,n_col - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='s_id_solver_apply_vect' + integer(psb_ipk_) :: n_row,n_col + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='s_id_solver_apply_vect' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_s_ilu_solver_apply.f90 b/amgprec/impl/solver/amg_s_ilu_solver_apply.f90 index 51e61752..e56014c2 100644 --- a/amgprec/impl/solver/amg_s_ilu_solver_apply.f90 +++ b/amgprec/impl/solver/amg_s_ilu_solver_apply.f90 @@ -52,11 +52,11 @@ subroutine amg_s_ilu_solver_apply(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init real(psb_spk_),intent(inout), optional :: initu(:) - integer(psb_ipk_) :: n_row,n_col + integer(psb_ipk_) :: n_row,n_col real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='s_ilu_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='s_ilu_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_s_ilu_solver_apply_vect.f90 b/amgprec/impl/solver/amg_s_ilu_solver_apply_vect.f90 index e838f6ce..1deae5e3 100644 --- a/amgprec/impl/solver/amg_s_ilu_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_s_ilu_solver_apply_vect.f90 @@ -56,9 +56,9 @@ subroutine amg_s_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col type(psb_s_vect_type) :: tw, tw1 real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='s_ilu_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='s_ilu_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_s_ilu_solver_bld.f90 b/amgprec/impl/solver/amg_s_ilu_solver_bld.f90 index 5083e658..e4f4b056 100644 --- a/amgprec/impl/solver/amg_s_ilu_solver_bld.f90 +++ b/amgprec/impl/solver/amg_s_ilu_solver_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_s_ilu_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) ! Local variables integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota !!$ real(psb_spk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='s_ilu_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='s_ilu_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_s_ilu_solver_dmp.f90 b/amgprec/impl/solver/amg_s_ilu_solver_dmp.f90 index 75d6bdd7..5bf7974e 100644 --- a/amgprec/impl/solver/amg_s_ilu_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_s_ilu_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_s_ilu_solver_dmp(sv,desc,level,info,prefix,head,solver,global_num integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_, global_num_ integer(psb_lpk_), allocatable :: iv(:) ! len of prefix_ info = 0 - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_s_mumps_solver_apply.F90 b/amgprec/impl/solver/amg_s_mumps_solver_apply.F90 index d8c69f33..024e1c0c 100644 --- a/amgprec/impl/solver/amg_s_mumps_solver_apply.F90 +++ b/amgprec/impl/solver/amg_s_mumps_solver_apply.F90 @@ -60,9 +60,9 @@ subroutine s_mumps_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_epk_) :: eng real(psb_spk_), allocatable :: ww(:) real(psb_spk_), allocatable, target :: gx(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='s_mumps_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='s_mumps_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_s_mumps_solver_bld.F90 b/amgprec/impl/solver/amg_s_mumps_solver_bld.F90 index c5a1a12d..d9dab4bb 100644 --- a/amgprec/impl/solver/amg_s_mumps_solver_bld.F90 +++ b/amgprec/impl/solver/amg_s_mumps_solver_bld.F90 @@ -64,7 +64,9 @@ subroutine s_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nza, npr, npc integer(psb_lpk_) :: nglob, nglobrec, nzt integer(psb_ipk_) :: ifrst, ibcheck - integer(psb_ipk_) :: ictxt, ictxt1, icomm, np, iam, me, i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt, ctxt1 + integer(psb_mpk_) :: icomm + integer(psb_ipk_) :: np, iam, me, i, err_act, debug_unit, debug_level character(len=20) :: name='s_mumps_solver_bld', ch_err #if defined(HAVE_MUMPS_) @@ -74,20 +76,20 @@ subroutine s_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, iam, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, iam, np) if (sv%ipar(1) == amg_local_solver_ ) then - call psb_init(ictxt1,np=1,basectxt=ictxt,ids=(/iam/)) - icomm = psb_get_mpi_comm(ictxt1) - allocate(sv%local_ictxt,stat=info) - sv%local_ictxt = ictxt1 - !write(*,*)iam,'mumps_bld: local +++++>',icomm,sv%local_ictxt - call psb_info(ictxt1, me, np) + call psb_init(ctxt1,np=1,basectxt=ctxt,ids=(/iam/)) + icomm = psb_get_mpi_comm(ctxt1) + allocate(sv%local_ctxt,stat=info) + sv%local_ctxt = ctxt1 + !write(*,*)iam,'mumps_bld: local +++++>',icomm,sv%local_ctxt + call psb_info(ctxt1, me, np) npr = np else if (sv%ipar(1) == amg_global_solver_ ) then - icomm = psb_get_mpi_comm(ictxt) - !write(*,*)iam,'mumps_bld: global +++++>',icomm,ictxt - call psb_info(ictxt, iam, np) + icomm = psb_get_mpi_comm(ctxt) + !write(*,*)iam,'mumps_bld: global +++++>',icomm,ctxt + call psb_info(ctxt, iam, np) me = iam npr = np else @@ -222,12 +224,12 @@ subroutine s_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) sv%id%nnz = acoo%get_nzeros() sv%id%job = 4 if (sv%ipar(1) == amg_global_solver_ ) then - call psb_sum(ictxt,sv%id%nnz) + call psb_sum(ctxt,sv%id%nnz) end if - !call psb_barrier(ictxt) + !call psb_barrier(ctxt) write(*,*)iam, ' calling mumps N,nz,nz_loc',sv%id%n,sv%id%nnz,sv%id%nnz_loc call smumps(sv%id) - !call psb_barrier(ictxt) + !call psb_barrier(ctxt) info = sv%id%infog(1) if (info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/amgprec/impl/solver/amg_z_base_solver_dmp.f90 b/amgprec/impl/solver/amg_z_base_solver_dmp.f90 index fae684e5..e6dbf2c3 100644 --- a/amgprec/impl/solver/amg_z_base_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_z_base_solver_dmp.f90 @@ -47,9 +47,10 @@ subroutine amg_z_base_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ @@ -60,8 +61,8 @@ subroutine amg_z_base_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu else prefix_ = "dump_slv_z" end if - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_z_bwgs_solver_apply.f90 b/amgprec/impl/solver/amg_z_bwgs_solver_apply.f90 index edab5d99..e211a7d1 100644 --- a/amgprec/impl/solver/amg_z_bwgs_solver_apply.f90 +++ b/amgprec/impl/solver/amg_z_bwgs_solver_apply.f90 @@ -55,13 +55,14 @@ subroutine amg_z_bwgs_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_dpk_), allocatable :: temp(:),wv(:),xit(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='z_bwgs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='z_bwgs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_z_bwgs_solver_apply_vect.f90 b/amgprec/impl/solver/amg_z_bwgs_solver_apply_vect.f90 index 7aebd4a3..16f2f1b8 100644 --- a/amgprec/impl/solver/amg_z_bwgs_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_z_bwgs_solver_apply_vect.f90 @@ -56,13 +56,14 @@ subroutine amg_z_bwgs_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_dpk_), allocatable :: temp(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='z_bwgs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me,i, err_act + character :: trans_, init_ + character(len=20) :: name='z_bwgs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_z_bwgs_solver_bld.f90 b/amgprec/impl/solver/amg_z_bwgs_solver_bld.f90 index b4ee2a7f..e7b14bdb 100644 --- a/amgprec/impl/solver/amg_z_bwgs_solver_bld.f90 +++ b/amgprec/impl/solver/amg_z_bwgs_solver_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_z_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) class(psb_z_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='d_bwgs_solver_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='d_bwgs_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_z_diag_solver_apply.f90 b/amgprec/impl/solver/amg_z_diag_solver_apply.f90 index 22f2cfd2..2669bccc 100644 --- a/amgprec/impl/solver/amg_z_diag_solver_apply.f90 +++ b/amgprec/impl/solver/amg_z_diag_solver_apply.f90 @@ -54,9 +54,10 @@ subroutine amg_z_diag_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='z_diag_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='z_diag_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_z_diag_solver_apply_vect.f90 b/amgprec/impl/solver/amg_z_diag_solver_apply_vect.f90 index a854fd06..73dd9d02 100644 --- a/amgprec/impl/solver/amg_z_diag_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_z_diag_solver_apply_vect.f90 @@ -55,9 +55,10 @@ subroutine amg_z_diag_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='z_diag_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='z_diag_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_z_diag_solver_bld.f90 b/amgprec/impl/solver/amg_z_diag_solver_bld.f90 index a7728212..6c36b9db 100644 --- a/amgprec/impl/solver/amg_z_diag_solver_bld.f90 +++ b/amgprec/impl/solver/amg_z_diag_solver_bld.f90 @@ -55,15 +55,16 @@ subroutine amg_z_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_dpk_), allocatable :: tdb(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='z_diag_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='z_diag_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' @@ -133,15 +134,16 @@ subroutine amg_z_l1_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_dpk_), allocatable :: tdb(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='z_l1_diag_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='z_l1_diag_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_z_diag_solver_dmp.f90 b/amgprec/impl/solver/amg_z_diag_solver_dmp.f90 index ac611f24..0c72d067 100644 --- a/amgprec/impl/solver/amg_z_diag_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_z_diag_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_z_diag_solver_dmp(sv,desc,level,info,prefix,head,solver,global_nu integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ info = 0 - ictxt = desc%get_context() + ctxt = desc%get_context() - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver @@ -94,18 +95,19 @@ subroutine amg_z_l1_diag_solver_dmp(sv,desc,level,info,prefix,head,solver,global integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_ ! len of prefix_ info = 0 - ictxt = desc%get_context() + ctxt = desc%get_context() - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_z_gs_solver_apply.f90 b/amgprec/impl/solver/amg_z_gs_solver_apply.f90 index ffcc451c..79dc3c31 100644 --- a/amgprec/impl/solver/amg_z_gs_solver_apply.f90 +++ b/amgprec/impl/solver/amg_z_gs_solver_apply.f90 @@ -55,13 +55,14 @@ subroutine amg_z_gs_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_dpk_), allocatable :: temp(:),wv(:),xit(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='z_gs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='z_gs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_z_gs_solver_apply_vect.f90 b/amgprec/impl/solver/amg_z_gs_solver_apply_vect.f90 index 10f4ae44..70ff0921 100644 --- a/amgprec/impl/solver/amg_z_gs_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_z_gs_solver_apply_vect.f90 @@ -56,13 +56,14 @@ subroutine amg_z_gs_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col, itx, itxst complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) complex(psb_dpk_), allocatable :: temp(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_, init_ - character(len=20) :: name='z_gs_solver_apply' + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_, init_ + character(len=20) :: name='z_gs_solver_apply' call psb_erractionsave(err_act) - ictxt = desc_data%get_ctxt() - call psb_info(ictxt,me,np) + ctxt = desc_data%get_ctxt() + call psb_info(ctxt,me,np) info = psb_success_ trans_ = psb_toupper(trans) diff --git a/amgprec/impl/solver/amg_z_gs_solver_bld.f90 b/amgprec/impl/solver/amg_z_gs_solver_bld.f90 index 57790a03..88600518 100644 --- a/amgprec/impl/solver/amg_z_gs_solver_bld.f90 +++ b/amgprec/impl/solver/amg_z_gs_solver_bld.f90 @@ -52,16 +52,17 @@ subroutine amg_z_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) class(psb_z_base_vect_type), intent(in), optional :: vmold class(psb_i_base_vect_type), intent(in), optional :: imold ! Local variables - integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='z_gs_solver_bld', ch_err + integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='z_gs_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_z_gs_solver_dmp.f90 b/amgprec/impl/solver/amg_z_gs_solver_dmp.f90 index 0a91b647..3a0b0b4e 100644 --- a/amgprec/impl/solver/amg_z_gs_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_z_gs_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_z_gs_solver_dmp(sv,desc,level,info,prefix,head,solver,global_num) integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than integer(psb_lpk_), allocatable :: iv(:) logical :: solver_, global_num_ ! len of prefix_ info = 0 - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_z_id_solver_apply.f90 b/amgprec/impl/solver/amg_z_id_solver_apply.f90 index cbcafbaf..392a0e84 100644 --- a/amgprec/impl/solver/amg_z_id_solver_apply.f90 +++ b/amgprec/impl/solver/amg_z_id_solver_apply.f90 @@ -52,10 +52,11 @@ subroutine amg_z_id_solver_apply(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init complex(psb_dpk_),intent(inout), optional :: initu(:) - integer(psb_ipk_) :: n_row,n_col - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='z_id_solver_apply' + integer(psb_ipk_) :: n_row,n_col + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='z_id_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_z_id_solver_apply_vect.f90 b/amgprec/impl/solver/amg_z_id_solver_apply_vect.f90 index 3d8bf93f..35da4aaf 100644 --- a/amgprec/impl/solver/amg_z_id_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_z_id_solver_apply_vect.f90 @@ -53,10 +53,11 @@ subroutine amg_z_id_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init type(psb_z_vect_type),intent(inout), optional :: initu - integer(psb_ipk_) :: n_row,n_col - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='z_id_solver_apply_vect' + integer(psb_ipk_) :: n_row,n_col + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act + character :: trans_ + character(len=20) :: name='z_id_solver_apply_vect' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_z_ilu_solver_apply.f90 b/amgprec/impl/solver/amg_z_ilu_solver_apply.f90 index d0021e4c..9eff8abf 100644 --- a/amgprec/impl/solver/amg_z_ilu_solver_apply.f90 +++ b/amgprec/impl/solver/amg_z_ilu_solver_apply.f90 @@ -52,11 +52,11 @@ subroutine amg_z_ilu_solver_apply(alpha,sv,x,beta,y,desc_data,& character, intent(in), optional :: init complex(psb_dpk_),intent(inout), optional :: initu(:) - integer(psb_ipk_) :: n_row,n_col + integer(psb_ipk_) :: n_row,n_col complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='z_ilu_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='z_ilu_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_z_ilu_solver_apply_vect.f90 b/amgprec/impl/solver/amg_z_ilu_solver_apply_vect.f90 index 584af3a1..424e4e17 100644 --- a/amgprec/impl/solver/amg_z_ilu_solver_apply_vect.f90 +++ b/amgprec/impl/solver/amg_z_ilu_solver_apply_vect.f90 @@ -56,9 +56,9 @@ subroutine amg_z_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,& integer(psb_ipk_) :: n_row,n_col type(psb_z_vect_type) :: tw, tw1 complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='z_ilu_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='z_ilu_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_z_ilu_solver_bld.f90 b/amgprec/impl/solver/amg_z_ilu_solver_bld.f90 index 89684f7d..dca3f511 100644 --- a/amgprec/impl/solver/amg_z_ilu_solver_bld.f90 +++ b/amgprec/impl/solver/amg_z_ilu_solver_bld.f90 @@ -54,15 +54,16 @@ subroutine amg_z_ilu_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) ! Local variables integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota !!$ complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act, debug_unit, debug_level - character(len=20) :: name='z_ilu_solver_bld', ch_err + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: np, me, i, err_act, debug_unit, debug_level + character(len=20) :: name='z_ilu_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/amgprec/impl/solver/amg_z_ilu_solver_dmp.f90 b/amgprec/impl/solver/amg_z_ilu_solver_dmp.f90 index 3ec42e46..e3d1241d 100644 --- a/amgprec/impl/solver/amg_z_ilu_solver_dmp.f90 +++ b/amgprec/impl/solver/amg_z_ilu_solver_dmp.f90 @@ -46,18 +46,19 @@ subroutine amg_z_ilu_solver_dmp(sv,desc,level,info,prefix,head,solver,global_num integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver, global_num - integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: ictxt,iam, np - character(len=80) :: prefix_ - character(len=120) :: fname ! len should be at least 20 more than + integer(psb_ipk_) :: i, j, il1, iln, lname, lev + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np + character(len=80) :: prefix_ + character(len=120) :: fname ! len should be at least 20 more than logical :: solver_, global_num_ integer(psb_lpk_), allocatable :: iv(:) ! len of prefix_ info = 0 - ictxt = desc%get_context() - call psb_info(ictxt,iam,np) + ctxt = desc%get_context() + call psb_info(ctxt,iam,np) if (present(solver)) then solver_ = solver diff --git a/amgprec/impl/solver/amg_z_mumps_solver_apply.F90 b/amgprec/impl/solver/amg_z_mumps_solver_apply.F90 index 985fa198..ebe6994e 100644 --- a/amgprec/impl/solver/amg_z_mumps_solver_apply.F90 +++ b/amgprec/impl/solver/amg_z_mumps_solver_apply.F90 @@ -60,9 +60,9 @@ subroutine z_mumps_solver_apply(alpha,sv,x,beta,y,desc_data,& integer(psb_epk_) :: eng complex(psb_dpk_), allocatable :: ww(:) complex(psb_dpk_), allocatable, target :: gx(:) - integer(psb_ipk_) :: ictxt,np,me,i, err_act - character :: trans_ - character(len=20) :: name='z_mumps_solver_apply' + integer(psb_ipk_) :: i, err_act + character :: trans_ + character(len=20) :: name='z_mumps_solver_apply' call psb_erractionsave(err_act) diff --git a/amgprec/impl/solver/amg_z_mumps_solver_bld.F90 b/amgprec/impl/solver/amg_z_mumps_solver_bld.F90 index b5d8d0cf..94c0425f 100644 --- a/amgprec/impl/solver/amg_z_mumps_solver_bld.F90 +++ b/amgprec/impl/solver/amg_z_mumps_solver_bld.F90 @@ -64,7 +64,9 @@ subroutine z_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) integer(psb_ipk_) :: n_row,n_col, nrow_a, nza, npr, npc integer(psb_lpk_) :: nglob, nglobrec, nzt integer(psb_ipk_) :: ifrst, ibcheck - integer(psb_ipk_) :: ictxt, ictxt1, icomm, np, iam, me, i, err_act, debug_unit, debug_level + type(psb_ctxt_type) :: ctxt, ctxt1 + integer(psb_mpk_) :: icomm + integer(psb_ipk_) :: np, iam, me, i, err_act, debug_unit, debug_level character(len=20) :: name='z_mumps_solver_bld', ch_err #if defined(HAVE_MUMPS_) @@ -74,20 +76,20 @@ subroutine z_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, iam, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, iam, np) if (sv%ipar(1) == amg_local_solver_ ) then - call psb_init(ictxt1,np=1,basectxt=ictxt,ids=(/iam/)) - icomm = psb_get_mpi_comm(ictxt1) - allocate(sv%local_ictxt,stat=info) - sv%local_ictxt = ictxt1 - !write(*,*)iam,'mumps_bld: local +++++>',icomm,sv%local_ictxt - call psb_info(ictxt1, me, np) + call psb_init(ctxt1,np=1,basectxt=ctxt,ids=(/iam/)) + icomm = psb_get_mpi_comm(ctxt1) + allocate(sv%local_ctxt,stat=info) + sv%local_ctxt = ctxt1 + !write(*,*)iam,'mumps_bld: local +++++>',icomm,sv%local_ctxt + call psb_info(ctxt1, me, np) npr = np else if (sv%ipar(1) == amg_global_solver_ ) then - icomm = psb_get_mpi_comm(ictxt) - !write(*,*)iam,'mumps_bld: global +++++>',icomm,ictxt - call psb_info(ictxt, iam, np) + icomm = psb_get_mpi_comm(ctxt) + !write(*,*)iam,'mumps_bld: global +++++>',icomm,ctxt + call psb_info(ctxt, iam, np) me = iam npr = np else @@ -222,12 +224,12 @@ subroutine z_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold) sv%id%nnz = acoo%get_nzeros() sv%id%job = 4 if (sv%ipar(1) == amg_global_solver_ ) then - call psb_sum(ictxt,sv%id%nnz) + call psb_sum(ctxt,sv%id%nnz) end if - !call psb_barrier(ictxt) + !call psb_barrier(ctxt) write(*,*)iam, ' calling mumps N,nz,nz_loc',sv%id%n,sv%id%nnz,sv%id%nnz_loc call zmumps(sv%id) - !call psb_barrier(ictxt) + !call psb_barrier(ctxt) info = sv%id%infog(1) if (info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/cbind/amgprec/amg_dprec_cbind_mod.F90 b/cbind/amgprec/amg_dprec_cbind_mod.F90 index 5f419d43..77b0d1e9 100644 --- a/cbind/amgprec/amg_dprec_cbind_mod.F90 +++ b/cbind/amgprec/amg_dprec_cbind_mod.F90 @@ -22,14 +22,14 @@ contains #define MLDC_ERR_FILTER(INFO) (INFO) #define MLDC_ERR_HANDLE(INFO) if(INFO/=mld_success_)MLDC_ERROR("ERROR!") - function mld_c_dprecinit(ictxt,ph,ptype) bind(c) result(res) + function mld_c_dprecinit(cctxt,ph,ptype) bind(c) result(res) use psb_base_mod use mld_prec_mod implicit none integer(psb_c_ipk_) :: res type(mld_c_dprec) :: ph - integer(psb_c_ipk_), value :: ictxt + integer(psb_c_ipk_), value :: cctxt character(c_char) :: ptype(*) integer :: info type(mld_dprec_type), pointer :: precp @@ -48,7 +48,7 @@ contains call stringc2f(ptype,fptype) - call precp%init(ictxt,fptype,info) + call precp%init(cctxt,fptype,info) res = MLDC_ERR_FILTER(info) MLDC_ERR_HANDLE(res) diff --git a/cbind/amgprec/amg_zprec_cbind_mod.F90 b/cbind/amgprec/amg_zprec_cbind_mod.F90 index 777d5c86..ccb9ac47 100644 --- a/cbind/amgprec/amg_zprec_cbind_mod.F90 +++ b/cbind/amgprec/amg_zprec_cbind_mod.F90 @@ -22,14 +22,14 @@ contains #define MLDC_ERR_FILTER(INFO) (INFO) #define MLDC_ERR_HANDLE(INFO) if(INFO/=mld_success_)MLDC_ERROR("ERROR!") - function mld_c_zprecinit(ictxt,ph,ptype) bind(c) result(res) + function mld_c_zprecinit(cctxt,ph,ptype) bind(c) result(res) use psb_base_mod use mld_prec_mod implicit none integer(psb_c_ipk_) :: res type(mld_c_zprec) :: ph - integer(psb_c_ipk_), value :: ictxt + integer(psb_c_ipk_), value :: cctxt character(c_char) :: ptype(*) integer :: info type(mld_zprec_type), pointer :: precp @@ -48,7 +48,7 @@ contains call stringc2f(ptype,fptype) - call precp%init(ictxt,fptype,info) + call precp%init(cctxt,fptype,info) res = MLDC_ERR_FILTER(info) MLDC_ERR_HANDLE(res) diff --git a/configure b/configure index 170cc7b9..5e3d96c4 100755 --- a/configure +++ b/configure @@ -8405,22 +8405,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # -# For the time being: -# 1. Disable MUMPS when IPK=8 (would need a check on whether MUMPS -# was compiled with 8 bytes) -# 2. Enable even with LPK=8, internally it will check if +# 1. Enable even with LPK=8, internally it will check if # the problem size fits into 4 bytes, very likely since we # are mostly using MUMPS at coarse level. # -if test "x$amg4psblas_cv_have_mumps" == "xyes" ; then - if test "x$pac_cv_psblas_ipk" == "x8" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: PSBLAS defines PSB_IPK_ as $pac_cv_psblas_ipk. MUMPS interfacing disabled. " >&5 -$as_echo "$as_me: PSBLAS defines PSB_IPK_ as $pac_cv_psblas_ipk. MUMPS interfacing disabled. " >&6;} - MUMPS_FLAGS=""; - MUMPS_LIBS=""; - amg4psblas_cv_have_mumps=no; - fi -fi if test "x$amg4psblas_cv_have_mumps" == "xyes" ; then if test "x$pac_cv_psblas_lpk" == "x8" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: PSBLAS defines PSB_LPK_ as $pac_cv_psblas_lpk. MUMPS interfacing will fail when called in global mode on very large matrices. " >&5 diff --git a/configure.ac b/configure.ac index dc669451..bd93deb7 100755 --- a/configure.ac +++ b/configure.ac @@ -634,21 +634,18 @@ AC_LANG([C]) PAC_CHECK_MUMPS # -# For the time being: -# 1. Disable MUMPS when IPK=8 (would need a check on whether MUMPS -# was compiled with 8 bytes) -# 2. Enable even with LPK=8, internally it will check if +# 1. Enable even with LPK=8, internally it will check if # the problem size fits into 4 bytes, very likely since we # are mostly using MUMPS at coarse level. # -if test "x$amg4psblas_cv_have_mumps" == "xyes" ; then - if test "x$pac_cv_psblas_ipk" == "x8" ; then - AC_MSG_NOTICE([PSBLAS defines PSB_IPK_ as $pac_cv_psblas_ipk. MUMPS interfacing disabled. ]) - MUMPS_FLAGS=""; - MUMPS_LIBS=""; - amg4psblas_cv_have_mumps=no; - fi -fi +dnl if test "x$amg4psblas_cv_have_mumps" == "xyes" ; then +dnl if test "x$pac_cv_psblas_ipk" == "x8" ; then +dnl AC_MSG_NOTICE([PSBLAS defines PSB_IPK_ as $pac_cv_psblas_ipk. MUMPS interfacing disabled. ]) +dnl MUMPS_FLAGS=""; +dnl MUMPS_LIBS=""; +dnl amg4psblas_cv_have_mumps=no; +dnl fi +dnl fi if test "x$amg4psblas_cv_have_mumps" == "xyes" ; then if test "x$pac_cv_psblas_lpk" == "x8" ; then AC_MSG_NOTICE([PSBLAS defines PSB_LPK_ as $pac_cv_psblas_lpk. MUMPS interfacing will fail when called in global mode on very large matrices. ]) diff --git a/examples/fileread/amg_cexample_1lev.f90 b/examples/fileread/amg_cexample_1lev.f90 index 9ce7bedf..9341d723 100644 --- a/examples/fileread/amg_cexample_1lev.f90 +++ b/examples/fileread/amg_cexample_1lev.f90 @@ -77,7 +77,8 @@ program amg_cexample_1lev integer :: nlev ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: i,info,j,m_problem @@ -90,12 +91,12 @@ program amg_cexample_1lev ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -113,9 +114,9 @@ program amg_cexample_1lev ! get parameters - call get_parms(ictxt,mtrx_file,rhs_file,filefmt,itmax,tol) + call get_parms(ctxt,mtrx_file,rhs_file,filefmt,itmax,tol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read and assemble the matrix A and the right-hand side b @@ -144,11 +145,11 @@ program amg_cexample_1lev end select if (info /= psb_success_) then write(0,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) ! At this point aux_b may still be unallocated if (psb_size(aux_b,1) == m_problem) then @@ -170,17 +171,17 @@ program amg_cexample_1lev enddo endif else - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(*,'("Partition type: block")') - call psb_matdist(aux_A, A, ictxt, desc_A,info,parts=part_block) + call psb_matdist(aux_A, A, ctxt, desc_A,info,parts=part_block) call psb_scatter(b_glob,b,desc_a,info,root=psb_root_) t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(*,'(" ")') @@ -193,7 +194,7 @@ program amg_cexample_1lev ! set RAS - call P%init(ictxt,'AS',info) + call P%init(ctxt,'AS',info) ! set number of overlaps @@ -206,7 +207,7 @@ program amg_cexample_1lev call P%build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -222,13 +223,13 @@ program amg_cexample_1lev ! solve Ax=b with preconditioned Krylov method: BiCGSTAB kmethod = 'BiCGSTAB' - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geasb(r,desc_A,info,scratch=.true.) call psb_geaxpby(cone,b,czero,r,desc_A,info) @@ -239,9 +240,9 @@ program amg_cexample_1lev amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = p%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) if (iam == psb_root_) then @@ -290,27 +291,28 @@ program amg_cexample_1lev call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,mtrx,rhs,filefmt,itmax,tol) + subroutine get_parms(ctxt,mtrx,rhs,filefmt,itmax,tol) implicit none - integer :: ictxt, itmax + type(psb_ctxt_type) :: ctxt + integer :: itmax real(psb_spk_) :: tol character(len=*) :: mtrx, rhs,filefmt integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -319,7 +321,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -338,11 +340,11 @@ contains end if end if - call psb_bcast(ictxt,mtrx) - call psb_bcast(ictxt,rhs) - call psb_bcast(ictxt,filefmt) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms end program amg_cexample_1lev diff --git a/examples/fileread/amg_cexample_ml.f90 b/examples/fileread/amg_cexample_ml.f90 index 75f973f8..36a88c13 100644 --- a/examples/fileread/amg_cexample_ml.f90 +++ b/examples/fileread/amg_cexample_ml.f90 @@ -91,7 +91,8 @@ program amg_cexample_ml integer :: nlev ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: choice @@ -105,12 +106,12 @@ program amg_cexample_ml ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -128,9 +129,9 @@ program amg_cexample_ml ! get parameters - call get_parms(ictxt,mtrx_file,rhs_file,filefmt,choice,itmax,tol) + call get_parms(ctxt,mtrx_file,rhs_file,filefmt,choice,itmax,tol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read and assemble the matrix A and the right-hand side b @@ -159,11 +160,11 @@ program amg_cexample_ml end select if (info /= psb_success_) then write(0,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) ! At this point aux_b may still be unallocated if (psb_size(aux_b,1) == m_problem) then @@ -185,17 +186,17 @@ program amg_cexample_ml enddo endif else - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(*,'("Partition type: block")') - call psb_matdist(aux_A, A, ictxt, desc_A,info,parts=part_block) + call psb_matdist(aux_A, A, ctxt, desc_A,info,parts=part_block) call psb_scatter(b_glob,b,desc_a,info,root=psb_root_) t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(*,'(" ")') @@ -212,7 +213,7 @@ program amg_cexample_ml ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! solver - call P%init(ictxt,'ML',info) + call P%init(ctxt,'ML',info) kmethod = 'CG' case(2) @@ -243,7 +244,7 @@ program amg_cexample_ml ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! build the preconditioner @@ -251,7 +252,7 @@ program amg_cexample_ml call P%smoothers_build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -265,13 +266,13 @@ program amg_cexample_ml ! solve Ax=b with preconditioned CG - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,itrace=1,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geasb(r,desc_A,info,scratch=.true.) call psb_geaxpby(cone,b,czero,r,desc_A,info) @@ -282,9 +283,9 @@ program amg_cexample_ml amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = p%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) @@ -334,27 +335,28 @@ program amg_cexample_ml call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,mtrx,rhs,filefmt,choice,itmax,tol) + subroutine get_parms(ctxt,mtrx,rhs,filefmt,choice,itmax,tol) implicit none - integer :: ictxt, choice, itmax + type(psb_ctxt_type) :: ctxt + integer :: choice, itmax real(psb_spk_) :: tol character(len=*) :: mtrx, rhs,filefmt integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -363,7 +365,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -383,12 +385,12 @@ contains end if end if - call psb_bcast(ictxt,mtrx) - call psb_bcast(ictxt,rhs) - call psb_bcast(ictxt,filefmt) - call psb_bcast(ictxt,choice) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,choice) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms end program amg_cexample_ml diff --git a/examples/fileread/amg_dexample_1lev.f90 b/examples/fileread/amg_dexample_1lev.f90 index 0209fb65..edb4d9bf 100644 --- a/examples/fileread/amg_dexample_1lev.f90 +++ b/examples/fileread/amg_dexample_1lev.f90 @@ -77,7 +77,8 @@ program amg_dexample_1lev integer :: nlev ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: i,info,j,m_problem @@ -90,12 +91,12 @@ program amg_dexample_1lev ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -113,9 +114,9 @@ program amg_dexample_1lev ! get parameters - call get_parms(ictxt,mtrx_file,rhs_file,filefmt,itmax,tol) + call get_parms(ctxt,mtrx_file,rhs_file,filefmt,itmax,tol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read and assemble the matrix A and the right-hand side b @@ -144,11 +145,11 @@ program amg_dexample_1lev end select if (info /= psb_success_) then write(0,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) ! At this point aux_b may still be unallocated if (psb_size(aux_b,1) == m_problem) then @@ -170,17 +171,17 @@ program amg_dexample_1lev enddo endif else - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(*,'("Partition type: block")') - call psb_matdist(aux_A, A, ictxt, desc_A,info,parts=part_block) + call psb_matdist(aux_A, A, ctxt, desc_A,info,parts=part_block) call psb_scatter(b_glob,b,desc_a,info,root=psb_root_) t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(*,'(" ")') @@ -193,7 +194,7 @@ program amg_dexample_1lev ! set RAS - call P%init(ictxt,'AS',info) + call P%init(ctxt,'AS',info) ! set number of overlaps @@ -206,7 +207,7 @@ program amg_dexample_1lev call P%build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -222,13 +223,13 @@ program amg_dexample_1lev ! solve Ax=b with preconditioned Krylov method: BiCGSTAB kmethod = 'BiCGSTAB' - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geasb(r,desc_A,info,scratch=.true.) call psb_geaxpby(done,b,dzero,r,desc_A,info) @@ -239,9 +240,9 @@ program amg_dexample_1lev amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = p%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) if (iam == psb_root_) then @@ -290,27 +291,28 @@ program amg_dexample_1lev call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,mtrx,rhs,filefmt,itmax,tol) + subroutine get_parms(ctxt,mtrx,rhs,filefmt,itmax,tol) implicit none - integer :: ictxt, itmax + type(psb_ctxt_type) :: ctxt + integer :: itmax real(psb_dpk_) :: tol character(len=*) :: mtrx, rhs,filefmt integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -319,7 +321,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -338,11 +340,11 @@ contains end if end if - call psb_bcast(ictxt,mtrx) - call psb_bcast(ictxt,rhs) - call psb_bcast(ictxt,filefmt) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms end program amg_dexample_1lev diff --git a/examples/fileread/amg_dexample_ml.f90 b/examples/fileread/amg_dexample_ml.f90 index 6d5f9184..c809be76 100644 --- a/examples/fileread/amg_dexample_ml.f90 +++ b/examples/fileread/amg_dexample_ml.f90 @@ -91,7 +91,8 @@ program amg_dexample_ml integer :: nlev ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: choice @@ -105,12 +106,12 @@ program amg_dexample_ml ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -128,9 +129,9 @@ program amg_dexample_ml ! get parameters - call get_parms(ictxt,mtrx_file,rhs_file,filefmt,choice,itmax,tol) + call get_parms(ctxt,mtrx_file,rhs_file,filefmt,choice,itmax,tol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read and assemble the matrix A and the right-hand side b @@ -159,11 +160,11 @@ program amg_dexample_ml end select if (info /= psb_success_) then write(0,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) ! At this point aux_b may still be unallocated if (psb_size(aux_b,1) == m_problem) then @@ -185,17 +186,17 @@ program amg_dexample_ml enddo endif else - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(*,'("Partition type: block")') - call psb_matdist(aux_A, A, ictxt, desc_A,info,parts=part_block) + call psb_matdist(aux_A, A, ctxt, desc_A,info,parts=part_block) call psb_scatter(b_glob,b,desc_a,info,root=psb_root_) t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(*,'(" ")') @@ -212,7 +213,7 @@ program amg_dexample_ml ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! solver - call P%init(ictxt,'ML',info) + call P%init(ctxt,'ML',info) kmethod = 'CG' case(2) @@ -243,7 +244,7 @@ program amg_dexample_ml ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! build the preconditioner @@ -251,7 +252,7 @@ program amg_dexample_ml call P%smoothers_build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -265,13 +266,13 @@ program amg_dexample_ml ! solve Ax=b with preconditioned CG - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,itrace=1,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geasb(r,desc_A,info,scratch=.true.) call psb_geaxpby(done,b,dzero,r,desc_A,info) @@ -282,9 +283,9 @@ program amg_dexample_ml amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = p%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) @@ -334,27 +335,28 @@ program amg_dexample_ml call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,mtrx,rhs,filefmt,choice,itmax,tol) + subroutine get_parms(ctxt,mtrx,rhs,filefmt,choice,itmax,tol) implicit none - integer :: ictxt, choice, itmax + type(psb_ctxt_type) :: ctxt + integer :: choice, itmax real(psb_dpk_) :: tol character(len=*) :: mtrx, rhs,filefmt integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -363,7 +365,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -383,12 +385,12 @@ contains end if end if - call psb_bcast(ictxt,mtrx) - call psb_bcast(ictxt,rhs) - call psb_bcast(ictxt,filefmt) - call psb_bcast(ictxt,choice) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,choice) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms end program amg_dexample_ml diff --git a/examples/fileread/amg_sexample_1lev.f90 b/examples/fileread/amg_sexample_1lev.f90 index 2046de83..c52b2935 100644 --- a/examples/fileread/amg_sexample_1lev.f90 +++ b/examples/fileread/amg_sexample_1lev.f90 @@ -77,7 +77,8 @@ program amg_sexample_1lev integer :: nlev ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: i,info,j,m_problem @@ -90,12 +91,12 @@ program amg_sexample_1lev ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -113,9 +114,9 @@ program amg_sexample_1lev ! get parameters - call get_parms(ictxt,mtrx_file,rhs_file,filefmt,itmax,tol) + call get_parms(ctxt,mtrx_file,rhs_file,filefmt,itmax,tol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read and assemble the matrix A and the right-hand side b @@ -144,11 +145,11 @@ program amg_sexample_1lev end select if (info /= psb_success_) then write(0,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) ! At this point aux_b may still be unallocated if (psb_size(aux_b,1) == m_problem) then @@ -170,17 +171,17 @@ program amg_sexample_1lev enddo endif else - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(*,'("Partition type: block")') - call psb_matdist(aux_A, A, ictxt, desc_A,info,parts=part_block) + call psb_matdist(aux_A, A, ctxt, desc_A,info,parts=part_block) call psb_scatter(b_glob,b,desc_a,info,root=psb_root_) t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(*,'(" ")') @@ -193,7 +194,7 @@ program amg_sexample_1lev ! set RAS - call P%init(ictxt,'AS',info) + call P%init(ctxt,'AS',info) ! set number of overlaps @@ -206,7 +207,7 @@ program amg_sexample_1lev call P%build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -222,13 +223,13 @@ program amg_sexample_1lev ! solve Ax=b with preconditioned Krylov method: BiCGSTAB kmethod = 'BiCGSTAB' - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geasb(r,desc_A,info,scratch=.true.) call psb_geaxpby(sone,b,szero,r,desc_A,info) @@ -239,9 +240,9 @@ program amg_sexample_1lev amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = p%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) if (iam == psb_root_) then @@ -290,27 +291,28 @@ program amg_sexample_1lev call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,mtrx,rhs,filefmt,itmax,tol) + subroutine get_parms(ctxt,mtrx,rhs,filefmt,itmax,tol) implicit none - integer :: ictxt, itmax + type(psb_ctxt_type) :: ctxt + integer :: itmax real(psb_spk_) :: tol character(len=*) :: mtrx, rhs,filefmt integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -319,7 +321,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -338,11 +340,11 @@ contains end if end if - call psb_bcast(ictxt,mtrx) - call psb_bcast(ictxt,rhs) - call psb_bcast(ictxt,filefmt) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms end program amg_sexample_1lev diff --git a/examples/fileread/amg_sexample_ml.f90 b/examples/fileread/amg_sexample_ml.f90 index a768a397..1d0e864b 100644 --- a/examples/fileread/amg_sexample_ml.f90 +++ b/examples/fileread/amg_sexample_ml.f90 @@ -91,7 +91,8 @@ program amg_sexample_ml integer :: nlev ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: choice @@ -105,12 +106,12 @@ program amg_sexample_ml ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -128,9 +129,9 @@ program amg_sexample_ml ! get parameters - call get_parms(ictxt,mtrx_file,rhs_file,filefmt,choice,itmax,tol) + call get_parms(ctxt,mtrx_file,rhs_file,filefmt,choice,itmax,tol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read and assemble the matrix A and the right-hand side b @@ -159,11 +160,11 @@ program amg_sexample_ml end select if (info /= psb_success_) then write(0,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) ! At this point aux_b may still be unallocated if (psb_size(aux_b,1) == m_problem) then @@ -185,17 +186,17 @@ program amg_sexample_ml enddo endif else - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(*,'("Partition type: block")') - call psb_matdist(aux_A, A, ictxt, desc_A,info,parts=part_block) + call psb_matdist(aux_A, A, ctxt, desc_A,info,parts=part_block) call psb_scatter(b_glob,b,desc_a,info,root=psb_root_) t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(*,'(" ")') @@ -212,7 +213,7 @@ program amg_sexample_ml ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! solver - call P%init(ictxt,'ML',info) + call P%init(ctxt,'ML',info) kmethod = 'CG' case(2) @@ -243,7 +244,7 @@ program amg_sexample_ml ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! build the preconditioner @@ -251,7 +252,7 @@ program amg_sexample_ml call P%smoothers_build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -265,13 +266,13 @@ program amg_sexample_ml ! solve Ax=b with preconditioned CG - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,itrace=1,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geasb(r,desc_A,info,scratch=.true.) call psb_geaxpby(sone,b,szero,r,desc_A,info) @@ -282,9 +283,9 @@ program amg_sexample_ml amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = p%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) @@ -334,27 +335,28 @@ program amg_sexample_ml call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,mtrx,rhs,filefmt,choice,itmax,tol) + subroutine get_parms(ctxt,mtrx,rhs,filefmt,choice,itmax,tol) implicit none - integer :: ictxt, choice, itmax + type(psb_ctxt_type) :: ctxt + integer :: choice, itmax real(psb_spk_) :: tol character(len=*) :: mtrx, rhs,filefmt integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -363,7 +365,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -383,12 +385,12 @@ contains end if end if - call psb_bcast(ictxt,mtrx) - call psb_bcast(ictxt,rhs) - call psb_bcast(ictxt,filefmt) - call psb_bcast(ictxt,choice) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,choice) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms end program amg_sexample_ml diff --git a/examples/fileread/amg_zexample_1lev.f90 b/examples/fileread/amg_zexample_1lev.f90 index 0eb4eeef..5d265ce7 100644 --- a/examples/fileread/amg_zexample_1lev.f90 +++ b/examples/fileread/amg_zexample_1lev.f90 @@ -77,7 +77,8 @@ program amg_zexample_1lev integer :: nlev ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: i,info,j,m_problem @@ -90,12 +91,12 @@ program amg_zexample_1lev ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -113,9 +114,9 @@ program amg_zexample_1lev ! get parameters - call get_parms(ictxt,mtrx_file,rhs_file,filefmt,itmax,tol) + call get_parms(ctxt,mtrx_file,rhs_file,filefmt,itmax,tol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read and assemble the matrix A and the right-hand side b @@ -144,11 +145,11 @@ program amg_zexample_1lev end select if (info /= psb_success_) then write(0,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) ! At this point aux_b may still be unallocated if (psb_size(aux_b,1) == m_problem) then @@ -170,17 +171,17 @@ program amg_zexample_1lev enddo endif else - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(*,'("Partition type: block")') - call psb_matdist(aux_A, A, ictxt, desc_A,info,parts=part_block) + call psb_matdist(aux_A, A, ctxt, desc_A,info,parts=part_block) call psb_scatter(b_glob,b,desc_a,info,root=psb_root_) t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(*,'(" ")') @@ -193,7 +194,7 @@ program amg_zexample_1lev ! set RAS - call P%init(ictxt,'AS',info) + call P%init(ctxt,'AS',info) ! set number of overlaps @@ -206,7 +207,7 @@ program amg_zexample_1lev call P%build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -222,13 +223,13 @@ program amg_zexample_1lev ! solve Ax=b with preconditioned Krylov method: BiCGSTAB kmethod = 'BiCGSTAB' - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geasb(r,desc_A,info,scratch=.true.) call psb_geaxpby(zone,b,zzero,r,desc_A,info) @@ -239,9 +240,9 @@ program amg_zexample_1lev amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = p%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) if (iam == psb_root_) then @@ -290,27 +291,28 @@ program amg_zexample_1lev call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,mtrx,rhs,filefmt,itmax,tol) + subroutine get_parms(ctxt,mtrx,rhs,filefmt,itmax,tol) implicit none - integer :: ictxt, itmax + type(psb_ctxt_type) :: ctxt + integer :: itmax real(psb_dpk_) :: tol character(len=*) :: mtrx, rhs,filefmt integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -319,7 +321,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -338,11 +340,11 @@ contains end if end if - call psb_bcast(ictxt,mtrx) - call psb_bcast(ictxt,rhs) - call psb_bcast(ictxt,filefmt) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms end program amg_zexample_1lev diff --git a/examples/fileread/amg_zexample_ml.f90 b/examples/fileread/amg_zexample_ml.f90 index 3857a8ed..2fdc4468 100644 --- a/examples/fileread/amg_zexample_ml.f90 +++ b/examples/fileread/amg_zexample_ml.f90 @@ -91,7 +91,8 @@ program amg_zexample_ml integer :: nlev ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: choice @@ -105,12 +106,12 @@ program amg_zexample_ml ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -128,9 +129,9 @@ program amg_zexample_ml ! get parameters - call get_parms(ictxt,mtrx_file,rhs_file,filefmt,choice,itmax,tol) + call get_parms(ctxt,mtrx_file,rhs_file,filefmt,choice,itmax,tol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read and assemble the matrix A and the right-hand side b @@ -159,11 +160,11 @@ program amg_zexample_ml end select if (info /= psb_success_) then write(0,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) ! At this point aux_b may still be unallocated if (psb_size(aux_b,1) == m_problem) then @@ -185,17 +186,17 @@ program amg_zexample_ml enddo endif else - call psb_bcast(ictxt,m_problem) + call psb_bcast(ctxt,m_problem) end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(*,'("Partition type: block")') - call psb_matdist(aux_A, A, ictxt, desc_A,info,parts=part_block) + call psb_matdist(aux_A, A, ctxt, desc_A,info,parts=part_block) call psb_scatter(b_glob,b,desc_a,info,root=psb_root_) t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(*,'(" ")') @@ -212,7 +213,7 @@ program amg_zexample_ml ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! solver - call P%init(ictxt,'ML',info) + call P%init(ctxt,'ML',info) kmethod = 'CG' case(2) @@ -243,7 +244,7 @@ program amg_zexample_ml ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! build the preconditioner @@ -251,7 +252,7 @@ program amg_zexample_ml call P%smoothers_build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -265,13 +266,13 @@ program amg_zexample_ml ! solve Ax=b with preconditioned CG - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,itrace=1,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geasb(r,desc_A,info,scratch=.true.) call psb_geaxpby(zone,b,zzero,r,desc_A,info) @@ -282,9 +283,9 @@ program amg_zexample_ml amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = p%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) @@ -334,27 +335,28 @@ program amg_zexample_ml call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,mtrx,rhs,filefmt,choice,itmax,tol) + subroutine get_parms(ctxt,mtrx,rhs,filefmt,choice,itmax,tol) implicit none - integer :: ictxt, choice, itmax + type(psb_ctxt_type) :: ctxt + integer :: choice, itmax real(psb_dpk_) :: tol character(len=*) :: mtrx, rhs,filefmt integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -363,7 +365,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -383,12 +385,12 @@ contains end if end if - call psb_bcast(ictxt,mtrx) - call psb_bcast(ictxt,rhs) - call psb_bcast(ictxt,filefmt) - call psb_bcast(ictxt,choice) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,choice) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms end program amg_zexample_ml diff --git a/examples/pdegen/amg_dexample_1lev.f90 b/examples/pdegen/amg_dexample_1lev.f90 index 5fc142c0..e7554ae6 100644 --- a/examples/pdegen/amg_dexample_1lev.f90 +++ b/examples/pdegen/amg_dexample_1lev.f90 @@ -85,7 +85,8 @@ program amg_dexample_1lev integer :: itmax, iter, itrace, istop ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: i,info,j @@ -98,12 +99,12 @@ program amg_dexample_1lev character(len=20) :: name, kmethod ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -121,15 +122,15 @@ program amg_dexample_1lev ! get parameters - call get_parms(ictxt,idim,itmax,tol) + call get_parms(ctxt,idim,itmax,tol) ! allocate and fill in the coefficient matrix, rhs and initial guess - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() - call amg_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,& + call amg_gen_pde3d(ctxt,idim,a,b,x,desc_a,afmt,& & a1,a2,a3,b1,b2,b3,c,g,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t2 = psb_wtime() - t1 if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -142,7 +143,7 @@ program amg_dexample_1lev ! set RAS - call P%init(ictxt,'AS',info) + call P%init(ctxt,'AS',info) ! set number of overlaps @@ -155,7 +156,7 @@ program amg_dexample_1lev call P%build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -171,13 +172,13 @@ program amg_dexample_1lev ! solve Ax=b with preconditioned Krylov method: BiCGSTAB kmethod = 'BiCGSTAB' - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,itrace=1,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geall(r,desc_A,info) call r%zero() @@ -191,9 +192,9 @@ program amg_dexample_1lev descsize = desc_a%sizeof() precsize = p%sizeof() system_size = desc_a%get_global_rows() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) @@ -221,26 +222,27 @@ program amg_dexample_1lev call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,idim,itmax,tol) + subroutine get_parms(ctxt,idim,itmax,tol) implicit none - integer :: idim, ictxt, itmax + type(psb_ctxt_type) :: ctxt + integer :: idim, itmax real(psb_dpk_) :: tol integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -249,7 +251,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -267,9 +269,9 @@ contains end if end if - call psb_bcast(ictxt,idim) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,idim) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms end program amg_dexample_1lev diff --git a/examples/pdegen/amg_dexample_ml.f90 b/examples/pdegen/amg_dexample_ml.f90 index bf0f367e..5d00b1bc 100644 --- a/examples/pdegen/amg_dexample_ml.f90 +++ b/examples/pdegen/amg_dexample_ml.f90 @@ -103,7 +103,8 @@ program amg_dexample_ml integer :: nlev ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: choice @@ -118,12 +119,12 @@ program amg_dexample_ml ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -141,15 +142,15 @@ program amg_dexample_ml ! get parameters - call get_parms(ictxt,choice,idim,itmax,tol) + call get_parms(ctxt,choice,idim,itmax,tol) ! allocate and fill in the coefficient matrix, rhs and initial guess - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() - call amg_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,& + call amg_gen_pde3d(ctxt,idim,a,b,x,desc_a,afmt,& & a1,a2,a3,b1,b2,b3,c,g,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t2 = psb_wtime() - t1 if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -169,7 +170,7 @@ program amg_dexample_ml ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! solver - call P%init(ictxt,'ML',info) + call P%init(ctxt,'ML',info) kmethod = 'CG' case(2) @@ -178,7 +179,7 @@ program amg_dexample_ml ! ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi ! sweeps (with ILU(0) on the blocks) as coarsest-level solver - call P%init(ictxt,'ML',info) + call P%init(ctxt,'ML',info) call P%set('SMOOTHER_TYPE','BJAC',info) call P%set('COARSE_SOLVE','BJAC',info) call P%set('COARSE_SWEEPS',8,info) @@ -190,7 +191,7 @@ program amg_dexample_ml ! GS sweeps as pre/post-smoother, a distributed coarsest ! matrix, and MUMPS as coarsest-level solver - call P%init(ictxt,'ML',info) + call P%init(ctxt,'ML',info) call P%set('ML_CYCLE','WCYCLE',info) call P%set('SMOOTHER_SWEEPS',2,info) call P%set('COARSE_SOLVE','MUMPS',info) @@ -199,7 +200,7 @@ program amg_dexample_ml end select - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! build the preconditioner @@ -207,7 +208,7 @@ program amg_dexample_ml call P%smoothers_build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -222,13 +223,13 @@ program amg_dexample_ml ! solve Ax=b with preconditioned Krylov method - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,itrace=1,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geall(r,desc_A,info) call r%zero() @@ -242,9 +243,9 @@ program amg_dexample_ml descsize = desc_a%sizeof() precsize = p%sizeof() system_size = desc_a%get_global_rows() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) @@ -272,26 +273,27 @@ program amg_dexample_ml call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,choice,idim,itmax,tol) + subroutine get_parms(ctxt,choice,idim,itmax,tol) implicit none - integer :: choice, idim, ictxt, itmax + type(psb_ctxt_type) :: ctxt + integer :: choice, idim, itmax real(psb_dpk_) :: tol integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -300,7 +302,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -318,10 +320,10 @@ contains end if end if - call psb_bcast(ictxt,choice) - call psb_bcast(ictxt,idim) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,choice) + call psb_bcast(ctxt,idim) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms diff --git a/examples/pdegen/amg_dpde_mod.f90 b/examples/pdegen/amg_dpde_mod.f90 index 3a058884..86b0676a 100644 --- a/examples/pdegen/amg_dpde_mod.f90 +++ b/examples/pdegen/amg_dpde_mod.f90 @@ -67,7 +67,7 @@ contains ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. ! - subroutine amg_d_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,& + subroutine amg_d_gen_pde3d(ctxt,idim,a,bv,xv,desc_a,afmt,& & a1,a2,a3,b1,b2,b3,c,g,info,f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod use psb_util_mod @@ -92,7 +92,8 @@ contains type(psb_dspmat_type) :: a type(psb_d_vect_type) :: xv,bv type(psb_desc_type) :: desc_a - integer(psb_ipk_) :: ictxt, info + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: info character(len=*) :: afmt procedure(d_func_3d), optional :: f class(psb_d_base_sparse_mat), optional :: amold @@ -130,7 +131,7 @@ contains name = 'create_matrix' call psb_erractionsave(err_act) - call psb_info(ictxt, iam, np) + call psb_info(ctxt, iam, np) if (present(f)) then @@ -176,12 +177,12 @@ contains end if nt = nr - call psb_sum(ictxt,nt) + call psb_sum(ctxt,nt) if (nt /= m) then write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -189,7 +190,7 @@ contains ! First example of use of CDALL: specify for each process a number of ! contiguous rows ! - call psb_cdall(ictxt,desc_a,info,nl=nr) + call psb_cdall(ctxt,desc_a,info,nl=nr) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -200,15 +201,15 @@ contains if (size(iv) /= m) then write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if else write(psb_err_unit,*) iam, 'Initialization error: IV not present' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -216,7 +217,7 @@ contains ! Second example of use of CDALL: specify for each row the ! process that owns it ! - call psb_cdall(ictxt,desc_a,info,vg=iv) + call psb_cdall(ctxt,desc_a,info,vg=iv) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -258,21 +259,21 @@ contains write(psb_err_unit,*) iam,iamx,iamy,iamz, 'Initialization error: NR vs NLR ',& & nr,nlr,mynx,myny,mynz info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) end if ! ! Third example of use of CDALL: specify for each process ! the set of global indices it owns. ! - call psb_cdall(ictxt,desc_a,info,vl=myidx) + call psb_cdall(ctxt,desc_a,info,vl=myidx) case default write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end select @@ -282,7 +283,7 @@ contains if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) talc = psb_wtime()-t0 if (info /= psb_success_) then @@ -308,7 +309,7 @@ contains ! loop over rows belonging to current process in a block ! distribution. - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() do ii=1, nlr,nb ib = min(nb,nlr-ii+1) @@ -409,11 +410,11 @@ contains deallocate(val,irow,icol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_cdasb(desc_a,info,mold=imold) tcdasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() if (info == psb_success_) then if (present(amold)) then @@ -422,7 +423,7 @@ contains call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) end if end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='asb rout.' @@ -438,13 +439,13 @@ contains goto 9999 end if tasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) ttot = psb_wtime() - t0 - call psb_amx(ictxt,talc) - call psb_amx(ictxt,tgen) - call psb_amx(ictxt,tasb) - call psb_amx(ictxt,ttot) + call psb_amx(ctxt,talc) + call psb_amx(ctxt,tgen) + call psb_amx(ctxt,tasb) + call psb_amx(ctxt,ttot) if(iam == psb_root_) then tmpfmt = a%get_fmt() write(psb_out_unit,'("The matrix has been generated and assembled in ",a3," format.")')& @@ -459,7 +460,7 @@ contains call psb_erractionrestore(err_act) return -9999 call psb_error_handler(ictxt,err_act) +9999 call psb_error_handler(ctxt,err_act) return end subroutine amg_d_gen_pde3d diff --git a/examples/pdegen/amg_sexample_1lev.f90 b/examples/pdegen/amg_sexample_1lev.f90 index ab9b5159..7debe6b2 100644 --- a/examples/pdegen/amg_sexample_1lev.f90 +++ b/examples/pdegen/amg_sexample_1lev.f90 @@ -85,7 +85,8 @@ program amg_sexample_1lev integer :: itmax, iter, itrace, istop ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: i,info,j @@ -98,12 +99,12 @@ program amg_sexample_1lev character(len=20) :: name, kmethod ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -121,15 +122,15 @@ program amg_sexample_1lev ! get parameters - call get_parms(ictxt,idim,itmax,tol) + call get_parms(ctxt,idim,itmax,tol) ! allocate and fill in the coefficient matrix, rhs and initial guess - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() - call amg_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,& + call amg_gen_pde3d(ctxt,idim,a,b,x,desc_a,afmt,& & a1,a2,a3,b1,b2,b3,c,g,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t2 = psb_wtime() - t1 if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -142,7 +143,7 @@ program amg_sexample_1lev ! set RAS - call P%init(ictxt,'AS',info) + call P%init(ctxt,'AS',info) ! set number of overlaps @@ -155,7 +156,7 @@ program amg_sexample_1lev call P%build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -171,13 +172,13 @@ program amg_sexample_1lev ! solve Ax=b with preconditioned Krylov method: BiCGSTAB kmethod = 'BiCGSTAB' - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,itrace=1,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geall(r,desc_A,info) call r%zero() @@ -191,9 +192,9 @@ program amg_sexample_1lev descsize = desc_a%sizeof() precsize = p%sizeof() system_size = desc_a%get_global_rows() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) @@ -221,26 +222,27 @@ program amg_sexample_1lev call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,idim,itmax,tol) + subroutine get_parms(ctxt,idim,itmax,tol) implicit none - integer :: idim, ictxt, itmax + type(psb_ctxt_type) :: ctxt + integer :: idim, itmax real(psb_spk_) :: tol integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -249,7 +251,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -267,9 +269,9 @@ contains end if end if - call psb_bcast(ictxt,idim) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,idim) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms end program amg_sexample_1lev diff --git a/examples/pdegen/amg_sexample_ml.f90 b/examples/pdegen/amg_sexample_ml.f90 index 2a6c3777..2c34bf56 100644 --- a/examples/pdegen/amg_sexample_ml.f90 +++ b/examples/pdegen/amg_sexample_ml.f90 @@ -103,7 +103,8 @@ program amg_sexample_ml integer :: nlev ! parallel environment parameters - integer :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer :: iam, np ! other variables integer :: choice @@ -118,12 +119,12 @@ program amg_sexample_ml ! initialize the parallel environment - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -141,15 +142,15 @@ program amg_sexample_ml ! get parameters - call get_parms(ictxt,choice,idim,itmax,tol) + call get_parms(ctxt,choice,idim,itmax,tol) ! allocate and fill in the coefficient matrix, rhs and initial guess - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() - call amg_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,& + call amg_gen_pde3d(ctxt,idim,a,b,x,desc_a,afmt,& & a1,a2,a3,b1,b2,b3,c,g,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t2 = psb_wtime() - t1 if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -169,7 +170,7 @@ program amg_sexample_ml ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! solver - call P%init(ictxt,'ML',info) + call P%init(ctxt,'ML',info) kmethod = 'CG' case(2) @@ -178,7 +179,7 @@ program amg_sexample_ml ! ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi ! sweeps (with ILU(0) on the blocks) as coarsest-level solver - call P%init(ictxt,'ML',info) + call P%init(ctxt,'ML',info) call P%set('SMOOTHER_TYPE','BJAC',info) call P%set('COARSE_SOLVE','BJAC',info) call P%set('COARSE_SWEEPS',8,info) @@ -190,7 +191,7 @@ program amg_sexample_ml ! GS sweeps as pre/post-smoother, a distributed coarsest ! matrix, and MUMPS as coarsest-level solver - call P%init(ictxt,'ML',info) + call P%init(ctxt,'ML',info) call P%set('ML_CYCLE','WCYCLE',info) call P%set('SMOOTHER_SWEEPS',2,info) call P%set('COARSE_SOLVE','MUMPS',info) @@ -199,7 +200,7 @@ program amg_sexample_ml end select - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! build the preconditioner @@ -207,7 +208,7 @@ program amg_sexample_ml call P%smoothers_build(A,desc_A,info) tprec = psb_wtime()-t1 - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, tprec) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld') @@ -222,13 +223,13 @@ program amg_sexample_ml ! solve Ax=b with preconditioned Krylov method - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,itrace=1,istop=2) t2 = psb_wtime() - t1 - call psb_amx(ictxt,t2) + call psb_amx(ctxt,t2) call psb_geall(r,desc_A,info) call r%zero() @@ -242,9 +243,9 @@ program amg_sexample_ml descsize = desc_a%sizeof() precsize = p%sizeof() system_size = desc_a%get_global_rows() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call P%descr(info) @@ -272,26 +273,27 @@ program amg_sexample_ml call psb_spfree(A, desc_A,info) call P%free(info) call psb_cdfree(desc_A,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get parameters from standard input ! - subroutine get_parms(ictxt,choice,idim,itmax,tol) + subroutine get_parms(ctxt,choice,idim,itmax,tol) implicit none - integer :: choice, idim, ictxt, itmax + type(psb_ctxt_type) :: ctxt + integer :: choice, idim, itmax real(psb_spk_) :: tol integer :: iam, np, inp_unit character(len=1024) :: filename - call psb_info(ictxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -300,7 +302,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(ictxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -318,10 +320,10 @@ contains end if end if - call psb_bcast(ictxt,choice) - call psb_bcast(ictxt,idim) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,tol) + call psb_bcast(ctxt,choice) + call psb_bcast(ctxt,idim) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,tol) end subroutine get_parms diff --git a/examples/pdegen/amg_spde_mod.f90 b/examples/pdegen/amg_spde_mod.f90 index 5fdd94bf..295d89e9 100644 --- a/examples/pdegen/amg_spde_mod.f90 +++ b/examples/pdegen/amg_spde_mod.f90 @@ -67,7 +67,7 @@ contains ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. ! - subroutine amg_s_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,& + subroutine amg_s_gen_pde3d(ctxt,idim,a,bv,xv,desc_a,afmt,& & a1,a2,a3,b1,b2,b3,c,g,info,f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod use psb_util_mod @@ -92,7 +92,8 @@ contains type(psb_sspmat_type) :: a type(psb_s_vect_type) :: xv,bv type(psb_desc_type) :: desc_a - integer(psb_ipk_) :: ictxt, info + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: info character(len=*) :: afmt procedure(s_func_3d), optional :: f class(psb_s_base_sparse_mat), optional :: amold @@ -130,7 +131,7 @@ contains name = 'create_matrix' call psb_erractionsave(err_act) - call psb_info(ictxt, iam, np) + call psb_info(ctxt, iam, np) if (present(f)) then @@ -176,12 +177,12 @@ contains end if nt = nr - call psb_sum(ictxt,nt) + call psb_sum(ctxt,nt) if (nt /= m) then write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -189,7 +190,7 @@ contains ! First example of use of CDALL: specify for each process a number of ! contiguous rows ! - call psb_cdall(ictxt,desc_a,info,nl=nr) + call psb_cdall(ctxt,desc_a,info,nl=nr) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -200,15 +201,15 @@ contains if (size(iv) /= m) then write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if else write(psb_err_unit,*) iam, 'Initialization error: IV not present' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -216,7 +217,7 @@ contains ! Second example of use of CDALL: specify for each row the ! process that owns it ! - call psb_cdall(ictxt,desc_a,info,vg=iv) + call psb_cdall(ctxt,desc_a,info,vg=iv) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -258,21 +259,21 @@ contains write(psb_err_unit,*) iam,iamx,iamy,iamz, 'Initialization error: NR vs NLR ',& & nr,nlr,mynx,myny,mynz info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) end if ! ! Third example of use of CDALL: specify for each process ! the set of global indices it owns. ! - call psb_cdall(ictxt,desc_a,info,vl=myidx) + call psb_cdall(ctxt,desc_a,info,vl=myidx) case default write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end select @@ -282,7 +283,7 @@ contains if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) talc = psb_wtime()-t0 if (info /= psb_success_) then @@ -308,7 +309,7 @@ contains ! loop over rows belonging to current process in a block ! distribution. - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() do ii=1, nlr,nb ib = min(nb,nlr-ii+1) @@ -409,11 +410,11 @@ contains deallocate(val,irow,icol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_cdasb(desc_a,info,mold=imold) tcdasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() if (info == psb_success_) then if (present(amold)) then @@ -422,7 +423,7 @@ contains call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) end if end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='asb rout.' @@ -438,13 +439,13 @@ contains goto 9999 end if tasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) ttot = psb_wtime() - t0 - call psb_amx(ictxt,talc) - call psb_amx(ictxt,tgen) - call psb_amx(ictxt,tasb) - call psb_amx(ictxt,ttot) + call psb_amx(ctxt,talc) + call psb_amx(ctxt,tgen) + call psb_amx(ctxt,tasb) + call psb_amx(ctxt,ttot) if(iam == psb_root_) then tmpfmt = a%get_fmt() write(psb_out_unit,'("The matrix has been generated and assembled in ",a3," format.")')& @@ -459,7 +460,7 @@ contains call psb_erractionrestore(err_act) return -9999 call psb_error_handler(ictxt,err_act) +9999 call psb_error_handler(ctxt,err_act) return end subroutine amg_s_gen_pde3d diff --git a/tests/Bcmatch/amg_d_bcmatch_aggregator_mat_asb.f90 b/tests/Bcmatch/amg_d_bcmatch_aggregator_mat_asb.f90 index 209da1e9..5a26bd80 100644 --- a/tests/Bcmatch/amg_d_bcmatch_aggregator_mat_asb.f90 +++ b/tests/Bcmatch/amg_d_bcmatch_aggregator_mat_asb.f90 @@ -149,7 +149,7 @@ subroutine mld_d_bcmatch_aggregator_mat_asb(ag,parms,a,desc_a,ilaggr,nlaggr,ac, ! Local variables character(len=20) :: name - integer(psb_mpk_) :: ictxt, np, me + integer(psb_mpk_) :: ctxt, np, me type(psb_d_coo_sparse_mat) :: acoo, bcoo type(psb_d_csr_sparse_mat) :: acsr1 integer(psb_ipk_) :: nzl,ntaggr @@ -162,8 +162,8 @@ subroutine mld_d_bcmatch_aggregator_mat_asb(ag,parms,a,desc_a,ilaggr,nlaggr,ac, debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() info = psb_success_ - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) ! ! Build the coarse-level matrix from the fine-level one, starting from diff --git a/tests/Bcmatch/amg_d_bcmatch_aggregator_tprol.f90 b/tests/Bcmatch/amg_d_bcmatch_aggregator_tprol.f90 index c6fdd218..b3b36d10 100644 --- a/tests/Bcmatch/amg_d_bcmatch_aggregator_tprol.f90 +++ b/tests/Bcmatch/amg_d_bcmatch_aggregator_tprol.f90 @@ -66,7 +66,7 @@ subroutine mld_d_bcmatch_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr type(bcm_CSRMatrix) :: C, P integer(c_int) :: match_algorithm, n_sweeps, max_csize, max_nlevels character(len=20) :: name, ch_err - integer(psb_mpk_) :: ictxt, np, me + integer(psb_mpk_) :: ctxt, np, me integer(psb_ipk_) :: err_act, ierr integer(psb_ipk_) :: debug_level, debug_unit integer(psb_ipk_) :: i, j, k, nr, nc, isz, num_pcols @@ -110,8 +110,8 @@ subroutine mld_d_bcmatch_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr end interface name='mld_d_bcmatch_aggregator_tprol' - ictxt = desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt = desc_a%get_context() + call psb_info(ctxt,me,np) if (psb_get_errstatus().ne.0) return call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() @@ -183,7 +183,7 @@ subroutine mld_d_bcmatch_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr nlaggr(:)=0 nlaggr(me+1) = num_pcols - call psb_sum(ictxt,nlaggr(1:np)) + call psb_sum(ctxt,nlaggr(1:np)) call mld_d_bcmatch_map_to_tprol(desc_a,ilaggr,nlaggr,valaggr,op_prol,info) diff --git a/tests/Bcmatch/amg_d_bcmatch_map_to_tprol.f90 b/tests/Bcmatch/amg_d_bcmatch_map_to_tprol.f90 index 6d289454..609a29d7 100644 --- a/tests/Bcmatch/amg_d_bcmatch_map_to_tprol.f90 +++ b/tests/Bcmatch/amg_d_bcmatch_map_to_tprol.f90 @@ -105,7 +105,7 @@ subroutine mld_d_bcmatch_map_to_tprol(desc_a,ilaggr,nlaggr,valaggr, op_prol,info integer(psb_ipk_) :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m,naggrm1, naggrp1, ntaggr type(psb_d_coo_sparse_mat) :: tmpcoo integer(psb_ipk_) :: debug_level, debug_unit,err_act - integer(psb_ipk_) :: ictxt,np,me + integer(psb_ipk_) :: ctxt,np,me integer(psb_ipk_) :: nrow, ncol, n_ne character(len=20) :: name, ch_err @@ -116,8 +116,8 @@ subroutine mld_d_bcmatch_map_to_tprol(desc_a,ilaggr,nlaggr,valaggr, op_prol,info debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() ! - ictxt=desc_a%get_context() - call psb_info(ictxt,me,np) + ctxt=desc_a%get_context() + call psb_info(ctxt,me,np) nrow = desc_a%get_local_rows() ncol = desc_a%get_local_cols() diff --git a/tests/Bcmatch/amg_d_pde3d.f90 b/tests/Bcmatch/amg_d_pde3d.f90 index 42c1cd21..ec39a67c 100644 --- a/tests/Bcmatch/amg_d_pde3d.f90 +++ b/tests/Bcmatch/amg_d_pde3d.f90 @@ -172,7 +172,7 @@ contains ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. ! - subroutine mld_d_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,info,& + subroutine mld_d_gen_pde3d(ctxt,idim,a,bv,xv,desc_a,afmt,info,& & f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod use psb_util_mod @@ -196,7 +196,7 @@ contains type(psb_dspmat_type) :: a type(psb_d_vect_type) :: xv,bv type(psb_desc_type) :: desc_a - integer(psb_ipk_) :: ictxt, info + integer(psb_ipk_) :: ctxt, info character(len=*) :: afmt procedure(d_func_3d), optional :: f class(psb_d_base_sparse_mat), optional :: amold @@ -234,7 +234,7 @@ contains name = 'create_matrix' call psb_erractionsave(err_act) - call psb_info(ictxt, iam, np) + call psb_info(ctxt, iam, np) if (present(f)) then @@ -280,12 +280,12 @@ contains end if nt = nr - call psb_sum(ictxt,nt) + call psb_sum(ctxt,nt) if (nt /= m) then write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -293,7 +293,7 @@ contains ! First example of use of CDALL: specify for each process a number of ! contiguous rows ! - call psb_cdall(ictxt,desc_a,info,nl=nr) + call psb_cdall(ctxt,desc_a,info,nl=nr) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -304,15 +304,15 @@ contains if (size(iv) /= m) then write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if else write(psb_err_unit,*) iam, 'Initialization error: IV not present' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -320,7 +320,7 @@ contains ! Second example of use of CDALL: specify for each row the ! process that owns it ! - call psb_cdall(ictxt,desc_a,info,vg=iv) + call psb_cdall(ctxt,desc_a,info,vg=iv) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -362,21 +362,21 @@ contains write(psb_err_unit,*) iam,iamx,iamy,iamz, 'Initialization error: NR vs NLR ',& & nr,nlr,mynx,myny,mynz info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) end if ! ! Third example of use of CDALL: specify for each process ! the set of global indices it owns. ! - call psb_cdall(ictxt,desc_a,info,vl=myidx) + call psb_cdall(ctxt,desc_a,info,vl=myidx) case default write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end select @@ -386,7 +386,7 @@ contains if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) talc = psb_wtime()-t0 if (info /= psb_success_) then @@ -412,7 +412,7 @@ contains ! loop over rows belonging to current process in a block ! distribution. - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() do ii=1, nlr,nb ib = min(nb,nlr-ii+1) @@ -513,11 +513,11 @@ contains deallocate(val,irow,icol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_cdasb(desc_a,info,mold=imold) tcdasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() if (info == psb_success_) then if (present(amold)) then @@ -526,7 +526,7 @@ contains call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) end if end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='asb rout.' @@ -542,13 +542,13 @@ contains goto 9999 end if tasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) ttot = psb_wtime() - t0 - call psb_amx(ictxt,talc) - call psb_amx(ictxt,tgen) - call psb_amx(ictxt,tasb) - call psb_amx(ictxt,ttot) + call psb_amx(ctxt,talc) + call psb_amx(ctxt,tgen) + call psb_amx(ctxt,tasb) + call psb_amx(ctxt,ttot) if(iam == psb_root_) then tmpfmt = a%get_fmt() write(psb_out_unit,'("The matrix has been generated and assembled in ",a3," format.")')& @@ -563,7 +563,7 @@ contains call psb_erractionrestore(err_act) return -9999 call psb_error_handler(ictxt,err_act) +9999 call psb_error_handler(ctxt,err_act) return end subroutine mld_d_gen_pde3d @@ -597,7 +597,7 @@ program mld_d_pde3d ! dense vectors type(psb_d_vect_type) :: x,b,r ! parallel environment - integer(psb_ipk_) :: ictxt, iam, np + integer(psb_ipk_) :: ctxt, iam, np ! solver parameters integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, nlv @@ -684,12 +684,12 @@ program mld_d_pde3d info=psb_success_ - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif if(psb_get_errstatus() /= 0) goto 9999 @@ -706,16 +706,16 @@ program mld_d_pde3d ! ! get parameters ! - call get_parms(ictxt,afmt,idim,s_choice,p_choice) + call get_parms(ctxt,afmt,idim,s_choice,p_choice) ! ! allocate and fill in the coefficient matrix, rhs and initial guess ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() - call mld_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,info) - call psb_barrier(ictxt) + call mld_gen_pde3d(ctxt,idim,a,b,x,desc_a,afmt,info) + call psb_barrier(ctxt) t2 = psb_wtime() - t1 if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -731,7 +731,7 @@ program mld_d_pde3d ! ! initialize the preconditioner ! - call prec%init(ictxt,p_choice%ptype,info) + call prec%init(ctxt,p_choice%ptype,info) select case(trim(psb_toupper(p_choice%ptype))) case ('NONE','NOPREC') ! Do nothing, keep defaults @@ -830,7 +830,7 @@ program mld_d_pde3d end select ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() !call psb_set_debug_level(9999) call prec%hierarchy_build(a,desc_a,info) @@ -840,7 +840,7 @@ program mld_d_pde3d call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_hierarchy_bld') goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%smoothers_build(a,desc_a,info) tprec = psb_wtime()-t1 @@ -849,8 +849,8 @@ program mld_d_pde3d goto 9999 end if - call psb_amx(ictxt, thier) - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, thier) + call psb_amx(ctxt, tprec) if(iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -862,15 +862,15 @@ program mld_d_pde3d ! ! iterative method parameters ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,& & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& & istop=s_choice%istopc,irst=s_choice%irst) - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -879,9 +879,9 @@ program mld_d_pde3d goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) ! compute residual norms call psb_geall(r,desc_a,info) @@ -895,9 +895,9 @@ program mld_d_pde3d amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = prec%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call prec%descr(iout=psb_out_unit) if (iam == psb_root_) then write(psb_out_unit,'("Computed solution on ",i8," processors")') np @@ -936,11 +936,11 @@ program mld_d_pde3d call psb_errpush(info,name,a_err=ch_err) goto 9999 end if - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! @@ -1086,12 +1086,12 @@ contains call psb_bcast(icontxt,prec%aggr_ord) call psb_bcast(icontxt,prec%aggr_filter) call psb_bcast(icontxt,prec%mncrratio) - call psb_bcast(ictxt,prec%thrvsz) + call psb_bcast(ctxt,prec%thrvsz) if (prec%thrvsz > 0) then if (iam /= psb_root_) call psb_realloc(prec%thrvsz,prec%athresv,info) - call psb_bcast(ictxt,prec%athresv) + call psb_bcast(ctxt,prec%athresv) end if - call psb_bcast(ictxt,prec%athres) + call psb_bcast(ctxt,prec%athres) call psb_bcast(icontxt,prec%csize) call psb_bcast(icontxt,prec%cmat) @@ -1100,9 +1100,9 @@ contains call psb_bcast(icontxt,prec%cfill) call psb_bcast(icontxt,prec%cthres) call psb_bcast(icontxt,prec%cjswp) - call psb_bcast(ictxt,prec%use_bcm) - call psb_bcast(ictxt,prec%bcm_alg) - call psb_bcast(ictxt,prec%bcm_sweeps) + call psb_bcast(ctxt,prec%use_bcm) + call psb_bcast(ctxt,prec%bcm_alg) + call psb_bcast(ctxt,prec%bcm_sweeps) end subroutine get_parms diff --git a/tests/Bcmatch/amg_daggrmat_unsmth_spmm_asb.f90 b/tests/Bcmatch/amg_daggrmat_unsmth_spmm_asb.f90 index 49a42446..7bd10a3b 100644 --- a/tests/Bcmatch/amg_daggrmat_unsmth_spmm_asb.f90 +++ b/tests/Bcmatch/amg_daggrmat_unsmth_spmm_asb.f90 @@ -113,7 +113,7 @@ subroutine mld_daggrmat_unsmth_spmm_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol, ! Local variables integer(psb_ipk_) :: err_act - integer(psb_ipk_) :: ictxt,np,me, icomm, ndx, minfo + integer(psb_ipk_) :: ctxt,np,me, icomm, ndx, minfo character(len=20) :: name integer(psb_ipk_) :: ierr(5) type(psb_d_coo_sparse_mat) :: ac_coo, tmpcoo @@ -129,9 +129,9 @@ subroutine mld_daggrmat_unsmth_spmm_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol, call psb_erractionsave(err_act) - ictxt = desc_a%get_context() + ctxt = desc_a%get_context() icomm = desc_a%get_mpic() - call psb_info(ictxt, me, np) + call psb_info(ctxt, me, np) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() nglob = desc_a%get_global_rows() diff --git a/tests/fileread/amg_cf_sample.f90 b/tests/fileread/amg_cf_sample.f90 index 84e26660..24c47662 100644 --- a/tests/fileread/amg_cf_sample.f90 +++ b/tests/fileread/amg_cf_sample.f90 @@ -134,7 +134,8 @@ program amg_cf_sample ! communications data structure type(psb_desc_type):: desc_a - integer(psb_ipk_) :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np ! solver paramters integer(psb_ipk_) :: iter, ircode, nlv @@ -155,12 +156,12 @@ program amg_cf_sample integer(psb_ipk_), allocatable :: ivg(:), ipv(:), perm(:) logical :: have_guess=.false., have_ref=.false. - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -181,10 +182,10 @@ program amg_cf_sample ! ! get parameters ! - call get_parms(ictxt,mtrx_file,rhs_file,guess_file,sol_file,filefmt, & + call get_parms(ctxt,mtrx_file,rhs_file,guess_file,sol_file,filefmt, & & part,afmt,s_choice,p_choice) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read the input matrix to be processed and (possibly) the rhs, ! the initial guess and the reference solution @@ -224,13 +225,13 @@ program amg_cf_sample if (info /= psb_success_) then write(psb_err_unit,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) - call psb_bcast(ictxt,have_guess) - call psb_bcast(ictxt,have_ref) + call psb_bcast(ctxt,m_problem) + call psb_bcast(ctxt,have_guess) + call psb_bcast(ctxt,have_ref) ! At this point aux_b may still be unallocated if (psb_size(aux_b,dim=ione) == m_problem) then @@ -279,9 +280,9 @@ program amg_cf_sample call aux_a%clean_zeros(info) else - call psb_bcast(ictxt,m_problem) - call psb_bcast(ictxt,have_guess) - call psb_bcast(ictxt,have_ref) + call psb_bcast(ctxt,m_problem) + call psb_bcast(ctxt,have_guess) + call psb_bcast(ctxt,have_ref) end if @@ -316,21 +317,21 @@ program amg_cf_sample ! select case (psb_toupper(part)) case('BLOCK') - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(psb_out_unit,'("Partition type: block")') - call psb_matdist(aux_a, a, ictxt, desc_a,info,fmt=afmt,parts=part_block) + call psb_matdist(aux_a, a, ctxt, desc_a,info,fmt=afmt,parts=part_block) case('GRAPH') if (iam == psb_root_) then write(psb_out_unit,'("Partition type: graph")') write(psb_out_unit,'(" ")') call build_mtpart(aux_a,np) endif - call distr_mtpart(psb_root_,ictxt) + call distr_mtpart(psb_root_,ctxt) call getv_mtpart(ivg) - call psb_matdist(aux_a, a, ictxt,desc_a,info,fmt=afmt,vg=ivg) + call psb_matdist(aux_a, a, ctxt,desc_a,info,fmt=afmt,vg=ivg) case default if (iam == psb_root_) write(psb_out_unit,'("Partition type: block")') - call psb_matdist(aux_a, a, ictxt, desc_a,info,fmt=afmt,parts=part_block) + call psb_matdist(aux_a, a, ctxt, desc_a,info,fmt=afmt,parts=part_block) end select ! @@ -350,7 +351,7 @@ program amg_cf_sample end if t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -361,7 +362,7 @@ program amg_cf_sample ! ! initialize the preconditioner ! - call prec%init(ictxt,p_choice%ptype,info) + call prec%init(ctxt,p_choice%ptype,info) select case(trim(psb_toupper(p_choice%ptype))) case ('NONE','NOPREC') ! Do nothing, keep defaults @@ -452,7 +453,7 @@ program amg_cf_sample end select ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%hierarchy_build(a,desc_a,info) thier = psb_wtime()-t1 @@ -460,7 +461,7 @@ program amg_cf_sample call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld') goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%smoothers_build(a,desc_a,info) tprec = psb_wtime()-t1 @@ -469,8 +470,8 @@ program amg_cf_sample goto 9999 end if - call psb_amx(ictxt, thier) - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, thier) + call psb_amx(ctxt, tprec) if(iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -482,15 +483,15 @@ program amg_cf_sample ! ! iterative method parameters ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(s_choice%kmethd,a,prec,b_col,x_col,s_choice%eps,& & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& & istop=s_choice%istopc,irst=s_choice%irst) - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) ! compute residual norms call psb_geall(r_col,desc_a,info) @@ -513,9 +514,9 @@ program amg_cf_sample amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = prec%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call prec%descr(iout=psb_out_unit) if (iam == psb_root_) then write(psb_out_unit,'("Matrix: ",a)')mtrx_file @@ -584,28 +585,28 @@ program amg_cf_sample call prec%free(info) call psb_cdfree(desc_a,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get iteration parameters from standard input ! - subroutine get_parms(icontxt,mtrx,rhs,guess,sol,filefmt,part,afmt,solve,prec) + subroutine get_parms(ctxt,mtrx,rhs,guess,sol,filefmt,part,afmt,solve,prec) implicit none - integer(psb_ipk_) :: icontxt + type(psb_ctxt_type) :: ctxt character(len=*) :: mtrx, rhs, guess, sol, filefmt, afmt, part type(solverdata) :: solve type(precdata) :: prec integer(psb_ipk_) :: iam, nm, np, inp_unit character(len=1024) :: filename - call psb_info(icontxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then ! read input data @@ -615,7 +616,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(icontxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -691,67 +692,67 @@ contains end if end if - call psb_bcast(icontxt,mtrx) - call psb_bcast(icontxt,rhs) - call psb_bcast(icontxt,guess) - call psb_bcast(icontxt,sol) - call psb_bcast(icontxt,filefmt) - call psb_bcast(icontxt,afmt) - call psb_bcast(icontxt,part) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,guess) + call psb_bcast(ctxt,sol) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,afmt) + call psb_bcast(ctxt,part) - call psb_bcast(icontxt,solve%kmethd) - call psb_bcast(icontxt,solve%istopc) - call psb_bcast(icontxt,solve%itmax) - call psb_bcast(icontxt,solve%itrace) - call psb_bcast(icontxt,solve%irst) - call psb_bcast(icontxt,solve%eps) + call psb_bcast(ctxt,solve%kmethd) + call psb_bcast(ctxt,solve%istopc) + call psb_bcast(ctxt,solve%itmax) + call psb_bcast(ctxt,solve%itrace) + call psb_bcast(ctxt,solve%irst) + call psb_bcast(ctxt,solve%eps) - call psb_bcast(icontxt,prec%descr) - call psb_bcast(icontxt,prec%ptype) + call psb_bcast(ctxt,prec%descr) + call psb_bcast(ctxt,prec%ptype) ! broadcast first (pre-)smoother / 1-lev prec data - call psb_bcast(icontxt,prec%smther) - call psb_bcast(icontxt,prec%jsweeps) - call psb_bcast(icontxt,prec%novr) - call psb_bcast(icontxt,prec%restr) - call psb_bcast(icontxt,prec%prol) - call psb_bcast(icontxt,prec%solve) - call psb_bcast(icontxt,prec%fill) - call psb_bcast(icontxt,prec%thr) + call psb_bcast(ctxt,prec%smther) + call psb_bcast(ctxt,prec%jsweeps) + call psb_bcast(ctxt,prec%novr) + call psb_bcast(ctxt,prec%restr) + call psb_bcast(ctxt,prec%prol) + call psb_bcast(ctxt,prec%solve) + call psb_bcast(ctxt,prec%fill) + call psb_bcast(ctxt,prec%thr) ! broadcast second (post-)smoother - call psb_bcast(icontxt,prec%smther2) - call psb_bcast(icontxt,prec%jsweeps2) - call psb_bcast(icontxt,prec%novr2) - call psb_bcast(icontxt,prec%restr2) - call psb_bcast(icontxt,prec%prol2) - call psb_bcast(icontxt,prec%solve2) - call psb_bcast(icontxt,prec%fill2) - call psb_bcast(icontxt,prec%thr2) + call psb_bcast(ctxt,prec%smther2) + call psb_bcast(ctxt,prec%jsweeps2) + call psb_bcast(ctxt,prec%novr2) + call psb_bcast(ctxt,prec%restr2) + call psb_bcast(ctxt,prec%prol2) + call psb_bcast(ctxt,prec%solve2) + call psb_bcast(ctxt,prec%fill2) + call psb_bcast(ctxt,prec%thr2) ! broadcast AMG parameters - call psb_bcast(icontxt,prec%mlcycle) - call psb_bcast(icontxt,prec%outer_sweeps) - call psb_bcast(icontxt,prec%maxlevs) + call psb_bcast(ctxt,prec%mlcycle) + call psb_bcast(ctxt,prec%outer_sweeps) + call psb_bcast(ctxt,prec%maxlevs) - call psb_bcast(icontxt,prec%aggr_prol) - call psb_bcast(icontxt,prec%par_aggr_alg) - call psb_bcast(icontxt,prec%aggr_ord) - call psb_bcast(icontxt,prec%aggr_filter) - call psb_bcast(icontxt,prec%mncrratio) - call psb_bcast(ictxt,prec%thrvsz) + call psb_bcast(ctxt,prec%aggr_prol) + call psb_bcast(ctxt,prec%par_aggr_alg) + call psb_bcast(ctxt,prec%aggr_ord) + call psb_bcast(ctxt,prec%aggr_filter) + call psb_bcast(ctxt,prec%mncrratio) + call psb_bcast(ctxt,prec%thrvsz) if (prec%thrvsz > 0) then if (iam /= psb_root_) call psb_realloc(prec%thrvsz,prec%athresv,info) - call psb_bcast(ictxt,prec%athresv) + call psb_bcast(ctxt,prec%athresv) end if - call psb_bcast(ictxt,prec%athres) + call psb_bcast(ctxt,prec%athres) - call psb_bcast(icontxt,prec%csize) - call psb_bcast(icontxt,prec%cmat) - call psb_bcast(icontxt,prec%csolve) - call psb_bcast(icontxt,prec%csbsolve) - call psb_bcast(icontxt,prec%cfill) - call psb_bcast(icontxt,prec%cthres) - call psb_bcast(icontxt,prec%cjswp) + call psb_bcast(ctxt,prec%csize) + call psb_bcast(ctxt,prec%cmat) + call psb_bcast(ctxt,prec%csolve) + call psb_bcast(ctxt,prec%csbsolve) + call psb_bcast(ctxt,prec%cfill) + call psb_bcast(ctxt,prec%cthres) + call psb_bcast(ctxt,prec%cjswp) end subroutine get_parms diff --git a/tests/fileread/amg_df_sample.f90 b/tests/fileread/amg_df_sample.f90 index f9a9b2c6..cd6e0d46 100644 --- a/tests/fileread/amg_df_sample.f90 +++ b/tests/fileread/amg_df_sample.f90 @@ -134,7 +134,8 @@ program amg_df_sample ! communications data structure type(psb_desc_type):: desc_a - integer(psb_ipk_) :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np ! solver paramters integer(psb_ipk_) :: iter, ircode, nlv @@ -155,12 +156,12 @@ program amg_df_sample integer(psb_ipk_), allocatable :: ivg(:), ipv(:), perm(:) logical :: have_guess=.false., have_ref=.false. - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -181,10 +182,10 @@ program amg_df_sample ! ! get parameters ! - call get_parms(ictxt,mtrx_file,rhs_file,guess_file,sol_file,filefmt, & + call get_parms(ctxt,mtrx_file,rhs_file,guess_file,sol_file,filefmt, & & part,afmt,s_choice,p_choice) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read the input matrix to be processed and (possibly) the rhs, ! the initial guess and the reference solution @@ -224,13 +225,13 @@ program amg_df_sample if (info /= psb_success_) then write(psb_err_unit,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) - call psb_bcast(ictxt,have_guess) - call psb_bcast(ictxt,have_ref) + call psb_bcast(ctxt,m_problem) + call psb_bcast(ctxt,have_guess) + call psb_bcast(ctxt,have_ref) ! At this point aux_b may still be unallocated if (psb_size(aux_b,dim=ione) == m_problem) then @@ -279,9 +280,9 @@ program amg_df_sample call aux_a%clean_zeros(info) else - call psb_bcast(ictxt,m_problem) - call psb_bcast(ictxt,have_guess) - call psb_bcast(ictxt,have_ref) + call psb_bcast(ctxt,m_problem) + call psb_bcast(ctxt,have_guess) + call psb_bcast(ctxt,have_ref) end if @@ -316,21 +317,21 @@ program amg_df_sample ! select case (psb_toupper(part)) case('BLOCK') - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(psb_out_unit,'("Partition type: block")') - call psb_matdist(aux_a, a, ictxt, desc_a,info,fmt=afmt,parts=part_block) + call psb_matdist(aux_a, a, ctxt, desc_a,info,fmt=afmt,parts=part_block) case('GRAPH') if (iam == psb_root_) then write(psb_out_unit,'("Partition type: graph")') write(psb_out_unit,'(" ")') call build_mtpart(aux_a,np) endif - call distr_mtpart(psb_root_,ictxt) + call distr_mtpart(psb_root_,ctxt) call getv_mtpart(ivg) - call psb_matdist(aux_a, a, ictxt,desc_a,info,fmt=afmt,vg=ivg) + call psb_matdist(aux_a, a, ctxt,desc_a,info,fmt=afmt,vg=ivg) case default if (iam == psb_root_) write(psb_out_unit,'("Partition type: block")') - call psb_matdist(aux_a, a, ictxt, desc_a,info,fmt=afmt,parts=part_block) + call psb_matdist(aux_a, a, ctxt, desc_a,info,fmt=afmt,parts=part_block) end select ! @@ -350,7 +351,7 @@ program amg_df_sample end if t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -361,7 +362,7 @@ program amg_df_sample ! ! initialize the preconditioner ! - call prec%init(ictxt,p_choice%ptype,info) + call prec%init(ctxt,p_choice%ptype,info) select case(trim(psb_toupper(p_choice%ptype))) case ('NONE','NOPREC') ! Do nothing, keep defaults @@ -452,7 +453,7 @@ program amg_df_sample end select ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%hierarchy_build(a,desc_a,info) thier = psb_wtime()-t1 @@ -460,7 +461,7 @@ program amg_df_sample call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld') goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%smoothers_build(a,desc_a,info) tprec = psb_wtime()-t1 @@ -469,8 +470,8 @@ program amg_df_sample goto 9999 end if - call psb_amx(ictxt, thier) - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, thier) + call psb_amx(ctxt, tprec) if(iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -482,15 +483,15 @@ program amg_df_sample ! ! iterative method parameters ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(s_choice%kmethd,a,prec,b_col,x_col,s_choice%eps,& & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& & istop=s_choice%istopc,irst=s_choice%irst) - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) ! compute residual norms call psb_geall(r_col,desc_a,info) @@ -513,9 +514,9 @@ program amg_df_sample amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = prec%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call prec%descr(iout=psb_out_unit) if (iam == psb_root_) then write(psb_out_unit,'("Matrix: ",a)')mtrx_file @@ -584,28 +585,28 @@ program amg_df_sample call prec%free(info) call psb_cdfree(desc_a,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get iteration parameters from standard input ! - subroutine get_parms(icontxt,mtrx,rhs,guess,sol,filefmt,part,afmt,solve,prec) + subroutine get_parms(ctxt,mtrx,rhs,guess,sol,filefmt,part,afmt,solve,prec) implicit none - integer(psb_ipk_) :: icontxt + type(psb_ctxt_type) :: ctxt character(len=*) :: mtrx, rhs, guess, sol, filefmt, afmt, part type(solverdata) :: solve type(precdata) :: prec integer(psb_ipk_) :: iam, nm, np, inp_unit character(len=1024) :: filename - call psb_info(icontxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then ! read input data @@ -615,7 +616,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(icontxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -691,67 +692,67 @@ contains end if end if - call psb_bcast(icontxt,mtrx) - call psb_bcast(icontxt,rhs) - call psb_bcast(icontxt,guess) - call psb_bcast(icontxt,sol) - call psb_bcast(icontxt,filefmt) - call psb_bcast(icontxt,afmt) - call psb_bcast(icontxt,part) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,guess) + call psb_bcast(ctxt,sol) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,afmt) + call psb_bcast(ctxt,part) - call psb_bcast(icontxt,solve%kmethd) - call psb_bcast(icontxt,solve%istopc) - call psb_bcast(icontxt,solve%itmax) - call psb_bcast(icontxt,solve%itrace) - call psb_bcast(icontxt,solve%irst) - call psb_bcast(icontxt,solve%eps) + call psb_bcast(ctxt,solve%kmethd) + call psb_bcast(ctxt,solve%istopc) + call psb_bcast(ctxt,solve%itmax) + call psb_bcast(ctxt,solve%itrace) + call psb_bcast(ctxt,solve%irst) + call psb_bcast(ctxt,solve%eps) - call psb_bcast(icontxt,prec%descr) - call psb_bcast(icontxt,prec%ptype) + call psb_bcast(ctxt,prec%descr) + call psb_bcast(ctxt,prec%ptype) ! broadcast first (pre-)smoother / 1-lev prec data - call psb_bcast(icontxt,prec%smther) - call psb_bcast(icontxt,prec%jsweeps) - call psb_bcast(icontxt,prec%novr) - call psb_bcast(icontxt,prec%restr) - call psb_bcast(icontxt,prec%prol) - call psb_bcast(icontxt,prec%solve) - call psb_bcast(icontxt,prec%fill) - call psb_bcast(icontxt,prec%thr) + call psb_bcast(ctxt,prec%smther) + call psb_bcast(ctxt,prec%jsweeps) + call psb_bcast(ctxt,prec%novr) + call psb_bcast(ctxt,prec%restr) + call psb_bcast(ctxt,prec%prol) + call psb_bcast(ctxt,prec%solve) + call psb_bcast(ctxt,prec%fill) + call psb_bcast(ctxt,prec%thr) ! broadcast second (post-)smoother - call psb_bcast(icontxt,prec%smther2) - call psb_bcast(icontxt,prec%jsweeps2) - call psb_bcast(icontxt,prec%novr2) - call psb_bcast(icontxt,prec%restr2) - call psb_bcast(icontxt,prec%prol2) - call psb_bcast(icontxt,prec%solve2) - call psb_bcast(icontxt,prec%fill2) - call psb_bcast(icontxt,prec%thr2) + call psb_bcast(ctxt,prec%smther2) + call psb_bcast(ctxt,prec%jsweeps2) + call psb_bcast(ctxt,prec%novr2) + call psb_bcast(ctxt,prec%restr2) + call psb_bcast(ctxt,prec%prol2) + call psb_bcast(ctxt,prec%solve2) + call psb_bcast(ctxt,prec%fill2) + call psb_bcast(ctxt,prec%thr2) ! broadcast AMG parameters - call psb_bcast(icontxt,prec%mlcycle) - call psb_bcast(icontxt,prec%outer_sweeps) - call psb_bcast(icontxt,prec%maxlevs) + call psb_bcast(ctxt,prec%mlcycle) + call psb_bcast(ctxt,prec%outer_sweeps) + call psb_bcast(ctxt,prec%maxlevs) - call psb_bcast(icontxt,prec%aggr_prol) - call psb_bcast(icontxt,prec%par_aggr_alg) - call psb_bcast(icontxt,prec%aggr_ord) - call psb_bcast(icontxt,prec%aggr_filter) - call psb_bcast(icontxt,prec%mncrratio) - call psb_bcast(ictxt,prec%thrvsz) + call psb_bcast(ctxt,prec%aggr_prol) + call psb_bcast(ctxt,prec%par_aggr_alg) + call psb_bcast(ctxt,prec%aggr_ord) + call psb_bcast(ctxt,prec%aggr_filter) + call psb_bcast(ctxt,prec%mncrratio) + call psb_bcast(ctxt,prec%thrvsz) if (prec%thrvsz > 0) then if (iam /= psb_root_) call psb_realloc(prec%thrvsz,prec%athresv,info) - call psb_bcast(ictxt,prec%athresv) + call psb_bcast(ctxt,prec%athresv) end if - call psb_bcast(ictxt,prec%athres) + call psb_bcast(ctxt,prec%athres) - call psb_bcast(icontxt,prec%csize) - call psb_bcast(icontxt,prec%cmat) - call psb_bcast(icontxt,prec%csolve) - call psb_bcast(icontxt,prec%csbsolve) - call psb_bcast(icontxt,prec%cfill) - call psb_bcast(icontxt,prec%cthres) - call psb_bcast(icontxt,prec%cjswp) + call psb_bcast(ctxt,prec%csize) + call psb_bcast(ctxt,prec%cmat) + call psb_bcast(ctxt,prec%csolve) + call psb_bcast(ctxt,prec%csbsolve) + call psb_bcast(ctxt,prec%cfill) + call psb_bcast(ctxt,prec%cthres) + call psb_bcast(ctxt,prec%cjswp) end subroutine get_parms diff --git a/tests/fileread/amg_sf_sample.f90 b/tests/fileread/amg_sf_sample.f90 index 27716006..a6d02565 100644 --- a/tests/fileread/amg_sf_sample.f90 +++ b/tests/fileread/amg_sf_sample.f90 @@ -134,7 +134,8 @@ program amg_sf_sample ! communications data structure type(psb_desc_type):: desc_a - integer(psb_ipk_) :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np ! solver paramters integer(psb_ipk_) :: iter, ircode, nlv @@ -155,12 +156,12 @@ program amg_sf_sample integer(psb_ipk_), allocatable :: ivg(:), ipv(:), perm(:) logical :: have_guess=.false., have_ref=.false. - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -181,10 +182,10 @@ program amg_sf_sample ! ! get parameters ! - call get_parms(ictxt,mtrx_file,rhs_file,guess_file,sol_file,filefmt, & + call get_parms(ctxt,mtrx_file,rhs_file,guess_file,sol_file,filefmt, & & part,afmt,s_choice,p_choice) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read the input matrix to be processed and (possibly) the rhs, ! the initial guess and the reference solution @@ -224,13 +225,13 @@ program amg_sf_sample if (info /= psb_success_) then write(psb_err_unit,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) - call psb_bcast(ictxt,have_guess) - call psb_bcast(ictxt,have_ref) + call psb_bcast(ctxt,m_problem) + call psb_bcast(ctxt,have_guess) + call psb_bcast(ctxt,have_ref) ! At this point aux_b may still be unallocated if (psb_size(aux_b,dim=ione) == m_problem) then @@ -279,9 +280,9 @@ program amg_sf_sample call aux_a%clean_zeros(info) else - call psb_bcast(ictxt,m_problem) - call psb_bcast(ictxt,have_guess) - call psb_bcast(ictxt,have_ref) + call psb_bcast(ctxt,m_problem) + call psb_bcast(ctxt,have_guess) + call psb_bcast(ctxt,have_ref) end if @@ -316,21 +317,21 @@ program amg_sf_sample ! select case (psb_toupper(part)) case('BLOCK') - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(psb_out_unit,'("Partition type: block")') - call psb_matdist(aux_a, a, ictxt, desc_a,info,fmt=afmt,parts=part_block) + call psb_matdist(aux_a, a, ctxt, desc_a,info,fmt=afmt,parts=part_block) case('GRAPH') if (iam == psb_root_) then write(psb_out_unit,'("Partition type: graph")') write(psb_out_unit,'(" ")') call build_mtpart(aux_a,np) endif - call distr_mtpart(psb_root_,ictxt) + call distr_mtpart(psb_root_,ctxt) call getv_mtpart(ivg) - call psb_matdist(aux_a, a, ictxt,desc_a,info,fmt=afmt,vg=ivg) + call psb_matdist(aux_a, a, ctxt,desc_a,info,fmt=afmt,vg=ivg) case default if (iam == psb_root_) write(psb_out_unit,'("Partition type: block")') - call psb_matdist(aux_a, a, ictxt, desc_a,info,fmt=afmt,parts=part_block) + call psb_matdist(aux_a, a, ctxt, desc_a,info,fmt=afmt,parts=part_block) end select ! @@ -350,7 +351,7 @@ program amg_sf_sample end if t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -361,7 +362,7 @@ program amg_sf_sample ! ! initialize the preconditioner ! - call prec%init(ictxt,p_choice%ptype,info) + call prec%init(ctxt,p_choice%ptype,info) select case(trim(psb_toupper(p_choice%ptype))) case ('NONE','NOPREC') ! Do nothing, keep defaults @@ -452,7 +453,7 @@ program amg_sf_sample end select ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%hierarchy_build(a,desc_a,info) thier = psb_wtime()-t1 @@ -460,7 +461,7 @@ program amg_sf_sample call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld') goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%smoothers_build(a,desc_a,info) tprec = psb_wtime()-t1 @@ -469,8 +470,8 @@ program amg_sf_sample goto 9999 end if - call psb_amx(ictxt, thier) - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, thier) + call psb_amx(ctxt, tprec) if(iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -482,15 +483,15 @@ program amg_sf_sample ! ! iterative method parameters ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(s_choice%kmethd,a,prec,b_col,x_col,s_choice%eps,& & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& & istop=s_choice%istopc,irst=s_choice%irst) - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) ! compute residual norms call psb_geall(r_col,desc_a,info) @@ -513,9 +514,9 @@ program amg_sf_sample amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = prec%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call prec%descr(iout=psb_out_unit) if (iam == psb_root_) then write(psb_out_unit,'("Matrix: ",a)')mtrx_file @@ -584,28 +585,28 @@ program amg_sf_sample call prec%free(info) call psb_cdfree(desc_a,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get iteration parameters from standard input ! - subroutine get_parms(icontxt,mtrx,rhs,guess,sol,filefmt,part,afmt,solve,prec) + subroutine get_parms(ctxt,mtrx,rhs,guess,sol,filefmt,part,afmt,solve,prec) implicit none - integer(psb_ipk_) :: icontxt + type(psb_ctxt_type) :: ctxt character(len=*) :: mtrx, rhs, guess, sol, filefmt, afmt, part type(solverdata) :: solve type(precdata) :: prec integer(psb_ipk_) :: iam, nm, np, inp_unit character(len=1024) :: filename - call psb_info(icontxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then ! read input data @@ -615,7 +616,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(icontxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -691,67 +692,67 @@ contains end if end if - call psb_bcast(icontxt,mtrx) - call psb_bcast(icontxt,rhs) - call psb_bcast(icontxt,guess) - call psb_bcast(icontxt,sol) - call psb_bcast(icontxt,filefmt) - call psb_bcast(icontxt,afmt) - call psb_bcast(icontxt,part) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,guess) + call psb_bcast(ctxt,sol) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,afmt) + call psb_bcast(ctxt,part) - call psb_bcast(icontxt,solve%kmethd) - call psb_bcast(icontxt,solve%istopc) - call psb_bcast(icontxt,solve%itmax) - call psb_bcast(icontxt,solve%itrace) - call psb_bcast(icontxt,solve%irst) - call psb_bcast(icontxt,solve%eps) + call psb_bcast(ctxt,solve%kmethd) + call psb_bcast(ctxt,solve%istopc) + call psb_bcast(ctxt,solve%itmax) + call psb_bcast(ctxt,solve%itrace) + call psb_bcast(ctxt,solve%irst) + call psb_bcast(ctxt,solve%eps) - call psb_bcast(icontxt,prec%descr) - call psb_bcast(icontxt,prec%ptype) + call psb_bcast(ctxt,prec%descr) + call psb_bcast(ctxt,prec%ptype) ! broadcast first (pre-)smoother / 1-lev prec data - call psb_bcast(icontxt,prec%smther) - call psb_bcast(icontxt,prec%jsweeps) - call psb_bcast(icontxt,prec%novr) - call psb_bcast(icontxt,prec%restr) - call psb_bcast(icontxt,prec%prol) - call psb_bcast(icontxt,prec%solve) - call psb_bcast(icontxt,prec%fill) - call psb_bcast(icontxt,prec%thr) + call psb_bcast(ctxt,prec%smther) + call psb_bcast(ctxt,prec%jsweeps) + call psb_bcast(ctxt,prec%novr) + call psb_bcast(ctxt,prec%restr) + call psb_bcast(ctxt,prec%prol) + call psb_bcast(ctxt,prec%solve) + call psb_bcast(ctxt,prec%fill) + call psb_bcast(ctxt,prec%thr) ! broadcast second (post-)smoother - call psb_bcast(icontxt,prec%smther2) - call psb_bcast(icontxt,prec%jsweeps2) - call psb_bcast(icontxt,prec%novr2) - call psb_bcast(icontxt,prec%restr2) - call psb_bcast(icontxt,prec%prol2) - call psb_bcast(icontxt,prec%solve2) - call psb_bcast(icontxt,prec%fill2) - call psb_bcast(icontxt,prec%thr2) + call psb_bcast(ctxt,prec%smther2) + call psb_bcast(ctxt,prec%jsweeps2) + call psb_bcast(ctxt,prec%novr2) + call psb_bcast(ctxt,prec%restr2) + call psb_bcast(ctxt,prec%prol2) + call psb_bcast(ctxt,prec%solve2) + call psb_bcast(ctxt,prec%fill2) + call psb_bcast(ctxt,prec%thr2) ! broadcast AMG parameters - call psb_bcast(icontxt,prec%mlcycle) - call psb_bcast(icontxt,prec%outer_sweeps) - call psb_bcast(icontxt,prec%maxlevs) + call psb_bcast(ctxt,prec%mlcycle) + call psb_bcast(ctxt,prec%outer_sweeps) + call psb_bcast(ctxt,prec%maxlevs) - call psb_bcast(icontxt,prec%aggr_prol) - call psb_bcast(icontxt,prec%par_aggr_alg) - call psb_bcast(icontxt,prec%aggr_ord) - call psb_bcast(icontxt,prec%aggr_filter) - call psb_bcast(icontxt,prec%mncrratio) - call psb_bcast(ictxt,prec%thrvsz) + call psb_bcast(ctxt,prec%aggr_prol) + call psb_bcast(ctxt,prec%par_aggr_alg) + call psb_bcast(ctxt,prec%aggr_ord) + call psb_bcast(ctxt,prec%aggr_filter) + call psb_bcast(ctxt,prec%mncrratio) + call psb_bcast(ctxt,prec%thrvsz) if (prec%thrvsz > 0) then if (iam /= psb_root_) call psb_realloc(prec%thrvsz,prec%athresv,info) - call psb_bcast(ictxt,prec%athresv) + call psb_bcast(ctxt,prec%athresv) end if - call psb_bcast(ictxt,prec%athres) + call psb_bcast(ctxt,prec%athres) - call psb_bcast(icontxt,prec%csize) - call psb_bcast(icontxt,prec%cmat) - call psb_bcast(icontxt,prec%csolve) - call psb_bcast(icontxt,prec%csbsolve) - call psb_bcast(icontxt,prec%cfill) - call psb_bcast(icontxt,prec%cthres) - call psb_bcast(icontxt,prec%cjswp) + call psb_bcast(ctxt,prec%csize) + call psb_bcast(ctxt,prec%cmat) + call psb_bcast(ctxt,prec%csolve) + call psb_bcast(ctxt,prec%csbsolve) + call psb_bcast(ctxt,prec%cfill) + call psb_bcast(ctxt,prec%cthres) + call psb_bcast(ctxt,prec%cjswp) end subroutine get_parms diff --git a/tests/fileread/amg_zf_sample.f90 b/tests/fileread/amg_zf_sample.f90 index bc5d6df5..61cf9c72 100644 --- a/tests/fileread/amg_zf_sample.f90 +++ b/tests/fileread/amg_zf_sample.f90 @@ -134,7 +134,8 @@ program amg_zf_sample ! communications data structure type(psb_desc_type):: desc_a - integer(psb_ipk_) :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np ! solver paramters integer(psb_ipk_) :: iter, ircode, nlv @@ -155,12 +156,12 @@ program amg_zf_sample integer(psb_ipk_), allocatable :: ivg(:), ipv(:), perm(:) logical :: have_guess=.false., have_ref=.false. - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif @@ -181,10 +182,10 @@ program amg_zf_sample ! ! get parameters ! - call get_parms(ictxt,mtrx_file,rhs_file,guess_file,sol_file,filefmt, & + call get_parms(ctxt,mtrx_file,rhs_file,guess_file,sol_file,filefmt, & & part,afmt,s_choice,p_choice) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() ! read the input matrix to be processed and (possibly) the rhs, ! the initial guess and the reference solution @@ -224,13 +225,13 @@ program amg_zf_sample if (info /= psb_success_) then write(psb_err_unit,*) 'Error while reading input matrix ' - call psb_abort(ictxt) + call psb_abort(ctxt) end if m_problem = aux_a%get_nrows() - call psb_bcast(ictxt,m_problem) - call psb_bcast(ictxt,have_guess) - call psb_bcast(ictxt,have_ref) + call psb_bcast(ctxt,m_problem) + call psb_bcast(ctxt,have_guess) + call psb_bcast(ctxt,have_ref) ! At this point aux_b may still be unallocated if (psb_size(aux_b,dim=ione) == m_problem) then @@ -279,9 +280,9 @@ program amg_zf_sample call aux_a%clean_zeros(info) else - call psb_bcast(ictxt,m_problem) - call psb_bcast(ictxt,have_guess) - call psb_bcast(ictxt,have_ref) + call psb_bcast(ctxt,m_problem) + call psb_bcast(ctxt,have_guess) + call psb_bcast(ctxt,have_ref) end if @@ -316,21 +317,21 @@ program amg_zf_sample ! select case (psb_toupper(part)) case('BLOCK') - call psb_barrier(ictxt) + call psb_barrier(ctxt) if (iam == psb_root_) write(psb_out_unit,'("Partition type: block")') - call psb_matdist(aux_a, a, ictxt, desc_a,info,fmt=afmt,parts=part_block) + call psb_matdist(aux_a, a, ctxt, desc_a,info,fmt=afmt,parts=part_block) case('GRAPH') if (iam == psb_root_) then write(psb_out_unit,'("Partition type: graph")') write(psb_out_unit,'(" ")') call build_mtpart(aux_a,np) endif - call distr_mtpart(psb_root_,ictxt) + call distr_mtpart(psb_root_,ctxt) call getv_mtpart(ivg) - call psb_matdist(aux_a, a, ictxt,desc_a,info,fmt=afmt,vg=ivg) + call psb_matdist(aux_a, a, ctxt,desc_a,info,fmt=afmt,vg=ivg) case default if (iam == psb_root_) write(psb_out_unit,'("Partition type: block")') - call psb_matdist(aux_a, a, ictxt, desc_a,info,fmt=afmt,parts=part_block) + call psb_matdist(aux_a, a, ctxt, desc_a,info,fmt=afmt,parts=part_block) end select ! @@ -350,7 +351,7 @@ program amg_zf_sample end if t2 = psb_wtime() - t1 - call psb_amx(ictxt, t2) + call psb_amx(ctxt, t2) if (iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -361,7 +362,7 @@ program amg_zf_sample ! ! initialize the preconditioner ! - call prec%init(ictxt,p_choice%ptype,info) + call prec%init(ctxt,p_choice%ptype,info) select case(trim(psb_toupper(p_choice%ptype))) case ('NONE','NOPREC') ! Do nothing, keep defaults @@ -452,7 +453,7 @@ program amg_zf_sample end select ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%hierarchy_build(a,desc_a,info) thier = psb_wtime()-t1 @@ -460,7 +461,7 @@ program amg_zf_sample call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld') goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%smoothers_build(a,desc_a,info) tprec = psb_wtime()-t1 @@ -469,8 +470,8 @@ program amg_zf_sample goto 9999 end if - call psb_amx(ictxt, thier) - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, thier) + call psb_amx(ctxt, tprec) if(iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -482,15 +483,15 @@ program amg_zf_sample ! ! iterative method parameters ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(s_choice%kmethd,a,prec,b_col,x_col,s_choice%eps,& & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& & istop=s_choice%istopc,irst=s_choice%irst) - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) ! compute residual norms call psb_geall(r_col,desc_a,info) @@ -513,9 +514,9 @@ program amg_zf_sample amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = prec%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call prec%descr(iout=psb_out_unit) if (iam == psb_root_) then write(psb_out_unit,'("Matrix: ",a)')mtrx_file @@ -584,28 +585,28 @@ program amg_zf_sample call prec%free(info) call psb_cdfree(desc_a,info) - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get iteration parameters from standard input ! - subroutine get_parms(icontxt,mtrx,rhs,guess,sol,filefmt,part,afmt,solve,prec) + subroutine get_parms(ctxt,mtrx,rhs,guess,sol,filefmt,part,afmt,solve,prec) implicit none - integer(psb_ipk_) :: icontxt + type(psb_ctxt_type) :: ctxt character(len=*) :: mtrx, rhs, guess, sol, filefmt, afmt, part type(solverdata) :: solve type(precdata) :: prec integer(psb_ipk_) :: iam, nm, np, inp_unit character(len=1024) :: filename - call psb_info(icontxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then ! read input data @@ -615,7 +616,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(icontxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -691,67 +692,67 @@ contains end if end if - call psb_bcast(icontxt,mtrx) - call psb_bcast(icontxt,rhs) - call psb_bcast(icontxt,guess) - call psb_bcast(icontxt,sol) - call psb_bcast(icontxt,filefmt) - call psb_bcast(icontxt,afmt) - call psb_bcast(icontxt,part) + call psb_bcast(ctxt,mtrx) + call psb_bcast(ctxt,rhs) + call psb_bcast(ctxt,guess) + call psb_bcast(ctxt,sol) + call psb_bcast(ctxt,filefmt) + call psb_bcast(ctxt,afmt) + call psb_bcast(ctxt,part) - call psb_bcast(icontxt,solve%kmethd) - call psb_bcast(icontxt,solve%istopc) - call psb_bcast(icontxt,solve%itmax) - call psb_bcast(icontxt,solve%itrace) - call psb_bcast(icontxt,solve%irst) - call psb_bcast(icontxt,solve%eps) + call psb_bcast(ctxt,solve%kmethd) + call psb_bcast(ctxt,solve%istopc) + call psb_bcast(ctxt,solve%itmax) + call psb_bcast(ctxt,solve%itrace) + call psb_bcast(ctxt,solve%irst) + call psb_bcast(ctxt,solve%eps) - call psb_bcast(icontxt,prec%descr) - call psb_bcast(icontxt,prec%ptype) + call psb_bcast(ctxt,prec%descr) + call psb_bcast(ctxt,prec%ptype) ! broadcast first (pre-)smoother / 1-lev prec data - call psb_bcast(icontxt,prec%smther) - call psb_bcast(icontxt,prec%jsweeps) - call psb_bcast(icontxt,prec%novr) - call psb_bcast(icontxt,prec%restr) - call psb_bcast(icontxt,prec%prol) - call psb_bcast(icontxt,prec%solve) - call psb_bcast(icontxt,prec%fill) - call psb_bcast(icontxt,prec%thr) + call psb_bcast(ctxt,prec%smther) + call psb_bcast(ctxt,prec%jsweeps) + call psb_bcast(ctxt,prec%novr) + call psb_bcast(ctxt,prec%restr) + call psb_bcast(ctxt,prec%prol) + call psb_bcast(ctxt,prec%solve) + call psb_bcast(ctxt,prec%fill) + call psb_bcast(ctxt,prec%thr) ! broadcast second (post-)smoother - call psb_bcast(icontxt,prec%smther2) - call psb_bcast(icontxt,prec%jsweeps2) - call psb_bcast(icontxt,prec%novr2) - call psb_bcast(icontxt,prec%restr2) - call psb_bcast(icontxt,prec%prol2) - call psb_bcast(icontxt,prec%solve2) - call psb_bcast(icontxt,prec%fill2) - call psb_bcast(icontxt,prec%thr2) + call psb_bcast(ctxt,prec%smther2) + call psb_bcast(ctxt,prec%jsweeps2) + call psb_bcast(ctxt,prec%novr2) + call psb_bcast(ctxt,prec%restr2) + call psb_bcast(ctxt,prec%prol2) + call psb_bcast(ctxt,prec%solve2) + call psb_bcast(ctxt,prec%fill2) + call psb_bcast(ctxt,prec%thr2) ! broadcast AMG parameters - call psb_bcast(icontxt,prec%mlcycle) - call psb_bcast(icontxt,prec%outer_sweeps) - call psb_bcast(icontxt,prec%maxlevs) + call psb_bcast(ctxt,prec%mlcycle) + call psb_bcast(ctxt,prec%outer_sweeps) + call psb_bcast(ctxt,prec%maxlevs) - call psb_bcast(icontxt,prec%aggr_prol) - call psb_bcast(icontxt,prec%par_aggr_alg) - call psb_bcast(icontxt,prec%aggr_ord) - call psb_bcast(icontxt,prec%aggr_filter) - call psb_bcast(icontxt,prec%mncrratio) - call psb_bcast(ictxt,prec%thrvsz) + call psb_bcast(ctxt,prec%aggr_prol) + call psb_bcast(ctxt,prec%par_aggr_alg) + call psb_bcast(ctxt,prec%aggr_ord) + call psb_bcast(ctxt,prec%aggr_filter) + call psb_bcast(ctxt,prec%mncrratio) + call psb_bcast(ctxt,prec%thrvsz) if (prec%thrvsz > 0) then if (iam /= psb_root_) call psb_realloc(prec%thrvsz,prec%athresv,info) - call psb_bcast(ictxt,prec%athresv) + call psb_bcast(ctxt,prec%athresv) end if - call psb_bcast(ictxt,prec%athres) + call psb_bcast(ctxt,prec%athres) - call psb_bcast(icontxt,prec%csize) - call psb_bcast(icontxt,prec%cmat) - call psb_bcast(icontxt,prec%csolve) - call psb_bcast(icontxt,prec%csbsolve) - call psb_bcast(icontxt,prec%cfill) - call psb_bcast(icontxt,prec%cthres) - call psb_bcast(icontxt,prec%cjswp) + call psb_bcast(ctxt,prec%csize) + call psb_bcast(ctxt,prec%cmat) + call psb_bcast(ctxt,prec%csolve) + call psb_bcast(ctxt,prec%csbsolve) + call psb_bcast(ctxt,prec%cfill) + call psb_bcast(ctxt,prec%cthres) + call psb_bcast(ctxt,prec%cjswp) end subroutine get_parms diff --git a/tests/newslv/amg_d_tlu_solver_impl.f90 b/tests/newslv/amg_d_tlu_solver_impl.f90 index 086a1c80..209e85e4 100644 --- a/tests/newslv/amg_d_tlu_solver_impl.f90 +++ b/tests/newslv/amg_d_tlu_solver_impl.f90 @@ -62,15 +62,15 @@ subroutine mld_d_tlu_solver_bld(a,desc_a,sv,info,b,amold,vmold) class(psb_d_base_vect_type), intent(in), optional :: vmold ! Local variables integer :: n_row,n_col, nrow_a, nztota - integer :: ictxt,np,me,i, err_act, debug_unit, debug_level + integer :: ctxt,np,me,i, err_act, debug_unit, debug_level character(len=20) :: name='d_tlu_solver_bld', ch_err info=psb_success_ call psb_erractionsave(err_act) debug_unit = psb_get_debug_unit() debug_level = psb_get_debug_level() - ictxt = desc_a%get_context() - call psb_info(ictxt, me, np) + ctxt = desc_a%get_context() + call psb_info(ctxt, me, np) if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),' start' diff --git a/tests/newslv/amg_pde3d_newslv.f90 b/tests/newslv/amg_pde3d_newslv.f90 index 25abddc8..7367408d 100644 --- a/tests/newslv/amg_pde3d_newslv.f90 +++ b/tests/newslv/amg_pde3d_newslv.f90 @@ -149,7 +149,7 @@ program mld_d_pde3d ! dense vectors type(psb_d_vect_type) :: x,b ! parallel environment - integer(psb_ipk_) :: ictxt, iam, np + integer(psb_ipk_) :: ctxt, iam, np ! solver parameters integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, nlv @@ -163,12 +163,12 @@ program mld_d_pde3d info=psb_success_ - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif if(psb_get_errstatus() /= 0) goto 9999 @@ -185,17 +185,17 @@ program mld_d_pde3d ! ! get parameters ! - call get_parms(ictxt,kmethd,afmt,idim,istopc,itmax,itrace,irst,eps) + call get_parms(ctxt,kmethd,afmt,idim,istopc,itmax,itrace,irst,eps) ! ! allocate and fill in the coefficient matrix, rhs and initial guess ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() - call psb_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,& + call psb_gen_pde3d(ctxt,idim,a,b,x,desc_a,afmt,& & a1,a2,a3,b1,b2,b3,c,g,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t2 = psb_wtime() - t1 if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -214,7 +214,7 @@ program mld_d_pde3d ! call prec%init('ML', info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%hierarchy_build(a,desc_a,info) if(info /= psb_success_) then @@ -227,7 +227,7 @@ program mld_d_pde3d nlv = prec%get_nlevs() call prec%set(tlusv, info,ilev=1,ilmax=max(1,nlv-1)) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%smoothers_build(a,desc_a,info) if(info /= psb_success_) then @@ -238,8 +238,8 @@ program mld_d_pde3d end if tprec = psb_wtime()-t1 - call psb_amx(ictxt,thier) - call psb_amx(ictxt,tprec) + call psb_amx(ctxt,thier) + call psb_amx(ctxt,tprec) if (iam == psb_root_) & & write(psb_out_unit,'("Preconditioner time : ",es12.5)') tprec+thier @@ -252,7 +252,7 @@ program mld_d_pde3d ! if(iam == psb_root_) & & write(psb_out_unit,'("Calling iterative method ",a)')kmethd - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(kmethd,a,prec,b,x,eps,desc_a,info,& & itmax=itmax,iter=iter,err=err,itrace=itrace,istop=istopc,irst=irst) @@ -264,16 +264,16 @@ program mld_d_pde3d goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = prec%sizeof() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) if (iam == psb_root_) then write(psb_out_unit,'(" ")') write(psb_out_unit,'("Numer of levels of aggr. hierarchy: ",i12)') prec%get_nlevs() @@ -306,26 +306,26 @@ program mld_d_pde3d call psb_errpush(info,name,a_err=ch_err) goto 9999 end if - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! ! get iteration parameters from standard input ! - subroutine get_parms(ictxt,kmethd,afmt,idim,istopc,itmax,itrace,irst,eps) + subroutine get_parms(ctxt,kmethd,afmt,idim,istopc,itmax,itrace,irst,eps) - integer(psb_ipk_) :: ictxt + integer(psb_ipk_) :: ctxt character(len=*) :: kmethd, afmt integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst integer(psb_ipk_) :: np, iam, info real(psb_dpk_) :: eps character(len=20) :: buffer - call psb_info(ictxt, iam, np) + call psb_info(ctxt, iam, np) if (iam == psb_root_) then call read_data(kmethd,psb_inp_unit) @@ -339,14 +339,14 @@ contains end if ! broadcast parameters to all processors - call psb_bcast(ictxt,kmethd) - call psb_bcast(ictxt,afmt) - call psb_bcast(ictxt,idim) - call psb_bcast(ictxt,istopc) - call psb_bcast(ictxt,itmax) - call psb_bcast(ictxt,itrace) - call psb_bcast(ictxt,irst) - call psb_bcast(ictxt,eps) + call psb_bcast(ctxt,kmethd) + call psb_bcast(ctxt,afmt) + call psb_bcast(ctxt,idim) + call psb_bcast(ctxt,istopc) + call psb_bcast(ctxt,itmax) + call psb_bcast(ctxt,itrace) + call psb_bcast(ctxt,irst) + call psb_bcast(ctxt,eps) if (iam == psb_root_) then write(psb_out_unit,'("Solving matrix : ell1")') diff --git a/tests/pdegen/amg_d_pde2d.f90 b/tests/pdegen/amg_d_pde2d.f90 index a5243fb6..524c55ab 100644 --- a/tests/pdegen/amg_d_pde2d.f90 +++ b/tests/pdegen/amg_d_pde2d.f90 @@ -156,7 +156,7 @@ contains ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. ! - subroutine amg_d_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,info,& + subroutine amg_d_gen_pde2d(ctxt,idim,a,bv,xv,desc_a,afmt,info,& & f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod use psb_util_mod @@ -180,7 +180,8 @@ contains type(psb_dspmat_type) :: a type(psb_d_vect_type) :: xv,bv type(psb_desc_type) :: desc_a - integer(psb_ipk_) :: ictxt, info + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: info character(len=*) :: afmt procedure(d_func_2d), optional :: f class(psb_d_base_sparse_mat), optional :: amold @@ -222,7 +223,7 @@ contains name = 'create_matrix' call psb_erractionsave(err_act) - call psb_info(ictxt, iam, np) + call psb_info(ctxt, iam, np) if (present(f)) then @@ -268,12 +269,12 @@ contains end if nt = nr - call psb_sum(ictxt,nt) + call psb_sum(ctxt,nt) if (nt /= m) then write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -281,7 +282,7 @@ contains ! First example of use of CDALL: specify for each process a number of ! contiguous rows ! - call psb_cdall(ictxt,desc_a,info,nl=nr) + call psb_cdall(ctxt,desc_a,info,nl=nr) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -292,15 +293,15 @@ contains if (size(iv) /= m) then write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if else write(psb_err_unit,*) iam, 'Initialization error: IV not present' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -308,7 +309,7 @@ contains ! Second example of use of CDALL: specify for each row the ! process that owns it ! - call psb_cdall(ictxt,desc_a,info,vg=iv) + call psb_cdall(ctxt,desc_a,info,vg=iv) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -345,21 +346,21 @@ contains write(psb_err_unit,*) iam,iamx,iamy, 'Initialization error: NR vs NLR ',& & nr,nlr,mynx,myny info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) end if ! ! Third example of use of CDALL: specify for each process ! the set of global indices it owns. ! - call psb_cdall(ictxt,desc_a,info,vl=myidx) + call psb_cdall(ctxt,desc_a,info,vl=myidx) case default write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end select @@ -369,7 +370,7 @@ contains if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) talc = psb_wtime()-t0 if (info /= psb_success_) then @@ -395,7 +396,7 @@ contains ! loop over rows belonging to current process in a block ! distribution. - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() do ii=1, nlr,nb ib = min(nb,nlr-ii+1) @@ -477,11 +478,11 @@ contains deallocate(val,irow,icol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_cdasb(desc_a,info,mold=imold) tcdasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() if (info == psb_success_) then if (present(amold)) then @@ -490,7 +491,7 @@ contains call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) end if end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='asb rout.' @@ -506,13 +507,13 @@ contains goto 9999 end if tasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) ttot = psb_wtime() - t0 - call psb_amx(ictxt,talc) - call psb_amx(ictxt,tgen) - call psb_amx(ictxt,tasb) - call psb_amx(ictxt,ttot) + call psb_amx(ctxt,talc) + call psb_amx(ctxt,tgen) + call psb_amx(ctxt,tasb) + call psb_amx(ctxt,ttot) if(iam == psb_root_) then tmpfmt = a%get_fmt() write(psb_out_unit,'("The matrix has been generated and assembled in ",a3," format.")')& @@ -527,7 +528,7 @@ contains call psb_erractionrestore(err_act) return -9999 call psb_error_handler(ictxt,err_act) +9999 call psb_error_handler(ctxt,err_act) return end subroutine amg_d_gen_pde2d @@ -561,7 +562,8 @@ program amg_d_pde2d ! dense vectors type(psb_d_vect_type) :: x,b,r ! parallel environment - integer(psb_ipk_) :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np ! solver parameters integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, nlv @@ -646,12 +648,12 @@ program amg_d_pde2d info=psb_success_ - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif if(psb_get_errstatus() /= 0) goto 9999 @@ -668,15 +670,15 @@ program amg_d_pde2d ! ! get parameters ! - call get_parms(ictxt,afmt,idim,s_choice,p_choice) + call get_parms(ctxt,afmt,idim,s_choice,p_choice) ! ! allocate and fill in the coefficient matrix, rhs and initial guess ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() - call amg_gen_pde2d(ictxt,idim,a,b,x,desc_a,afmt,info) - call psb_barrier(ictxt) + call amg_gen_pde2d(ctxt,idim,a,b,x,desc_a,afmt,info) + call psb_barrier(ctxt) t2 = psb_wtime() - t1 if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -692,7 +694,7 @@ program amg_d_pde2d ! ! initialize the preconditioner ! - call prec%init(ictxt,p_choice%ptype,info) + call prec%init(ctxt,p_choice%ptype,info) select case(trim(psb_toupper(p_choice%ptype))) case ('NONE','NOPREC') ! Do nothing, keep defaults @@ -783,7 +785,7 @@ program amg_d_pde2d end select ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%hierarchy_build(a,desc_a,info) thier = psb_wtime()-t1 @@ -791,7 +793,7 @@ program amg_d_pde2d call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld') goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%smoothers_build(a,desc_a,info) tprec = psb_wtime()-t1 @@ -800,8 +802,8 @@ program amg_d_pde2d goto 9999 end if - call psb_amx(ictxt, thier) - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, thier) + call psb_amx(ctxt, tprec) if(iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -813,15 +815,15 @@ program amg_d_pde2d ! ! iterative method parameters ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,& & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& & istop=s_choice%istopc,irst=s_choice%irst) - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -830,9 +832,9 @@ program amg_d_pde2d goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) ! compute residual norms call psb_geall(r,desc_a,info) @@ -847,9 +849,9 @@ program amg_d_pde2d descsize = desc_a%sizeof() precsize = prec%sizeof() system_size = desc_a%get_global_rows() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call prec%descr(iout=psb_out_unit) if (iam == psb_root_) then write(psb_out_unit,'("Computed solution on ",i8," processors")') np @@ -889,11 +891,11 @@ program amg_d_pde2d call psb_errpush(info,name,a_err=ch_err) goto 9999 end if - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! @@ -902,18 +904,19 @@ contains ! ! get iteration parameters from standard input ! - subroutine get_parms(icontxt,afmt,idim,solve,prec) + subroutine get_parms(ctxt,afmt,idim,solve,prec) implicit none - integer(psb_ipk_) :: icontxt, idim + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: idim character(len=*) :: afmt type(solverdata) :: solve type(precdata) :: prec integer(psb_ipk_) :: iam, nm, np, inp_unit character(len=1024) :: filename - call psb_info(icontxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -922,7 +925,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(icontxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -993,62 +996,62 @@ contains end if end if - call psb_bcast(icontxt,afmt) - call psb_bcast(icontxt,idim) + call psb_bcast(ctxt,afmt) + call psb_bcast(ctxt,idim) - call psb_bcast(icontxt,solve%kmethd) - call psb_bcast(icontxt,solve%istopc) - call psb_bcast(icontxt,solve%itmax) - call psb_bcast(icontxt,solve%itrace) - call psb_bcast(icontxt,solve%irst) - call psb_bcast(icontxt,solve%eps) + call psb_bcast(ctxt,solve%kmethd) + call psb_bcast(ctxt,solve%istopc) + call psb_bcast(ctxt,solve%itmax) + call psb_bcast(ctxt,solve%itrace) + call psb_bcast(ctxt,solve%irst) + call psb_bcast(ctxt,solve%eps) - call psb_bcast(icontxt,prec%descr) - call psb_bcast(icontxt,prec%ptype) + call psb_bcast(ctxt,prec%descr) + call psb_bcast(ctxt,prec%ptype) ! broadcast first (pre-)smoother / 1-lev prec data - call psb_bcast(icontxt,prec%smther) - call psb_bcast(icontxt,prec%jsweeps) - call psb_bcast(icontxt,prec%novr) - call psb_bcast(icontxt,prec%restr) - call psb_bcast(icontxt,prec%prol) - call psb_bcast(icontxt,prec%solve) - call psb_bcast(icontxt,prec%fill) - call psb_bcast(icontxt,prec%thr) + call psb_bcast(ctxt,prec%smther) + call psb_bcast(ctxt,prec%jsweeps) + call psb_bcast(ctxt,prec%novr) + call psb_bcast(ctxt,prec%restr) + call psb_bcast(ctxt,prec%prol) + call psb_bcast(ctxt,prec%solve) + call psb_bcast(ctxt,prec%fill) + call psb_bcast(ctxt,prec%thr) ! broadcast second (post-)smoother - call psb_bcast(icontxt,prec%smther2) - call psb_bcast(icontxt,prec%jsweeps2) - call psb_bcast(icontxt,prec%novr2) - call psb_bcast(icontxt,prec%restr2) - call psb_bcast(icontxt,prec%prol2) - call psb_bcast(icontxt,prec%solve2) - call psb_bcast(icontxt,prec%fill2) - call psb_bcast(icontxt,prec%thr2) + call psb_bcast(ctxt,prec%smther2) + call psb_bcast(ctxt,prec%jsweeps2) + call psb_bcast(ctxt,prec%novr2) + call psb_bcast(ctxt,prec%restr2) + call psb_bcast(ctxt,prec%prol2) + call psb_bcast(ctxt,prec%solve2) + call psb_bcast(ctxt,prec%fill2) + call psb_bcast(ctxt,prec%thr2) ! broadcast AMG parameters - call psb_bcast(icontxt,prec%mlcycle) - call psb_bcast(icontxt,prec%outer_sweeps) - call psb_bcast(icontxt,prec%maxlevs) + call psb_bcast(ctxt,prec%mlcycle) + call psb_bcast(ctxt,prec%outer_sweeps) + call psb_bcast(ctxt,prec%maxlevs) - call psb_bcast(icontxt,prec%aggr_prol) - call psb_bcast(icontxt,prec%par_aggr_alg) - call psb_bcast(icontxt,prec%aggr_ord) - call psb_bcast(icontxt,prec%aggr_filter) - call psb_bcast(icontxt,prec%mncrratio) - call psb_bcast(icontxt,prec%thrvsz) + call psb_bcast(ctxt,prec%aggr_prol) + call psb_bcast(ctxt,prec%par_aggr_alg) + call psb_bcast(ctxt,prec%aggr_ord) + call psb_bcast(ctxt,prec%aggr_filter) + call psb_bcast(ctxt,prec%mncrratio) + call psb_bcast(ctxt,prec%thrvsz) if (prec%thrvsz > 0) then if (iam /= psb_root_) call psb_realloc(prec%thrvsz,prec%athresv,info) - call psb_bcast(icontxt,prec%athresv) + call psb_bcast(ctxt,prec%athresv) end if - call psb_bcast(icontxt,prec%athres) + call psb_bcast(ctxt,prec%athres) - call psb_bcast(icontxt,prec%csize) - call psb_bcast(icontxt,prec%cmat) - call psb_bcast(icontxt,prec%csolve) - call psb_bcast(icontxt,prec%csbsolve) - call psb_bcast(icontxt,prec%cfill) - call psb_bcast(icontxt,prec%cthres) - call psb_bcast(icontxt,prec%cjswp) + call psb_bcast(ctxt,prec%csize) + call psb_bcast(ctxt,prec%cmat) + call psb_bcast(ctxt,prec%csolve) + call psb_bcast(ctxt,prec%csbsolve) + call psb_bcast(ctxt,prec%cfill) + call psb_bcast(ctxt,prec%cthres) + call psb_bcast(ctxt,prec%cjswp) end subroutine get_parms diff --git a/tests/pdegen/amg_d_pde3d.f90 b/tests/pdegen/amg_d_pde3d.f90 index 7bb2065b..43e3591a 100644 --- a/tests/pdegen/amg_d_pde3d.f90 +++ b/tests/pdegen/amg_d_pde3d.f90 @@ -173,7 +173,7 @@ contains ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. ! - subroutine amg_d_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,info,& + subroutine amg_d_gen_pde3d(ctxt,idim,a,bv,xv,desc_a,afmt,info,& & f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod use psb_util_mod @@ -197,7 +197,8 @@ contains type(psb_dspmat_type) :: a type(psb_d_vect_type) :: xv,bv type(psb_desc_type) :: desc_a - integer(psb_ipk_) :: ictxt, info + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: info character(len=*) :: afmt procedure(d_func_3d), optional :: f class(psb_d_base_sparse_mat), optional :: amold @@ -239,7 +240,7 @@ contains name = 'create_matrix' call psb_erractionsave(err_act) - call psb_info(ictxt, iam, np) + call psb_info(ctxt, iam, np) if (present(f)) then @@ -285,12 +286,12 @@ contains end if nt = nr - call psb_sum(ictxt,nt) + call psb_sum(ctxt,nt) if (nt /= m) then write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -298,7 +299,7 @@ contains ! First example of use of CDALL: specify for each process a number of ! contiguous rows ! - call psb_cdall(ictxt,desc_a,info,nl=nr) + call psb_cdall(ctxt,desc_a,info,nl=nr) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -309,15 +310,15 @@ contains if (size(iv) /= m) then write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if else write(psb_err_unit,*) iam, 'Initialization error: IV not present' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -325,7 +326,7 @@ contains ! Second example of use of CDALL: specify for each row the ! process that owns it ! - call psb_cdall(ictxt,desc_a,info,vg=iv) + call psb_cdall(ctxt,desc_a,info,vg=iv) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -367,21 +368,21 @@ contains write(psb_err_unit,*) iam,iamx,iamy,iamz, 'Initialization error: NR vs NLR ',& & nr,nlr,mynx,myny,mynz info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) end if ! ! Third example of use of CDALL: specify for each process ! the set of global indices it owns. ! - call psb_cdall(ictxt,desc_a,info,vl=myidx) + call psb_cdall(ctxt,desc_a,info,vl=myidx) case default write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end select @@ -391,7 +392,7 @@ contains if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) talc = psb_wtime()-t0 if (info /= psb_success_) then @@ -417,7 +418,7 @@ contains ! loop over rows belonging to current process in a block ! distribution. - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() do ii=1, nlr,nb ib = min(nb,nlr-ii+1) @@ -518,11 +519,11 @@ contains deallocate(val,irow,icol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_cdasb(desc_a,info,mold=imold) tcdasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() if (info == psb_success_) then if (present(amold)) then @@ -531,7 +532,7 @@ contains call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) end if end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='asb rout.' @@ -547,13 +548,13 @@ contains goto 9999 end if tasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) ttot = psb_wtime() - t0 - call psb_amx(ictxt,talc) - call psb_amx(ictxt,tgen) - call psb_amx(ictxt,tasb) - call psb_amx(ictxt,ttot) + call psb_amx(ctxt,talc) + call psb_amx(ctxt,tgen) + call psb_amx(ctxt,tasb) + call psb_amx(ctxt,ttot) if(iam == psb_root_) then tmpfmt = a%get_fmt() write(psb_out_unit,'("The matrix has been generated and assembled in ",a3," format.")')& @@ -568,7 +569,7 @@ contains call psb_erractionrestore(err_act) return -9999 call psb_error_handler(ictxt,err_act) +9999 call psb_error_handler(ctxt,err_act) return end subroutine amg_d_gen_pde3d @@ -601,7 +602,8 @@ program amg_d_pde3d ! dense vectors type(psb_d_vect_type) :: x,b,r ! parallel environment - integer(psb_ipk_) :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np ! solver parameters integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, nlv @@ -686,12 +688,12 @@ program amg_d_pde3d info=psb_success_ - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif if(psb_get_errstatus() /= 0) goto 9999 @@ -708,16 +710,16 @@ program amg_d_pde3d ! ! get parameters ! - call get_parms(ictxt,afmt,idim,s_choice,p_choice) + call get_parms(ctxt,afmt,idim,s_choice,p_choice) ! ! allocate and fill in the coefficient matrix, rhs and initial guess ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() - call amg_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,info) - call psb_barrier(ictxt) + call amg_gen_pde3d(ctxt,idim,a,b,x,desc_a,afmt,info) + call psb_barrier(ctxt) t2 = psb_wtime() - t1 if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -733,7 +735,7 @@ program amg_d_pde3d ! ! initialize the preconditioner ! - call prec%init(ictxt,p_choice%ptype,info) + call prec%init(ctxt,p_choice%ptype,info) select case(trim(psb_toupper(p_choice%ptype))) case ('NONE','NOPREC') ! Do nothing, keep defaults @@ -824,7 +826,7 @@ program amg_d_pde3d end select ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%hierarchy_build(a,desc_a,info) thier = psb_wtime()-t1 @@ -832,7 +834,7 @@ program amg_d_pde3d call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld') goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%smoothers_build(a,desc_a,info) tprec = psb_wtime()-t1 @@ -841,8 +843,8 @@ program amg_d_pde3d goto 9999 end if - call psb_amx(ictxt, thier) - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, thier) + call psb_amx(ctxt, tprec) if(iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -854,15 +856,15 @@ program amg_d_pde3d ! ! iterative method parameters ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,& & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& & istop=s_choice%istopc,irst=s_choice%irst) - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -871,9 +873,9 @@ program amg_d_pde3d goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) ! compute residual norms call psb_geall(r,desc_a,info) @@ -888,9 +890,9 @@ program amg_d_pde3d descsize = desc_a%sizeof() precsize = prec%sizeof() system_size = desc_a%get_global_rows() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call prec%descr(iout=psb_out_unit) if (iam == psb_root_) then write(psb_out_unit,'("Computed solution on ",i8," processors")') np @@ -930,11 +932,11 @@ program amg_d_pde3d call psb_errpush(info,name,a_err=ch_err) goto 9999 end if - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! @@ -943,18 +945,19 @@ contains ! ! get iteration parameters from standard input ! - subroutine get_parms(icontxt,afmt,idim,solve,prec) + subroutine get_parms(ctxt,afmt,idim,solve,prec) implicit none - integer(psb_ipk_) :: icontxt, idim + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: idim character(len=*) :: afmt type(solverdata) :: solve type(precdata) :: prec integer(psb_ipk_) :: iam, nm, np, inp_unit character(len=1024) :: filename - call psb_info(icontxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -963,7 +966,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(icontxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -1034,62 +1037,62 @@ contains end if end if - call psb_bcast(icontxt,afmt) - call psb_bcast(icontxt,idim) + call psb_bcast(ctxt,afmt) + call psb_bcast(ctxt,idim) - call psb_bcast(icontxt,solve%kmethd) - call psb_bcast(icontxt,solve%istopc) - call psb_bcast(icontxt,solve%itmax) - call psb_bcast(icontxt,solve%itrace) - call psb_bcast(icontxt,solve%irst) - call psb_bcast(icontxt,solve%eps) + call psb_bcast(ctxt,solve%kmethd) + call psb_bcast(ctxt,solve%istopc) + call psb_bcast(ctxt,solve%itmax) + call psb_bcast(ctxt,solve%itrace) + call psb_bcast(ctxt,solve%irst) + call psb_bcast(ctxt,solve%eps) - call psb_bcast(icontxt,prec%descr) - call psb_bcast(icontxt,prec%ptype) + call psb_bcast(ctxt,prec%descr) + call psb_bcast(ctxt,prec%ptype) ! broadcast first (pre-)smoother / 1-lev prec data - call psb_bcast(icontxt,prec%smther) - call psb_bcast(icontxt,prec%jsweeps) - call psb_bcast(icontxt,prec%novr) - call psb_bcast(icontxt,prec%restr) - call psb_bcast(icontxt,prec%prol) - call psb_bcast(icontxt,prec%solve) - call psb_bcast(icontxt,prec%fill) - call psb_bcast(icontxt,prec%thr) + call psb_bcast(ctxt,prec%smther) + call psb_bcast(ctxt,prec%jsweeps) + call psb_bcast(ctxt,prec%novr) + call psb_bcast(ctxt,prec%restr) + call psb_bcast(ctxt,prec%prol) + call psb_bcast(ctxt,prec%solve) + call psb_bcast(ctxt,prec%fill) + call psb_bcast(ctxt,prec%thr) ! broadcast second (post-)smoother - call psb_bcast(icontxt,prec%smther2) - call psb_bcast(icontxt,prec%jsweeps2) - call psb_bcast(icontxt,prec%novr2) - call psb_bcast(icontxt,prec%restr2) - call psb_bcast(icontxt,prec%prol2) - call psb_bcast(icontxt,prec%solve2) - call psb_bcast(icontxt,prec%fill2) - call psb_bcast(icontxt,prec%thr2) + call psb_bcast(ctxt,prec%smther2) + call psb_bcast(ctxt,prec%jsweeps2) + call psb_bcast(ctxt,prec%novr2) + call psb_bcast(ctxt,prec%restr2) + call psb_bcast(ctxt,prec%prol2) + call psb_bcast(ctxt,prec%solve2) + call psb_bcast(ctxt,prec%fill2) + call psb_bcast(ctxt,prec%thr2) ! broadcast AMG parameters - call psb_bcast(icontxt,prec%mlcycle) - call psb_bcast(icontxt,prec%outer_sweeps) - call psb_bcast(icontxt,prec%maxlevs) + call psb_bcast(ctxt,prec%mlcycle) + call psb_bcast(ctxt,prec%outer_sweeps) + call psb_bcast(ctxt,prec%maxlevs) - call psb_bcast(icontxt,prec%aggr_prol) - call psb_bcast(icontxt,prec%par_aggr_alg) - call psb_bcast(icontxt,prec%aggr_ord) - call psb_bcast(icontxt,prec%aggr_filter) - call psb_bcast(icontxt,prec%mncrratio) - call psb_bcast(icontxt,prec%thrvsz) + call psb_bcast(ctxt,prec%aggr_prol) + call psb_bcast(ctxt,prec%par_aggr_alg) + call psb_bcast(ctxt,prec%aggr_ord) + call psb_bcast(ctxt,prec%aggr_filter) + call psb_bcast(ctxt,prec%mncrratio) + call psb_bcast(ctxt,prec%thrvsz) if (prec%thrvsz > 0) then if (iam /= psb_root_) call psb_realloc(prec%thrvsz,prec%athresv,info) - call psb_bcast(icontxt,prec%athresv) + call psb_bcast(ctxt,prec%athresv) end if - call psb_bcast(icontxt,prec%athres) + call psb_bcast(ctxt,prec%athres) - call psb_bcast(icontxt,prec%csize) - call psb_bcast(icontxt,prec%cmat) - call psb_bcast(icontxt,prec%csolve) - call psb_bcast(icontxt,prec%csbsolve) - call psb_bcast(icontxt,prec%cfill) - call psb_bcast(icontxt,prec%cthres) - call psb_bcast(icontxt,prec%cjswp) + call psb_bcast(ctxt,prec%csize) + call psb_bcast(ctxt,prec%cmat) + call psb_bcast(ctxt,prec%csolve) + call psb_bcast(ctxt,prec%csbsolve) + call psb_bcast(ctxt,prec%cfill) + call psb_bcast(ctxt,prec%cthres) + call psb_bcast(ctxt,prec%cjswp) end subroutine get_parms diff --git a/tests/pdegen/amg_s_pde2d.f90 b/tests/pdegen/amg_s_pde2d.f90 index 6915b91c..18078498 100644 --- a/tests/pdegen/amg_s_pde2d.f90 +++ b/tests/pdegen/amg_s_pde2d.f90 @@ -156,7 +156,7 @@ contains ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. ! - subroutine amg_s_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,info,& + subroutine amg_s_gen_pde2d(ctxt,idim,a,bv,xv,desc_a,afmt,info,& & f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod use psb_util_mod @@ -180,7 +180,8 @@ contains type(psb_sspmat_type) :: a type(psb_s_vect_type) :: xv,bv type(psb_desc_type) :: desc_a - integer(psb_ipk_) :: ictxt, info + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: info character(len=*) :: afmt procedure(s_func_2d), optional :: f class(psb_s_base_sparse_mat), optional :: amold @@ -222,7 +223,7 @@ contains name = 'create_matrix' call psb_erractionsave(err_act) - call psb_info(ictxt, iam, np) + call psb_info(ctxt, iam, np) if (present(f)) then @@ -268,12 +269,12 @@ contains end if nt = nr - call psb_sum(ictxt,nt) + call psb_sum(ctxt,nt) if (nt /= m) then write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -281,7 +282,7 @@ contains ! First example of use of CDALL: specify for each process a number of ! contiguous rows ! - call psb_cdall(ictxt,desc_a,info,nl=nr) + call psb_cdall(ctxt,desc_a,info,nl=nr) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -292,15 +293,15 @@ contains if (size(iv) /= m) then write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if else write(psb_err_unit,*) iam, 'Initialization error: IV not present' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -308,7 +309,7 @@ contains ! Second example of use of CDALL: specify for each row the ! process that owns it ! - call psb_cdall(ictxt,desc_a,info,vg=iv) + call psb_cdall(ctxt,desc_a,info,vg=iv) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -345,21 +346,21 @@ contains write(psb_err_unit,*) iam,iamx,iamy, 'Initialization error: NR vs NLR ',& & nr,nlr,mynx,myny info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) end if ! ! Third example of use of CDALL: specify for each process ! the set of global indices it owns. ! - call psb_cdall(ictxt,desc_a,info,vl=myidx) + call psb_cdall(ctxt,desc_a,info,vl=myidx) case default write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end select @@ -369,7 +370,7 @@ contains if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) talc = psb_wtime()-t0 if (info /= psb_success_) then @@ -395,7 +396,7 @@ contains ! loop over rows belonging to current process in a block ! distribution. - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() do ii=1, nlr,nb ib = min(nb,nlr-ii+1) @@ -477,11 +478,11 @@ contains deallocate(val,irow,icol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_cdasb(desc_a,info,mold=imold) tcdasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() if (info == psb_success_) then if (present(amold)) then @@ -490,7 +491,7 @@ contains call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) end if end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='asb rout.' @@ -506,13 +507,13 @@ contains goto 9999 end if tasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) ttot = psb_wtime() - t0 - call psb_amx(ictxt,talc) - call psb_amx(ictxt,tgen) - call psb_amx(ictxt,tasb) - call psb_amx(ictxt,ttot) + call psb_amx(ctxt,talc) + call psb_amx(ctxt,tgen) + call psb_amx(ctxt,tasb) + call psb_amx(ctxt,ttot) if(iam == psb_root_) then tmpfmt = a%get_fmt() write(psb_out_unit,'("The matrix has been generated and assembled in ",a3," format.")')& @@ -527,7 +528,7 @@ contains call psb_erractionrestore(err_act) return -9999 call psb_error_handler(ictxt,err_act) +9999 call psb_error_handler(ctxt,err_act) return end subroutine amg_s_gen_pde2d @@ -561,7 +562,8 @@ program amg_s_pde2d ! dense vectors type(psb_s_vect_type) :: x,b,r ! parallel environment - integer(psb_ipk_) :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np ! solver parameters integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, nlv @@ -646,12 +648,12 @@ program amg_s_pde2d info=psb_success_ - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif if(psb_get_errstatus() /= 0) goto 9999 @@ -668,15 +670,15 @@ program amg_s_pde2d ! ! get parameters ! - call get_parms(ictxt,afmt,idim,s_choice,p_choice) + call get_parms(ctxt,afmt,idim,s_choice,p_choice) ! ! allocate and fill in the coefficient matrix, rhs and initial guess ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() - call amg_gen_pde2d(ictxt,idim,a,b,x,desc_a,afmt,info) - call psb_barrier(ictxt) + call amg_gen_pde2d(ctxt,idim,a,b,x,desc_a,afmt,info) + call psb_barrier(ctxt) t2 = psb_wtime() - t1 if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -692,7 +694,7 @@ program amg_s_pde2d ! ! initialize the preconditioner ! - call prec%init(ictxt,p_choice%ptype,info) + call prec%init(ctxt,p_choice%ptype,info) select case(trim(psb_toupper(p_choice%ptype))) case ('NONE','NOPREC') ! Do nothing, keep defaults @@ -783,7 +785,7 @@ program amg_s_pde2d end select ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%hierarchy_build(a,desc_a,info) thier = psb_wtime()-t1 @@ -791,7 +793,7 @@ program amg_s_pde2d call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld') goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%smoothers_build(a,desc_a,info) tprec = psb_wtime()-t1 @@ -800,8 +802,8 @@ program amg_s_pde2d goto 9999 end if - call psb_amx(ictxt, thier) - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, thier) + call psb_amx(ctxt, tprec) if(iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -813,15 +815,15 @@ program amg_s_pde2d ! ! iterative method parameters ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,& & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& & istop=s_choice%istopc,irst=s_choice%irst) - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -830,9 +832,9 @@ program amg_s_pde2d goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) ! compute residual norms call psb_geall(r,desc_a,info) @@ -847,9 +849,9 @@ program amg_s_pde2d descsize = desc_a%sizeof() precsize = prec%sizeof() system_size = desc_a%get_global_rows() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call prec%descr(iout=psb_out_unit) if (iam == psb_root_) then write(psb_out_unit,'("Computed solution on ",i8," processors")') np @@ -889,11 +891,11 @@ program amg_s_pde2d call psb_errpush(info,name,a_err=ch_err) goto 9999 end if - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! @@ -902,18 +904,19 @@ contains ! ! get iteration parameters from standard input ! - subroutine get_parms(icontxt,afmt,idim,solve,prec) + subroutine get_parms(ctxt,afmt,idim,solve,prec) implicit none - integer(psb_ipk_) :: icontxt, idim + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: idim character(len=*) :: afmt type(solverdata) :: solve type(precdata) :: prec integer(psb_ipk_) :: iam, nm, np, inp_unit character(len=1024) :: filename - call psb_info(icontxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -922,7 +925,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(icontxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -993,62 +996,62 @@ contains end if end if - call psb_bcast(icontxt,afmt) - call psb_bcast(icontxt,idim) + call psb_bcast(ctxt,afmt) + call psb_bcast(ctxt,idim) - call psb_bcast(icontxt,solve%kmethd) - call psb_bcast(icontxt,solve%istopc) - call psb_bcast(icontxt,solve%itmax) - call psb_bcast(icontxt,solve%itrace) - call psb_bcast(icontxt,solve%irst) - call psb_bcast(icontxt,solve%eps) + call psb_bcast(ctxt,solve%kmethd) + call psb_bcast(ctxt,solve%istopc) + call psb_bcast(ctxt,solve%itmax) + call psb_bcast(ctxt,solve%itrace) + call psb_bcast(ctxt,solve%irst) + call psb_bcast(ctxt,solve%eps) - call psb_bcast(icontxt,prec%descr) - call psb_bcast(icontxt,prec%ptype) + call psb_bcast(ctxt,prec%descr) + call psb_bcast(ctxt,prec%ptype) ! broadcast first (pre-)smoother / 1-lev prec data - call psb_bcast(icontxt,prec%smther) - call psb_bcast(icontxt,prec%jsweeps) - call psb_bcast(icontxt,prec%novr) - call psb_bcast(icontxt,prec%restr) - call psb_bcast(icontxt,prec%prol) - call psb_bcast(icontxt,prec%solve) - call psb_bcast(icontxt,prec%fill) - call psb_bcast(icontxt,prec%thr) + call psb_bcast(ctxt,prec%smther) + call psb_bcast(ctxt,prec%jsweeps) + call psb_bcast(ctxt,prec%novr) + call psb_bcast(ctxt,prec%restr) + call psb_bcast(ctxt,prec%prol) + call psb_bcast(ctxt,prec%solve) + call psb_bcast(ctxt,prec%fill) + call psb_bcast(ctxt,prec%thr) ! broadcast second (post-)smoother - call psb_bcast(icontxt,prec%smther2) - call psb_bcast(icontxt,prec%jsweeps2) - call psb_bcast(icontxt,prec%novr2) - call psb_bcast(icontxt,prec%restr2) - call psb_bcast(icontxt,prec%prol2) - call psb_bcast(icontxt,prec%solve2) - call psb_bcast(icontxt,prec%fill2) - call psb_bcast(icontxt,prec%thr2) + call psb_bcast(ctxt,prec%smther2) + call psb_bcast(ctxt,prec%jsweeps2) + call psb_bcast(ctxt,prec%novr2) + call psb_bcast(ctxt,prec%restr2) + call psb_bcast(ctxt,prec%prol2) + call psb_bcast(ctxt,prec%solve2) + call psb_bcast(ctxt,prec%fill2) + call psb_bcast(ctxt,prec%thr2) ! broadcast AMG parameters - call psb_bcast(icontxt,prec%mlcycle) - call psb_bcast(icontxt,prec%outer_sweeps) - call psb_bcast(icontxt,prec%maxlevs) + call psb_bcast(ctxt,prec%mlcycle) + call psb_bcast(ctxt,prec%outer_sweeps) + call psb_bcast(ctxt,prec%maxlevs) - call psb_bcast(icontxt,prec%aggr_prol) - call psb_bcast(icontxt,prec%par_aggr_alg) - call psb_bcast(icontxt,prec%aggr_ord) - call psb_bcast(icontxt,prec%aggr_filter) - call psb_bcast(icontxt,prec%mncrratio) - call psb_bcast(icontxt,prec%thrvsz) + call psb_bcast(ctxt,prec%aggr_prol) + call psb_bcast(ctxt,prec%par_aggr_alg) + call psb_bcast(ctxt,prec%aggr_ord) + call psb_bcast(ctxt,prec%aggr_filter) + call psb_bcast(ctxt,prec%mncrratio) + call psb_bcast(ctxt,prec%thrvsz) if (prec%thrvsz > 0) then if (iam /= psb_root_) call psb_realloc(prec%thrvsz,prec%athresv,info) - call psb_bcast(icontxt,prec%athresv) + call psb_bcast(ctxt,prec%athresv) end if - call psb_bcast(icontxt,prec%athres) + call psb_bcast(ctxt,prec%athres) - call psb_bcast(icontxt,prec%csize) - call psb_bcast(icontxt,prec%cmat) - call psb_bcast(icontxt,prec%csolve) - call psb_bcast(icontxt,prec%csbsolve) - call psb_bcast(icontxt,prec%cfill) - call psb_bcast(icontxt,prec%cthres) - call psb_bcast(icontxt,prec%cjswp) + call psb_bcast(ctxt,prec%csize) + call psb_bcast(ctxt,prec%cmat) + call psb_bcast(ctxt,prec%csolve) + call psb_bcast(ctxt,prec%csbsolve) + call psb_bcast(ctxt,prec%cfill) + call psb_bcast(ctxt,prec%cthres) + call psb_bcast(ctxt,prec%cjswp) end subroutine get_parms diff --git a/tests/pdegen/amg_s_pde3d.f90 b/tests/pdegen/amg_s_pde3d.f90 index 4a439818..28b44ec2 100644 --- a/tests/pdegen/amg_s_pde3d.f90 +++ b/tests/pdegen/amg_s_pde3d.f90 @@ -173,7 +173,7 @@ contains ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. ! - subroutine amg_s_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,info,& + subroutine amg_s_gen_pde3d(ctxt,idim,a,bv,xv,desc_a,afmt,info,& & f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod use psb_util_mod @@ -197,7 +197,8 @@ contains type(psb_sspmat_type) :: a type(psb_s_vect_type) :: xv,bv type(psb_desc_type) :: desc_a - integer(psb_ipk_) :: ictxt, info + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: info character(len=*) :: afmt procedure(s_func_3d), optional :: f class(psb_s_base_sparse_mat), optional :: amold @@ -239,7 +240,7 @@ contains name = 'create_matrix' call psb_erractionsave(err_act) - call psb_info(ictxt, iam, np) + call psb_info(ctxt, iam, np) if (present(f)) then @@ -285,12 +286,12 @@ contains end if nt = nr - call psb_sum(ictxt,nt) + call psb_sum(ctxt,nt) if (nt /= m) then write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -298,7 +299,7 @@ contains ! First example of use of CDALL: specify for each process a number of ! contiguous rows ! - call psb_cdall(ictxt,desc_a,info,nl=nr) + call psb_cdall(ctxt,desc_a,info,nl=nr) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -309,15 +310,15 @@ contains if (size(iv) /= m) then write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if else write(psb_err_unit,*) iam, 'Initialization error: IV not present' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end if @@ -325,7 +326,7 @@ contains ! Second example of use of CDALL: specify for each row the ! process that owns it ! - call psb_cdall(ictxt,desc_a,info,vg=iv) + call psb_cdall(ctxt,desc_a,info,vg=iv) myidx = desc_a%get_global_indices() nlr = size(myidx) @@ -367,21 +368,21 @@ contains write(psb_err_unit,*) iam,iamx,iamy,iamz, 'Initialization error: NR vs NLR ',& & nr,nlr,mynx,myny,mynz info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) end if ! ! Third example of use of CDALL: specify for each process ! the set of global indices it owns. ! - call psb_cdall(ictxt,desc_a,info,vl=myidx) + call psb_cdall(ctxt,desc_a,info,vl=myidx) case default write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1 - call psb_barrier(ictxt) - call psb_abort(ictxt) + call psb_barrier(ctxt) + call psb_abort(ctxt) return end select @@ -391,7 +392,7 @@ contains if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) - call psb_barrier(ictxt) + call psb_barrier(ctxt) talc = psb_wtime()-t0 if (info /= psb_success_) then @@ -417,7 +418,7 @@ contains ! loop over rows belonging to current process in a block ! distribution. - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() do ii=1, nlr,nb ib = min(nb,nlr-ii+1) @@ -518,11 +519,11 @@ contains deallocate(val,irow,icol) - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_cdasb(desc_a,info,mold=imold) tcdasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() if (info == psb_success_) then if (present(amold)) then @@ -531,7 +532,7 @@ contains call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) end if end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='asb rout.' @@ -547,13 +548,13 @@ contains goto 9999 end if tasb = psb_wtime()-t1 - call psb_barrier(ictxt) + call psb_barrier(ctxt) ttot = psb_wtime() - t0 - call psb_amx(ictxt,talc) - call psb_amx(ictxt,tgen) - call psb_amx(ictxt,tasb) - call psb_amx(ictxt,ttot) + call psb_amx(ctxt,talc) + call psb_amx(ctxt,tgen) + call psb_amx(ctxt,tasb) + call psb_amx(ctxt,ttot) if(iam == psb_root_) then tmpfmt = a%get_fmt() write(psb_out_unit,'("The matrix has been generated and assembled in ",a3," format.")')& @@ -568,7 +569,7 @@ contains call psb_erractionrestore(err_act) return -9999 call psb_error_handler(ictxt,err_act) +9999 call psb_error_handler(ctxt,err_act) return end subroutine amg_s_gen_pde3d @@ -601,7 +602,8 @@ program amg_s_pde3d ! dense vectors type(psb_s_vect_type) :: x,b,r ! parallel environment - integer(psb_ipk_) :: ictxt, iam, np + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: iam, np ! solver parameters integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, nlv @@ -686,12 +688,12 @@ program amg_s_pde3d info=psb_success_ - call psb_init(ictxt) - call psb_info(ictxt,iam,np) + call psb_init(ctxt) + call psb_info(ctxt,iam,np) if (iam < 0) then ! This should not happen, but just in case - call psb_exit(ictxt) + call psb_exit(ctxt) stop endif if(psb_get_errstatus() /= 0) goto 9999 @@ -708,16 +710,16 @@ program amg_s_pde3d ! ! get parameters ! - call get_parms(ictxt,afmt,idim,s_choice,p_choice) + call get_parms(ctxt,afmt,idim,s_choice,p_choice) ! ! allocate and fill in the coefficient matrix, rhs and initial guess ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() - call amg_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,info) - call psb_barrier(ictxt) + call amg_gen_pde3d(ctxt,idim,a,b,x,desc_a,afmt,info) + call psb_barrier(ctxt) t2 = psb_wtime() - t1 if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -733,7 +735,7 @@ program amg_s_pde3d ! ! initialize the preconditioner ! - call prec%init(ictxt,p_choice%ptype,info) + call prec%init(ctxt,p_choice%ptype,info) select case(trim(psb_toupper(p_choice%ptype))) case ('NONE','NOPREC') ! Do nothing, keep defaults @@ -824,7 +826,7 @@ program amg_s_pde3d end select ! build the preconditioner - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%hierarchy_build(a,desc_a,info) thier = psb_wtime()-t1 @@ -832,7 +834,7 @@ program amg_s_pde3d call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld') goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call prec%smoothers_build(a,desc_a,info) tprec = psb_wtime()-t1 @@ -841,8 +843,8 @@ program amg_s_pde3d goto 9999 end if - call psb_amx(ictxt, thier) - call psb_amx(ictxt, tprec) + call psb_amx(ctxt, thier) + call psb_amx(ctxt, tprec) if(iam == psb_root_) then write(psb_out_unit,'(" ")') @@ -854,15 +856,15 @@ program amg_s_pde3d ! ! iterative method parameters ! - call psb_barrier(ictxt) + call psb_barrier(ctxt) t1 = psb_wtime() call psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,& & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& & istop=s_choice%istopc,irst=s_choice%irst) - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) if(info /= psb_success_) then info=psb_err_from_subroutine_ @@ -871,9 +873,9 @@ program amg_s_pde3d goto 9999 end if - call psb_barrier(ictxt) + call psb_barrier(ctxt) tslv = psb_wtime() - t1 - call psb_amx(ictxt,tslv) + call psb_amx(ctxt,tslv) ! compute residual norms call psb_geall(r,desc_a,info) @@ -888,9 +890,9 @@ program amg_s_pde3d descsize = desc_a%sizeof() precsize = prec%sizeof() system_size = desc_a%get_global_rows() - call psb_sum(ictxt,amatsize) - call psb_sum(ictxt,descsize) - call psb_sum(ictxt,precsize) + call psb_sum(ctxt,amatsize) + call psb_sum(ctxt,descsize) + call psb_sum(ctxt,precsize) call prec%descr(iout=psb_out_unit) if (iam == psb_root_) then write(psb_out_unit,'("Computed solution on ",i8," processors")') np @@ -930,11 +932,11 @@ program amg_s_pde3d call psb_errpush(info,name,a_err=ch_err) goto 9999 end if - call psb_exit(ictxt) + call psb_exit(ctxt) stop 9999 continue - call psb_error(ictxt) + call psb_error(ctxt) contains ! @@ -943,18 +945,19 @@ contains ! ! get iteration parameters from standard input ! - subroutine get_parms(icontxt,afmt,idim,solve,prec) + subroutine get_parms(ctxt,afmt,idim,solve,prec) implicit none - integer(psb_ipk_) :: icontxt, idim + type(psb_ctxt_type) :: ctxt + integer(psb_ipk_) :: idim character(len=*) :: afmt type(solverdata) :: solve type(precdata) :: prec integer(psb_ipk_) :: iam, nm, np, inp_unit character(len=1024) :: filename - call psb_info(icontxt,iam,np) + call psb_info(ctxt,iam,np) if (iam == psb_root_) then if (command_argument_count()>0) then @@ -963,7 +966,7 @@ contains open(inp_unit,file=filename,action='read',iostat=info) if (info /= 0) then write(psb_err_unit,*) 'Could not open file ',filename,' for input' - call psb_abort(icontxt) + call psb_abort(ctxt) stop else write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' @@ -1034,62 +1037,62 @@ contains end if end if - call psb_bcast(icontxt,afmt) - call psb_bcast(icontxt,idim) + call psb_bcast(ctxt,afmt) + call psb_bcast(ctxt,idim) - call psb_bcast(icontxt,solve%kmethd) - call psb_bcast(icontxt,solve%istopc) - call psb_bcast(icontxt,solve%itmax) - call psb_bcast(icontxt,solve%itrace) - call psb_bcast(icontxt,solve%irst) - call psb_bcast(icontxt,solve%eps) + call psb_bcast(ctxt,solve%kmethd) + call psb_bcast(ctxt,solve%istopc) + call psb_bcast(ctxt,solve%itmax) + call psb_bcast(ctxt,solve%itrace) + call psb_bcast(ctxt,solve%irst) + call psb_bcast(ctxt,solve%eps) - call psb_bcast(icontxt,prec%descr) - call psb_bcast(icontxt,prec%ptype) + call psb_bcast(ctxt,prec%descr) + call psb_bcast(ctxt,prec%ptype) ! broadcast first (pre-)smoother / 1-lev prec data - call psb_bcast(icontxt,prec%smther) - call psb_bcast(icontxt,prec%jsweeps) - call psb_bcast(icontxt,prec%novr) - call psb_bcast(icontxt,prec%restr) - call psb_bcast(icontxt,prec%prol) - call psb_bcast(icontxt,prec%solve) - call psb_bcast(icontxt,prec%fill) - call psb_bcast(icontxt,prec%thr) + call psb_bcast(ctxt,prec%smther) + call psb_bcast(ctxt,prec%jsweeps) + call psb_bcast(ctxt,prec%novr) + call psb_bcast(ctxt,prec%restr) + call psb_bcast(ctxt,prec%prol) + call psb_bcast(ctxt,prec%solve) + call psb_bcast(ctxt,prec%fill) + call psb_bcast(ctxt,prec%thr) ! broadcast second (post-)smoother - call psb_bcast(icontxt,prec%smther2) - call psb_bcast(icontxt,prec%jsweeps2) - call psb_bcast(icontxt,prec%novr2) - call psb_bcast(icontxt,prec%restr2) - call psb_bcast(icontxt,prec%prol2) - call psb_bcast(icontxt,prec%solve2) - call psb_bcast(icontxt,prec%fill2) - call psb_bcast(icontxt,prec%thr2) + call psb_bcast(ctxt,prec%smther2) + call psb_bcast(ctxt,prec%jsweeps2) + call psb_bcast(ctxt,prec%novr2) + call psb_bcast(ctxt,prec%restr2) + call psb_bcast(ctxt,prec%prol2) + call psb_bcast(ctxt,prec%solve2) + call psb_bcast(ctxt,prec%fill2) + call psb_bcast(ctxt,prec%thr2) ! broadcast AMG parameters - call psb_bcast(icontxt,prec%mlcycle) - call psb_bcast(icontxt,prec%outer_sweeps) - call psb_bcast(icontxt,prec%maxlevs) + call psb_bcast(ctxt,prec%mlcycle) + call psb_bcast(ctxt,prec%outer_sweeps) + call psb_bcast(ctxt,prec%maxlevs) - call psb_bcast(icontxt,prec%aggr_prol) - call psb_bcast(icontxt,prec%par_aggr_alg) - call psb_bcast(icontxt,prec%aggr_ord) - call psb_bcast(icontxt,prec%aggr_filter) - call psb_bcast(icontxt,prec%mncrratio) - call psb_bcast(icontxt,prec%thrvsz) + call psb_bcast(ctxt,prec%aggr_prol) + call psb_bcast(ctxt,prec%par_aggr_alg) + call psb_bcast(ctxt,prec%aggr_ord) + call psb_bcast(ctxt,prec%aggr_filter) + call psb_bcast(ctxt,prec%mncrratio) + call psb_bcast(ctxt,prec%thrvsz) if (prec%thrvsz > 0) then if (iam /= psb_root_) call psb_realloc(prec%thrvsz,prec%athresv,info) - call psb_bcast(icontxt,prec%athresv) + call psb_bcast(ctxt,prec%athresv) end if - call psb_bcast(icontxt,prec%athres) + call psb_bcast(ctxt,prec%athres) - call psb_bcast(icontxt,prec%csize) - call psb_bcast(icontxt,prec%cmat) - call psb_bcast(icontxt,prec%csolve) - call psb_bcast(icontxt,prec%csbsolve) - call psb_bcast(icontxt,prec%cfill) - call psb_bcast(icontxt,prec%cthres) - call psb_bcast(icontxt,prec%cjswp) + call psb_bcast(ctxt,prec%csize) + call psb_bcast(ctxt,prec%cmat) + call psb_bcast(ctxt,prec%csolve) + call psb_bcast(ctxt,prec%csbsolve) + call psb_bcast(ctxt,prec%cfill) + call psb_bcast(ctxt,prec%cthres) + call psb_bcast(ctxt,prec%cjswp) end subroutine get_parms