/env/proj/ioapi on the Environmental Programs
workstations and in /home/xcc/m3io on
sequoia. On some of these systems (notably the Crays
and DEC Alphas), it is sufficient to include the following directive
as part of the "f77" command to get the Fortran compiler to
search for the INCLUDE files in the indicated directory.
However, the current Sun and SGI compilers requires that the INCLUDE files be visible to "f77" in the same directory as your Fortran source. For those platforms, it is recommended that you execute the commands below, so that the Fortran compiler will have access to the needed INCLUDE files.-I/env/proj/ioapi(on the workstation cluster), or
-I/home/xcc/m3io(on sequoia)
ln -s /env/proj/ioapi/PARMS3.EXT .
ln -s /env/proj/ioapi/FDESC3.EXT .
ln -s /env/proj/ioapi/IODECL3.EXT .
Note: 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.
The public I/O API routine
The dimensioning constants are:
Should only be used as a name based argument passing
mechanism; the user should have local variables to/from
which this data structure is copied immediately prior to or
immediately after calls which set or use these COMMONs, since
their values are subject to change at ny time by the I/O API.
Contains
Previous: Data Types Supported
Next: Public I/O routine CHECK3
To: Models-3/EDSS I/O API: The Help Pages
IOPARMS3 is provided as a
means for user/model-level code to check the integrity of these
dimensioning parameters.
The "magic number parameters" are:
FDESC3.EXT
contain Fortran data structures (COMMONs) and C typedefs for a
Models-3 file description. These files have extensive documentation
describing the function of each part of a file description.
The data structures they contain are used to pass data between
OPEN3() (when in a mode that may
involve file-creation), DESC3() , and
(for dictionary files only) READ3()
and WRITE3() .
BDESC3 is used to store the non-character-string data, and CDESC3
is used to store the character-string data (recall that the
Fortran 77 standard prohibits character and non-character data
in the same common). In particular, these data structures store
the following file-attributes:
fdesc3.h
IODECL3.EXT
contain declarations (function prototypes) and usage comments
for the Fortran and
C bindings respectively, for the
Models-3 I/O API. "iodecl3.h" also contains
function prototypes for those associated utility and
date-and-time-manipulation functions which are callable from C.
Actually, IODECL3.EXT should probably be considered a short
tutorial on usage of the I/O API in its own right.
iodecl3.h
ATDSC3.EXT and atdsc3.h
contains Fortran data structures and C typedefs for augmented file
descriptions used by I/O API file type
TSRIES3
(timeseries), which have multiple named REAL attributes per variable.
(Each variable represents a stream-network link).
Based upon FDESC33.EXT.
Requires PARMS3.EXT for dimensioning. Used
to pass data between OPEN3() (when in
a mode which may involve file-creation),
DESC3(), and their callers, and provides
name-based syntax for that purpose.
PARMS3.EXT and parms3.h