Merged MixedI8 in new branch (to be later merged into development)

This commit is contained in:
Salvatore Filippone
2018-12-10 11:42:40 +00:00
parent 5371e39c16
commit 8d489f8ce2
921 changed files with 172036 additions and 57462 deletions
+15 -31
View File
@@ -107,15 +107,18 @@ 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_) :: int_err(5),exch(2), thalo(1), tovr(1), text(1)
integer(psb_ipk_) :: i,np,me,err,err_act
integer(psb_lpk_) :: n
integer(psb_lpk_) :: l_err(5),exch(2)
integer(psb_ipk_) :: thalo(1), tovr(1), text(1)
integer(psb_ipk_) :: debug_level, debug_unit
integer(psb_mpik_) :: iictxt
integer(psb_mpk_) :: iictxt
character(len=20) :: name
if(psb_get_errstatus() /= 0) return
@@ -133,16 +136,16 @@ subroutine psb_cdrep(m, ictxt, desc, info)
!... check m and n parameters....
if (m < 1) then
info = psb_err_iarg_neg_
int_err(1) = 1
int_err(2) = m
l_err(1) = 1
l_err(2) = m
else if (n < 1) then
info = psb_err_iarg_neg_
int_err(1) = 2
int_err(2) = n
l_err(1) = 2
l_err(2) = n
endif
if (info /= psb_success_) then
call psb_errpush(info,name,i_err=int_err)
call psb_errpush(info,name,l_err=l_err)
goto 9999
end if
@@ -157,15 +160,15 @@ subroutine psb_cdrep(m, ictxt, desc, info)
call psb_bcast(ictxt,exch(1:2),root=psb_root_)
if (exch(1) /= m) then
info=psb_err_parm_differs_among_procs_
int_err(1)=1
l_err(1)=1
else if (exch(2) /= n) then
info=psb_err_parm_differs_among_procs_
int_err(1)=2
l_err(1)=2
endif
endif
if (info /= psb_success_) then
call psb_errpush(info,name,i_err=int_err)
call psb_errpush(info,name,l_err=l_err)
goto 9999
end if
@@ -175,25 +178,6 @@ subroutine psb_cdrep(m, ictxt, desc, info)
!count local rows number
! allocate work vector
!!$ allocate(desc%matrix_data(psb_mdata_size_),&
!!$ & desc%ovrlap_elem(0,3),stat=info)
!!$ if (info /= psb_success_) then
!!$ info=psb_err_alloc_request_
!!$ int_err(1)=2*m+psb_mdata_size_+1
!!$ call psb_errpush(info,name,i_err=int_err,a_err='integer')
!!$ goto 9999
!!$ endif
!!$ ! If the index space is replicated there's no point in not having
!!$ ! the full map on the current process.
!!$
!!$ desc%matrix_data(psb_m_) = m
!!$ desc%matrix_data(psb_n_) = n
!!$ desc%matrix_data(psb_n_row_) = m
!!$ desc%matrix_data(psb_n_col_) = n
!!$ desc%matrix_data(psb_ctxt_) = ictxt
!!$ call psb_get_mpicomm(ictxt,desc%matrix_data(psb_mpi_c_))
!!$ desc%matrix_data(psb_dec_type_) = psb_desc_bld_
allocate(psb_repl_map :: desc%indxmap, stat=info)
select type(aa => desc%indxmap)