The Models-3/EDSS Input/Output Applications Programming Interface (I/O API) provides the environmental model developer with an easy-to-learn, easy-to-use programming library for data storage and access, available from both Fortran and C. The same routines can be used for both file storage (using netCDF files) and model coupling (using PVM mailboxes). It is the standard data access library for both the NCSC/CMAS's EDSS project and EPA's Models-3. There was also an external-package wrapper for the I/O API in the Weather Research and Forecasting Model [WRF], which optionally uses I/O API coupling mode to couple WRF-Chem with SMOKE. [Unfortunately, that has not been kept up-to-date by NCAR.]
The I/O API provides a variety of data structure types for organizing the data, and a set of access routines which offer selective direct access to the data in terms meaningful to the modeler. For example,
Read layer 1 of variable 'OZONE' from 'CONCFILE' for 5:00 PM GMT on July 19, 1988 and put the result into array A.
is a direct English translation of a typical I/O API READ3() call.
"Selective direct access" means that this READ3 call retrieves exactly
this ozone data immediately. It does not have to read through previous
hours of data, nor whatever other variables (such as NOX or PAN) are
in the file. Data can be read or written in any order (or not at all).
This characteristic provides the following advantages:
I/O API files also have the following characteristics
The I/O API also contains an extensive set of utility routines for manipulating dates and times, performing coordinate conversions, storing and recalling grid definitions, sparse matrix arithmetic, etc., as well as a set of data-manipulation and statistical analysis programs. It has an extensive documentation set, including
Various extensions and research efforts to the I/O API have been developed or are under development. Developments include sparse-matrix arithmetic and I/O routines; high level WRF-format and MPAS-format netCDF I/O and utility routines; high level "raw netCDF" I/O routines; high-level geospatial and re-gridding routines; and the use of the I/O API interacting with PVM for model coupling, and adding operations to read or write entire time series (with multiple time steps) as single operations, and research projects include data-parallel I/O and a very powerful "geospatial cell complex" data type with polygonal-cell decompositions that may be both time independent (as for finite elememt modeling) and time dependent (as for moving-mesh plume-in-grid modeling).
There currently is no training available for i/o api
O/S | Linux or UNIX or MacOS |
Processor | basically anything fitting the above |
Memory | application dependent |
Disk Space | 500 MB |
Software | Fortran and C compilers selected from the following list:
|