21#if defined(scotch) || defined(ptscotch)
42 SCOTCH_Strat stratdat;
44 *weightused = *weightrequested;
46 for (vertnum = 0; vertnum < *
n; vertnum ++)
47 vendtab[vertnum] = petab[vertnum] + lentab[vertnum];
48 SCOTCH_graphInit (&grafdat);
49 if ( *weightrequested == 1 )
51 SCOTCH_graphBuild (&grafdat, 1, *
n, (SCOTCH_Num *) petab, (SCOTCH_Num *) vendtab, (SCOTCH_Num *) nvtab, NULL, *iwlen, (SCOTCH_Num *) iwtab, NULL);
55 SCOTCH_graphBuild (&grafdat, 1, *
n, (SCOTCH_Num *) petab, (SCOTCH_Num *) vendtab, NULL, NULL, *iwlen, (SCOTCH_Num *) iwtab, NULL);
57 SCOTCH_stratInit(&stratdat);
58 *ncmpa=SCOTCH_graphOrder(&grafdat, &stratdat, (SCOTCH_Num *) elentab, (SCOTCH_Num *) lasttab, NULL, NULL, NULL);
59 SCOTCH_stratExit(&stratdat);
60 SCOTCH_graphExit(&grafdat);
80#if ((SCOTCH_VERSION == 6) && (SCOTCH_RELEASE >= 1)) || (SCOTCH_VERSION >= 7)
82 if ( *weightrequested == 1 )
84 *ncmpa = esmumpsv( *
n, *iwlen, petab, *pfree,
85 lentab, iwtab, nvtab, elentab, lasttab );
91 *ncmpa = esmumps( *
n, *iwlen, petab, *pfree,
92 lentab, iwtab, nvtab, elentab, lasttab );
97 *ncmpa = esmumps( *
n, *iwlen, petab, *pfree,
98 lentab, iwtab, nvtab, elentab, lasttab );
105 *version = SCOTCH_VERSION;
109MUMPS_SCOTCH_GET_PTHREAD_NUMBER (
MUMPS_INT *PTHREAD_NUMBER)
111 *PTHREAD_NUMBER = -1;
112#if (SCOTCH_VERSION>=7)
113 if (getenv(
"SCOTCH_PTHREAD_NUMBER"))
115 *PTHREAD_NUMBER = atoi(getenv(
"SCOTCH_PTHREAD_NUMBER"));
121MUMPS_SCOTCH_SET_PTHREAD_NUMBER (
MUMPS_INT *PTHREAD_NUMBER)
123#if (SCOTCH_VERSION>=7)
125#if defined(MUMPS_WIN32)
128 if (*PTHREAD_NUMBER == -1)
130#if defined(MUMPS_WIN32)
131 ierr = _putenv(
"SCOTCH_PTHREAD_NUMBER=");
133 unsetenv(
"SCOTCH_PTHREAD_NUMBER");
138#if defined(MUMPS_WIN32)
139 sprintf(param,
"SCOTCH_PTHREAD_NUMBER=%d",*PTHREAD_NUMBER);
140 ierr = _putenv(param);
142 sprintf(param,
"%d", *PTHREAD_NUMBER);
143 setenv(
"SCOTCH_PTHREAD_NUMBER",param,1);
152MUMPS_DGRAPHINIT(SCOTCH_Dgraph *graphptr, MPI_Fint *comm, MPI_Fint *ierr)
155 int_comm = MPI_Comm_f2c(*comm);
156 *
ierr = SCOTCH_dgraphInit(graphptr, int_comm);