Dear Jean-Michel
It is impossible to run ARTEMIS with MUMPS solver without changes of code (sources from
svn.opentelemac.org/svn/opentelemac/tags/v6p3r2/).
First bug that I wrote to Costas.
PRE4_MUMPS calls SD_FABSG4 without TYPEXT1(2/3/4) argumets.
This bug may be fixed easy.
Next PRE4_MUMPS calls SOLVE_MUMPS to solve system.
But SOLVE_MUMPS is empty.
I tried to change SOLVE_MUMPS by SOLVE_MUMPS_PAR
and found another bug - exceeding the bounds of the array.
PRE4_MUMPS calls SOLVE_MUMPS with arguments
CALL SOLVE_MUMPS(NPBLK,NSEGBLK,GLOSEG4,NSEGBLK,DA,XA,
* XINC,RHS,INFOGR,TYPEXT,KNOLG,NPOIN_TOT,IPID)
GLOSEG4 have size GLOSEG4(2*NSEGBLK)
In the subroutine SOLVE_MUMPS_PAR array GLOSEG, that accept GLOSEG4, have size GLOSEG(MAXSEG,2) and MAXSEG equal NSEGBLK. So GLOSEG have size 2*NSEGBLK too. But there is part of code
IF(TYPEXT.EQ.'S') THEN
DO K = 1,NSEGB
I = TEMP3(GLOSEG(K,1))
J = TEMP3(GLOSEG(K,2))
NBELEM = NBELEM + 1
IF(I.LT.J) THEN
MUMPS_PAR%IRN_loc(NBELEM) = I
MUMPS_PAR%JCN_loc(NBELEM) = J
ELSE
MUMPS_PAR%IRN_loc(NBELEM) = J
MUMPS_PAR%JCN_loc(NBELEM) = I
ENDIF
MUMPS_PAR%A_loc(NBELEM) = XA(K)
ENDDO
ELSE
DO K = 1,2*NSEGB
I = TEMP3(GLOSEG(K,1))
J = TEMP3(GLOSEG(K,2))
NBELEM = NBELEM + 1
MUMPS_PAR%IRN_loc(NBELEM) = I
MUMPS_PAR%JCN_loc(NBELEM) = J
MUMPS_PAR%A_loc(NBELEM) = XA(K)
ENDDO
ENDIF
When TYPEXT .ne. 'S' top limit of loop is equal to 2*NSEGB that bigger then MAXSEG (NSEGB=NSEGBLK=MAXSEG). When K=NSEGB+1 program stops with error
Subscript #1 of the array GLOSEG has value *** which is greater than the upper bound of ***
You wrote that you ran ARTEMIS with MUMPS. Can you help me?
Maxim Sorockin