#include "mpi.h"

int MPI_T_pvar_get_index(const char *pname, int pclass, int *pidxPtr)
{
    int     err, i, numPvar, nameLen, descLen, binding;
    int     verbosity, varClass, isReadonly, isContinuous, isAtomic;
    char         name[128];
    MPI_T_enum   enumtype;
    MPI_Datatype datatype;

    err = MPI_T_pvar_get_num( &numPvar );
    if (err) return err;

    for (i=0; i<numPvar; i++) {
        nameLen = sizeof(name);
        descLen = 0;
        err = MPI_T_pvar_get_info( i, name, &nameLen, &verbosity, &varClass,
                             &datatype, &enumtype, NULL, &descLen, &binding,
                             &isReadonly, &isContinuous, &isAtomic );
        if (err) return err;
	if (strcmp(name, pname) == 0 && pclass == varClass) break;
    }
    if (i == numPvar) {
    }
    *pidxPtr = i;
    return MPI_SUCCESS;
}