SUBROUTINE IOPARMS3( MXDLEN, NAMLEN, MXFILE, MXVARS, & MXDESC, MXLAYS, MXATTS ) INTEGER, INTENT( OUT ) :: MXDLEN ! description line length INTEGER, INTENT( OUT ) :: NAMLEN ! name length (logical names, etc.) INTEGER, INTENT( OUT ) :: MXFILE ! max number of open files INTEGER, INTENT( OUT ) :: MXVARS ! max number of variables per file INTEGER, INTENT( OUT ) :: MXDESC ! max number of description lines INTEGER, INTENT( OUT ) :: MXLAYS ! max # of layers per file INTEGER, INTENT( OUT ) :: MXATTS ! max # ATDSC .EXT attributes per variable
void IOPARMS3( int * mxdlen, int * namlen, int * mxfile, int * mxvars, int * mxdesc, int * mxlays, int * mxatts ) ;
These routines return the dimensioning parameters
MXDLEN, NAMLEN, MXFILE, MXVARS, MXDESC, MXLAYS, MXATTSfrom INCLUDE-file
PARMS3.EXTso that modelers may use them to ensure consistency between the dimensioning parameters used to build the libioapi.a library being used with those of the
PARMS3.EXTbeing used to build the current model.
Note that preserving the integrity of these dimensioning parameters is crucial to the integrity of executables built using the I/O API library, and therefore the license has a provision that when these values have been modified (as some parties are wont to do), and when as a result, the party involved requests support for problems caused by the changes to these parameters, the party who modified these values agrees to pay triple-time rates for that support. In this environment, where parties may have changed these parameters unbeknownst to the modeler, checking for the integrity of such model-builds is very important.
INCLUDE 'IODECL3.EXT'for Fortran, or
#include "iodecl3.h"for C.
... USE M3UTILIO ... INTEGER MXDLEN, NAMLEN, MXFILE, MXVARS INTEGER MXDESC, MXLAYS, MXATTS ... CALL IOPARMS3( MXDLEN, NAMLEN, MXFILE, MXVARS, & MXDESC, MXLAYS, MXATTS ) IF ( MXDLEN.NE.MXDLEN3 .OR. & NAMLEN.NE.NAMLEN3 .OR. & MXFILE.NE.MXFILE3 .OR. & MXVARS.NE.MXVARS3 .OR. & MXDESC.NE.MXDESC3 .OR. & MXLAYS.NE.MXLAYS3 .OR. & MXATTS.NE.MXATTS3 ) THEN CALL M3EXIT( PNAME,0,0, & 'Mis-matched "libioapi.a" and "PARMS3.EXT"', 2 ) END IF ...
To: Models-3/EDSS I/O API: The Help Pages