JNIEXPORT jobject JNICALL Java_mpi_GraphComm_getDims(
        JNIEnv *env, jobject jthis, jlong comm)
{
    int maxInd, maxEdg;
    int rc = MPI_Graphdims_get((MPI_Comm)comm, &maxInd, &maxEdg);

    if(ompi_java_exceptionCheck(env, rc))
        return NULL;

    jintArray index = (*env)->NewIntArray(env, maxInd),
              edges = (*env)->NewIntArray(env, maxEdg);

    jint *jIndex, *jEdges;
    int  *cIndex, *cEdges;
    ompi_java_getIntArray(env, index, &jIndex, &cIndex);
    ompi_java_getIntArray(env, edges, &jEdges, &cEdges);

    rc = MPI_Graph_get((MPI_Comm)comm, maxInd, maxEdg, cIndex, cEdges);
    ompi_java_exceptionCheck(env, rc);

    ompi_java_releaseIntArray(env, index, jIndex, cIndex);
    ompi_java_releaseIntArray(env, edges, jEdges, cEdges);

    return (*env)->NewObject(env, ompi_java.GraphParmsClass,
                             ompi_java.GraphParmsInit, index, edges);
}
Esempio n. 2
0
FORT_DLL_SPEC void FORT_CALL mpi_graphdims_get_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){
    *ierr = MPI_Graphdims_get( (MPI_Comm)(*v1), v2, v3 );
}