You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
Fortran
54 lines
1.3 KiB
Fortran
subroutine psb_set_coher(ictxt,isvch)
|
|
integer :: ictxt, isvch
|
|
! Ensure global coherence for convergence checks.
|
|
#ifdef NETLIB_BLACS
|
|
Call blacs_get(ictxt,16,isvch)
|
|
Call blacs_set(ictxt,16,1)
|
|
#endif
|
|
#ifdef ESSL_BLACS
|
|
! Do nothing: ESSL does coherence by default,
|
|
! and does not handle req=16
|
|
#endif
|
|
end subroutine psb_set_coher
|
|
subroutine psb_restore_coher(ictxt,isvch)
|
|
integer :: ictxt, isvch
|
|
! Ensure global coherence for convergence checks.
|
|
#ifdef NETLIB_BLACS
|
|
Call blacs_set(ictxt,16,isvch)
|
|
#endif
|
|
#ifdef ESSL_BLACS
|
|
! Do nothing: ESSL does coherence by default,
|
|
! and does not handle req=16
|
|
#endif
|
|
end subroutine psb_restore_coher
|
|
subroutine psb_get_mpicomm(ictxt,comm)
|
|
integer :: ictxt, comm
|
|
call blacs_get(ictxt,10,comm)
|
|
end subroutine psb_get_mpicomm
|
|
subroutine psb_get_rank(rank,ictxt,id)
|
|
integer :: rank,ictxt, id
|
|
integer :: blacs_pnum
|
|
rank = blacs_pnum(ictxt,id,0)
|
|
end subroutine psb_get_rank
|
|
|
|
#ifdef ESSL_BLACS
|
|
!
|
|
! Need these, as they are not in the ESSL implementation
|
|
! of the BLACS.
|
|
!
|
|
integer function krecvid(contxt,proc_to_comm,myrow)
|
|
integer contxt,proc_to_comm,myrow
|
|
|
|
krecvid=32766
|
|
|
|
return
|
|
end function krecvid
|
|
integer function ksendid(contxt,proc_to_comm,myrow)
|
|
integer contxt,proc_to_comm,myrow
|
|
|
|
ksendid=32766
|
|
|
|
return
|
|
end function ksendid
|
|
#endif
|