IOAPI 3.2.1

Dependencies

  • GCC = 9.3.0
  • MPICH = 3.4.2
  • Zlib = 1.2.11
  • Curl = 7.77.0
  • Netcdf-c disable netcdf-4 = 4.8.0
  • Netcdf-fortran = 4.5.3
  • Zstd = 1.5.2

Installation

After solving the aforementioned dependencies, you can proceed with the installation.

  1. Download the binaries
$ cd /home/blopezp
$ mkdir ioapi
$ cd ioapi
$ git clone https://github.com/cjcoats/ioapi-3.2.git
  1. Define the architecture to use and create the directory with the same name of the architecture, in our case “Linux2_x86_64gfort”.
$ export BIN=Linux2_x86_64gfort
$ mkdir Linux2_x86_64gfort
$ ln -sf /share/apps/netcdf-fortran/4.5.3_disable-netcdf-4/gcc-9.3.0/lib/* Linux2_x86_64gfort/
  1. Units and files.
$ module load gcc/9.3.0
$ module load mpich/3.4.2_gcc-9.3.0
$ module load zlib/1.2.11_gcc-9.3.0
$ module load curl/7.77.0_gcc-9.3.0
$ module load netcdf-fortran/4.5.3_gcc-9.3.0_disable-netcdf-4

$ cp ioapi/Makefile.nocpl ioapi/Makefile
$ cp m3tools/Makefile.nocpl m3tools/Makefile
$ cp Makefile.template Makefile
  1. Add the lines in the Makefile.
$ Vim Makefile

CPLMODE    = nocpl
PVMINCL    = /dev/null
LIBINST   = /home/blopezp/ioapi/lib
BININST   = /home/blopezp/ioapi/bin
VERSION    = 3.2-${CPLMODE}
BASEDIR    = ${PWD}
NCFLIBS    = -L/share/apps/netcdf-fortran/4.5.3_disable-netcdf-4/gcc-9.3.0/lib -lnetcdff -lnetcdf -lcurl -lzstd -lz
IODIR      = $(BASEDIR)/ioapi
FIXDIR     = $(IODIR)/fixed_src
HTMLDIR    = $(BASEDIR)/HTML
TOOLDIR    = $(BASEDIR)/m3tools
OBJDIR     = $(BASEDIR)/$(BIN)
  1. Add the lines in the ioapi/Makefile.
$ vim ioapi/Makefile

BASEDIR = /home/blopezp/ioapi
INSTDIR = /home/blopezp/ioapi/lib
IODIR  = ${BASEDIR}/ioapi
  1. Add the lines in the ioapi/Makeinclude.Linux2_x86_64gfort
$ vim ioapi/Makeinclude.Linux2_x86_64gfort

OMPFLAGS  =
OMPLIBS   =
-DIOAPI_NO_STDOUT=1 -DIOAPI_NCF4=1
  1. Add the lines in the m3tools/Makefile.
BASEDIR = /home/blopezp/ioapi
SRCDIR  = ${BASEDIR}/m3tools
IODIR   = ${BASEDIR}/ioapi
OBJDIR  = ${BASEDIR}/${BIN}
INSTDIR = /home/blopezp/ioapi/bin
  1. Compile Makefile
$ make |& tee make.log
$ make install |& tee make-install.log
  1. Test.
$ ./Linux2_x86_64gfort/juldate

Note

Users need IOAPI in their respective home for the compilation of WRF-CMAQ, as they need to change data.