diff options
author | Dan Wells <dwells@cs.uiuc.edu> | 1999-04-14 21:20:11 (GMT) |
---|---|---|
committer | Dan Wells <dwells@cs.uiuc.edu> | 1999-04-14 21:20:11 (GMT) |
commit | 9ec85308236b2547cf5a6b9cff223e042fb5ab36 (patch) | |
tree | ce491353012b77cbd042ad73433b33c65132da52 | |
parent | 92cc3fe39fcf1862cb87a3e417167124730ee27e (diff) | |
download | hdf5-9ec85308236b2547cf5a6b9cff223e042fb5ab36.zip hdf5-9ec85308236b2547cf5a6b9cff223e042fb5ab36.tar.gz hdf5-9ec85308236b2547cf5a6b9cff223e042fb5ab36.tar.bz2 |
[svn-r1181] Changes to allow automatic building of tables for event IDs and for compatiblity of HDF 4 and HDF 5 trace files.
-rw-r--r-- | pablo/PabloHDF5.c | 1807 | ||||
-rw-r--r-- | pablo/PabloHDF_RT.c | 122 | ||||
-rw-r--r-- | pablo/PabloHDF_SDDF.c | 2 | ||||
-rw-r--r-- | pablo/PabloSedscr | 15 | ||||
-rw-r--r-- | pablo/ProcIDs.h | 99 | ||||
-rw-r--r-- | pablo/ProcTrace.h | 104 | ||||
-rw-r--r-- | pablo/ProcTrace.inc | 1680 |
7 files changed, 1796 insertions, 2033 deletions
diff --git a/pablo/PabloHDF5.c b/pablo/PabloHDF5.c deleted file mode 100644 index c239357b..0000000 --- a/pablo/PabloHDF5.c +++ /dev/null @@ -1,1807 +0,0 @@ -/* This file is part of the Pablo Performance Analysis Environment -// -// (R) -// The Pablo Performance Analysis Environment software is NOT in -// the public domain. However, it is freely available without fee for -// education, research, and non-profit purposes. By obtaining copies -// of this and other files that comprise the Pablo Performance Analysis -// Environment, you, the Licensee, agree to abide by the following -// conditions and understandings with respect to the copyrighted software: -// -// 1. The software is copyrighted in the name of the Board of Trustees -// of the University of Illinois (UI), and ownership of the software -// remains with the UI. -// -// 2. Permission to use, copy, and modify this software and its documentation -// for education, research, and non-profit purposes is hereby granted -// to Licensee, provided that the copyright notice, the original author's -// names and unit identification, and this permission notice appear on -// all such copies, and that no charge be made for such copies. Any -// entity desiring permission to incorporate this software into commercial -// products should contact: -// -// Professor Daniel A. Reed reed@cs.uiuc.edu -// University of Illinois -// Department of Computer Science -// 2413 Digital Computer Laboratory -// 1304 West Springfield Avenue -// Urbana, Illinois 61801 -// USA -// -// 3. Licensee may not use the name, logo, or any other symbol of the UI -// nor the names of any of its employees nor any adaptation thereof in -// advertizing or publicity pertaining to the software without specific -// prior written approval of the UI. -// -// 4. THE UI MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE -// SOFTWARE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS -// OR IMPLIED WARRANTY. -// -// 5. The UI shall not be liable for any damages suffered by Licensee from -// the use of this software. -// -// 6. The software was developed under agreements between the UI and the -// Federal Government which entitle the Government to certain rights. -// -// ************************************************************************* -// -// Developed by: The Pablo Research Group -// University of Illinois at Urbana-Champaign -// Department of Computer Science -// 1304 W. Springfield Avenue -// Urbana, IL 61801 -// -// http://www-pablo.cs.uiuc.edu -// -// Send comments to: pablo-feedback@guitar.cs.uiuc.edu -// -// Copyright (c) 1987-1998 -// The University of Illinois Board of Trustees. -// All Rights Reserved. -// -// PABLO is a registered trademark of -// The Board of Trustees of the University of Illinois -// registered in the U.S. Patent and Trademark Office. -// -// Project Manager and Principal Investigator: -// Daniel A. Reed (reed@cs.uiuc.edu) -// -// Funded in part by the Defense Advanced Research Projects Agency under -// DARPA contracts DABT63-94-C0049 (SIO Initiative), F30602-96-C-0161, -// and DABT63-96-C-0027 by the National Science Foundation under the PACI -// program and grants NSF CDA 94-01124 and ASC 97-20202, and by the -// Department of Energy under contracts DOE B-341494, W-7405-ENG-48, and -// 1-B-333164. -//========================================================================*/ - -#include <stdio.h> -#include <stdlib.h> -#include <fcntl.h> -#include <stdarg.h> -#ifndef fileno -int fileno ( FILE * ); -#endif -/* on ipsc/860 don't include this or you'll get multiply defined SEEK_* */ -#ifndef __NX -#include <unistd.h> -#endif - - -#define HDFtrace3OPEN__ -int HDFtrace3OPEN( const char *, int, mode_t ); - -#include "SDDFparam.h" -#include "TraceParam.h" - -#include "SystemDepend.h" -#include "Trace.h" - -#include "IO_TraceParams.h" -#include "HDFIOTrace.h" - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -/* mode_t is not defined on the ipsc/860 so we define it here */ -#ifdef __NX -typedef unsigned int mode_t; -#endif - -int OUTPUT_SWITCH = 1; -int *procTrace; -extern void preInitIOTrace( void ); - -#include "ProcTrace.h" -#include "HDF5Trace.h" -#include "IOTrace.h" - -#define ID_HDFprocName 9996 -#define ID_malloc 9997 -#define ID_free 9998 -#define ID_timeStamp 9999 -#define DUMMY_HDF 10000 - -#ifdef HAVE_PARALLEL -#include "mpio.h" -#include "MPIO_TraceParams.h" -#endif /* HAVE_PARALLEL*/ - -#ifdef HAVE_MPIOTRACE -#include "MPIO_Init.h" -#include "MPIO_EventArgs.h" -#include "HDFmpioProtos.h" -#endif /* HAVE_MPIOTRACE */ - -void HDFinitTrace_RT ( const char *, int ); -void HDFinitTrace_SDDF ( const char *, int ); -void h5inittracex_ ( int [], int *, int[], int *,unsigned * ); -void hdf5endtrace_ ( void ) ; -void HDFendTrace_RT (int); -void HDFendTrace_SDDF(int); -void HDFfinalTimeStamp( void ); -void startHDFtraceEvent (int ); -int computeProcMask (int eventID); -int computePacketTag(int eventID); -void endHDFtraceEvent (int , int , char *, int ); -void traceEvent ( int , char *, unsigned ); -void HDFtraceEvent_RT ( int , HDFsetInfo *, unsigned ); -void HDFtraceIOEvent( int , void *, unsigned ); -extern int IOtracingEnabled; -char *hdfRecordPointer; -double WriteTotals = 0.0; -double ReadTotals = 0.0; -/*======================================================================* -// NAME * -// HDF5initTrace -- initialize HDF tracing * -// USAGE * -// VOID HDFinitTrace( traceFileName, out_sw ) * -// char *traceFileName; IN: name of the generated trace output * -// file * -// int ... IN: indicates which routines to trace * -// The list is terminated by the * -// OUTPUT_SWITCH value indicating * -// whether to do RunTime or Summary * -// tracing. * -// RETURNS * -// None. * -//======================================================================*/ -/*======================================================================* -// fortran to C interface. To insure portability, the character array * -// passed in Fortran is converted to an integer array using the ICHAR * -// function. This program converts it from integer to char, then * -// passes it to the C initialization routine. * -//======================================================================*/ -void h5inittracex_( int *file, int *len, int flags[], int *nflags, - unsigned *out_sw ) -{ - char *traceFileName; - int i; - traceFileName = (char *)malloc(*len+1); - for ( i = 0; i < *len; ++i ) { - traceFileName[i] = file[i]; - } - traceFileName[*len+1] = 0; - /*==============================================================* - // Allocate space for trace indicators. * - //==============================================================*/ - procTrace = ( int * ) malloc( NUM_HDF5_IDS*sizeof(int) ); - if ( procTrace == NULL ) { - fprintf(stderr,">> Error: Unable to allocate procTrace "); - fprintf(stderr,"array in program HDF5initTrace. <<<\n"); - fprintf(stderr,">>> Exiting program! <<<\n"); - exit (-1); - } - /*==============================================================* - // Initialize to 0. * - //==============================================================*/ - for ( i = 0; i <= NUM_HDF5_IDS; ++i ) { - procTrace[i] = 0; - } - /*==============================================================* - // Read in the flags indicating which procedures to trace. * - // The last parameter passed is an indicator of the type of * - // tracing to do. This indicator has a value larger than any * - // of the flags. * - //==============================================================*/ - for ( i = 0; i < *nflags; ++i ) { - procTrace[flags[i]] = 1; - } - OUTPUT_SWITCH = *out_sw; - /*==============================================================* - // if no flags were passed, the default is to trace all of the * - // procedures. * - //==============================================================*/ - if ( *nflags == 0 || procTrace[AllHDF5] ) { - for ( i = ID_HDF_Last_Entry + 1; i < NUM_HDF5_IDS; ++i ) { - procTrace[i] = 1; - } - } - if ( OUTPUT_SWITCH == RUNTIME_TRACE - || OUTPUT_SWITCH == MPI_RUNTIME_TRACE ) { - HDFinitTrace_SDDF( traceFileName, OUTPUT_SWITCH ); - IOtracingEnabled = 1; - } else if ( OUTPUT_SWITCH == SUMMARY_TRACE - || OUTPUT_SWITCH == MPI_SUMMARY_TRACE ) { - HDFinitTrace_RT( traceFileName, OUTPUT_SWITCH ); - IOtracingEnabled = 1; - } else if ( OUTPUT_SWITCH == NO_TRACE ) { - IOtracingEnabled = 0; - } else { - fprintf(stderr,">> Error in HDF5initTrace: the third argument "); - fprintf(stderr,"must have a value between %4d<<\n",RUNTIME_TRACE); - fprintf(stderr,">> and %4d, inclusive.",NO_TRACE); - fprintf(stderr," The value received was %4u.", OUTPUT_SWITCH); - fprintf(stderr," Exiting Program. <<\n"); - exit (-1); - } -} -void HDF5initTrace( const char *traceFileName, int id_flag, ... ) -{ - int i, nIDs; - va_list ap; - - /*==============================================================* - // Allocate space for trace indicators. * - //==============================================================*/ - procTrace = ( int * ) malloc( NUM_HDF5_IDS*sizeof(int) ); - if ( procTrace == NULL ) { - fprintf(stderr,">> Error: Unable to allocate procTrace "); - fprintf(stderr,"array in program HDF5initTrace. <<<\n"); - fprintf(stderr,">>> Exiting program! <<<\n"); - exit (-1); - } - /*==============================================================* - // Initialize to 0. * - //==============================================================*/ - for ( i = 0; i < NUM_HDF5_IDS; ++i ) { - procTrace[i] = 0; - } - /*==============================================================* - // Read in the flags indicating which procedures to trace. * - // The last parameter passed is an indicator of the type of * - // tracing to do. This indicator has a value larger than any * - // of the flags. * - //==============================================================*/ - nIDs = 0; - va_start( ap, id_flag ); - while ( id_flag > NO_TRACE ) { - procTrace[id_flag] = 1; - ++nIDs; - id_flag = va_arg ( ap, int ); - } - OUTPUT_SWITCH = id_flag; - /*==============================================================* - // if no flags were passed, the default is to trace all of the * - // procedures. * - //==============================================================*/ - if ( nIDs == 0 || procTrace[AllHDF5] ) { - for ( i = ID_HDF_Last_Entry + 1; i < NUM_HDF5_IDS; ++i ) { - procTrace[i] = 1; - } - } - if ( OUTPUT_SWITCH == RUNTIME_TRACE - || OUTPUT_SWITCH == MPI_RUNTIME_TRACE ) { - HDFinitTrace_SDDF( traceFileName, OUTPUT_SWITCH ); - IOtracingEnabled = 1; - } else if ( OUTPUT_SWITCH == SUMMARY_TRACE - || OUTPUT_SWITCH == MPI_SUMMARY_TRACE ) { - HDFinitTrace_RT( traceFileName, OUTPUT_SWITCH ); - IOtracingEnabled = 1; - } else if ( OUTPUT_SWITCH == NO_TRACE ) { - IOtracingEnabled = 0; - } else { - fprintf(stderr,">> Error in HDF5initTrace: the third argument "); - fprintf(stderr,"must have a value between %4d<<\n",RUNTIME_TRACE); - fprintf(stderr,">> and %4d, inclusive.",NO_TRACE); - fprintf(stderr," The value received was %4u.", OUTPUT_SWITCH); - fprintf(stderr," Exiting Program. <<\n"); - exit (-1); - } -} -/*======================================================================* -// NAME * -// HDF5endTrace -- end HDF tracing * -// USAGE * -// VOID HDF5endTrace(VOID) * -// RETURNS * -// None. * -//======================================================================*/ -void hdf5endtrace_( void ) -{ - HDF5endTrace (); -} -void HDF5endTrace(void) -{ - if ( OUTPUT_SWITCH == RUNTIME_TRACE - || OUTPUT_SWITCH == MPI_RUNTIME_TRACE ) { - HDFendTrace_SDDF( OUTPUT_SWITCH ); - } else if ( OUTPUT_SWITCH == SUMMARY_TRACE - || OUTPUT_SWITCH == MPI_SUMMARY_TRACE ) { - HDFendTrace_RT( OUTPUT_SWITCH ); - } -} -void startHDFtraceEvent(int eventID) -{ - if ( OUTPUT_SWITCH == RUNTIME_TRACE - || OUTPUT_SWITCH == MPI_RUNTIME_TRACE ) { - traceEvent( eventID, NULL, 0 ) ; - } else { - HDFtraceEvent_RT( eventID, NULL, 0 ) ; - } -} -void endHDFtraceEvent(int eventID, int setID, char *setName, int IDtype ) -{ - HDFsetInfo info; - info.setID = setID; - info.setName = setName; - if ( OUTPUT_SWITCH == RUNTIME_TRACE - || OUTPUT_SWITCH == MPI_RUNTIME_TRACE ) { - traceEvent( eventID, (char *)&info, 0 ) ; - } else if ( OUTPUT_SWITCH == SUMMARY_TRACE - || OUTPUT_SWITCH == MPI_SUMMARY_TRACE ) { - HDFtraceEvent_RT( eventID, &info, 0 ) ; - } else if ( OUTPUT_SWITCH != NO_TRACE ) { - fprintf(stderr,"endHDFtraceEvent: "); - fprintf(stderr,"invalid OUTPUT_SWITCH %d, IDtype = %d\n", - OUTPUT_SWITCH, IDtype ) ; - } -} -/******************************************************************************/ - -/*+ Open routines +*/ -/*+ ------------- +*/ -/*+ +*/ -/*+ Routine: FILE *HDFtraceFOPEN( const char *filename, const char *type ) +*/ -/*+ substitute for fopen() +*/ -/*+ generates fopenBeginID, fopenEndID +*/ -/*+ record Open (fopenBegin) +*/ -/*+ Mode = -1 +*/ -/*+ +*/ -FILE *HDFtraceFOPEN( const char *filename, const char *type ) -{ - FILE *fp; - int fd, id; - int flags = 0; - struct open_args openArgs; - size_t typeLen; - - if ( IOtracingEnabled ) { - strcpy( openArgs.filename, filename ); - - /* check for 'b' - usually if 2 chars, second is '+' */ - typeLen = strlen( type ); - if ( ( typeLen == 2 ) && ( type [1] == 'b' ) ) { - typeLen = 1; - } - - if ( typeLen == 1 ) { - switch( type[0] ) { - case 'r': - flags = flags | O_RDONLY; - break; - case 'w': - flags = O_TRUNC | O_CREAT | O_WRONLY; - break; - case 'a': - flags = flags | O_APPEND | O_CREAT | O_WRONLY; - break; - } - } else { - switch( type[0] ) { - case 'r': - flags = O_RDWR; - break; - case 'w': - flags = O_TRUNC | O_CREAT | O_RDWR; - break; - case 'a': - flags = O_APPEND | O_CREAT | O_RDWR; - break; - } - } - openArgs.flags = flags; - openArgs.mode= -1; - - HDFtraceIOEvent( fopenBeginID, (void *)&openArgs, sizeof(openArgs) ); - } - - fp = fopen( filename, type ); - if ( fp != NULL ) { - fd = fileno( fp ); - id = set_c_mappedID( fd ); - } else { - id = -1; - } - - if ( IOtracingEnabled ) { - HDFtraceIOEvent( fopenEndID, (void *) &id, int_SIZE ); - } - - return( fp ); -} - -/*+ Routine: int HDFtraceCREAT( const char *path, mode_t mode ) +*/ -/*+ substitute for creat() +*/ -/*+ generates openBeginID, openEndID +*/ -/*+ record Open (openBeginID) +*/ -/*+ +*/ -int HDFtraceCREAT( const char *path, mode_t mode ) -{ - struct open_args openArgs; - int fd; - int id; - - if ( IOtracingEnabled ) { - strcpy( openArgs.filename, path ); - openArgs.flags = O_WRONLY | O_CREAT | O_TRUNC; - openArgs.mode = (int) mode; - - HDFtraceIOEvent( openBeginID, (void *)&openArgs, sizeof(openArgs) ); - } - - fd = creat( path, mode ); - id = set_c_mappedID( fd ); - - if ( IOtracingEnabled ) { - HDFtraceIOEvent( openEndID, (void *) &id, int_SIZE ); - } - - return( fd ); -} - -/******************************************************************************/ - -/*+ Flush routines +*/ -/*+ -------------- +*/ -/*+ +*/ -/*+ Routine: int HDFtraceFFLUSH( FILE *stream ) +*/ -/*+ substitute for fflush() +*/ -/*+ generates fflushBeginID, fflushEndID +*/ -/*+ record Flush (fflushBeginID) +*/ -/*+ +*/ -int HDFtraceFFLUSH( FILE *stream ) -{ - int ret; - int id; - int fd; - - if ( IOtracingEnabled ) { - /* - * If stream is NULL, all files open for write are flushed. - * We show this with a -2 in the trace record as too much overhead - * to try and tell what files those are and generate individual - * trace records. - */ - if ( stream == NULL ) { - id = -2; - } else { - fd = fileno( stream ); - id = c_mappedID( fd ); - HDFtraceIOEvent( fflushBeginID, (void *) 0, int_SIZE ); - } - } - - ret = fflush( stream ); - - if ( IOtracingEnabled ) { - HDFtraceIOEvent( fflushEndID, (void *) &id, 0 ); - } - - /* - * Note that if fflush called on stream open for reading, the file pointer - * is moved to EOF if it isn't there already. We don't account for that - * in our file positioning information. - */ - - return( ret ); -} - -/******************************************************************************/ -/*+ Close routines +*/ -/*+ -------------- +*/ -/*+ +*/ -/*+ Routine: int HDFtraceFCLOSE( FILE *stream ) +*/ -/*+ substitute for fclose() +*/ -/*+ generates fcloseBeginID, fcloseEndID +*/ -/*+ record Close (fcloseBeginID) +*/ -/*+ +*/ -int HDFtraceFCLOSE( FILE *stream ) -{ - int ret; - int id; - int fd = fileno( stream ); - - if ( IOtracingEnabled ) { - id = c_mappedID( fd ); - HDFtraceIOEvent( fcloseBeginID, (void *) &id, int_SIZE ); - } - - ret = fclose( stream ); - - if ( IOtracingEnabled ) { - HDFtraceIOEvent( fcloseEndID, (void *) 0, 0 ); - } - - return( ret ); -} - -/*+ Routine: int HDFtrace3OPEN( char *path, int flags, mode_t mode ) +*/ -/*+ substitute for open() when called with 3 arguments +*/ -/*+ generates openBeginID, openEndID +*/ -/*+ record Open (openBeginID) +*/ -/*+ +*/ -int HDFtrace3OPEN( const char *path, int flags, mode_t mode ) -{ - struct open_args openArgs; - int fd; - int id; - - if ( IOtracingEnabled ) { - strcpy( openArgs.filename, path ); - openArgs.flags = flags; - openArgs.mode = (int) mode; - - HDFtraceIOEvent( openBeginID, (char *)&openArgs, sizeof(openArgs) ); - } - - fd = open( path, flags, mode ); - id = set_c_mappedID( fd ); - - if ( IOtracingEnabled ) { - HDFtraceIOEvent( openEndID, (char *) &id, int_SIZE ); - } - - return( fd ); -} - -/*+ Routine: int HDFtraceCLOSE( int fd ) +*/ -/*+ substitute for close() +*/ -/*+ generates closeBeginID, closeEndID +*/ -/*+ record Close (closeBeginID) +*/ -/*+ +*/ -int HDFtraceCLOSE( int fd ) -{ - int ret; - int id; - - if ( IOtracingEnabled ) { - id = c_mappedID( fd ); - HDFtraceIOEvent( closeBeginID, (void *) &id, int_SIZE ); - } - - ret = close( fd ); - - if ( IOtracingEnabled ) { - HDFtraceIOEvent( closeEndID, (void *) 0, 0 ); - } - - return( ret ); -} - -/******************************************************************************/ -/*+ Read routines +*/ -/*+ ------------- +*/ -/*+ +*/ -/*+ Routine: int HDFtraceREAD( int fd, char *buf, int nbyte ) +*/ -/*+ substitute for read() +*/ -/*+ generates readBeginID, readEndID +*/ -/*+ record Read (readBeginID) +*/ -/*+ Number Variables = 1 +*/ -/*+ Cause = -1 +*/ -/*+ +*/ -size_t HDFtraceREAD( int fd, char *buf, int nbyte ) -{ - struct read_write_args readArgs; - size_t ret; - int bytes; - CLOCK t1, t2, incDur; - - if ( IOtracingEnabled ) { - readArgs.fileID = c_mappedID( fd ); - readArgs.numVariables = 1; - readArgs.cause = -1; - - HDFtraceIOEvent( readBeginID, (void *) &readArgs, sizeof(readArgs) ); - } - - t1 = getClock(); - ret = read( fd, buf, nbyte ); - t2 = getClock(); - incDur = clockSubtract(t2,t1); - ReadTotals += clockToSeconds( incDur ); - - if ( IOtracingEnabled ) { - if ( ret > 0 ) { - bytes = (int)ret; - } else { - bytes = 0; - } - HDFtraceIOEvent( readEndID, (void *) &bytes, int_SIZE ); - } - - return( ret ); -} - -/*+ Routine: int HDFtraceFREAD( char *ptr, int size, int nitems, +*/ -/*+ FILE *stream) +*/ -/*+ substitute for fread() +*/ -/*+ generates freadBeginID, freadEndID +*/ -/*+ record Read (freadBeginID) +*/ -/*+ Number Variables = nitems +*/ -/*+ Cause = -1 +*/ -/*+ +*/ -size_t HDFtraceFREAD( void *ptr, int size, int nitems, FILE *stream ) -{ - struct read_write_args readArgs; - size_t ret; - int nbytes; - int fd = fileno( stream ); - CLOCK t1, t2, incDur; - - if ( IOtracingEnabled ) { - readArgs.fileID = c_mappedID( fd ); - readArgs.numVariables = nitems; - readArgs.cause = -1; - HDFtraceIOEvent( freadBeginID, (void *) &readArgs, sizeof(readArgs) ); - } - - t1 = getClock(); - ret = fread( ptr, size, nitems, stream ); - t2 = getClock(); - incDur = clockSubtract(t2,t1); - ReadTotals += clockToSeconds( incDur ); - - if ( IOtracingEnabled ) { - if ( ret > 0 ) { - nbytes = (int)ret * size ; - } else { - nbytes = 0; - } - HDFtraceIOEvent( freadEndID, (void *) &nbytes, int_SIZE ); - } - - return( ret ); -} - - -/******************************************************************************/ -/*+ Seek routines +*/ -/*+ ------------- +*/ -/*+ +*/ -/*+ Routine: off_t HDFtraceLSEEK( int fd, off_t offset, int whence ) +*/ -/*+ substitute for lseek() +*/ -/*+ generates lseekBeginID, lseekEndID +*/ -/*+ record Seek (lseekBeginID) +*/ -/*+ +*/ -off_t HDFtraceLSEEK( int fd, off_t offset, int whence ) -{ - struct seek_args seekArgs; - off_t ret; - long arg; - - if ( IOtracingEnabled ) { - seekArgs.fileID = c_mappedID( fd ); - seekArgs.offset = (int) offset; - seekArgs.whence = whence; - - HDFtraceIOEvent( lseekBeginID, (void *) &seekArgs, sizeof(seekArgs) ); - } - - ret = lseek( fd, offset, whence ); - - if ( IOtracingEnabled ) { - arg = (long) ret; - HDFtraceIOEvent( lseekEndID, (void *)&arg, long_SIZE ); - } - - return( ret ); -} - -/*+ routine: int HDF traceFSEEK( FILE *stream, long offset, int whence ) +*/ -/*+ substitute for fseek() +*/ -/*+ generates fseekBeginID, fseekEndID +*/ -/*+ record Seek (fseekBeginID) +*/ -/*+ +*/ -int HDFtraceFSEEK( FILE *stream, long offset, int whence ) -{ - struct seek_args seekArgs; - int ret; - long arg; - int fd = fileno( stream ); - - if ( IOtracingEnabled ) { - seekArgs.fileID = c_mappedID( fd );; - seekArgs.offset = (int) offset; - seekArgs.whence = whence; - - HDFtraceIOEvent( fseekBeginID, (void *) &seekArgs, sizeof(seekArgs) ); - } - - ret = fseek( stream, offset, whence ); - - if ( IOtracingEnabled ) { - arg = ftell( stream ); - HDFtraceIOEvent( fseekEndID, (void *)&arg, long_SIZE ); - } - - return( ret ); -} - -#ifdef fpos_t -/*+ Routine: int HDFtraceFSETPOS( FILE *stream, const fpos_t *position ) +*/ -/*+ substitute for fsetpos() +*/ -/*+ generates fsetposBeginID, fsetposEndID +*/ -/*+ record Seek (fsetposBeginID) +*/ -/*+ +*/ -int HDFtraceFSETPOS( FILE stream, const fpos_t *position ) -{ - struct seek_args seekArgs; - int ret; - long arg; - int fd = fileno( stream ); - - if ( IOtracingEnabled ) { - seekArgs.fileID = c_mappedID( fd );; - seekArgs.offset = (int) *position; - seekArgs.whence = SEEK_SET; - - HDFtraceIOEvent( fsetposBeginID, (void *) &seekArgs, sizeof(seekArgs) ); - } - - ret = fsetpos( stream, position ); - - if ( IOtracingEnabled ) { - arg = (long) *position; - HDFtraceIOEvent( fsetposEndID, (void *)&arg, long_SIZE ); - } - - return( ret ); -} -#endif /* fpos_t */ - -/*+ Routine: void HDFtraceREWIND ( FILE *stream ) +*/ -/*+ substitute for rewind() +*/ -/*+ generates rewindBeginID, rewindEndID +*/ -/*+ record Seek (rewindBeginID) +*/ -/*+ Offset = 0 +*/ -/*+ Whence = SEEK_SET +*/ -/*+ +*/ -void HDFtraceREWIND( FILE *stream ) -{ - struct seek_args seekArgs; - long arg; - int fd = fileno( stream ); - - if ( IOtracingEnabled ) { - seekArgs.fileID = c_mappedID( fd ); - seekArgs.offset = 0; - seekArgs.whence = SEEK_SET; - - HDFtraceIOEvent( rewindBeginID, (void *) &seekArgs, sizeof(seekArgs) ); - } - - rewind( stream ); - - if ( IOtracingEnabled ) { - arg = 0; - HDFtraceIOEvent( rewindEndID, (void *)&arg, long_SIZE ); - } - - return; -} - -/******************************************************************************/ -/*+ Write routines +*/ -/*+ -------------- +*/ -/*+ +*/ -/*+ Routine: int HDFtraceWRITE( int fd, char *buf, int nbyte ) +*/ -/*+ substitute for write() +*/ -/*+ generates writeBeginID, writeEndID +*/ -/*+ record Write (writeBeginID) +*/ -/*+ Number Variables = 1 +*/ -/*+ Cause = -1 +*/ -/*+ +*/ -size_t HDFtraceWRITE( int fd, const char *buf, int nbyte ) -{ - struct read_write_args writeArgs; - size_t ret; - int bytes; - CLOCK t1, t2, incDur; - - if ( IOtracingEnabled ) { - writeArgs.fileID = c_mappedID( fd ); - writeArgs.numVariables = 1; - writeArgs.cause = -1; - - HDFtraceIOEvent( writeBeginID, (void *) &writeArgs, sizeof(writeArgs) ); - } - - t1 = getClock(); - ret = (size_t)write( fd, buf, nbyte ); - t2 = getClock(); - incDur = clockSubtract(t2,t1); - WriteTotals += clockToSeconds( incDur ); - - if ( IOtracingEnabled ) { - if ( ret > 0 ) { - bytes = (int)ret; - } else { - bytes = 0; - } - HDFtraceIOEvent( writeEndID, (void *) &bytes, int_SIZE ); - } - return( ret ); -} - -/*+ Routine: size_t HDFtraceFWRITE( const char *ptr, int size, int nitems, +*/ -/*+ FILE *stream ) +*/ -/*+ substitute for fwrite() +*/ -/*+ generates fwriteBeginID, fwriteEndID +*/ -/*+ record Write (fwriteBeginID) +*/ -/*+ Number Variables = nitems +*/ -/*+ Cause = -1 +*/ -/*+ +*/ -size_t HDFtraceFWRITE( const char *ptr, int size, int nitems, FILE *stream ) -{ - struct read_write_args writeArgs; - size_t ret; - int nbytes; - int fd = fileno( stream ); - CLOCK t1, t2, incDur; - - if ( IOtracingEnabled ) { - writeArgs.fileID = c_mappedID( fd ); - writeArgs.numVariables = nitems; - writeArgs.cause = -1; - - HDFtraceIOEvent( fwriteBeginID, (void *) &writeArgs, sizeof(writeArgs) ); - } - - t1 = getClock(); - ret = fwrite( ptr, size, nitems, stream ); - t2 = getClock(); - incDur = clockSubtract(t2,t1); - WriteTotals += clockToSeconds( incDur ); - - - if ( IOtracingEnabled ) { - if ( ret > 0 ) { - nbytes = (int)ret * size ; - } else { - nbytes = 0; - } - HDFtraceIOEvent( fwriteEndID, (void *) &nbytes, int_SIZE ); - } - - return( ret ); -} - -/*+ Routine: int HDFtracePUTS( char *s ) +*/ -/*+ substitute for puts() +*/ -/*+ generates fwriteBeginID, fwriteEndID +*/ -/*+ record Write (fwriteBeginID) +*/ -/*+ Number Variables = 1 +*/ -/*+ Cause = -1 +*/ -/*+ +*/ -int HDFtracePUTS( char *s ) -{ - struct read_write_args writeArgs; - int ret; - int fd = fileno( stdout ); - - if ( IOtracingEnabled ) { - writeArgs.fileID = c_mappedID( fd ); - writeArgs.numVariables = 1; - writeArgs.cause = -1; - - HDFtraceIOEvent( fwriteBeginID, (void *) &writeArgs, sizeof(writeArgs) ); - } - - ret = puts( s ); - - if ( IOtracingEnabled ) { - HDFtraceIOEvent( fwriteEndID, (void *) &ret, int_SIZE ); - } - - return( ret ); -} - -/*+ Routine: int HDFtraceFPUTC( int c, FILE *stream ) +*/ -/*+ substitute for fputc() +*/ -/*+ generates fwriteBeginID, fwriteEndID +*/ -/*+ record Write (fwriteBeginID) +*/ -/*+ Number Variables = 1 +*/ -/*+ Cause = -1 +*/ -/*+ +*/ -int HDFtraceFPUTC( int c, FILE *stream ) -{ - struct read_write_args writeArgs; - int ret; - int nbytes = char_SIZE; - int fd = fileno( stream ); - - if ( IOtracingEnabled ) { - writeArgs.fileID = c_mappedID( fd ); - writeArgs.numVariables = 1; - writeArgs.cause = -1; - - HDFtraceIOEvent( fwriteBeginID, (void *) &writeArgs, sizeof(writeArgs) ); - } - - ret = fputc( c, stream ); - - if ( IOtracingEnabled ) { - if ( ret == EOF ) { - nbytes = 0; - HDFtraceIOEvent( fwriteEndID, (void *) &nbytes, int_SIZE ); - } - } - - return( ret ); -} -/*+ Routine: int HDFtraceFPUTS( char *s, FILE *stream ) +*/ -/*+ substitute for fputs() +*/ -/*+ generates fwriteBeginID, fwriteEndID +*/ -/*+ record Write (fwriteBeginID) +*/ -/*+ Number Variables = 1 +*/ -/*+ Cause = -1 +*/ -/*+ +*/ -int HDFtraceFPUTS( const char *s, FILE *stream ) -{ - struct read_write_args writeArgs; - int ret; - int fd = fileno( stream ); - - if ( IOtracingEnabled ) { - writeArgs.fileID = c_mappedID( fd ); - writeArgs.numVariables = 1; - writeArgs.cause = -1; - - HDFtraceIOEvent(fwriteBeginID, (void *)&writeArgs, sizeof(writeArgs)); - } - - ret = fputs( s, stream ); - - if ( IOtracingEnabled ) { - HDFtraceIOEvent( fwriteEndID, (void *) &ret, int_SIZE ); - } - - return( ret ); -} -void *HDFtraceMALLOC(size_t bytes ) -{ - void *ptr; - int byte_req; - byte_req = (int)bytes; - if ( IOtracingEnabled ) { - HDFtraceIOEvent ( ID_malloc, NULL, 0 ); - } - - ptr = malloc( bytes ); - - if ( IOtracingEnabled ) { - HDFtraceIOEvent ( -ID_malloc, &byte_req, sizeof(int) ); - } - - return ptr ; - -} - -void HDFtraceIOEvent( int eventType, void *dataPtr, unsigned dataLen ) -{ - if ( OUTPUT_SWITCH == RUNTIME_TRACE - || OUTPUT_SWITCH == MPI_RUNTIME_TRACE ) { - traceEvent( eventType, dataPtr, dataLen ); - } else { - HDFtraceEvent_RT( eventType, (HDFsetInfo *)dataPtr, dataLen ); - } -} -/*======================================================================* -// record the final time stamp * -//======================================================================*/ -void HDFfinalTimeStamp( void ) -{ - CLOCK currentTime; - double seconds; - struct { - int packetLength, - packetType, - packetTag, - timeDim; - double Seconds; - int eventID, - node, - dataLen; - } Packet; - - currentTime = getClock(); - seconds = clockToSeconds( currentTime ); - - Packet.packetLength = sizeof(Packet); - Packet.packetType = PKT_DATA; - Packet.packetTag = FAMILY_EXTERNAL | RECORD_TRACE; - Packet.timeDim = 0; /* use fp time stamp only */ - Packet.Seconds = seconds; /* fp time stamp */ - Packet.eventID = ID_timeStamp; - Packet.node = TRgetNode(); - Packet.dataLen = 0; - putBytes( (void *)&Packet , sizeof(Packet) ); -} -/*======================================================================* -// This Program is called to specify which routines are to be traced. * -// On first entry, the program allocates storage for and initializes a * -// global array procTrace. The array has one element for each possible * -// HDF5 procedure and HDF5 library file. If a procedure or all of the * -// procedure in an HDF file are to be traced, then the elemen in the * -// array corresponding to the procedure or file is turned on. This is * -// used by the macros TRACE_ON and TRACE_OFF to enable tracing. If * -// this procedure is not called prior to initialization, then all of * -// the elements of procTrace corresponding to HDF 5 files will be * -// turned on, in which case all HDF 5 procedures will be traced. * -//======================================================================*/ -void PabloHDF5Trace( int ID ) -{ - int i; - if ( procTrace == NULL ) { - procTrace = ( int * ) malloc( NUM_HDF5_IDS*sizeof(int) ); - if ( procTrace == NULL ) { - fprintf(stderr,">> Error: Unable to allocate procTrace "); - fprintf(stderr,"array in program PabloHDF5Trace. <<<\n"); - fprintf(stderr," Exiting program. <<<\n"); - exit (-1); - } - for ( i = 0; i < NUM_HDF5_IDS; ++i ) { - procTrace[i] = 0; - } - } - if ( ID >= 0 && ID < NUM_HDF5_IDS ) { - procTrace[ID] = 1; - } else { - fprintf(stderr,">> Error: Value passed to PabloHDF5Trace, "); - fprintf(stderr,"%d, is out of range. <<<\n",ID); - fprintf(stderr," Exiting program. <<<\n"); - exit (-1); - } -} -#ifdef HAVE_PARALLEL -int HDF_XMPI_File_open( MPI_Comm comm, char *filename, int amode, - MPI_Info info, MPI_File *fh ); -int HDF_XMPI_File_close( MPI_File *fh ); -int HDF_XMPI_File_delete( char *filename, MPI_Info info ); -int HDF_XMPI_File_set_size( MPI_File fh, MPI_Offset size ); -int HDF_XMPI_File_preallocate( MPI_File fh, MPI_Offset size); -int HDF_XMPI_File_get_size( MPI_File fh, MPI_Offset *size ); -int HDF_XMPI_File_get_group( MPI_File fh, MPI_Group *group ); -int HDF_XMPI_File_get_amode( MPI_File fh, int *amode ); -int HDF_XMPI_File_set_view( MPI_File fh, MPI_Offset disp, MPI_Datatype etype, - MPI_Datatype filetype, char *datarep, - MPI_Info info ); -int HDF_XMPI_File_get_view( MPI_File fh, MPI_Offset *disp, - MPI_Datatype *etype, MPI_Datatype *filetype, - char *datarep ); -int HDF_XMPI_File_read_at( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, - MPI_Status *status ); -int HDF_XMPI_File_read_at_all( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, - MPI_Status *status ); -int HDF_XMPI_File_write_at( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, - MPI_Status *status ); -int HDF_XMPI_File_write_at_all( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, - MPI_Status *status ); - -int HDF_XMPI_File_iread_at( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, - MPIO_Request *request ); -int HDF_XMPI_File_iwrite_at( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, - MPIO_Request *request ); -int HDF_XMPI_File_read( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPI_Status *status ); -int HDF_XMPI_File_read_all( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPI_Status *status ); -int HDF_XMPI_File_write( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPI_Status *status ); -int HDF_XMPI_File_write_all( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPI_Status *status ); -int HDF_XMPI_File_iread( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPIO_Request *request ); -int HDF_XMPI_File_iwrite( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPIO_Request *request ); -int HDF_XMPI_File_seek( MPI_File fh, - MPI_Offset offset, int whence ) ; -int HDF_XMPI_File_get_position( MPI_File fh, MPI_Offset *offset ); -int HDF_XMPI_File_get_byte_offset( MPI_File fh, MPI_Offset offset, - MPI_Offset *disp) ; -int HDF_XMPI_File_get_type_extent( MPI_File fh, MPI_Datatype datatype, - MPI_Aint *extent ); -int HDF_XMPI_File_set_atomicity( MPI_File fh, int flag ); -int HDF_XMPI_File_get_atomicity( MPI_File fh, int *flag ); -int HDF_XMPI_File_sync( MPI_File fh ); -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_open( MPI_Comm comm, char *filename, int amode, - MPI_Info info, MPI_File *fh ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_open( comm, filename, amode, info, fh ); - } else { - dataLen = sizeof( HDFsetInfo ); - dataPtr.setID = (long)fh; - dataPtr.setName = (char *)malloc( strlen(filename) + 1); - strcpy( dataPtr.setName , filename ); - HDFtraceEvent_RT( mpiOpenBeginID, &dataPtr, dataLen ); - returnVal = PMPI_File_open( comm, filename, amode, info, fh ); - HDFtraceEvent_RT( mpiOpenEndID, &dataPtr, dataLen ); - } - return returnVal; -} - - - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_close( MPI_File *fh ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_close( fh ); - } else { - dataLen = sizeof( HDFsetInfo ); - dataPtr.setID = (long)fh; - dataPtr.setName = NULL; - HDFtraceEvent_RT( mpiCloseBeginID, &dataPtr, dataLen ); - returnVal = PMPI_File_close( fh ); - HDFtraceEvent_RT( mpiCloseEndID, &dataPtr, dataLen ); - free( dataPtr.setName ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_delete( char *filename, MPI_Info info ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_delete( filename, info ); - } else { - dataLen = sizeof( HDFsetInfo ); - dataPtr.setID = 0; - dataPtr.setName = (char *)malloc( sizeof(filename) ); - strcpy( dataPtr.setName , filename ); - HDFtraceEvent_RT( mpiDeleteBeginID, &dataPtr, dataLen ); - returnVal = PMPI_File_delete( filename, info ); - HDFtraceEvent_RT( mpiDeleteEndID, &dataPtr, dataLen ); - free( dataPtr.setName ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_set_size( MPI_File fh, MPI_Offset size ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_set_size( fh, size ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiSetSizeBeginID,&dataPtr,dataLen ); - returnVal = PMPI_File_set_size( fh, size ); - HDFtraceEvent_RT( mpiSetSizeEndID, &dataPtr, dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_preallocate( MPI_File fh, MPI_Offset size) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_preallocate( fh, size); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiPreallocateBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_preallocate( fh, size); - HDFtraceEvent_RT( mpiPreallocateEndID, - &dataPtr, dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_get_size( MPI_File fh, MPI_Offset *size ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_get_size( fh, size); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiGetSizeBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_get_size( fh, size); - HDFtraceEvent_RT( mpiGetSizeEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_get_group( MPI_File fh, MPI_Group *group ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_get_group( fh, group); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiGetGroupBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_get_group( fh, group); - HDFtraceEvent_RT( mpiGetGroupEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_get_amode( MPI_File fh, int *amode ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_get_amode( fh, amode); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiGetAmodeBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_get_amode( fh, amode); - HDFtraceEvent_RT( mpiGetAmodeEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_set_view( MPI_File fh, MPI_Offset disp, MPI_Datatype etype, - MPI_Datatype filetype, char *datarep, MPI_Info info ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_set_view( fh, disp, etype, filetype, - datarep, info ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiSetViewBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_set_view( fh, disp, etype, filetype, - datarep, info ); - HDFtraceEvent_RT( mpiSetViewEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_get_view( MPI_File fh, MPI_Offset *disp, MPI_Datatype *etype, - MPI_Datatype *filetype, char *datarep ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_get_view(fh, disp, etype, filetype, datarep); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiSetViewBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_get_view(fh, disp, etype, filetype, datarep); - HDFtraceEvent_RT( mpiSetViewEndID, - &dataPtr,dataLen ); - returnVal = PMPI_File_get_view(fh, disp, etype, filetype, datarep); - - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_read_at( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, MPI_Status *status ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_read_at( fh, offset, buf, count, datatype, - status ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiReadAtBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_read_at( fh, offset, buf, count, datatype, - status ); - HDFtraceEvent_RT( mpiReadAtEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_read_at_all( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, MPI_Status *status ) -{ - - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_read_at_all( fh, offset, buf, - count, datatype, status ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiReadAtAllBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_read_at_all( fh, offset, buf, - count, datatype, status ); - HDFtraceEvent_RT( mpiReadAtAllEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_write_at( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, MPI_Status *status ) -{ - - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_write_at( fh, offset, buf, count, datatype, - status ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiWriteAtBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_write_at( fh, offset, buf, count, datatype, - status ); - HDFtraceEvent_RT( mpiWriteAtEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_write_at_all( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, MPI_Status *status ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_write_at_all( fh, offset, buf, - count, datatype, status ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiWriteAtAllBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_write_at_all( fh, offset, buf, - count, datatype, status ); - HDFtraceEvent_RT( mpiWriteAtAllEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_iread_at( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, MPIO_Request *request ) -{ - return HDF_XMPI_File_iread_at( fh, offset, buf, count, datatype, request ); -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_iwrite_at( MPI_File fh, MPI_Offset offset, void *buf, - int count, MPI_Datatype datatype, MPIO_Request *request) -{ - return HDF_XMPI_File_iwrite_at( fh, offset, buf, count, datatype, request ); -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_read( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPI_Status *status) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_read( fh, buf, count, datatype, status ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiReadBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_read( fh, buf, count, datatype, status ); - HDFtraceEvent_RT( mpiReadEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_read_all( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPI_Status *status) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_read_all( fh, buf, count, datatype, status ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiReadAllBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_read_all( fh, buf, count, datatype, status ); - HDFtraceEvent_RT( mpiReadAllEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_write( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPI_Status *status ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_write( fh, buf, count, datatype, status ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiWriteBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_write( fh, buf, count, datatype, status ); - HDFtraceEvent_RT( mpiWriteEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_write_all( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPI_Status *status ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal =HDF_XMPI_File_write_all( fh, buf, count, datatype, status ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiWriteAllBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_write_all( fh, buf, count, datatype, status ); - HDFtraceEvent_RT( mpiWriteAllEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_iread( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPIO_Request *request ) -{ - return HDF_XMPI_File_iread( fh, buf, count, datatype, request ); -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_iwrite( MPI_File fh, void *buf, int count, - MPI_Datatype datatype, MPIO_Request *request ) -{ - return HDF_XMPI_File_iwrite( fh, buf, count, datatype, request ); -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_seek( MPI_File fh, MPI_Offset offset, int whence ) -{ - - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_seek( fh, offset, whence ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiSeekBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_seek( fh, offset, whence ); - HDFtraceEvent_RT( mpiSeekEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_get_position( MPI_File fh, MPI_Offset *offset ) -{ - - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_get_position( fh, offset ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiGetPositionBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_get_position( fh, offset ); - HDFtraceEvent_RT( mpiGetPositionEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_get_byte_offset( MPI_File fh, MPI_Offset offset, - MPI_Offset *disp ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_get_byte_offset( fh, offset, disp ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiGetByteOffsetBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_get_byte_offset( fh, offset, disp ); - HDFtraceEvent_RT( mpiGetByteOffsetEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_get_type_extent( MPI_File fh, MPI_Datatype datatype, - MPI_Aint *extent ) -{ - - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_get_type_extent( fh, datatype, extent ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiGetTypeExtentBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_get_type_extent( fh, datatype, extent ); - HDFtraceEvent_RT( mpiGetTypeExtentEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_set_atomicity( MPI_File fh, int flag ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_set_atomicity( fh, flag ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiSetAtomicityBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_set_atomicity( fh, flag ); - HDFtraceEvent_RT( mpiSetAtomicityEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_get_atomicity( MPI_File fh, int *flag ) -{ - - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_get_atomicity( fh, flag ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiGetAtomicityBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_get_atomicity( fh, flag ); - HDFtraceEvent_RT( mpiGetAtomicityEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -/*======================================================================* -// Pass call through to regular MPIO entry except in case of Real Time * -// tracing. * -// Note: The regular MPIO entry may or may not be instrumented. * -//======================================================================*/ -int HDF_MPI_File_sync( MPI_File fh ) -{ - int returnVal; - HDFsetInfo dataPtr; - int dataLen; - - if ( OUTPUT_SWITCH != MPI_SUMMARY_TRACE ) { - returnVal = HDF_XMPI_File_sync ( fh ); - } else { - dataLen = 0; - HDFtraceEvent_RT( mpiSyncBeginID, - &dataPtr,dataLen ); - returnVal = PMPI_File_sync ( fh ); - HDFtraceEvent_RT( mpiSyncEndID, - &dataPtr,dataLen ); - } - return returnVal; -} - -#endif /* HAVE_PARALLEL */ diff --git a/pablo/PabloHDF_RT.c b/pablo/PabloHDF_RT.c index c3bbc21..1fa5793 100644 --- a/pablo/PabloHDF_RT.c +++ b/pablo/PabloHDF_RT.c @@ -109,13 +109,15 @@ // printFileMappingsRT : print map of named identifiers * // _hdfNameDescriptor() : writes SDDF descriptor packet for names * //======================================================================*/ +#ifdef _HDF5_ #include "H5config.h" +#endif #include "SystemDepend.h" #include "Trace.h" #include "TraceParam.h" #include "ProcIDs.h" #include "IO_TraceParams.h" -#include "HDF5Trace.h" +#include "HDFTrace.h" #include "SDDFparam.h" #include <string.h> #include <stdio.h> @@ -138,18 +140,13 @@ #endif #define NEG_THREAD_ID -999 -#include "HDF5record_RT.h" +#include "HDFrecord_RT.h" #ifdef HAVE_PARALLEL #include "mpio.h" -#include "MPIO_TraceParams.h" -#include "MPIO_Init.h" #include "MPIO_EventArgs.h" #endif -#ifdef HAVE_MPIOTRACE -#endif - #ifndef TRgetThreadID #define TRgetThreadID TRgetNode #endif @@ -195,7 +192,7 @@ void EndIOEventRecord ( int , CLOCK , void * ); void BeginMPIOEventRecord ( int, CLOCK , void *, int ); void EndMPIOEventRecord ( int , CLOCK , void *, int); void BeginHDFEventRecord( int , CLOCK ); -void EndHDFEventRecord ( int , CLOCK ,void *); +void EndHDFEventRecord ( CLOCK ,void *); void HDFrecordFileName( HDFsetInfo * ); void HDFassignPabloIDs( int *, char *** ); void writeHDFNamePacketsRT( char **, int ); @@ -237,11 +234,8 @@ void HDFinitTrace_RT( char *fileName, int OUTSW ) int myNode; #endif int error; - TR_LOCK criticalSection; TRgetClock( &epoch ); - criticalSection = TRlock(); error = initHDFProcTrace_RT() ; - TRunlock( criticalSection ); if ( error != SUCCESS ) { fprintf (stderr,"Unable to Initialize properly. Exiting program\n"); exit(-1); @@ -287,10 +281,8 @@ void HDFendTrace_RT( int OUTSW ) HDFnode_t *P; char **Names; char* mapFile; - TR_LOCK criticalSection; HDFfinalTimeStamp(); - criticalSection = TRlock(); /*==============================================================* // Assing pablo ids to named identifiers and tag records * //==============================================================*/ @@ -314,7 +306,6 @@ void HDFendTrace_RT( int OUTSW ) HDFSummarySDDF( HDFQueues[j], j ); } endTracing(); - TRunlock( criticalSection ); } /*======================================================================* // initHFDProcTrace_RT * @@ -399,10 +390,8 @@ int initHDFProcTrace_RT( void ) //======================================================================*/ void HDFtraceEvent_RT( int eventType, char *dataPtr, unsigned dataLen ) { - TR_LOCK criticalSection; CLOCK seconds; - criticalSection = TRlock(); seconds = getClock(); if ( isBeginIOEvent ( eventType ) || eventType == ID_malloc ) { @@ -412,7 +401,7 @@ void HDFtraceEvent_RT( int eventType, char *dataPtr, unsigned dataLen ) } else if ( isBeginHDFEvent( eventType ) ) { BeginHDFEventRecord ( eventType , seconds ) ; } else if ( isEndHDFEvent( eventType ) ) { - EndHDFEventRecord ( eventType, seconds, dataPtr ); + EndHDFEventRecord ( seconds, dataPtr ); #ifdef HAVE_PARALLEL } else if ( isBeginMPIOEvent( eventType ) ) { BeginMPIOEventRecord ( eventType, seconds, dataPtr, dataLen ) ; @@ -422,7 +411,6 @@ void HDFtraceEvent_RT( int eventType, char *dataPtr, unsigned dataLen ) } else { fprintf(stderr,"eventType %d, dataLen = %u\n",eventType,dataLen); } - TRunlock( criticalSection ); } /*======================================================================* // BeginIOEventRecord: * @@ -539,117 +527,117 @@ void BeginMPIOEventRecord( int eventType, if ( dataLen == 0 ) return; switch ( eventType ) { - case mpiGetSizeBeginID: + case HDFmpiGetSizeID: CallStack->record.hdfID = ((struct mpiGetSizeBeginArgs *)dataPtr)->fileID; break; - case mpiGetGroupBeginID: + case HDFmpiGetGroupID: CallStack->record.hdfID = ((struct mpiGetGroupBeginArgs *)dataPtr)->fileID; break; - case mpiGetAmodeBeginID: + case HDFmpiGetAmodeID: CallStack->record.hdfID = ((struct mpiGetAmodeBeginArgs *)dataPtr)->fileID; break; - case mpiGetViewBeginID: + case HDFmpiGetViewID: CallStack->record.hdfID = ((struct mpiGetViewBeginArgs *)dataPtr)->fileID; break; - case mpiGetPositionBeginID: + case HDFmpiGetPositionID: CallStack->record.hdfID = ((struct mpiGetPositionBeginArgs *)dataPtr)->fileID; break; - case mpiGetByteOffsetBeginID: + case HDFmpiGetByteOffsetID: CallStack->record.hdfID = ((struct mpiGetByteOffsetBeginArgs *)dataPtr)->fileID; break; - case mpiGetTypeExtentBeginID: + case HDFmpiGetTypeExtentID: CallStack->record.hdfID = ((struct mpiGetTypeExtentBeginArgs *)dataPtr)->fileID; break; - case mpiGetAtomicityBeginID: + case HDFmpiGetAtomicityID: CallStack->record.hdfID = ((struct mpiGetAtomicityBeginArgs *)dataPtr)->fileID; break; - case mpiOpenBeginID: + case HDFmpiOpenID: strcpy( openName, ((struct mpiOpenBeginArgs *)dataPtr)->fileName); break; - case mpiCloseBeginID: + case HDFmpiCloseID: CallStack->record.hdfID = ((struct mpiCloseBeginArgs *)dataPtr)->fileID; break; - case mpiDeleteBeginID: + case HDFmpiDeleteID: break; - case mpiSetSizeBeginID: + case HDFmpiSetSizeID: CallStack->record.hdfID = ((struct mpiSetSizeBeginArgs *)dataPtr)->fileID; break; - case mpiPreallocateBeginID: + case HDFmpiPreallocateID: CallStack->record.hdfID = ((struct mpiPreallocateBeginArgs *)dataPtr)->fileID; break; - case mpiSetViewBeginID: + case HDFmpiSetViewID: CallStack->record.hdfID = ((struct mpiSetViewBeginArgs *)dataPtr)->fileID; break; - case mpiReadAtBeginID: + case HDFmpiReadAtID: CallStack->record.hdfID = ((struct mpiReadAtBeginArgs *)dataPtr)->fileID; break; - case mpiReadAtAllBeginID: + case HDFmpiReadAtAllID: CallStack->record.hdfID = ((struct mpiReadAtAllBeginArgs *)dataPtr)->fileID; break; - case mpiWriteAtBeginID: + case HDFmpiWriteAtID: CallStack->record.hdfID = ((struct mpiWriteAtBeginArgs *)dataPtr)->fileID; break; - case mpiWriteAtAllBeginID: + case HDFmpiWriteAtAllID: CallStack->record.hdfID = ((struct mpiWriteAtAllBeginArgs *)dataPtr)->fileID; break; - case mpiIreadAtBeginID: + case HDFmpiIreadAtID: CallStack->record.hdfID = ((struct mpiIreadAtBeginArgs *)dataPtr)->fileID; break; - case mpiIwriteAtBeginID: + case HDFmpiIwriteAtID: CallStack->record.hdfID = ((struct mpiIwriteAtBeginArgs *)dataPtr)->fileID; break; - case mpiReadBeginID: + case HDFmpiReadID: CallStack->record.hdfID = ((struct mpiReadBeginArgs *)dataPtr)->fileID; break; - case mpiReadAllBeginID: + case HDFmpiReadAllID: CallStack->record.hdfID = ((struct mpiReadAllBeginArgs *)dataPtr)->fileID; break; - case mpiWriteBeginID: + case HDFmpiWriteID: CallStack->record.hdfID = ((struct mpiWriteBeginArgs *)dataPtr)->fileID; break; - case mpiWriteAllBeginID: + case HDFmpiWriteAllID: CallStack->record.hdfID = ((struct mpiWriteAllBeginArgs *)dataPtr)->fileID; break; - case mpiIreadBeginID: + case HDFmpiIreadID: CallStack->record.hdfID = ((struct mpiIreadBeginArgs *)dataPtr)->fileID; break; - case mpiIwriteBeginID: + case HDFmpiIwriteID: CallStack->record.hdfID = ((struct mpiIwriteBeginArgs *)dataPtr)->fileID; break; - case mpiSeekBeginID: + case HDFmpiSeekID: CallStack->record.hdfID = ((struct mpiSeekBeginArgs *)dataPtr)->fileID; break; - case mpiSetAtomicityBeginID: + case HDFmpiSetAtomicityID: CallStack->record.hdfID = ((struct mpiSetAtomicityBeginArgs *)dataPtr)->fileID; break; - case mpiSyncBeginID: + case HDFmpiSyncID: CallStack->record.hdfID = ((struct mpiSyncBeginArgs *)dataPtr)->fileID; break; @@ -674,7 +662,7 @@ void EndMPIOEventRecord ( int eventType, CallStack->record.times[MPI] = clockAdd ( CallStack->record.times[MPI], incDur ); ++CallStack->record.counts[MPI]; - if ( eventType == mpiOpenEndID && dataLen != 0 ) { + if ( eventType == -HDFmpiOpenID && dataLen != 0 ) { /*===========================================================* // complete the file information for the case of a file * // open and record the information. * @@ -715,13 +703,12 @@ void BeginHDFEventRecord( int eventID, CLOCK secs ) // and adds it to the inclusive duration field of this record and to * // the HDF time field of the calling routines record. * //======================================================================*/ -void EndHDFEventRecord ( int eventID, CLOCK secs, void *dataPtr ) +void EndHDFEventRecord ( CLOCK secs, void *dataPtr ) { HDFsetInfo *info; HDFnode_t *HDFrec; CLOCK incSecs; static int dummyIDs = -4; - eventID = 0; /*==============================================================* // pop record from top of the stack, compute inclusive duration * // and set the corresponding record field and increment nCalls. * @@ -1000,7 +987,7 @@ void HDFupdateProcs( HDFnode_t *P ) //======================================================================*/ void HDFSummarySDDF( HDFnode_t *P, int procIndex ) { - int i, j, arrayLen; + int i, j, arrayLen, nodeID, nCalls; int allIOCount; CLOCK allIOTime, excDur; double t; @@ -1011,9 +998,7 @@ void HDFSummarySDDF( HDFnode_t *P, int procIndex ) int packetLen, packetType, packetTag, - eventID, - threadID, - nCalls; + eventID; double Seconds, IncDur, ExcDur; @@ -1022,6 +1007,7 @@ void HDFSummarySDDF( HDFnode_t *P, int procIndex ) } Header; Header.packetLen = sizeof(Header) + + sizeof(int) /* n Calls */ + sizeof(int) /* array len */ + nTallyFields*sizeof(double) /* times array */ + sizeof(int) /* array len */ @@ -1030,11 +1016,12 @@ void HDFSummarySDDF( HDFnode_t *P, int procIndex ) + nByteFields*sizeof(int) /* bytes array */ + nByteFields*sizeof(int) /* array lens */ + nByteFields*nBkts*sizeof(int) /* byte hist */ + + sizeof(int) /* nodeID */ + sizeof(int) ; /* Name len */ Header.packetTag = HDF_SUMMARY_FAMILY + ( procIndex + 1 )*8 + RECORD_TRACE ; Header.packetType = PKT_DATA; - Header.threadID = TRgetNode(); + nodeID = TRgetNode(); while ( P != NULL ) { Q = P->ptr; /*===========================================================* @@ -1061,7 +1048,6 @@ void HDFSummarySDDF( HDFnode_t *P, int procIndex ) // print header information. * //===========================================================*/ Header.eventID = P->eventID; - Header.nCalls = P->record.nCalls; Header.Seconds = clockToSeconds(P->record.lastCall); Header.IncDur = clockToSeconds( P->record.incDur ); Header.ExcDur = clockToSeconds(excDur); @@ -1071,6 +1057,12 @@ void HDFSummarySDDF( HDFnode_t *P, int procIndex ) memcpy( Packet, &Header, sizeof(Header) ); Packet += sizeof(Header); /*===========================================================* + // copy number of calls to Packet. * + //===========================================================*/ + nCalls = P->record.nCalls; + memcpy( Packet, &nCalls, sizeof(int) ); + Packet += sizeof(int); + /*===========================================================* // copy length of times array and times array to Packet. * //===========================================================*/ arrayLen = nTallyFields; @@ -1107,6 +1099,8 @@ void HDFSummarySDDF( HDFnode_t *P, int procIndex ) memcpy( Packet, P->record.Hists[i], nBkts*sizeof(int) ); Packet += nBkts*sizeof(int); } + memcpy( Packet, &nodeID, sizeof(int) ); + Packet += sizeof(int); arrayLen = 0; /* name length */ memcpy( Packet, &arrayLen, sizeof(int) ); putBytes( buff, Header.packetLen ); @@ -1322,14 +1316,6 @@ void _hdfDescriptorRT( char *recordName, char *recordDescription, "Event ID", "Corresponding Event", INTEGER, 0 ); - WRITE_HDF_FIELD( "Processor Number", - "Node", - "Processor number", - INTEGER, 0 ); - WRITE_HDF_FIELD( "N Calls", - "N Calls", - "Number of Calls to this Proc", - INTEGER, 0 ); WRITE_HDF_FIELD( "Seconds", "Seconds", "Floating Point Timestamp", @@ -1350,6 +1336,10 @@ void _hdfDescriptorRT( char *recordName, char *recordDescription, "Cross Reference", "Index of related HDF ID or 0 if none", LONG, 0 ); + WRITE_HDF_FIELD( "N Calls", + "N Calls", + "Number of Calls to this Proc", + INTEGER, 0 ); WRITE_HDF_FIELD( "Times Array", "Times Array", "Array of Total Operation Times", @@ -1382,6 +1372,10 @@ void _hdfDescriptorRT( char *recordName, char *recordDescription, "AWrite Histogram", "Historgram of size Asynch Write Requests", INTEGER, 1 ); + WRITE_HDF_FIELD( "Processor Number", + "Node", + "Processor number", + INTEGER, 0 ); WRITE_HDF_FIELD( "HDF Name", "HDF Name", "Name of File,Data Set or Dim accessed", diff --git a/pablo/PabloHDF_SDDF.c b/pablo/PabloHDF_SDDF.c index c2c9119..c74f1e7 100644 --- a/pablo/PabloHDF_SDDF.c +++ b/pablo/PabloHDF_SDDF.c @@ -71,7 +71,7 @@ #include "SDDFparam.h" #include "TraceParam.h" #include "Trace.h" -#include "HDF5Trace.h" +#include "HDFTrace.h" void HDFendTrace_SDDF(int); void startHDFtraceEvent(int eventID); void endHDFtraceEvent(int , int , char *, int ); diff --git a/pablo/PabloSedscr b/pablo/PabloSedscr new file mode 100644 index 0000000..73edda0 --- /dev/null +++ b/pablo/PabloSedscr @@ -0,0 +1,15 @@ +s/_//g +s/,//g +/^[0-9]/,/ID/{ +/^[0-9]/h +/^[0-9]/d +s/$/ = / +G +s/\n// +s/ID/ parameter ( &/ +s/$/ )/ +h +s/parameter (/integer/ +s/=.*// +G +} diff --git a/pablo/ProcIDs.h b/pablo/ProcIDs.h index 80d4bef..987f197 100644 --- a/pablo/ProcIDs.h +++ b/pablo/ProcIDs.h @@ -87,62 +87,7 @@ extern int *procTrace; */ #include "ProcTrace.h" -#define H5_mask ID_H5_c -#define H5A_mask ID_H5A_c -#define H5AC_mask ID_H5AC_c -#define H5B_mask ID_H5B_c -#define H5D_mask ID_H5D_c -#define H5E_mask ID_H5E_c -#define H5F_mask ID_H5F_c -#define H5F_arr_mask ID_H5Farray_c -#define H5F_core_mask ID_H5Fcore_c -#define H5F_family_mask ID_H5Ffamily_c -#define H5F_istore_mask ID_H5Fistore_c -#define H5F_low_mask ID_H5Flow_c -#define H5F_mpio_mask ID_H5Fmpio_c -#define H5F_sec2_mask ID_H5Fsec2_c -#define H5F_split_mask ID_H5Fsplit_c -#define H5F_stdio_mask ID_H5Fstdio_c -#define H5G_mask ID_H5G_c -#define H5G_ent_mask ID_H5Gent_c -#define H5G_node_mask ID_H5Gnode_c -#define H5G_stab_mask ID_H5Gstab_c -#define H5HG_mask ID_H5HG_c -#define H5HL_mask ID_H5HL_c -#define H5I_mask ID_H5I_c -#define H5MF_mask ID_H5MF_c -#define H5MM_mask ID_H5MM_c -#define H5O_mask ID_H5O_c -#define H5O_attr_mask ID_H5Oattr_c -#define H5O_pline_mask ID_H5Ocomp_c -#define H5O_cont_mask ID_H5Ocont_c -#define H5O_dtype_mask ID_H5Odtype_c -#define H5O_efl_mask ID_H5Oefl_c -#define H5O_fill_mask ID_H5Ofill_c -#define H5O_layout_mask ID_H5Olayout_c -#define H5O_mtime_mask ID_H5Omtime_c -#define H5O_name_mask ID_H5Oname_c -#define H5O_null_mask ID_H5Onull_c -#define H5O_sdspace_mask ID_H5Osdspace_c -#define H5O_shared_mask ID_H5Oshared_c -#define H5O_stab_mask ID_H5Ostab_c -#define H5P_mask ID_H5P_c -#define H5R_mask ID_H5R_c -#define H5RA_mask ID_H5RA_c -#define H5S_mask ID_H5S_c -#define H5S_all_mask ID_H5Sall_c -#define H5S_hyper_mask ID_H5Shyper_c -#define H5S_mpio_mask ID_H5Smpio_c -#define H5S_none_mask ID_H5Snone_c -#define H5S_point_mask ID_H5Spoint_c -#define H5S_select_mask ID_H5Sselect_c -#define H5T_mask ID_H5T_c -#define H5TB_mask ID_H5TB_c -#define H5Tbit_mask ID_H5Tbit_c -#define H5T_conv_mask ID_H5Tconv_c -#define H5T_init_mask ID_H5Tinit_c -#define H5V_mask ID_H5V_c -#define H5Z_mask ID_H5Z_c +#include "ProcMasks.h" #define ID_HDFprocName 9996 #define ID_malloc 9997 @@ -154,18 +99,48 @@ extern int *procTrace; #define END_HDF (ID_HDF_Last_Entry + DUMMY_HDF) #define NumHDFProcs ( ID_HDF_Last_Entry ) -#define BEGIN_MPIO 900800 -#define END_MPIO 900899 +enum MPIeventIDs { + BEGIN_MPIO = END_HDF+1, + HDFmpiOpenID = BEGIN_MPIO, + HDFmpiCloseID, + HDFmpiDeleteID, + HDFmpiSetSizeID, + HDFmpiPreallocateID, + HDFmpiGetSizeID, + HDFmpiGetGroupID, + HDFmpiGetAmodeID, + HDFmpiGetViewID, + HDFmpiSetViewID, + HDFmpiReadAtID, + HDFmpiReadAtAllID, + HDFmpiWriteAtID, + HDFmpiWriteAtAllID, + HDFmpiReadID, + HDFmpiReadAllID, + HDFmpiWriteID, + HDFmpiWriteAllID, + HDFmpiSeekID, + HDFmpiGetPositionID, + HDFmpiGetByteOffsetID, + HDFmpiGetTypeExtentID, + HDFmpiSetAtomicityID, + HDFmpiGetAtomicityID, + HDFmpiIreadID, + HDFmpiIwriteID, + HDFmpiIreadAtID, + HDFmpiIwriteAtID, + HDFmpiSyncID, + END_MPIO +}; + /*======================================================================*/ /* Macros to tell if the ID is that of an HDF Entry or Exit */ /*======================================================================*/ #define isBeginHDFEvent( ID ) ( BEGIN_HDF <= (ID) && (ID) <= END_HDF ) #define isEndHDFEvent( ID ) isBeginHDFEvent(-(ID)) #define isBeginMPIOEvent( ID ) \ - ( BEGIN_MPIO <= (ID) && (ID) <= END_MPIO && (ID)%2 == 0 ) - -#define isEndMPIOEvent( ID ) \ - ( BEGIN_MPIO <= (ID) && (ID) <= END_MPIO && (ID)%2 == 1 ) + ( BEGIN_MPIO <= (ID) && (ID) <= END_MPIO ) +#define isEndMPIOEvent( ID ) isBeginMPIOEvent(-(ID)) #define isBeginIOEvent( ID ) \ ( IOerrorID < (ID) && (ID) <= fsetposEndID && (ID)%2 == 1 ) #define isEndIOEvent( ID ) \ diff --git a/pablo/ProcTrace.h b/pablo/ProcTrace.h index 7060725..405f0e6 100644 --- a/pablo/ProcTrace.h +++ b/pablo/ProcTrace.h @@ -81,43 +81,6 @@ #ifndef PROCTRACE_H /* avoid re-inclusion */ #define PROCTRACE_H #include <stdarg.h> -/*======================================================================* -// By default, all HDF procedures are traced. Tracing of individual * -// procedures or all of the procedures in a particular source file in * -// the HDF 5 library can be done by calling the procedure PabloHDF5trace* -// with the appropriate argument. The call must be made prior to * -// calling HDF5initTrace. As many calls as necessary may be made prior * -// to calling HDF5initTrace so several specific procedures can be * -// traced. * -// PabloHDF5trace has the following syntax. * -// #include "ProcTrace.h" * -// void PabloHDF5trace( int traceID ); * -// where * -// traceID specifies the procedure or procedures within an HDF 5 file * -// that are to be traced. If a single procedure named <proc> is to * -// be traced, then traceID should have the value ID_<proc>. If all * -// of the procedures within the HDF 5 library routine <file>.c are to * -// be traced, then the value of traceID should be FID_<file>. The * -// constants ID_<proc> and FID_<file> are declared for all possible * -// values of <proc> and <file> below. * -// * -// Example: * -// To enable tracing of the individual procedures H5I_register and * -// H5Topen and all of the procedures in the HDF 5 library source * -// files H5A.c and H5Gent.c the following code segements could be * -// used: * -// * -// #include "ProcTrace.h" * -// ... * -// PabloHDF5trace( ID_H5I_register ); * -// PabloHDF5trace( ID_H5Topenr ); * -// PabloHDF5trace( FID_H5A ); * -// PabloHDF5trace( FID_H5Gent ); * -// ... * -// HDF5initTrace( ... ); * -// * -// See the document PabloHDF5.doc for further information * -//======================================================================*/ /*======================================================================*/ /* Assign HDF identifier routine tags */ /*======================================================================*/ @@ -131,68 +94,11 @@ MPI_RUNTIME_TRACE, MPI_SUMMARY_TRACE, NO_TRACE, #include "HDFidList.h" -ID_HDF_Last_Entry, -AllHDF5 = ID_HDF_Last_Entry, -ID_H5_c, -ID_H5A_c, -ID_H5AC_c, -ID_H5B_c, -ID_H5D_c, -ID_H5E_c, -ID_H5F_c, -ID_H5Farray_c, -ID_H5Fcore_c, -ID_H5Ffamily_c, -ID_H5Fistore_c, -ID_H5Flow_c, -ID_H5Fmpio_c, -ID_H5Fsec2_c, -ID_H5Fsplit_c, -ID_H5Fstdio_c, -ID_H5G_c, -ID_H5Gent_c, -ID_H5Gnode_c, -ID_H5Gstab_c, -ID_H5HG_c, -ID_H5HL_c, -ID_H5I_c, -ID_H5MF_c, -ID_H5MM_c, -ID_H5O_c, -ID_H5Oattr_c, -ID_H5Ocomp_c, -ID_H5Ocont_c, -ID_H5Odtype_c, -ID_H5Oefl_c, -ID_H5Ofill_c, -ID_H5Olayout_c, -ID_H5Omtime_c, -ID_H5Oname_c, -ID_H5Onull_c, -ID_H5Osdspace_c, -ID_H5Oshared_c, -ID_H5Ostab_c, -ID_H5P_c, -ID_H5R_c, -ID_H5RA_c, -ID_H5S_c, -ID_H5Sall_c, -ID_H5Shyper_c, -ID_H5Smpio_c, -ID_H5Snone_c, -ID_H5Spoint_c, -ID_H5Sselect_c, -ID_H5T_c, -ID_H5TB_c, -ID_H5Tbit_c, -ID_H5Tconv_c, -ID_H5Tinit_c, -ID_H5V_c, -ID_H5Z_c, -NUM_HDF5_IDS +NUM_HDF_IDS } ; -void PabloHDF5Trace( int ) ; -void HDF5initTrace( const char *, int trace_id, ... ); -void HDF5endTrace( void ); +#define ID_HDF_Last_Entry ID_ALLHDF + +void HDFinitTrace( const char *, int trace_id, ... ); +void HDFendTrace( void ); #endif /* PROCTRACE_H */ diff --git a/pablo/ProcTrace.inc b/pablo/ProcTrace.inc new file mode 100644 index 0000000..8b8dde5 --- /dev/null +++ b/pablo/ProcTrace.inc @@ -0,0 +1,1680 @@ + integer IDH5ACcreate + parameter ( IDH5ACcreate = 1 ) + integer IDH5ACdebug + parameter ( IDH5ACdebug = 2 ) + integer IDH5ACdest + parameter ( IDH5ACdest = 3 ) + integer IDH5ACfind + parameter ( IDH5ACfind = 4 ) + integer IDH5ACflush + parameter ( IDH5ACflush = 5 ) + integer IDH5ACprotect + parameter ( IDH5ACprotect = 6 ) + integer IDH5ACrename + parameter ( IDH5ACrename = 7 ) + integer IDH5ACset + parameter ( IDH5ACset = 8 ) + integer IDH5ACunprotect + parameter ( IDH5ACunprotect = 9 ) + integer IDH5Aclose + parameter ( IDH5Aclose = 10 ) + integer IDH5Acopy + parameter ( IDH5Acopy = 11 ) + integer IDH5Acreate + parameter ( IDH5Acreate = 12 ) + integer IDH5Aentof + parameter ( IDH5Aentof = 13 ) + integer IDH5Agetindex + parameter ( IDH5Agetindex = 14 ) + integer IDH5Ainitinterface + parameter ( IDH5Ainitinterface = 15 ) + integer IDH5Aopen + parameter ( IDH5Aopen = 16 ) + integer IDH5Aread + parameter ( IDH5Aread = 17 ) + integer IDH5Awrite + parameter ( IDH5Awrite = 18 ) + integer IDH5Aclose + parameter ( IDH5Aclose = 19 ) + integer IDH5Acreate + parameter ( IDH5Acreate = 20 ) + integer IDH5Agetname + parameter ( IDH5Agetname = 21 ) + integer IDH5Agetnumattrs + parameter ( IDH5Agetnumattrs = 22 ) + integer IDH5Agetspace + parameter ( IDH5Agetspace = 23 ) + integer IDH5Agettype + parameter ( IDH5Agettype = 24 ) + integer IDH5Aiterate + parameter ( IDH5Aiterate = 25 ) + integer IDH5Aopenidx + parameter ( IDH5Aopenidx = 26 ) + integer IDH5Aopenname + parameter ( IDH5Aopenname = 27 ) + integer IDH5Aread + parameter ( IDH5Aread = 28 ) + integer IDH5Awrite + parameter ( IDH5Awrite = 29 ) + integer IDH5Bassert + parameter ( IDH5Bassert = 30 ) + integer IDH5Bcreate + parameter ( IDH5Bcreate = 31 ) + integer IDH5Bdebug + parameter ( IDH5Bdebug = 32 ) + integer IDH5Bdecodekey + parameter ( IDH5Bdecodekey = 33 ) + integer IDH5Bdecodekeys + parameter ( IDH5Bdecodekeys = 34 ) + integer IDH5Bfind + parameter ( IDH5Bfind = 35 ) + integer IDH5Bflush + parameter ( IDH5Bflush = 36 ) + integer IDH5Binsert + parameter ( IDH5Binsert = 37 ) + integer IDH5Binsertchild + parameter ( IDH5Binsertchild = 38 ) + integer IDH5Binserthelper + parameter ( IDH5Binserthelper = 39 ) + integer IDH5Biterate + parameter ( IDH5Biterate = 40 ) + integer IDH5Bload + parameter ( IDH5Bload = 41 ) + integer IDH5Bnodesize + parameter ( IDH5Bnodesize = 42 ) + integer IDH5Bremove + parameter ( IDH5Bremove = 43 ) + integer IDH5Bremovehelper + parameter ( IDH5Bremovehelper = 44 ) + integer IDH5Bsplit + parameter ( IDH5Bsplit = 45 ) + integer IDH5Dclose + parameter ( IDH5Dclose = 46 ) + integer IDH5Dcreate + parameter ( IDH5Dcreate = 47 ) + integer IDH5Dextend + parameter ( IDH5Dextend = 48 ) + integer IDH5Dgetfile + parameter ( IDH5Dgetfile = 49 ) + integer IDH5Dgetspace + parameter ( IDH5Dgetspace = 50 ) + integer IDH5Dinitinterface + parameter ( IDH5Dinitinterface = 51 ) + integer IDH5Dinitstorage + parameter ( IDH5Dinitstorage = 52 ) + integer IDH5Disa + parameter ( IDH5Disa = 53 ) + integer IDH5Dnew + parameter ( IDH5Dnew = 54 ) + integer IDH5Dopen + parameter ( IDH5Dopen = 55 ) + integer IDH5Dopenoid + parameter ( IDH5Dopenoid = 56 ) + integer IDH5Dread + parameter ( IDH5Dread = 57 ) + integer IDH5Dtypeof + parameter ( IDH5Dtypeof = 58 ) + integer IDH5Dwrite + parameter ( IDH5Dwrite = 59 ) + integer IDH5Dclose + parameter ( IDH5Dclose = 60 ) + integer IDH5Dcreate + parameter ( IDH5Dcreate = 61 ) + integer IDH5Dextend + parameter ( IDH5Dextend = 62 ) + integer IDH5Dgetcreateplist + parameter ( IDH5Dgetcreateplist = 63 ) + integer IDH5Dgetspace + parameter ( IDH5Dgetspace = 64 ) + integer IDH5Dgettype + parameter ( IDH5Dgettype = 65 ) + integer IDH5Dopen + parameter ( IDH5Dopen = 66 ) + integer IDH5Dread + parameter ( IDH5Dread = 67 ) + integer IDH5Dwrite + parameter ( IDH5Dwrite = 68 ) + integer IDH5Eclear + parameter ( IDH5Eclear = 69 ) + integer IDH5Ewalk + parameter ( IDH5Ewalk = 70 ) + integer IDH5Eclear + parameter ( IDH5Eclear = 71 ) + integer IDH5Egetauto + parameter ( IDH5Egetauto = 72 ) + integer IDH5Eprint + parameter ( IDH5Eprint = 73 ) + integer IDH5Esetauto + parameter ( IDH5Esetauto = 74 ) + integer IDH5Ewalk + parameter ( IDH5Ewalk = 75 ) + integer IDH5Faddrcmp + parameter ( IDH5Faddrcmp = 76 ) + integer IDH5Faddrdefined + parameter ( IDH5Faddrdefined = 77 ) + integer IDH5Faddrzerop + parameter ( IDH5Faddrzerop = 78 ) + integer IDH5Farrcreate + parameter ( IDH5Farrcreate = 79 ) + integer IDH5Farrread + parameter ( IDH5Farrread = 80 ) + integer IDH5Farrwrite + parameter ( IDH5Farrwrite = 81 ) + integer IDH5Fblockread + parameter ( IDH5Fblockread = 82 ) + integer IDH5Fblockwrite + parameter ( IDH5Fblockwrite = 83 ) + integer IDH5Fclose + parameter ( IDH5Fclose = 84 ) + integer IDH5Fcloseall + parameter ( IDH5Fcloseall = 85 ) + integer IDH5Fcomparefiles + parameter ( IDH5Fcomparefiles = 86 ) + integer IDH5Fcoreaccess + parameter ( IDH5Fcoreaccess = 87 ) + integer IDH5Fcoreclose + parameter ( IDH5Fcoreclose = 88 ) + integer IDH5Fcoreopen + parameter ( IDH5Fcoreopen = 89 ) + integer IDH5Fcoreread + parameter ( IDH5Fcoreread = 90 ) + integer IDH5Fcorewrite + parameter ( IDH5Fcorewrite = 91 ) + integer IDH5Fdebug + parameter ( IDH5Fdebug = 92 ) + integer IDH5Fdest + parameter ( IDH5Fdest = 93 ) + integer IDH5Ffamaccess + parameter ( IDH5Ffamaccess = 94 ) + integer IDH5Ffamclose + parameter ( IDH5Ffamclose = 95 ) + integer IDH5Ffamflush + parameter ( IDH5Ffamflush = 96 ) + integer IDH5Ffamopen + parameter ( IDH5Ffamopen = 97 ) + integer IDH5Ffamread + parameter ( IDH5Ffamread = 98 ) + integer IDH5Ffamwrite + parameter ( IDH5Ffamwrite = 99 ) + integer IDH5Fflush + parameter ( IDH5Fflush = 100 ) + integer IDH5Fflushall + parameter ( IDH5Fflushall = 101 ) + integer IDH5Finit + parameter ( IDH5Finit = 102 ) + integer IDH5Finitinterface + parameter ( IDH5Finitinterface = 103 ) + integer IDH5Fistoreallocate + parameter ( IDH5Fistoreallocate = 104 ) + integer IDH5Fistorecmp2 + parameter ( IDH5Fistorecmp2 = 105 ) + integer IDH5Fistorecmp3 + parameter ( IDH5Fistorecmp3 = 106 ) + integer IDH5Fistorecreate + parameter ( IDH5Fistorecreate = 107 ) + integer IDH5Fistoredebug + parameter ( IDH5Fistoredebug = 108 ) + integer IDH5Fistoredebugkey + parameter ( IDH5Fistoredebugkey = 109 ) + integer IDH5Fistoredecodekey + parameter ( IDH5Fistoredecodekey = 110 ) + integer IDH5Fistoredest + parameter ( IDH5Fistoredest = 111 ) + integer IDH5Fistoreencodekey + parameter ( IDH5Fistoreencodekey = 112 ) + integer IDH5Fistoreflush + parameter ( IDH5Fistoreflush = 113 ) + integer IDH5Fistoreflushentry + parameter ( IDH5Fistoreflushentry = 114 ) + integer IDH5Fistorefound + parameter ( IDH5Fistorefound = 115 ) + integer IDH5Fistoregetaddr + parameter ( IDH5Fistoregetaddr = 116 ) + integer IDH5Fistoreinit + parameter ( IDH5Fistoreinit = 117 ) + integer IDH5Fistoreinsert + parameter ( IDH5Fistoreinsert = 118 ) + integer IDH5Fistorelock + parameter ( IDH5Fistorelock = 119 ) + integer IDH5Fistorenewnode + parameter ( IDH5Fistorenewnode = 120 ) + integer IDH5Fistorepreempt + parameter ( IDH5Fistorepreempt = 121 ) + integer IDH5Fistoreprune + parameter ( IDH5Fistoreprune = 122 ) + integer IDH5Fistoreread + parameter ( IDH5Fistoreread = 123 ) + integer IDH5Fistorestats + parameter ( IDH5Fistorestats = 124 ) + integer IDH5Fistoreunlock + parameter ( IDH5Fistoreunlock = 125 ) + integer IDH5Fistorewrite + parameter ( IDH5Fistorewrite = 126 ) + integer IDH5Flocatesignature + parameter ( IDH5Flocatesignature = 127 ) + integer IDH5Flowalloc + parameter ( IDH5Flowalloc = 128 ) + integer IDH5Flowclass + parameter ( IDH5Flowclass = 129 ) + integer IDH5Flowclose + parameter ( IDH5Flowclose = 130 ) + integer IDH5Flowflush + parameter ( IDH5Flowflush = 131 ) + integer IDH5Flowopen + parameter ( IDH5Flowopen = 132 ) + integer IDH5Flowread + parameter ( IDH5Flowread = 133 ) + integer IDH5Flowseteof + parameter ( IDH5Flowseteof = 134 ) + integer IDH5Flowsize + parameter ( IDH5Flowsize = 135 ) + integer IDH5Flowwrite + parameter ( IDH5Flowwrite = 136 ) + integer IDH5Fmount + parameter ( IDH5Fmount = 137 ) + integer IDH5Fmountpoint + parameter ( IDH5Fmountpoint = 138 ) + integer IDH5Fmpioaccess + parameter ( IDH5Fmpioaccess = 139 ) + integer IDH5Fmpioclose + parameter ( IDH5Fmpioclose = 140 ) + integer IDH5Fmpioflush + parameter ( IDH5Fmpioflush = 141 ) + integer IDH5Fmpioopen + parameter ( IDH5Fmpioopen = 142 ) + integer IDH5Fmpioread + parameter ( IDH5Fmpioread = 143 ) + integer IDH5Fmpiotasallsame + parameter ( IDH5Fmpiotasallsame = 144 ) + integer IDH5Fmpiowrite + parameter ( IDH5Fmpiowrite = 145 ) + integer IDH5Fnew + parameter ( IDH5Fnew = 146 ) + integer IDH5Fopen + parameter ( IDH5Fopen = 147 ) + integer IDH5Fsec2close + parameter ( IDH5Fsec2close = 148 ) + integer IDH5Fsec2open + parameter ( IDH5Fsec2open = 149 ) + integer IDH5Fsec2read + parameter ( IDH5Fsec2read = 150 ) + integer IDH5Fsec2write + parameter ( IDH5Fsec2write = 151 ) + integer IDH5Fsplitaccess + parameter ( IDH5Fsplitaccess = 152 ) + integer IDH5Fsplitalloc + parameter ( IDH5Fsplitalloc = 153 ) + integer IDH5Fsplitclose + parameter ( IDH5Fsplitclose = 154 ) + integer IDH5Fsplitextend + parameter ( IDH5Fsplitextend = 155 ) + integer IDH5Fsplitflush + parameter ( IDH5Fsplitflush = 156 ) + integer IDH5Fsplitopen + parameter ( IDH5Fsplitopen = 157 ) + integer IDH5Fsplitread + parameter ( IDH5Fsplitread = 158 ) + integer IDH5Fsplitwrite + parameter ( IDH5Fsplitwrite = 159 ) + integer IDH5Fstdioclose + parameter ( IDH5Fstdioclose = 160 ) + integer IDH5Fstdioflush + parameter ( IDH5Fstdioflush = 161 ) + integer IDH5Fstdioopen + parameter ( IDH5Fstdioopen = 162 ) + integer IDH5Fstdioread + parameter ( IDH5Fstdioread = 163 ) + integer IDH5Fstdiowrite + parameter ( IDH5Fstdiowrite = 164 ) + integer IDH5Funmount + parameter ( IDH5Funmount = 165 ) + integer IDH5Fclose + parameter ( IDH5Fclose = 166 ) + integer IDH5Fcreate + parameter ( IDH5Fcreate = 167 ) + integer IDH5Fflush + parameter ( IDH5Fflush = 168 ) + integer IDH5Fgetaccessplist + parameter ( IDH5Fgetaccessplist = 169 ) + integer IDH5Fgetcreateplist + parameter ( IDH5Fgetcreateplist = 170 ) + integer IDH5Fishdf5 + parameter ( IDH5Fishdf5 = 171 ) + integer IDH5Fmount + parameter ( IDH5Fmount = 172 ) + integer IDH5Fopen + parameter ( IDH5Fopen = 173 ) + integer IDH5Freopen + parameter ( IDH5Freopen = 174 ) + integer IDH5Funmount + parameter ( IDH5Funmount = 175 ) + integer IDH5Gbasename + parameter ( IDH5Gbasename = 176 ) + integer IDH5Gclose + parameter ( IDH5Gclose = 177 ) + integer IDH5Gcreate + parameter ( IDH5Gcreate = 178 ) + integer IDH5Gentcache + parameter ( IDH5Gentcache = 179 ) + integer IDH5Gentdebug + parameter ( IDH5Gentdebug = 180 ) + integer IDH5Gentdecode + parameter ( IDH5Gentdecode = 181 ) + integer IDH5Gentdecodevec + parameter ( IDH5Gentdecodevec = 182 ) + integer IDH5Gentencode + parameter ( IDH5Gentencode = 183 ) + integer IDH5Gentencodevec + parameter ( IDH5Gentencodevec = 184 ) + integer IDH5Gentmodified + parameter ( IDH5Gentmodified = 185 ) + integer IDH5Gfind + parameter ( IDH5Gfind = 186 ) + integer IDH5Ggetcomment + parameter ( IDH5Ggetcomment = 187 ) + integer IDH5Ggetobjinfo + parameter ( IDH5Ggetobjinfo = 188 ) + integer IDH5Ggettype + parameter ( IDH5Ggettype = 189 ) + integer IDH5Ginitinterface + parameter ( IDH5Ginitinterface = 190 ) + integer IDH5Ginsert + parameter ( IDH5Ginsert = 191 ) + integer IDH5Ginsertionfile + parameter ( IDH5Ginsertionfile = 192 ) + integer IDH5Gisa + parameter ( IDH5Gisa = 193 ) + integer IDH5Glink + parameter ( IDH5Glink = 194 ) + integer IDH5Glinkval + parameter ( IDH5Glinkval = 195 ) + integer IDH5Gloc + parameter ( IDH5Gloc = 196 ) + integer IDH5Gmkroot + parameter ( IDH5Gmkroot = 197 ) + integer IDH5Gmove + parameter ( IDH5Gmove = 198 ) + integer IDH5Gnamei + parameter ( IDH5Gnamei = 199 ) + integer IDH5Gnodecmp2 + parameter ( IDH5Gnodecmp2 = 200 ) + integer IDH5Gnodecmp3 + parameter ( IDH5Gnodecmp3 = 201 ) + integer IDH5Gnodecreate + parameter ( IDH5Gnodecreate = 202 ) + integer IDH5Gnodedebug + parameter ( IDH5Gnodedebug = 203 ) + integer IDH5Gnodedecodekey + parameter ( IDH5Gnodedecodekey = 204 ) + integer IDH5Gnodeencodekey + parameter ( IDH5Gnodeencodekey = 205 ) + integer IDH5Gnodeflush + parameter ( IDH5Gnodeflush = 206 ) + integer IDH5Gnodefound + parameter ( IDH5Gnodefound = 207 ) + integer IDH5Gnodeinsert + parameter ( IDH5Gnodeinsert = 208 ) + integer IDH5Gnodeiterate + parameter ( IDH5Gnodeiterate = 209 ) + integer IDH5Gnodeload + parameter ( IDH5Gnodeload = 210 ) + integer IDH5Gnoderemove + parameter ( IDH5Gnoderemove = 211 ) + integer IDH5Gopen + parameter ( IDH5Gopen = 212 ) + integer IDH5Gopenoid + parameter ( IDH5Gopenoid = 213 ) + integer IDH5Gregistertype + parameter ( IDH5Gregistertype = 214 ) + integer IDH5Greopen + parameter ( IDH5Greopen = 215 ) + integer IDH5Grootof + parameter ( IDH5Grootof = 216 ) + integer IDH5Gsetcomment + parameter ( IDH5Gsetcomment = 217 ) + integer IDH5Gstabcreate + parameter ( IDH5Gstabcreate = 218 ) + integer IDH5Gstabfind + parameter ( IDH5Gstabfind = 219 ) + integer IDH5Gstabinsert + parameter ( IDH5Gstabinsert = 220 ) + integer IDH5Gstabremove + parameter ( IDH5Gstabremove = 221 ) + integer IDH5Gtraverseslink + parameter ( IDH5Gtraverseslink = 222 ) + integer IDH5Gunlink + parameter ( IDH5Gunlink = 223 ) + integer IDH5Gclose + parameter ( IDH5Gclose = 224 ) + integer IDH5Gcreate + parameter ( IDH5Gcreate = 225 ) + integer IDH5Ggetcomment + parameter ( IDH5Ggetcomment = 226 ) + integer IDH5Ggetlinkval + parameter ( IDH5Ggetlinkval = 227 ) + integer IDH5Ggetobjinfo + parameter ( IDH5Ggetobjinfo = 228 ) + integer IDH5Giterate + parameter ( IDH5Giterate = 229 ) + integer IDH5Glink + parameter ( IDH5Glink = 230 ) + integer IDH5Gmove + parameter ( IDH5Gmove = 231 ) + integer IDH5Gopen + parameter ( IDH5Gopen = 232 ) + integer IDH5Gsetcomment + parameter ( IDH5Gsetcomment = 233 ) + integer IDH5Gunlink + parameter ( IDH5Gunlink = 234 ) + integer IDH5HGalloc + parameter ( IDH5HGalloc = 235 ) + integer IDH5HGcreate + parameter ( IDH5HGcreate = 236 ) + integer IDH5HGdebug + parameter ( IDH5HGdebug = 237 ) + integer IDH5HGflush + parameter ( IDH5HGflush = 238 ) + integer IDH5HGinsert + parameter ( IDH5HGinsert = 239 ) + integer IDH5HGlink + parameter ( IDH5HGlink = 240 ) + integer IDH5HGload + parameter ( IDH5HGload = 241 ) + integer IDH5HGpeek + parameter ( IDH5HGpeek = 242 ) + integer IDH5HGread + parameter ( IDH5HGread = 243 ) + integer IDH5HGremove + parameter ( IDH5HGremove = 244 ) + integer IDH5HLcreate + parameter ( IDH5HLcreate = 245 ) + integer IDH5HLdebug + parameter ( IDH5HLdebug = 246 ) + integer IDH5HLflush + parameter ( IDH5HLflush = 247 ) + integer IDH5HLinsert + parameter ( IDH5HLinsert = 248 ) + integer IDH5HLload + parameter ( IDH5HLload = 249 ) + integer IDH5HLpeek + parameter ( IDH5HLpeek = 250 ) + integer IDH5HLread + parameter ( IDH5HLread = 251 ) + integer IDH5HLremove + parameter ( IDH5HLremove = 252 ) + integer IDH5HLwrite + parameter ( IDH5HLwrite = 253 ) + integer IDH5Idebug + parameter ( IDH5Idebug = 254 ) + integer IDH5Idecref + parameter ( IDH5Idecref = 255 ) + integer IDH5Idestroygroup + parameter ( IDH5Idestroygroup = 256 ) + integer IDH5Ifindid + parameter ( IDH5Ifindid = 257 ) + integer IDH5Igetidnode + parameter ( IDH5Igetidnode = 258 ) + integer IDH5Igettype + parameter ( IDH5Igettype = 259 ) + integer IDH5Iinitgroup + parameter ( IDH5Iinitgroup = 260 ) + integer IDH5Iinitinterface + parameter ( IDH5Iinitinterface = 261 ) + integer IDH5Iobject + parameter ( IDH5Iobject = 262 ) + integer IDH5Iregister + parameter ( IDH5Iregister = 263 ) + integer IDH5Ireleaseidnode + parameter ( IDH5Ireleaseidnode = 264 ) + integer IDH5Iremove + parameter ( IDH5Iremove = 265 ) + integer IDH5Isearch + parameter ( IDH5Isearch = 266 ) + integer IDH5Igettype + parameter ( IDH5Igettype = 267 ) + integer IDH5MFalloc + parameter ( IDH5MFalloc = 268 ) + integer IDH5MFrealloc + parameter ( IDH5MFrealloc = 269 ) + integer IDH5MFxfree + parameter ( IDH5MFxfree = 270 ) + integer IDH5MMstrdup + parameter ( IDH5MMstrdup = 271 ) + integer IDH5Oalloc + parameter ( IDH5Oalloc = 272 ) + integer IDH5Oallocextendchunk + parameter ( IDH5Oallocextendchunk = 273 ) + integer IDH5Oallocnewchunk + parameter ( IDH5Oallocnewchunk = 274 ) + integer IDH5Oattrcopy + parameter ( IDH5Oattrcopy = 275 ) + integer IDH5Oattrdebug + parameter ( IDH5Oattrdebug = 276 ) + integer IDH5Oattrdecode + parameter ( IDH5Oattrdecode = 277 ) + integer IDH5Oattrencode + parameter ( IDH5Oattrencode = 278 ) + integer IDH5Oattrreset + parameter ( IDH5Oattrreset = 279 ) + integer IDH5Oattrsize + parameter ( IDH5Oattrsize = 280 ) + integer IDH5Oclose + parameter ( IDH5Oclose = 281 ) + integer IDH5Ocontdebug + parameter ( IDH5Ocontdebug = 282 ) + integer IDH5Ocontdecode + parameter ( IDH5Ocontdecode = 283 ) + integer IDH5Ocontencode + parameter ( IDH5Ocontencode = 284 ) + integer IDH5Ocopy + parameter ( IDH5Ocopy = 285 ) + integer IDH5Ocount + parameter ( IDH5Ocount = 286 ) + integer IDH5Ocreate + parameter ( IDH5Ocreate = 287 ) + integer IDH5Odebug + parameter ( IDH5Odebug = 288 ) + integer IDH5Odtypecopy + parameter ( IDH5Odtypecopy = 289 ) + integer IDH5Odtypedebug + parameter ( IDH5Odtypedebug = 290 ) + integer IDH5Odtypedecode + parameter ( IDH5Odtypedecode = 291 ) + integer IDH5Odtypedecodehelper + parameter ( IDH5Odtypedecodehelper = 292 ) + integer IDH5Odtypeencode + parameter ( IDH5Odtypeencode = 293 ) + integer IDH5Odtypeencodehelper + parameter ( IDH5Odtypeencodehelper = 294 ) + integer IDH5Odtypegetshare + parameter ( IDH5Odtypegetshare = 295 ) + integer IDH5Odtypereset + parameter ( IDH5Odtypereset = 296 ) + integer IDH5Odtypesetshare + parameter ( IDH5Odtypesetshare = 297 ) + integer IDH5Odtypesize + parameter ( IDH5Odtypesize = 298 ) + integer IDH5Oeflcopy + parameter ( IDH5Oeflcopy = 299 ) + integer IDH5Oefldebug + parameter ( IDH5Oefldebug = 300 ) + integer IDH5Oefldecode + parameter ( IDH5Oefldecode = 301 ) + integer IDH5Oeflencode + parameter ( IDH5Oeflencode = 302 ) + integer IDH5Oeflread + parameter ( IDH5Oeflread = 303 ) + integer IDH5Oeflreset + parameter ( IDH5Oeflreset = 304 ) + integer IDH5Oeflsize + parameter ( IDH5Oeflsize = 305 ) + integer IDH5Oefltotalsize + parameter ( IDH5Oefltotalsize = 306 ) + integer IDH5Oeflwrite + parameter ( IDH5Oeflwrite = 307 ) + integer IDH5Oexists + parameter ( IDH5Oexists = 308 ) + integer IDH5Ofillconvert + parameter ( IDH5Ofillconvert = 309 ) + integer IDH5Ofillcopy + parameter ( IDH5Ofillcopy = 310 ) + integer IDH5Ofilldebug + parameter ( IDH5Ofilldebug = 311 ) + integer IDH5Ofilldecode + parameter ( IDH5Ofilldecode = 312 ) + integer IDH5Ofillencode + parameter ( IDH5Ofillencode = 313 ) + integer IDH5Ofillreset + parameter ( IDH5Ofillreset = 314 ) + integer IDH5Ofillsize + parameter ( IDH5Ofillsize = 315 ) + integer IDH5Ofindinohdr + parameter ( IDH5Ofindinohdr = 316 ) + integer IDH5Oflush + parameter ( IDH5Oflush = 317 ) + integer IDH5Ofree + parameter ( IDH5Ofree = 318 ) + integer IDH5Oinitinterface + parameter ( IDH5Oinitinterface = 319 ) + integer IDH5Olayoutcopy + parameter ( IDH5Olayoutcopy = 320 ) + integer IDH5Olayoutdebug + parameter ( IDH5Olayoutdebug = 321 ) + integer IDH5Olayoutdecode + parameter ( IDH5Olayoutdecode = 322 ) + integer IDH5Olayoutencode + parameter ( IDH5Olayoutencode = 323 ) + integer IDH5Olayoutsize + parameter ( IDH5Olayoutsize = 324 ) + integer IDH5Olink + parameter ( IDH5Olink = 325 ) + integer IDH5Oload + parameter ( IDH5Oload = 326 ) + integer IDH5Omodify + parameter ( IDH5Omodify = 327 ) + integer IDH5Omtimecopy + parameter ( IDH5Omtimecopy = 328 ) + integer IDH5Omtimedebug + parameter ( IDH5Omtimedebug = 329 ) + integer IDH5Omtimedecode + parameter ( IDH5Omtimedecode = 330 ) + integer IDH5Omtimeencode + parameter ( IDH5Omtimeencode = 331 ) + integer IDH5Omtimesize + parameter ( IDH5Omtimesize = 332 ) + integer IDH5Onamecopy + parameter ( IDH5Onamecopy = 333 ) + integer IDH5Onamedebug + parameter ( IDH5Onamedebug = 334 ) + integer IDH5Onamedecode + parameter ( IDH5Onamedecode = 335 ) + integer IDH5Onameencode + parameter ( IDH5Onameencode = 336 ) + integer IDH5Onamereset + parameter ( IDH5Onamereset = 337 ) + integer IDH5Onamesize + parameter ( IDH5Onamesize = 338 ) + integer IDH5Oopen + parameter ( IDH5Oopen = 339 ) + integer IDH5Oplinecopy + parameter ( IDH5Oplinecopy = 340 ) + integer IDH5Oplinedebug + parameter ( IDH5Oplinedebug = 341 ) + integer IDH5Oplinedecode + parameter ( IDH5Oplinedecode = 342 ) + integer IDH5Oplineencode + parameter ( IDH5Oplineencode = 343 ) + integer IDH5Oplinereset + parameter ( IDH5Oplinereset = 344 ) + integer IDH5Oplinesize + parameter ( IDH5Oplinesize = 345 ) + integer IDH5Oread + parameter ( IDH5Oread = 346 ) + integer IDH5Oremove + parameter ( IDH5Oremove = 347 ) + integer IDH5Oreset + parameter ( IDH5Oreset = 348 ) + integer IDH5Osdspacecopy + parameter ( IDH5Osdspacecopy = 349 ) + integer IDH5Osdspacedebug + parameter ( IDH5Osdspacedebug = 350 ) + integer IDH5Osdspacedecode + parameter ( IDH5Osdspacedecode = 351 ) + integer IDH5Osdspaceencode + parameter ( IDH5Osdspaceencode = 352 ) + integer IDH5Osdspacereset + parameter ( IDH5Osdspacereset = 353 ) + integer IDH5Osdspacesize + parameter ( IDH5Osdspacesize = 354 ) + integer IDH5Oshare + parameter ( IDH5Oshare = 355 ) + integer IDH5Oshareddebug + parameter ( IDH5Oshareddebug = 356 ) + integer IDH5Oshareddecode + parameter ( IDH5Oshareddecode = 357 ) + integer IDH5Osharedencode + parameter ( IDH5Osharedencode = 358 ) + integer IDH5Osharedsize + parameter ( IDH5Osharedsize = 359 ) + integer IDH5Ostabcopy + parameter ( IDH5Ostabcopy = 360 ) + integer IDH5Ostabdebug + parameter ( IDH5Ostabdebug = 361 ) + integer IDH5Ostabdecode + parameter ( IDH5Ostabdecode = 362 ) + integer IDH5Ostabencode + parameter ( IDH5Ostabencode = 363 ) + integer IDH5Ostabfast + parameter ( IDH5Ostabfast = 364 ) + integer IDH5Ostabsize + parameter ( IDH5Ostabsize = 365 ) + integer IDH5Otouch + parameter ( IDH5Otouch = 366 ) + integer IDH5Otouchoh + parameter ( IDH5Otouchoh = 367 ) + integer IDH5PCSignalrightneighbor + parameter ( IDH5PCSignalrightneighbor = 368 ) + integer IDH5PCWaitforleftneighbor + parameter ( IDH5PCWaitforleftneighbor = 369 ) + integer IDH5Pclose + parameter ( IDH5Pclose = 370 ) + integer IDH5Pcopy + parameter ( IDH5Pcopy = 371 ) + integer IDH5Pcreate + parameter ( IDH5Pcreate = 372 ) + integer IDH5Pgetclass + parameter ( IDH5Pgetclass = 373 ) + integer IDH5Pinitinterface + parameter ( IDH5Pinitinterface = 374 ) + integer IDH5Pclose + parameter ( IDH5Pclose = 375 ) + integer IDH5Pcopy + parameter ( IDH5Pcopy = 376 ) + integer IDH5Pcreate + parameter ( IDH5Pcreate = 377 ) + integer IDH5Pgetalignment + parameter ( IDH5Pgetalignment = 378 ) + integer IDH5Pgetbtreeratios + parameter ( IDH5Pgetbtreeratios = 379 ) + integer IDH5Pgetbuffer + parameter ( IDH5Pgetbuffer = 380 ) + integer IDH5Pgetcache + parameter ( IDH5Pgetcache = 381 ) + integer IDH5Pgetchunk + parameter ( IDH5Pgetchunk = 382 ) + integer IDH5Pgetclass + parameter ( IDH5Pgetclass = 383 ) + integer IDH5Pgetcore + parameter ( IDH5Pgetcore = 384 ) + integer IDH5Pgetdriver + parameter ( IDH5Pgetdriver = 385 ) + integer IDH5Pgetexternal + parameter ( IDH5Pgetexternal = 386 ) + integer IDH5Pgetexternalcount + parameter ( IDH5Pgetexternalcount = 387 ) + integer IDH5Pgetfamily + parameter ( IDH5Pgetfamily = 388 ) + integer IDH5Pgetfillvalue + parameter ( IDH5Pgetfillvalue = 389 ) + integer IDH5Pgetfilter + parameter ( IDH5Pgetfilter = 390 ) + integer IDH5Pgethypercache + parameter ( IDH5Pgethypercache = 391 ) + integer IDH5Pgetistorek + parameter ( IDH5Pgetistorek = 392 ) + integer IDH5Pgetlayout + parameter ( IDH5Pgetlayout = 393 ) + integer IDH5Pgetmpi + parameter ( IDH5Pgetmpi = 394 ) + integer IDH5Pgetnfilters + parameter ( IDH5Pgetnfilters = 395 ) + integer IDH5Pgetsec2 + parameter ( IDH5Pgetsec2 = 396 ) + integer IDH5Pgetsizes + parameter ( IDH5Pgetsizes = 397 ) + integer IDH5Pgetsplit + parameter ( IDH5Pgetsplit = 398 ) + integer IDH5Pgetstdio + parameter ( IDH5Pgetstdio = 399 ) + integer IDH5Pgetsymk + parameter ( IDH5Pgetsymk = 400 ) + integer IDH5Pgetuserblock + parameter ( IDH5Pgetuserblock = 401 ) + integer IDH5Pgetversion + parameter ( IDH5Pgetversion = 402 ) + integer IDH5Pgetxfer + parameter ( IDH5Pgetxfer = 403 ) + integer IDH5Psetalignment + parameter ( IDH5Psetalignment = 404 ) + integer IDH5Psetbuffer + parameter ( IDH5Psetbuffer = 405 ) + integer IDH5Psetcache + parameter ( IDH5Psetcache = 406 ) + integer IDH5Psetchunk + parameter ( IDH5Psetchunk = 407 ) + integer IDH5Psetcore + parameter ( IDH5Psetcore = 408 ) + integer IDH5Psetdeflate + parameter ( IDH5Psetdeflate = 409 ) + integer IDH5Psetexternal + parameter ( IDH5Psetexternal = 410 ) + integer IDH5Psetfamily + parameter ( IDH5Psetfamily = 411 ) + integer IDH5Psetfillvalue + parameter ( IDH5Psetfillvalue = 412 ) + integer IDH5Psetfilter + parameter ( IDH5Psetfilter = 413 ) + integer IDH5Psetgcreferences + parameter ( IDH5Psetgcreferences = 414 ) + integer IDH5Psethypercache + parameter ( IDH5Psethypercache = 415 ) + integer IDH5Psetistorek + parameter ( IDH5Psetistorek = 416 ) + integer IDH5Psetlayout + parameter ( IDH5Psetlayout = 417 ) + integer IDH5Psetmpi + parameter ( IDH5Psetmpi = 418 ) + integer IDH5Psetpreserve + parameter ( IDH5Psetpreserve = 419 ) + integer IDH5Psetsec2 + parameter ( IDH5Psetsec2 = 420 ) + integer IDH5Psetsizeofaddr + parameter ( IDH5Psetsizeofaddr = 421 ) + integer IDH5Psetsplit + parameter ( IDH5Psetsplit = 422 ) + integer IDH5Psetstdio + parameter ( IDH5Psetstdio = 423 ) + integer IDH5Psetsymk + parameter ( IDH5Psetsymk = 424 ) + integer IDH5Psetuserblock + parameter ( IDH5Psetuserblock = 425 ) + integer IDH5Psetxfer + parameter ( IDH5Psetxfer = 426 ) + integer IDH5RAclose + parameter ( IDH5RAclose = 427 ) + integer IDH5RAcreate + parameter ( IDH5RAcreate = 428 ) + integer IDH5RAfixoverflow + parameter ( IDH5RAfixoverflow = 429 ) + integer IDH5RAinitinterface + parameter ( IDH5RAinitinterface = 430 ) + integer IDH5RAisa + parameter ( IDH5RAisa = 431 ) + integer IDH5RAopen + parameter ( IDH5RAopen = 432 ) + integer IDH5RAread + parameter ( IDH5RAread = 433 ) + integer IDH5RAwrite + parameter ( IDH5RAwrite = 434 ) + integer IDH5RAclose + parameter ( IDH5RAclose = 435 ) + integer IDH5RAcreate + parameter ( IDH5RAcreate = 436 ) + integer IDH5RAopen + parameter ( IDH5RAopen = 437 ) + integer IDH5RAread + parameter ( IDH5RAread = 438 ) + integer IDH5RAwrite + parameter ( IDH5RAwrite = 439 ) + integer IDH5Rcreate + parameter ( IDH5Rcreate = 440 ) + integer IDH5Rdereference + parameter ( IDH5Rdereference = 441 ) + integer IDH5Rgetobjecttype + parameter ( IDH5Rgetobjecttype = 442 ) + integer IDH5Rgetregion + parameter ( IDH5Rgetregion = 443 ) + integer IDH5Rinitinterface + parameter ( IDH5Rinitinterface = 444 ) + integer IDH5Rcreate + parameter ( IDH5Rcreate = 445 ) + integer IDH5Rdereference + parameter ( IDH5Rdereference = 446 ) + integer IDH5Rgetobjecttype + parameter ( IDH5Rgetobjecttype = 447 ) + integer IDH5Rgetregion + parameter ( IDH5Rgetregion = 448 ) + integer IDH5Sallbounds + parameter ( IDH5Sallbounds = 449 ) + integer IDH5Sallfavail + parameter ( IDH5Sallfavail = 450 ) + integer IDH5Sallfgath + parameter ( IDH5Sallfgath = 451 ) + integer IDH5Sallfscat + parameter ( IDH5Sallfscat = 452 ) + integer IDH5Sallinit + parameter ( IDH5Sallinit = 453 ) + integer IDH5Sallmgath + parameter ( IDH5Sallmgath = 454 ) + integer IDH5Sallmscat + parameter ( IDH5Sallmscat = 455 ) + integer IDH5Sallnpoints + parameter ( IDH5Sallnpoints = 456 ) + integer IDH5Sallrelease + parameter ( IDH5Sallrelease = 457 ) + integer IDH5Sallselectdeserialize + parameter ( IDH5Sallselectdeserialize = 458 ) + integer IDH5Sallselectserialize + parameter ( IDH5Sallselectserialize = 459 ) + integer IDH5Sclose + parameter ( IDH5Sclose = 460 ) + integer IDH5Scmp + parameter ( IDH5Scmp = 461 ) + integer IDH5Scopy + parameter ( IDH5Scopy = 462 ) + integer IDH5Screate + parameter ( IDH5Screate = 463 ) + integer IDH5Sdebug + parameter ( IDH5Sdebug = 464 ) + integer IDH5Sextend + parameter ( IDH5Sextend = 465 ) + integer IDH5Sextentcopy + parameter ( IDH5Sextentcopy = 466 ) + integer IDH5Sextentrelease + parameter ( IDH5Sextentrelease = 467 ) + integer IDH5Sfind + parameter ( IDH5Sfind = 468 ) + integer IDH5Sgetnpointsmax + parameter ( IDH5Sgetnpointsmax = 469 ) + integer IDH5Sgetselectbounds + parameter ( IDH5Sgetselectbounds = 470 ) + integer IDH5Sgetselectelemnpoints + parameter ( IDH5Sgetselectelemnpoints = 471 ) + integer IDH5Sgetselectelempointlist + parameter ( IDH5Sgetselectelempointlist = 472 ) + integer IDH5Sgetselecthyperblocklist + parameter ( IDH5Sgetselecthyperblocklist = 473 ) + integer IDH5Sgetselecthypernblocks + parameter ( IDH5Sgetselecthypernblocks = 474 ) + integer IDH5Sgetselectnpoints + parameter ( IDH5Sgetselectnpoints = 475 ) + integer IDH5Sgetsimpleextentdims + parameter ( IDH5Sgetsimpleextentdims = 476 ) + integer IDH5Sgetsimpleextentndims + parameter ( IDH5Sgetsimpleextentndims = 477 ) + integer IDH5Sgetsimpleextentnpoints + parameter ( IDH5Sgetsimpleextentnpoints = 478 ) + integer IDH5Shyperadd + parameter ( IDH5Shyperadd = 479 ) + integer IDH5Shyperblockcache + parameter ( IDH5Shyperblockcache = 480 ) + integer IDH5Shyperblockread + parameter ( IDH5Shyperblockread = 481 ) + integer IDH5Shyperblockwrite + parameter ( IDH5Shyperblockwrite = 482 ) + integer IDH5Shyperbounds + parameter ( IDH5Shyperbounds = 483 ) + integer IDH5Shyperbsearch + parameter ( IDH5Shyperbsearch = 484 ) + integer IDH5Shyperclip + parameter ( IDH5Shyperclip = 485 ) + integer IDH5Shypercopy + parameter ( IDH5Shypercopy = 486 ) + integer IDH5Shyperfavail + parameter ( IDH5Shyperfavail = 487 ) + integer IDH5Shyperfgath + parameter ( IDH5Shyperfgath = 488 ) + integer IDH5Shyperfread + parameter ( IDH5Shyperfread = 489 ) + integer IDH5Shyperfscat + parameter ( IDH5Shyperfscat = 490 ) + integer IDH5Shyperfwrite + parameter ( IDH5Shyperfwrite = 491 ) + integer IDH5Shypergetregions + parameter ( IDH5Shypergetregions = 492 ) + integer IDH5Shyperinit + parameter ( IDH5Shyperinit = 493 ) + integer IDH5Shypermgath + parameter ( IDH5Shypermgath = 494 ) + integer IDH5Shypermread + parameter ( IDH5Shypermread = 495 ) + integer IDH5Shypermscat + parameter ( IDH5Shypermscat = 496 ) + integer IDH5Shypermwrite + parameter ( IDH5Shypermwrite = 497 ) + integer IDH5Shypernodeadd + parameter ( IDH5Shypernodeadd = 498 ) + integer IDH5Shypernodeprepend + parameter ( IDH5Shypernodeprepend = 499 ) + integer IDH5Shypernoderelease + parameter ( IDH5Shypernoderelease = 500 ) + integer IDH5Shypernpoints + parameter ( IDH5Shypernpoints = 501 ) + integer IDH5Shyperrelease + parameter ( IDH5Shyperrelease = 502 ) + integer IDH5Shyperseliterrelease + parameter ( IDH5Shyperseliterrelease = 503 ) + integer IDH5Shyperselectdeserialize + parameter ( IDH5Shyperselectdeserialize = 504 ) + integer IDH5Shyperselectserialsize + parameter ( IDH5Shyperselectserialsize = 505 ) + integer IDH5Shyperselectvalid + parameter ( IDH5Shyperselectvalid = 506 ) + integer IDH5Sinitinterface + parameter ( IDH5Sinitinterface = 507 ) + integer IDH5Sissimple + parameter ( IDH5Sissimple = 508 ) + integer IDH5Smodify + parameter ( IDH5Smodify = 509 ) + integer IDH5Smpioalltype + parameter ( IDH5Smpioalltype = 510 ) + integer IDH5Smpiohypertype + parameter ( IDH5Smpiohypertype = 511 ) + integer IDH5Smpiospacetype + parameter ( IDH5Smpiospacetype = 512 ) + integer IDH5Smpiospacesread + parameter ( IDH5Smpiospacesread = 513 ) + integer IDH5Smpiospaceswrite + parameter ( IDH5Smpiospaceswrite = 514 ) + integer IDH5Smpiospacesxfer + parameter ( IDH5Smpiospacesxfer = 515 ) + integer IDH5Snoneselectdeserialize + parameter ( IDH5Snoneselectdeserialize = 516 ) + integer IDH5Snoneselectserialize + parameter ( IDH5Snoneselectserialize = 517 ) + integer IDH5Spointadd + parameter ( IDH5Spointadd = 518 ) + integer IDH5Spointbounds + parameter ( IDH5Spointbounds = 519 ) + integer IDH5Spointcopy + parameter ( IDH5Spointcopy = 520 ) + integer IDH5Spointfavail + parameter ( IDH5Spointfavail = 521 ) + integer IDH5Spointfgath + parameter ( IDH5Spointfgath = 522 ) + integer IDH5Spointfscat + parameter ( IDH5Spointfscat = 523 ) + integer IDH5Spointinit + parameter ( IDH5Spointinit = 524 ) + integer IDH5Spointmgath + parameter ( IDH5Spointmgath = 525 ) + integer IDH5Spointmscat + parameter ( IDH5Spointmscat = 526 ) + integer IDH5Spointnpoints + parameter ( IDH5Spointnpoints = 527 ) + integer IDH5Spointrelease + parameter ( IDH5Spointrelease = 528 ) + integer IDH5Spointselectdeserialize + parameter ( IDH5Spointselectdeserialize = 529 ) + integer IDH5Spointselectserialsize + parameter ( IDH5Spointselectserialsize = 530 ) + integer IDH5Spointselectserialize + parameter ( IDH5Spointselectserialize = 531 ) + integer IDH5Spointselectvalid + parameter ( IDH5Spointselectvalid = 532 ) + integer IDH5Sread + parameter ( IDH5Sread = 533 ) + integer IDH5Sregister + parameter ( IDH5Sregister = 534 ) + integer IDH5Sreleasesimple + parameter ( IDH5Sreleasesimple = 535 ) + integer IDH5Sseliterrelease + parameter ( IDH5Sseliterrelease = 536 ) + integer IDH5Sselectall + parameter ( IDH5Sselectall = 537 ) + integer IDH5Sselectcopy + parameter ( IDH5Sselectcopy = 538 ) + integer IDH5Sselectdeserialize + parameter ( IDH5Sselectdeserialize = 539 ) + integer IDH5Sselectelements + parameter ( IDH5Sselectelements = 540 ) + integer IDH5Sselecthyperslab + parameter ( IDH5Sselecthyperslab = 541 ) + integer IDH5Sselectnone + parameter ( IDH5Sselectnone = 542 ) + integer IDH5Sselectrelease + parameter ( IDH5Sselectrelease = 543 ) + integer IDH5Sselectserialsize + parameter ( IDH5Sselectserialsize = 544 ) + integer IDH5Sselectserialize + parameter ( IDH5Sselectserialize = 545 ) + integer IDH5Sselectvalid + parameter ( IDH5Sselectvalid = 546 ) + integer IDH5Ssetextentsimple + parameter ( IDH5Ssetextentsimple = 547 ) + integer IDH5Sclose + parameter ( IDH5Sclose = 548 ) + integer IDH5Scopy + parameter ( IDH5Scopy = 549 ) + integer IDH5Screate + parameter ( IDH5Screate = 550 ) + integer IDH5Screatesimple + parameter ( IDH5Screatesimple = 551 ) + integer IDH5Sgetselectbounds + parameter ( IDH5Sgetselectbounds = 552 ) + integer IDH5Sgetselectelemnpoints + parameter ( IDH5Sgetselectelemnpoints = 553 ) + integer IDH5Sgetselectelempointlist + parameter ( IDH5Sgetselectelempointlist = 554 ) + integer IDH5Sgetselecthyperblocklist + parameter ( IDH5Sgetselecthyperblocklist = 555 ) + integer IDH5Sgetselecthypernblocks + parameter ( IDH5Sgetselecthypernblocks = 556 ) + integer IDH5Sgetselectnpoints + parameter ( IDH5Sgetselectnpoints = 557 ) + integer IDH5Sgetsimpleextentdims + parameter ( IDH5Sgetsimpleextentdims = 558 ) + integer IDH5Sgetsimpleextentndims + parameter ( IDH5Sgetsimpleextentndims = 559 ) + integer IDH5Sgetsimpleextentnpoints + parameter ( IDH5Sgetsimpleextentnpoints = 560 ) + integer IDH5Sgetsimpleextenttype + parameter ( IDH5Sgetsimpleextenttype = 561 ) + integer IDH5Sissimple + parameter ( IDH5Sissimple = 562 ) + integer IDH5Soffsetsimple + parameter ( IDH5Soffsetsimple = 563 ) + integer IDH5Sselectall + parameter ( IDH5Sselectall = 564 ) + integer IDH5Sselectelements + parameter ( IDH5Sselectelements = 565 ) + integer IDH5Sselecthyperslab + parameter ( IDH5Sselecthyperslab = 566 ) + integer IDH5Sselectnone + parameter ( IDH5Sselectnone = 567 ) + integer IDH5Sselectvalid + parameter ( IDH5Sselectvalid = 568 ) + integer IDH5Ssetextentnone + parameter ( IDH5Ssetextentnone = 569 ) + integer IDH5Ssetextentsimple + parameter ( IDH5Ssetextentsimple = 570 ) + integer IDH5TBbufptr + parameter ( IDH5TBbufptr = 571 ) + integer IDH5TBclose + parameter ( IDH5TBclose = 572 ) + integer IDH5TBgarbagecoll + parameter ( IDH5TBgarbagecoll = 573 ) + integer IDH5TBgetbuf + parameter ( IDH5TBgetbuf = 574 ) + integer IDH5TBinitinterface + parameter ( IDH5TBinitinterface = 575 ) + integer IDH5TBreleasebuf + parameter ( IDH5TBreleasebuf = 576 ) + integer IDH5TBresizebuf + parameter ( IDH5TBresizebuf = 577 ) + integer IDH5Tbitgetd + parameter ( IDH5Tbitgetd = 578 ) + integer IDH5Tclose + parameter ( IDH5Tclose = 579 ) + integer IDH5Tcmp + parameter ( IDH5Tcmp = 580 ) + integer IDH5Tcommit + parameter ( IDH5Tcommit = 581 ) + integer IDH5Tconvdoublefloat + parameter ( IDH5Tconvdoublefloat = 582 ) + integer IDH5Tconvenum + parameter ( IDH5Tconvenum = 583 ) + integer IDH5Tconvenuminit + parameter ( IDH5Tconvenuminit = 584 ) + integer IDH5Tconvff + parameter ( IDH5Tconvff = 585 ) + integer IDH5Tconvfloatdouble + parameter ( IDH5Tconvfloatdouble = 586 ) + integer IDH5Tconvi32lef64le + parameter ( IDH5Tconvi32lef64le = 587 ) + integer IDH5Tconvii + parameter ( IDH5Tconvii = 588 ) + integer IDH5Tconvintllong + parameter ( IDH5Tconvintllong = 589 ) + integer IDH5Tconvintlong + parameter ( IDH5Tconvintlong = 590 ) + integer IDH5Tconvintschar + parameter ( IDH5Tconvintschar = 591 ) + integer IDH5Tconvintshort + parameter ( IDH5Tconvintshort = 592 ) + integer IDH5Tconvintuchar + parameter ( IDH5Tconvintuchar = 593 ) + integer IDH5Tconvintuint + parameter ( IDH5Tconvintuint = 594 ) + integer IDH5Tconvintullong + parameter ( IDH5Tconvintullong = 595 ) + integer IDH5Tconvintulong + parameter ( IDH5Tconvintulong = 596 ) + integer IDH5Tconvintushort + parameter ( IDH5Tconvintushort = 597 ) + integer IDH5Tconvllongint + parameter ( IDH5Tconvllongint = 598 ) + integer IDH5Tconvllonglong + parameter ( IDH5Tconvllonglong = 599 ) + integer IDH5Tconvllongschar + parameter ( IDH5Tconvllongschar = 600 ) + integer IDH5Tconvllongshort + parameter ( IDH5Tconvllongshort = 601 ) + integer IDH5Tconvllonguchar + parameter ( IDH5Tconvllonguchar = 602 ) + integer IDH5Tconvllonguint + parameter ( IDH5Tconvllonguint = 603 ) + integer IDH5Tconvllongullong + parameter ( IDH5Tconvllongullong = 604 ) + integer IDH5Tconvllongulong + parameter ( IDH5Tconvllongulong = 605 ) + integer IDH5Tconvllongushort + parameter ( IDH5Tconvllongushort = 606 ) + integer IDH5Tconvlongint + parameter ( IDH5Tconvlongint = 607 ) + integer IDH5Tconvlongllong + parameter ( IDH5Tconvlongllong = 608 ) + integer IDH5Tconvlongschar + parameter ( IDH5Tconvlongschar = 609 ) + integer IDH5Tconvlongshort + parameter ( IDH5Tconvlongshort = 610 ) + integer IDH5Tconvlonguchar + parameter ( IDH5Tconvlonguchar = 611 ) + integer IDH5Tconvlonguint + parameter ( IDH5Tconvlonguint = 612 ) + integer IDH5Tconvlongullong + parameter ( IDH5Tconvlongullong = 613 ) + integer IDH5Tconvlongulong + parameter ( IDH5Tconvlongulong = 614 ) + integer IDH5Tconvlongushort + parameter ( IDH5Tconvlongushort = 615 ) + integer IDH5Tconvnoop + parameter ( IDH5Tconvnoop = 616 ) + integer IDH5Tconvorder + parameter ( IDH5Tconvorder = 617 ) + integer IDH5Tconvss + parameter ( IDH5Tconvss = 618 ) + integer IDH5Tconvscharint + parameter ( IDH5Tconvscharint = 619 ) + integer IDH5Tconvscharllong + parameter ( IDH5Tconvscharllong = 620 ) + integer IDH5Tconvscharlong + parameter ( IDH5Tconvscharlong = 621 ) + integer IDH5Tconvscharshort + parameter ( IDH5Tconvscharshort = 622 ) + integer IDH5Tconvscharuchar + parameter ( IDH5Tconvscharuchar = 623 ) + integer IDH5Tconvscharuint + parameter ( IDH5Tconvscharuint = 624 ) + integer IDH5Tconvscharullong + parameter ( IDH5Tconvscharullong = 625 ) + integer IDH5Tconvscharulong + parameter ( IDH5Tconvscharulong = 626 ) + integer IDH5Tconvscharushort + parameter ( IDH5Tconvscharushort = 627 ) + integer IDH5Tconvshortint + parameter ( IDH5Tconvshortint = 628 ) + integer IDH5Tconvshortllong + parameter ( IDH5Tconvshortllong = 629 ) + integer IDH5Tconvshortlong + parameter ( IDH5Tconvshortlong = 630 ) + integer IDH5Tconvshortschar + parameter ( IDH5Tconvshortschar = 631 ) + integer IDH5Tconvshortuchar + parameter ( IDH5Tconvshortuchar = 632 ) + integer IDH5Tconvshortuint + parameter ( IDH5Tconvshortuint = 633 ) + integer IDH5Tconvshortullong + parameter ( IDH5Tconvshortullong = 634 ) + integer IDH5Tconvshortulong + parameter ( IDH5Tconvshortulong = 635 ) + integer IDH5Tconvshortushort + parameter ( IDH5Tconvshortushort = 636 ) + integer IDH5Tconvstruct + parameter ( IDH5Tconvstruct = 637 ) + integer IDH5Tconvstructinit + parameter ( IDH5Tconvstructinit = 638 ) + integer IDH5Tconvucharint + parameter ( IDH5Tconvucharint = 639 ) + integer IDH5Tconvucharllong + parameter ( IDH5Tconvucharllong = 640 ) + integer IDH5Tconvucharlong + parameter ( IDH5Tconvucharlong = 641 ) + integer IDH5Tconvucharschar + parameter ( IDH5Tconvucharschar = 642 ) + integer IDH5Tconvucharshort + parameter ( IDH5Tconvucharshort = 643 ) + integer IDH5Tconvucharuint + parameter ( IDH5Tconvucharuint = 644 ) + integer IDH5Tconvucharullong + parameter ( IDH5Tconvucharullong = 645 ) + integer IDH5Tconvucharulong + parameter ( IDH5Tconvucharulong = 646 ) + integer IDH5Tconvucharushort + parameter ( IDH5Tconvucharushort = 647 ) + integer IDH5Tconvuintint + parameter ( IDH5Tconvuintint = 648 ) + integer IDH5Tconvuintllong + parameter ( IDH5Tconvuintllong = 649 ) + integer IDH5Tconvuintlong + parameter ( IDH5Tconvuintlong = 650 ) + integer IDH5Tconvuintschar + parameter ( IDH5Tconvuintschar = 651 ) + integer IDH5Tconvuintshort + parameter ( IDH5Tconvuintshort = 652 ) + integer IDH5Tconvuintuchar + parameter ( IDH5Tconvuintuchar = 653 ) + integer IDH5Tconvuintullong + parameter ( IDH5Tconvuintullong = 654 ) + integer IDH5Tconvuintulong + parameter ( IDH5Tconvuintulong = 655 ) + integer IDH5Tconvuintushort + parameter ( IDH5Tconvuintushort = 656 ) + integer IDH5Tconvullongint + parameter ( IDH5Tconvullongint = 657 ) + integer IDH5Tconvullongllong + parameter ( IDH5Tconvullongllong = 658 ) + integer IDH5Tconvullonglong + parameter ( IDH5Tconvullonglong = 659 ) + integer IDH5Tconvullongschar + parameter ( IDH5Tconvullongschar = 660 ) + integer IDH5Tconvullongshort + parameter ( IDH5Tconvullongshort = 661 ) + integer IDH5Tconvullonguchar + parameter ( IDH5Tconvullonguchar = 662 ) + integer IDH5Tconvullonguint + parameter ( IDH5Tconvullonguint = 663 ) + integer IDH5Tconvullongulong + parameter ( IDH5Tconvullongulong = 664 ) + integer IDH5Tconvullongushort + parameter ( IDH5Tconvullongushort = 665 ) + integer IDH5Tconvulongint + parameter ( IDH5Tconvulongint = 666 ) + integer IDH5Tconvulonglong + parameter ( IDH5Tconvulonglong = 667 ) + integer IDH5Tconvulongschar + parameter ( IDH5Tconvulongschar = 668 ) + integer IDH5Tconvulongshort + parameter ( IDH5Tconvulongshort = 669 ) + integer IDH5Tconvulonguchar + parameter ( IDH5Tconvulonguchar = 670 ) + integer IDH5Tconvulonguint + parameter ( IDH5Tconvulonguint = 671 ) + integer IDH5Tconvulongullong + parameter ( IDH5Tconvulongullong = 672 ) + integer IDH5Tconvulongushort + parameter ( IDH5Tconvulongushort = 673 ) + integer IDH5Tconvushortint + parameter ( IDH5Tconvushortint = 674 ) + integer IDH5Tconvushortllong + parameter ( IDH5Tconvushortllong = 675 ) + integer IDH5Tconvushortlong + parameter ( IDH5Tconvushortlong = 676 ) + integer IDH5Tconvushortschar + parameter ( IDH5Tconvushortschar = 677 ) + integer IDH5Tconvushortshort + parameter ( IDH5Tconvushortshort = 678 ) + integer IDH5Tconvushortuchar + parameter ( IDH5Tconvushortuchar = 679 ) + integer IDH5Tconvushortuint + parameter ( IDH5Tconvushortuint = 680 ) + integer IDH5Tconvushortullong + parameter ( IDH5Tconvushortullong = 681 ) + integer IDH5Tconvushortulong + parameter ( IDH5Tconvushortulong = 682 ) + integer IDH5Tconvert + parameter ( IDH5Tconvert = 683 ) + integer IDH5Tcopy + parameter ( IDH5Tcopy = 684 ) + integer IDH5Tcreate + parameter ( IDH5Tcreate = 685 ) + integer IDH5Tdebug + parameter ( IDH5Tdebug = 686 ) + integer IDH5Tentof + parameter ( IDH5Tentof = 687 ) + integer IDH5Tenuminsert + parameter ( IDH5Tenuminsert = 688 ) + integer IDH5Tenumnameof + parameter ( IDH5Tenumnameof = 689 ) + integer IDH5Tgetsize + parameter ( IDH5Tgetsize = 690 ) + integer IDH5Tinit + parameter ( IDH5Tinit = 691 ) + integer IDH5Tinitinterface + parameter ( IDH5Tinitinterface = 692 ) + integer IDH5Tisatomic + parameter ( IDH5Tisatomic = 693 ) + integer IDH5Tisa + parameter ( IDH5Tisa = 694 ) + integer IDH5Tlock + parameter ( IDH5Tlock = 695 ) + integer IDH5Topen + parameter ( IDH5Topen = 696 ) + integer IDH5Topenoid + parameter ( IDH5Topenoid = 697 ) + integer IDH5Tpack + parameter ( IDH5Tpack = 698 ) + integer IDH5Tpathfind + parameter ( IDH5Tpathfind = 699 ) + integer IDH5Tprintstats + parameter ( IDH5Tprintstats = 700 ) + integer IDH5Tsetoffset + parameter ( IDH5Tsetoffset = 701 ) + integer IDH5Tsetprecision + parameter ( IDH5Tsetprecision = 702 ) + integer IDH5Tsetsize + parameter ( IDH5Tsetsize = 703 ) + integer IDH5Tsortname + parameter ( IDH5Tsortname = 704 ) + integer IDH5Tsortvalue + parameter ( IDH5Tsortvalue = 705 ) + integer IDH5Tstructinsert + parameter ( IDH5Tstructinsert = 706 ) + integer IDH5Tunlockcb + parameter ( IDH5Tunlockcb = 707 ) + integer IDH5Tclose + parameter ( IDH5Tclose = 708 ) + integer IDH5Tcommit + parameter ( IDH5Tcommit = 709 ) + integer IDH5Tcommitted + parameter ( IDH5Tcommitted = 710 ) + integer IDH5Tconvert + parameter ( IDH5Tconvert = 711 ) + integer IDH5Tcopy + parameter ( IDH5Tcopy = 712 ) + integer IDH5Tcreate + parameter ( IDH5Tcreate = 713 ) + integer IDH5Tenumcreate + parameter ( IDH5Tenumcreate = 714 ) + integer IDH5Tenuminsert + parameter ( IDH5Tenuminsert = 715 ) + integer IDH5Tenumnameof + parameter ( IDH5Tenumnameof = 716 ) + integer IDH5Tenumvalueof + parameter ( IDH5Tenumvalueof = 717 ) + integer IDH5Tequal + parameter ( IDH5Tequal = 718 ) + integer IDH5Tfind + parameter ( IDH5Tfind = 719 ) + integer IDH5Tgetclass + parameter ( IDH5Tgetclass = 720 ) + integer IDH5Tgetcset + parameter ( IDH5Tgetcset = 721 ) + integer IDH5Tgetebias + parameter ( IDH5Tgetebias = 722 ) + integer IDH5Tgetfields + parameter ( IDH5Tgetfields = 723 ) + integer IDH5Tgetinpad + parameter ( IDH5Tgetinpad = 724 ) + integer IDH5Tgetmemberdims + parameter ( IDH5Tgetmemberdims = 725 ) + integer IDH5Tgetmembername + parameter ( IDH5Tgetmembername = 726 ) + integer IDH5Tgetmemberoffset + parameter ( IDH5Tgetmemberoffset = 727 ) + integer IDH5Tgetmembertype + parameter ( IDH5Tgetmembertype = 728 ) + integer IDH5Tgetmembervalue + parameter ( IDH5Tgetmembervalue = 729 ) + integer IDH5Tgetnorm + parameter ( IDH5Tgetnorm = 730 ) + integer IDH5Tgetnummembers + parameter ( IDH5Tgetnummembers = 731 ) + integer IDH5Tgetoffset + parameter ( IDH5Tgetoffset = 732 ) + integer IDH5Tgetorder + parameter ( IDH5Tgetorder = 733 ) + integer IDH5Tgetoverflow + parameter ( IDH5Tgetoverflow = 734 ) + integer IDH5Tgetpad + parameter ( IDH5Tgetpad = 735 ) + integer IDH5Tgetprecision + parameter ( IDH5Tgetprecision = 736 ) + integer IDH5Tgetsign + parameter ( IDH5Tgetsign = 737 ) + integer IDH5Tgetsize + parameter ( IDH5Tgetsize = 738 ) + integer IDH5Tgetstrpad + parameter ( IDH5Tgetstrpad = 739 ) + integer IDH5Tgetsuper + parameter ( IDH5Tgetsuper = 740 ) + integer IDH5Tinsert + parameter ( IDH5Tinsert = 741 ) + integer IDH5Tinsertarray + parameter ( IDH5Tinsertarray = 742 ) + integer IDH5Tlock + parameter ( IDH5Tlock = 743 ) + integer IDH5Topen + parameter ( IDH5Topen = 744 ) + integer IDH5Tpack + parameter ( IDH5Tpack = 745 ) + integer IDH5Tregister + parameter ( IDH5Tregister = 746 ) + integer IDH5Tsetcset + parameter ( IDH5Tsetcset = 747 ) + integer IDH5Tsetebias + parameter ( IDH5Tsetebias = 748 ) + integer IDH5Tsetfields + parameter ( IDH5Tsetfields = 749 ) + integer IDH5Tsetinpad + parameter ( IDH5Tsetinpad = 750 ) + integer IDH5Tsetnorm + parameter ( IDH5Tsetnorm = 751 ) + integer IDH5Tsetoffset + parameter ( IDH5Tsetoffset = 752 ) + integer IDH5Tsetorder + parameter ( IDH5Tsetorder = 753 ) + integer IDH5Tsetoverflow + parameter ( IDH5Tsetoverflow = 754 ) + integer IDH5Tsetpad + parameter ( IDH5Tsetpad = 755 ) + integer IDH5Tsetprecision + parameter ( IDH5Tsetprecision = 756 ) + integer IDH5Tsetsign + parameter ( IDH5Tsetsign = 757 ) + integer IDH5Tsetsize + parameter ( IDH5Tsetsize = 758 ) + integer IDH5Tsetstrpad + parameter ( IDH5Tsetstrpad = 759 ) + integer IDH5Tunregister + parameter ( IDH5Tunregister = 760 ) + integer IDH5Varrayfill + parameter ( IDH5Varrayfill = 761 ) + integer IDH5Vhypercopy + parameter ( IDH5Vhypercopy = 762 ) + integer IDH5Vhyperfill + parameter ( IDH5Vhyperfill = 763 ) + integer IDH5Vhyperstride + parameter ( IDH5Vhyperstride = 764 ) + integer IDH5Vstridecopy + parameter ( IDH5Vstridecopy = 765 ) + integer IDH5Vstridecopy2 + parameter ( IDH5Vstridecopy2 = 766 ) + integer IDH5Vstridefill + parameter ( IDH5Vstridefill = 767 ) + integer IDH5Vstrideoptimize1 + parameter ( IDH5Vstrideoptimize1 = 768 ) + integer IDH5Vstrideoptimize2 + parameter ( IDH5Vstrideoptimize2 = 769 ) + integer IDH5Zappend + parameter ( IDH5Zappend = 770 ) + integer IDH5Zfilterdeflate + parameter ( IDH5Zfilterdeflate = 771 ) + integer IDH5Zfind + parameter ( IDH5Zfind = 772 ) + integer IDH5Zinitinterface + parameter ( IDH5Zinitinterface = 773 ) + integer IDH5Zpipeline + parameter ( IDH5Zpipeline = 774 ) + integer IDH5Zregister + parameter ( IDH5Zregister = 775 ) + integer IDH5Zregister + parameter ( IDH5Zregister = 776 ) + integer IDH5initlibrary + parameter ( IDH5initlibrary = 777 ) + integer IDH5getlibversion + parameter ( IDH5getlibversion = 778 ) + integer IDH5open + parameter ( IDH5open = 779 ) + integer IDALLHDF + parameter ( IDALLHDF = 780 ) + integer IDH5ACc + parameter ( IDH5ACc = 781 ) + integer IDH5Ac + parameter ( IDH5Ac = 782 ) + integer IDH5Bc + parameter ( IDH5Bc = 783 ) + integer IDH5Dc + parameter ( IDH5Dc = 784 ) + integer IDH5Ec + parameter ( IDH5Ec = 785 ) + integer IDH5Fc + parameter ( IDH5Fc = 786 ) + integer IDH5Farrayc + parameter ( IDH5Farrayc = 787 ) + integer IDH5Fcorec + parameter ( IDH5Fcorec = 788 ) + integer IDH5Ffamilyc + parameter ( IDH5Ffamilyc = 789 ) + integer IDH5Fistorec + parameter ( IDH5Fistorec = 790 ) + integer IDH5Flowc + parameter ( IDH5Flowc = 791 ) + integer IDH5Fmpioc + parameter ( IDH5Fmpioc = 792 ) + integer IDH5Fsec2c + parameter ( IDH5Fsec2c = 793 ) + integer IDH5Fsplitc + parameter ( IDH5Fsplitc = 794 ) + integer IDH5Fstdioc + parameter ( IDH5Fstdioc = 795 ) + integer IDH5Gc + parameter ( IDH5Gc = 796 ) + integer IDH5Gentc + parameter ( IDH5Gentc = 797 ) + integer IDH5Gnodec + parameter ( IDH5Gnodec = 798 ) + integer IDH5Gstabc + parameter ( IDH5Gstabc = 799 ) + integer IDH5HGc + parameter ( IDH5HGc = 800 ) + integer IDH5HLc + parameter ( IDH5HLc = 801 ) + integer IDH5Ic + parameter ( IDH5Ic = 802 ) + integer IDH5MFc + parameter ( IDH5MFc = 803 ) + integer IDH5MMc + parameter ( IDH5MMc = 804 ) + integer IDH5Oc + parameter ( IDH5Oc = 805 ) + integer IDH5Oattrc + parameter ( IDH5Oattrc = 806 ) + integer IDH5Ocontc + parameter ( IDH5Ocontc = 807 ) + integer IDH5Odtypec + parameter ( IDH5Odtypec = 808 ) + integer IDH5Oeflc + parameter ( IDH5Oeflc = 809 ) + integer IDH5Ofillc + parameter ( IDH5Ofillc = 810 ) + integer IDH5Olayoutc + parameter ( IDH5Olayoutc = 811 ) + integer IDH5Omtimec + parameter ( IDH5Omtimec = 812 ) + integer IDH5Onamec + parameter ( IDH5Onamec = 813 ) + integer IDH5Onullc + parameter ( IDH5Onullc = 814 ) + integer IDH5Oplinec + parameter ( IDH5Oplinec = 815 ) + integer IDH5Osdspacec + parameter ( IDH5Osdspacec = 816 ) + integer IDH5Osharedc + parameter ( IDH5Osharedc = 817 ) + integer IDH5Ostabc + parameter ( IDH5Ostabc = 818 ) + integer IDH5Pc + parameter ( IDH5Pc = 819 ) + integer IDH5RAc + parameter ( IDH5RAc = 820 ) + integer IDH5Rc + parameter ( IDH5Rc = 821 ) + integer IDH5Sc + parameter ( IDH5Sc = 822 ) + integer IDH5Sallc + parameter ( IDH5Sallc = 823 ) + integer IDH5Shyperc + parameter ( IDH5Shyperc = 824 ) + integer IDH5Snonec + parameter ( IDH5Snonec = 825 ) + integer IDH5Spointc + parameter ( IDH5Spointc = 826 ) + integer IDH5Sselectc + parameter ( IDH5Sselectc = 827 ) + integer IDH5TBc + parameter ( IDH5TBc = 828 ) + integer IDH5Tc + parameter ( IDH5Tc = 829 ) + integer IDH5Tbitc + parameter ( IDH5Tbitc = 830 ) + integer IDH5Tconvc + parameter ( IDH5Tconvc = 831 ) + integer IDH5Tinitc + parameter ( IDH5Tinitc = 832 ) + integer IDH5Vc + parameter ( IDH5Vc = 833 ) + integer IDH5Zc + parameter ( IDH5Zc = 834 ) + integer IDH5c + parameter ( IDH5c = 835 ) + integer RuntimeTrace + integer SummaryTrace + integer MPIRuntimeTrace + integer MPISummaryTrace + integer NoTrace + parameter (RuntimeTrace = 0) + parameter (SummaryTrace = 1) + parameter (MPIRuntimeTrace = 2) + parameter (MPISummaryTrace = 3) + parameter (NoTrace = 4) |