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
18 years ago
|
subroutine psb_set_coher(ictxt,isvch)
|
||
|
integer :: ictxt, isvch
|
||
|
! Ensure global coherence for convergence checks.
|
||
18 years ago
|
#ifdef NETLIB_BLACS
|
||
18 years ago
|
Call blacs_get(ictxt,16,isvch)
|
||
|
Call blacs_set(ictxt,16,1)
|
||
|
#endif
|
||
18 years ago
|
#ifdef ESSL_BLACS
|
||
18 years ago
|
! 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.
|
||
18 years ago
|
#ifdef NETLIB_BLACS
|
||
18 years ago
|
Call blacs_set(ictxt,16,isvch)
|
||
|
#endif
|
||
18 years ago
|
#ifdef ESSL_BLACS
|
||
18 years ago
|
! 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
|
||
|
|
||
18 years ago
|
#ifdef ESSL_BLACS
|
||
18 years ago
|
!
|
||
|
! 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
|