Availability of the EDSS/Models-3 I/O API

Please read the copyright, licensing, and acknowledgements page: The I/O API library is available under the Lesser Gnu Public License, version 2.1; the "tool" and example programs are available under the Gnu Public License, version 2.

I/O API Documents:

The EDSS Documentation for the EDSS/Models-3 I/O API is available only as HTML -- it was designed from the start as a heavily cross-linked hyperdocument, and is not available in linear dead-tree document-forms such as PDF. The EDSS Documentation for the EDSS/Models-3 I/O API is copyright (C) 1992-2000 MCNC. A gzipped tar-file snapshot is available here.

I/O API Version 2.2-Beta Availability:

Beta-test Version 2.2 of the I/O API library code is available here in source code form. New features of this release are documented here. The build procedure is the same as that for Version 2.1, documented below, except that the default object library directory is directly under the source code directory.

This download is current as of May 3, 2002

I/O API Version 2.1 Availability:

Updated May 7,2002 for SMOKE release: now produces a library named libioapi_v2.1.a instead of libioapi_new.a

Release Version 2.1 of the I/O API and the I/O -related tool and sample programs is available here in source code form. New features of this release are documented here. Makeinclude files are available for the following platforms:

From these examples and from a knowledge of the compiler user manual, it should be relatively easy to build Makeinclude files for most UNIX or UNIX-like platforms and compilers. Instructions for building the I/O API library libioapi_v2.1.a and the I/O API tool executable programs are as follows:

  1. Download the gzipped tar-file ioapi_21.tar.gz. It contains directories ioapi for the I/O API library source code,ioapi_doc for the HTML documentation, and ioapi_tools for the related tool programs.

  2. cd to the directory under which you wish to build the I/O API. gunzip and untar the ioapi_21.tar.gz (with Gnu tar,
    tar xvfz ioapi_v2.1.tar.gz
    does unzip-untar all in one step).

  3. setenv BIN <machinetype>
    where <machinetype> matches the extension on one of the Makeinclude.* (building your own Makeinclude if yours is not one of the supported systems).
    The usual pattern for generating BIN is
    setenv BIN `uname -s``uname -r | cut -d. -f1`
    although there are exceptions where more work is needed for Cray, SGI and Linux systems, and F90 or DEBUG compiles.

  4. The default directory for both executables and object libraries is in directory ../$BIN relative to the source code directories for the I/O [;API and tools. Edit the Makefile to put OBJDIR wherever you want it (if you want somewhere other than the default ../$BIN location)

  5. In the I/O API library source directory ioapi, type make to build the object library. The current build process will generate $OBJDIR/libioapi_v2.1.a (to distinguish it from earlier Version 1 $OBJDIR/libioapi.a); mv it to libioapi.a or libm3io.a, if desired.

  6. In the I/O API tool source directory ioapi_tools, type either make (if you have a F90-compliant Fortran compiler), or make f77 (if you don't) to build the tool-program executables (adjusting the LIB make-variable if you renamed $OBJDIR/libioapi_v2.1.a in the preceeding step). Note that there are a number of these programs that do require F90: dayagg, ginterp, m3cple, m3agmax, m3agmask, m3combo, m3merge, mtxblend, mtxbuild, mtxcalc, mtxcple, presterp, and selmrg2d.

Binary executables and object libraries are available for the following platforms; note that they were compiled on specific systems here at MCNC EMC, and may well suffer from shared-library and compiler compatibility problems on other platforms (particularly for Suns); the recommended procedure is to make the libraries and tools from source, but these are provided as a convenience to the users:

NOTE: On the Sun and SGI platforms, there are link incompatibilities between f77 and f90, caused by the fact that these vendors' f77 and f90 by default use different system libraries. Compaq, Cray, and IBM compilers do not seem to do this; however, it is probably advisable not to mix f77 and f90 compiles on a not-well-understood new platform.

I/O API Version 1 Availability:

I/O API library source code and related tool and example program source code (copyright MCNC 1992-1999) are available in tarred, gzipped (.tar.gz) form. Note to Internet Explorer users: IE seems to be brain-damaged in some fashion, and refuses to accept an FTP-URL to the current working directory. Try either using Netscape for the download or going to the EDSS download page, instead.

I/O API usage requires archive libraries libioapi.a compiled for your modeling platform. It also requires the Unidata netCDF library libnetcdf.a, version 3.x or later (NOTE: certain token-value parameters were changed between netCDF 2.x and 3.x; all that is required to build the I/O API for netCDF 2.x is to use that version's netcdf.inc INCLUDE-file and recompile libioapi.a.). If you are running in coupled-model mode, you also need the model-coupling library, as well as PVM 3.4 or later.

Both the libioapi.a object library and the m3tools.tar.gz set of I/O API-related programs are available for the following list of currently-supported host architectures:

Additionally, libioapi.a has in the past been compiled for Cray Y-MP/UNICOS, Cray C-90/UNICOS, SGI IRIX 4.x, SGI IRIX 6.x (n64 mode), Digital ULTRIX (both VAX and MIPS) and VAX/VMS, but the machines used for building these no longer are available to compile and build the latest versions of the libraries. Work is in progress on Cray T-3E and Win32; it should be a simple task to build versions of the libioapi.a and libnetcdf.a archive libraries and the I/O API-related programs on most UNIX workstations--at least, those with Feldman-descended f77's or those with g77 from the Free Software Foundation or the EGCS Project.

Please go to the EDSS Registration and Download page for more information about availability, software registration, and downloading of multiple EDSS subsystems, including not only the I/O API and its related tools but also the PAVE visualization system, the EDSS Study Planner, and the SMOKE emissions model.

NOTE:

Files with extension ".gz" or ".tgz" are compressed with the GNU gzip utility. Source for gzip is available from a number of FTP sites; executables for a variety of platforms are available from several sources, including ftp://ftp.netscape.com/pub/unsupported/gnu/. On windows platforms, either winzip or the Cygnus windows port of gzip can deal with ".gz" and ".tgz" files.

DISCLAIMER

This source code and these object libraries are available in unsupported form only, and MCNC accepts no liability for its usability or correctness for any purpose. See the "Notices" document for acknowledgements, copyright and licensing information.

On the other hand, its author thinks it is good stuffTM and welcomes comments and suggestions.


Send comments to
Carlie J. Coats, Jr.
coats@emc.mcnc.org