Subroutine IOPARMS3

Fortran version:

        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
    

C version:

    void IOPARMS3( int * mxdlen,
                   int * namlen,
                   int * mxfile,
                   int * mxvars,
                   int * mxdesc,
                   int * mxlays,
                   int * mxatts ) ;
    

Summary:

These routines return the dimensioning parameters MXDLEN, NAMLEN, MXFILE, MXVARS, MXDESC, MXLAYS, MXATTS from INCLUDE-file PARMS3.EXT so 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.EXT being 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.

Preconditions:

USE M3UTILIO or INCLUDE 'IODECL3.EXT' for Fortran, or #include "iodecl3.h" for C.

Fortran Usage:

    ...
    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
    ...


Previous: GRDCHK3

Next: READ4D

To: Models-3/EDSS I/O API: The Help Pages