From d8eff282197e8cade11da7c18eaf7f91958b257d Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Sat, 7 Apr 2018 09:11:45 +0100 Subject: [PATCH] Fixed compilation for cdall & friends. --- base/modules/desc/psb_desc_mod.F90 | 10 +++++----- base/modules/tools/psb_cd_tools_mod.f90 | 14 ++++++++------ base/tools/psb_cd_inloc.f90 | 21 +++++++++------------ base/tools/psb_cd_lstext.f90 | 2 +- base/tools/psb_cdalv.f90 | 5 +++-- base/tools/psb_cdins.f90 | 9 +++++---- base/tools/psb_cdprt.f90 | 2 +- base/tools/psb_cdrep.f90 | 6 ++++-- 8 files changed, 36 insertions(+), 33 deletions(-) diff --git a/base/modules/desc/psb_desc_mod.F90 b/base/modules/desc/psb_desc_mod.F90 index 7d37ebd4..a4666e99 100644 --- a/base/modules/desc/psb_desc_mod.F90 +++ b/base/modules/desc/psb_desc_mod.F90 @@ -282,7 +282,6 @@ module psb_desc_mod module procedure psb_cdfree end interface psb_free - private :: nullify_desc, cd_get_fmt,& & cd_l2gs1, cd_l2gs2, cd_l2gv1, cd_l2gv2, cd_g2ls1,& & cd_g2ls2, cd_g2lv1, cd_g2lv2, cd_g2ls1_ins,& @@ -334,11 +333,13 @@ contains val = cd_large_threshold end function psb_cd_get_large_threshold - logical function psb_cd_choose_large_state(ictxt,m) + function psb_cd_choose_large_state(ictxt,m) result(val) use psb_penv_mod implicit none - integer(psb_ipk_), intent(in) :: ictxt,m + integer(psb_ipk_), intent(in) :: ictxt + integer(psb_lpk_), intent(in) :: m + logical :: val !locals integer(psb_ipk_) :: np,me @@ -348,8 +349,7 @@ contains ! it makes no sense to use them if you don't have at least ! 3 processes, no matter what the size of the process. ! - psb_cd_choose_large_state = & - & (m > psb_cd_get_large_threshold()) .and. & + val = (m > psb_cd_get_large_threshold()) .and. & & (np > 2) end function psb_cd_choose_large_state diff --git a/base/modules/tools/psb_cd_tools_mod.f90 b/base/modules/tools/psb_cd_tools_mod.f90 index 7634788f..f5466afc 100644 --- a/base/modules/tools/psb_cd_tools_mod.f90 +++ b/base/modules/tools/psb_cd_tools_mod.f90 @@ -93,16 +93,18 @@ module psb_cd_tools_mod interface psb_cdins subroutine psb_cdinsrc(nz,ia,ja,desc_a,info,ila,jla) - import :: psb_ipk_, psb_desc_type + import :: psb_ipk_, psb_lpk_, psb_desc_type type(psb_desc_type), intent(inout) :: desc_a - integer(psb_ipk_), intent(in) :: nz,ia(:),ja(:) + integer(psb_ipk_), intent(in) :: nz + integer(psb_lpk_), intent(in) :: ia(:),ja(:) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(out) :: ila(:), jla(:) end subroutine psb_cdinsrc subroutine psb_cdinsc(nz,ja,desc,info,jla,mask,lidx) - import :: psb_ipk_, psb_desc_type + import :: psb_ipk_, psb_lpk_, psb_desc_type type(psb_desc_type), intent(inout) :: desc - integer(psb_ipk_), intent(in) :: nz,ja(:) + integer(psb_ipk_), intent(in) :: nz + integer(psb_lpk_), intent(in) :: ja(:) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(out) :: jla(:) logical, optional, target, intent(in) :: mask(:) @@ -112,10 +114,10 @@ module psb_cd_tools_mod interface psb_cdbldext Subroutine psb_cd_lstext(desc_a,in_list,desc_ov,info, mask,extype) - import :: psb_ipk_, psb_desc_type + import :: psb_ipk_, psb_lpk_, psb_desc_type Implicit None Type(psb_desc_type), Intent(inout), target :: desc_a - integer(psb_ipk_), intent(in) :: in_list(:) + integer(psb_lpk_), intent(in) :: in_list(:) Type(psb_desc_type), Intent(out) :: desc_ov integer(psb_ipk_), intent(out) :: info logical, intent(in), optional, target :: mask(:) diff --git a/base/tools/psb_cd_inloc.f90 b/base/tools/psb_cd_inloc.f90 index 2ff024c3..befd9919 100644 --- a/base/tools/psb_cd_inloc.f90 +++ b/base/tools/psb_cd_inloc.f90 @@ -61,10 +61,11 @@ subroutine psb_cd_inloc(v, ictxt, desc, info, globalcheck,idx) & loc_col,nprocs,k,glx,nlu,& & flag_, err_act, novrl, norphan,& & npr_ov, itmpov, i_pnt - integer(psb_lpk) :: m, n, nrt + integer(psb_lpk_) :: m, n, nrt integer(psb_ipk_) :: int_err(5),exch(3) - integer(psb_ipk_), allocatable :: temp_ovrlap(:), tmpgidx(:,:), vl(:),& - & nov(:), ov_idx(:,:), ix(:) + integer(psb_ipk_), allocatable :: temp_ovrlap(:), tmpgidx(:,:), & + & nov(:), ov_idx(:,:) + integer(psb_lpk_), allocatable :: vl(:), ix(:) integer(psb_ipk_) :: debug_level, debug_unit integer(psb_mpk_) :: iictxt logical :: check_, islarge @@ -84,15 +85,11 @@ subroutine psb_cd_inloc(v, ictxt, desc, info, globalcheck,idx) iictxt = ictxt loc_row = size(v) - if (.false.) then - m = loc_row - call psb_sum(ictxt,m) - else - m = maxval(v) - nrt = loc_row - call psb_sum(ictxt,nrt) - call psb_max(ictxt,m) - end if + m = maxval(v) + nrt = loc_row + call psb_sum(ictxt,nrt) + call psb_max(ictxt,m) + if (present(globalcheck)) then check_ = globalcheck else diff --git a/base/tools/psb_cd_lstext.f90 b/base/tools/psb_cd_lstext.f90 index 4405aac0..d8f60f25 100644 --- a/base/tools/psb_cd_lstext.f90 +++ b/base/tools/psb_cd_lstext.f90 @@ -38,7 +38,7 @@ Subroutine psb_cd_lstext(desc_a,in_list,desc_ov,info, mask,extype) ! .. Array Arguments .. Type(psb_desc_type), Intent(inout), target :: desc_a - integer(psb_ipk_), intent(in) :: in_list(:) + integer(psb_lpk_), intent(in) :: in_list(:) Type(psb_desc_type), Intent(out) :: desc_ov integer(psb_ipk_), intent(out) :: info logical, intent(in), optional, target :: mask(:) diff --git a/base/tools/psb_cdalv.f90 b/base/tools/psb_cdalv.f90 index d55f69ae..633bffbe 100644 --- a/base/tools/psb_cdalv.f90 +++ b/base/tools/psb_cdalv.f90 @@ -57,9 +57,10 @@ subroutine psb_cdalv(v, ictxt, desc, info, flag) type(psb_desc_type), intent(out) :: desc !locals - integer(psb_ipk_) :: counter,i,j,np,me,loc_row,err,& - & loc_col,nprocs,m,n,itmpov, k,glx,& + integer(psb_ipk_) :: counter,j,np,me,loc_row,err,& + & loc_col,nprocs,itmpov, k,glx,& & l_ov_ix,l_ov_el,idx, flag_, err_act + integer(psb_lpk_) :: m,n,i integer(psb_ipk_) :: int_err(5),exch(3) integer(psb_ipk_), allocatable :: temp_ovrlap(:) integer(psb_ipk_) :: debug_level, debug_unit diff --git a/base/tools/psb_cdins.f90 b/base/tools/psb_cdins.f90 index a8b0441c..3ac5ee42 100644 --- a/base/tools/psb_cdins.f90 +++ b/base/tools/psb_cdins.f90 @@ -52,7 +52,8 @@ subroutine psb_cdinsrc(nz,ia,ja,desc_a,info,ila,jla) !....PARAMETERS... Type(psb_desc_type), intent(inout) :: desc_a - integer(psb_ipk_), intent(in) :: nz,ia(:),ja(:) + integer(psb_ipk_), intent(in) :: nz + integer(psb_lpk_), intent(in) :: ia(:),ja(:) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(out) :: ila(:), jla(:) !LOCALS..... @@ -133,8 +134,7 @@ subroutine psb_cdinsrc(nz,ia,ja,desc_a,info,ila,jla) end if call desc_a%indxmap%g2l(ia(1:nz),ila_(1:nz),info,owned=.true.) if (info == psb_success_) then - jla_(1:nz) = ja(1:nz) - call desc_a%indxmap%g2lip_ins(jla_(1:nz),info,mask=(ila_(1:nz)>0)) + call desc_a%indxmap%g2l_ins(ja(1:nz),jla_(1:nz),info,mask=(ila_(1:nz)>0)) end if deallocate(ila_,jla_,stat=info) end if @@ -170,7 +170,8 @@ subroutine psb_cdinsc(nz,ja,desc,info,jla,mask,lidx) !....PARAMETERS... Type(psb_desc_type), intent(inout) :: desc - integer(psb_ipk_), intent(in) :: nz,ja(:) + integer(psb_ipk_), intent(in) :: nz + integer(psb_lpk_), intent(in) :: ja(:) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(out) :: jla(:) logical, optional, target, intent(in) :: mask(:) diff --git a/base/tools/psb_cdprt.f90 b/base/tools/psb_cdprt.f90 index 3a040ad1..213513f3 100644 --- a/base/tools/psb_cdprt.f90 +++ b/base/tools/psb_cdprt.f90 @@ -129,7 +129,7 @@ contains integer(psb_ipk_) :: ip, nerv, nesd, totxch,idxr,idxs integer(psb_ipk_) :: ictxt, me, np, data_, info, verb_ - integer(psb_ipk_), allocatable :: gidx(:) + integer(psb_lpk_), allocatable :: gidx(:) class(psb_i_base_vect_type), pointer :: vpnt ictxt = desc_p%get_ctxt() diff --git a/base/tools/psb_cdrep.f90 b/base/tools/psb_cdrep.f90 index 9bf3b219..8485c590 100644 --- a/base/tools/psb_cdrep.f90 +++ b/base/tools/psb_cdrep.f90 @@ -107,12 +107,14 @@ subroutine psb_cdrep(m, ictxt, desc, info) use psb_repl_map_mod implicit None !....Parameters... - integer(psb_ipk_), intent(in) :: m,ictxt + integer(psb_lpk_), intent(in) :: m + integer(psb_ipk_), intent(in) :: ictxt integer(psb_ipk_), intent(out) :: info Type(psb_desc_type), intent(out) :: desc !locals - integer(psb_ipk_) :: i,np,me,err,n,err_act + integer(psb_ipk_) :: i,np,me,err,err_act + integer(psb_lpk_) :: n integer(psb_ipk_) :: int_err(5),exch(2), thalo(1), tovr(1), text(1) integer(psb_ipk_) :: debug_level, debug_unit integer(psb_mpk_) :: iictxt