The current release version of the I/O API library is Version 3.1; Versions 3.0 is in maintenance only release mode, and versions 2.2 and 2.1 are available for historic interest. Version 3.2-beta is available for early examination and testing. To download source for these, please go to the I/O API Download Page.
Release and
For each supported architecture, there are three relevant archive
libraries of compiled object files:
If you call I/O API routines, you will need
both libioapi.a and
libnetcdf.a (or their debug-compiled equivalents); if
you build with coupling mode enabled, you will also need
libpvm3.a. If you call only coordinate and grid or date
and time manipulation routines or utility routines, you will just
need libioapi.a.
I/O API
Version 3.x libraries have build support for the
following platforms (and supporting additional platforms generally
is quite easy, following the pattern of the existing builds):
Additionally, the libraries have in the past been compiled for a
number of other platforms, but the machines used for building
these no longer are available to compile and build the latest
versions of the libraries. It should be a simple task to build
versions of the libioapi.a and libnetcdf.a
archive libraries on most UNIX workstations--at least, those with
Feldman-descended Fortran compilers.
For C programmers:
Further note that since most of the library routines are C
wrappers around Fortran code, you need to use cc -c to
build ".o" files for your program, and then use
f77 or f77, as appropriate, to invoke the
linker (since f77 knows how to link in the Fortran
run-time libraries but cc doesn't), as in the
following example which builds SunOS5 program "qux" from
"qux.c":
To: Models-3/EDSS I/O API: The Help Pages
Makeinclude
files are available for the following
platforms:
AIX
AIX_
AIXdbg
cray/
HP-UXf90
Note: caution; I haven't had
an HPUX system to test on for over 5 years...
IRIX5f77
Not link-compatible with IRIX6*
IRIX5f90
Not link-compatible with IRIX5f77
nor
IRIX6*
IRIX64
Not link-compatible with IRIX5*
,
IRIX64f90
etc.
IRIX64dbg
IRIX64
but compiled for debug.
IRIX64f77
IRIX64
, for convenience in explicitly
specifying the compiler.
IRIX64f90
IRIX64
, but using f90.
Not link-compatible with IRIX64f77
etc.
IRIX64f90dbg
IRIX64f90
but compiled for debug.
IRIX64i8
IRIX64
but compiled for INTEGER*8
IRIX64i8f77
IRIX64i8
IRIX64r8f90
IRIX64f90
but compiled for
INTEGER*8
and REAL*8
IRIX6n32
Not link-compatible with IRIX6n32f90
nor IRIX5*
, IRIX64*
etc.
IRIX6n32dbg
IRIX6n32
but compiled for debug.
IRIX6n32f77
IRIX6n32
IRIX6n32f90
IRIX64
, but using f90.
Not link-compatible with IRIX6n32
,
IRIX64*
etc.
IRIX6n32f90dbg
IRIX6n32f90
but compiled for debug.
IRIX6n32r8f90
IRIX6n32f90
but compiled for
INTEGER*8
and REAL*8
Linux2_alpha
Linux2_alphadbg
Linux2_alpha
but compiled for debug.
Linux2_ia64
Linux2_ia64_mp
Linux2_ia64_nomp
Linux2_ia64
Linux2_ia64efc
Linux2_ia64
Linux2_ia64efcdbg
Linux2_ia64gcc
Linux2_ia64ifort
Linux2_ia64ifortdbg
Linux2_x86
Linux2_x86_64
Linux2_x86_64dbg
Linux2_x86_64g95
Linux2_x86_64path
Linux2_x86_64pathdbg
Linux2_x86dbg
Linux2_x86g95
Linux2_x86ifc
Linux2_x86ifcdbg
Linux2_x86lf95
Linux2_x86pg
Linux2_x86pg_gcc_mp
Linux2_x86pg
Linux2_x86pg_gcc_nomp
Linux2_x86pg
but no OpenMP support.
Use this one if you're using native (vendor-supplied
RedHat,SuSE, Mandriva, etc.) libnetcdf.a
Linux2_x86pg_pgcc_mp
Not link compatible with Linux2_x86pg
Linux2_x86pg_pgcc_nomp
OSF1
SunOS5
Not link compatible with
SunOS5f90
. No 64-bit support since I
don't have a 64-bit Sun system to develop and test on.
SunOS5dbg
SunOS5f77
SunOS5
SunOS5f90
Not link compatible with SunOS5
.
No 64-bit support since I don't have a 64-bit Sun system
to develop and test on.
SunOS5f90dbg
setenv LIB /env/apps/SunOS5/lib # library directory
cc -c qux.c # produces qux.o
f77 -o qux qux.o -L${LIB} -lioapi -lnetcdf # linking step
Previous: Data Types