Commit cbd0063f authored by MARAIT Gilles's avatar MARAIT Gilles

Hotfix for maphys~pastix

parent 11d74ed8
...@@ -432,7 +432,7 @@ Contains ...@@ -432,7 +432,7 @@ Contains
Case (SDS_Ismumps) ; call XMPH_mumps_solve_RHS & Case (SDS_Ismumps) ; call XMPH_mumps_solve_RHS &
(sds%mumps, rhs, nrhs, ldrhs, info ) (sds%mumps, rhs, nrhs, ldrhs, info )
Case (SDS_IsPASTIX); call XMPH_pastix_solve_RHS(sds%pastix, rhs, & Case (SDS_IsPASTIX); call XMPH_pastix_solve_RHS(sds%pastix, rhs, &
Int(nrhs, kind=pastix_int_t), Int(ldrhs, kind=pastix_int_t), info ) nrhs, ldrhs, info )
Case default Case default
info= SDS_IsUnavailable info= SDS_IsUnavailable
write(6,*) "Error : in sparse_direct_solver_solve_RHS,", & write(6,*) "Error : in sparse_direct_solver_solve_RHS,", &
...@@ -696,10 +696,8 @@ Contains ...@@ -696,10 +696,8 @@ Contains
Case (SDS_IsPASTIX); Case (SDS_IsPASTIX);
Call XMPH_pastix_set_denseschur & Call XMPH_pastix_set_denseschur &
(sds%pastix, schurlist, Int(nschurlist, kind=pastix_int_t), & (sds%pastix, schurlist, nschurlist, &
schur, Int(nschur, kind=pastix_int_t), & schur, nschur, ldschur, info)
Int(ldschur, kind=pastix_int_t), info)
! none available ! none available
Case Default Case Default
......
...@@ -24,7 +24,6 @@ Module XMPH_sds_pastix_mod ...@@ -24,7 +24,6 @@ Module XMPH_sds_pastix_mod
#if HAVE_LIBPASTIX_6 #if HAVE_LIBPASTIX_6
use pastix_enums use pastix_enums
use spmf use spmf
use pastixf use pastixf
...@@ -432,11 +431,12 @@ Contains ...@@ -432,11 +431,12 @@ Contains
!* Argument(s) *! !* Argument(s) *!
Type(XMPH_pastix_t), intent(inout) :: id_pastix Type(XMPH_pastix_t), intent(inout) :: id_pastix
integer(kind=pastix_int_t), intent(in ) :: nrhs, ldrhs integer , intent(in ) :: nrhs, ldrhs
XMPH_FLOAT, target , intent(inout) :: rhs(ldrhs*nrhs) XMPH_FLOAT, target , intent(inout) :: rhs(ldrhs*nrhs)
Integer , intent( out) :: info Integer , intent( out) :: info
#if HAVE_LIBPASTIX_6 #if HAVE_LIBPASTIX_6
integer(kind=pastix_int_t) :: p_nrhs
XMPH_FLOAT, allocatable, target, dimension(:) :: rhs_copy XMPH_FLOAT, allocatable, target, dimension(:) :: rhs_copy
Type(c_ptr) :: rhs_copy_ptr Type(c_ptr) :: rhs_copy_ptr
Type(c_ptr) :: rhs_ptr Type(c_ptr) :: rhs_ptr
...@@ -460,14 +460,15 @@ Contains ...@@ -460,14 +460,15 @@ Contains
info = 0 info = 0
BLAS_SET_NUM_THREADS(1) BLAS_SET_NUM_THREADS(1)
call pastix_task_solve( id_pastix%pastix_data, nrhs, rhs_ptr, id_pastix%spm%n, pinfo ) p_nrhs = Int(nrhs, kind=pastix_int_t)
call pastix_task_solve( id_pastix%pastix_data, p_nrhs, rhs_ptr, id_pastix%spm%n, pinfo )
Call mph_pastix_check_status(pinfo, __LINE__, info) Call mph_pastix_check_status(pinfo, __LINE__, info)
If(id_pastix%useschur .eqv. .false.) Then If(id_pastix%useschur .eqv. .false.) Then
n = id_pastix%spm%n n = id_pastix%spm%n
ldb = n ldb = n
ldx = n ldx = n
call pastix_task_refine( id_pastix%pastix_data, n, nrhs, rhs_ptr, ldb, rhs_copy_ptr, ldx, pinfo) call pastix_task_refine( id_pastix%pastix_data, n, p_nrhs, rhs_ptr, ldb, rhs_copy_ptr, ldx, pinfo)
Call mph_pastix_check_status(pinfo, __LINE__, info) Call mph_pastix_check_status(pinfo, __LINE__, info)
End If End If
BLAS_SET_NUM_THREADS(id_pastix%iparm(IPARM_THREAD_NBR)) BLAS_SET_NUM_THREADS(id_pastix%iparm(IPARM_THREAD_NBR))
...@@ -539,12 +540,11 @@ Contains ...@@ -539,12 +540,11 @@ Contains
!* Arguments *! !* Arguments *!
Type(XMPH_pastix_t), intent(inout) :: id_pastix Type(XMPH_pastix_t), intent(inout) :: id_pastix
integer(kind=pastix_int_t), intent(in ) :: nschurlist integer , intent(in ) :: nschurlist
!integer(kind=pastix_int_t), intent(in ) :: schurlist(nschurlist) integer , intent(in ) :: schurlist(nschurlist)
Integer, intent(in ) :: schurlist(nschurlist) integer , intent(in ) :: nschur,ldschur
integer(kind=pastix_int_t), intent(in ) :: nschur,ldschur
XMPH_FLOAT, pointer, intent(inout) :: schur(:) XMPH_FLOAT, pointer, intent(inout) :: schur(:)
integer , intent( out) :: info integer , intent( out) :: info
#if MAPHYS_DEBUG #if MAPHYS_DEBUG
integer :: i integer :: i
#endif #endif
...@@ -577,7 +577,7 @@ Contains ...@@ -577,7 +577,7 @@ Contains
Call MPH_dbg_set_file("schurlist.mtx") Call MPH_dbg_set_file("schurlist.mtx")
Write(dbg_unit,*) nschurlist Write(dbg_unit,*) nschurlist
Do i = 1, Int(nschurlist) Do i = 1, nschurlist
Write(dbg_unit,*) schurlist(i) Write(dbg_unit,*) schurlist(i)
End Do End Do
...@@ -599,7 +599,7 @@ Contains ...@@ -599,7 +599,7 @@ Contains
schurlist_ptr => null() schurlist_ptr => null()
if (nschurlist > 0) schurlist_ptr => schurlist_copy(1) if (nschurlist > 0) schurlist_ptr => schurlist_copy(1)
call pastixSetSchurUnknownList(id_pastix%pastix_data, nschur, schurlist_ptr) call pastixSetSchurUnknownList(id_pastix%pastix_data, Int(nschur, kind=pastix_int_t), schurlist_ptr)
id_pastix%nschur = nschur id_pastix%nschur = nschur
id_pastix%ldschur = ldschur id_pastix%ldschur = ldschur
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment