# I/O API installation LINUX 3.10.0-1127.19.1.el7.x86\_64

**URL:** <https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975>\
**Category:** I/O API\
**Tags:** admin, smoke\
**Created:** [December 8, 2020, 9:32pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975 "2020-12-08T21:32:30Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Iqbal](https://avatars.discourse-cdn.com/v4/letter/i/bc8723/32.png) [@Iqbal](https://forum.cmascenter.org/u/Iqbal)\
**Post date:** [December 8, 2020, 9:32pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975/1 "2020-12-08T21:32:30Z")

</div>

Hello,  
I am trying to install I/O API (my target is to work on CMAQ, CAMx output). I have Linux 3 86\*64 (attached image) and netcdf v 4.3.3.1, and also gfortran 4.8.5 and pgf90 compiler.

In ioapi make file, I don’t see any makefile for Linux 3. Please see the error:  
[root@adeq ioapi]# make fixed\_src  
Makefile:85: /root/web31/ioapi/Makeinclude.Linux3: No such file or directory  
make: \*\*\* No rule to make target `/root/web31/ioapi/Makeinclude.Linux3’. Stop.

What exact command I need to use to install it?

Thanks in advance

 ![Screenshot from 2020-12-08 15-27-30](https://canada1.discourse-cdn.com/flex027/uploads/cmas/original/2X/3/325e984040b76fc50f55a5862eb164d3dc6a2909.png)

---

<div class="post-metadata">

**Author:** ![lizadams](https://avatars.discourse-cdn.com/v4/letter/l/49beb7/32.png) [@lizadams](https://forum.cmascenter.org/u/lizadams)\
**Post date:** [December 8, 2020, 9:37pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975/2 "2020-12-08T21:37:37Z")

</div>

You can use the Makeinclude.Linux2\_x86\_64gfort as a starting place.

```auto
cp Makeinclude.Linux2_x86_64gfort Makeinclude.Linux3

```

---

<div class="post-metadata">

**Author:** ![cjcoats](https://avatars.discourse-cdn.com/v4/letter/c/ac8455/32.png) [@cjcoats](https://forum.cmascenter.org/u/cjcoats)\
**Post date:** [December 8, 2020, 10:30pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975/3 "2020-12-08T22:30:59Z")

</div>

BTW, you will also need netCDF-Fortran (UCAR decided to split apart the C, the C++, and the Fortran bindings into three separate libraries, starting with netCDF-4.

And be aware that unless you’re using “gfortran” as your Fortran compiler, you should build these netCDF libraries yourself using the same compiler that you’re using for the I/O API and CMAQ (and SMOKE…): differences in run-time libraries tend to mean that libraries built with one compiler are not compatible with executables built with a different one.

---

<div class="post-metadata">

**Author:** ![Iqbal](https://avatars.discourse-cdn.com/v4/letter/i/bc8723/32.png) [@Iqbal](https://forum.cmascenter.org/u/Iqbal)\
**Post date:** [December 9, 2020, 5:23pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975/4 "2020-12-09T17:23:55Z")

</div>

Thank you so much for your reply. I am kind of lost here and I couldn’t figure out how to install it from the [https://www.cmascenter.org/ioapi/documentation/all\_versions/html/AVAIL.html#build](https://www.cmascenter.org/ioapi/documentation/all_versions/html/AVAIL.html#build)  
Here is what I am doing step by step as mentioned in the above link:

Step 1 & 2: The directory where ‘gtar xvfz ioapi-3.1.tar.gz’ applied is /root/Documents/softwares/ioapi\_install

Step-3: I have used PGI compiler for CAMx/CMAQ compiling and trying to use PGI compiler for the I/O API. So, in the ‘ioapi’ directory , I applied  
cp Makeinclude.Linux2\_x86\_64pg Makeinclude.Linux3  
Then from /root/Documents/softwares/ioapi\_install/ioapi, I modified BASEDIR in ‘makefile.nocpl’. And copied that modified ‘makefile.nocpl’ to /root/Documents/softwares/ioapi\_install/m3tools  
Step-4, 5 & 6: Skipped

Step 7: Then I generated BIN by using setenv BIN `uname -s``uname -r | cut -d. -f1`  
I don’t understand what this line is suggesting "  
and then modify the result by appending any compiler specifics, e.g., for F90, debug- or profile-compiled configurations" in the above link

Step- 8: I have netcdf 4.3.3.1 already installed (attached screenshot). How can I “Acquire and build the netCDF library, libnetcdf.a (and libnetcdff.a for netCDF-4.1 or later), for each configuration”

Would you please help me to finish the process?

 ![Screenshot from 2020-12-09 11-22-01](https://canada1.discourse-cdn.com/flex027/uploads/cmas/original/2X/5/5c8b5bd0a71ceb659e07e36718c8492ebe42f1d4.png) ![Screenshot from 2020-12-09 10-25-40](https://canada1.discourse-cdn.com/flex027/uploads/cmas/original/2X/8/817189678d59bfb77327a77ecbff48a7ec15dcea.png)

---

<div class="post-metadata">

**Author:** ![Iqbal](https://avatars.discourse-cdn.com/v4/letter/i/bc8723/32.png) [@Iqbal](https://forum.cmascenter.org/u/Iqbal)\
**Post date:** [December 9, 2020, 5:40pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975/5 "2020-12-09T17:40:15Z")

</div>

Thank you so much. I have installed netCDF 4.3.3.1 from Linux Centos 7 by using following commands  
yum install netcdf-devel  
yum install netcdf-fortran-devel

I am using PGI compiler for the I/O API which is Makeinclude2\_86\_64pg. How do I figure out which compiler was used while I installed netcdf from centos 7 command?. For the gfortran, is the make file "Makeinclude\_86\_64gfort’?.

Could you please help me how to proceed step-8 of the installation process ([https://www.cmascenter.org/ioapi/documentation/all\_versions/html/AVAIL.html#ncf4](https://www.cmascenter.org/ioapi/documentation/all_versions/html/AVAIL.html#ncf4)) if I use gfortran for I/O API?.

Thanks in advance

 ![Screenshot from 2020-12-09 11-22-01](https://canada1.discourse-cdn.com/flex027/uploads/cmas/original/2X/5/5c8b5bd0a71ceb659e07e36718c8492ebe42f1d4.png)

---

<div class="post-metadata">

**Author:** ![cjcoats](https://avatars.discourse-cdn.com/v4/letter/c/ac8455/32.png) [@cjcoats](https://forum.cmascenter.org/u/cjcoats)\
**Post date:** [December 9, 2020, 5:42pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975/6 "2020-12-09T17:42:51Z")

</div>

OK.

I/O API 3.2 is the current version. 3.1 is in legacy-only maintenance mode.

One of the reasons for 3.2 was changes in netCDF, version 4.1 and later: they eliminated the older `CALL NC_...` interfaces in favor of newer `IERR=NF_...` ones. More than 700 such calls in version 3.1 were replaced in version 3.2. If you insist on I/O API 3.1, then go back to netCDF 3.6.2.

(7): As stated, Linux versions 2,3,4 are all syscall-compatible (but different from 1), so Linux2 is the standard “root” for `$BIN` values, which then have suffixes for compiler-set (or separately for C and Fortran compilers, e.g., for a mixed _gcc-pgf90_ build), debug-or-optimized, profiling-or-not, small- or medium-memory model, climatology-year, etc.

(8) netCDF is from UniDATA; this item gives the netCDF home page; or for downloads, see [https://www.unidata.ucar.edu/downloads/netcdf/](https://www.unidata.ucar.edu/downloads/netcdf/)

(9), (10), (11) should be straightforward; (12) applies only for version 3.1.

---

<div class="post-metadata">

**Author:** ![Iqbal](https://avatars.discourse-cdn.com/v4/letter/i/bc8723/32.png) [@Iqbal](https://forum.cmascenter.org/u/Iqbal)\
**Post date:** [December 11, 2020, 5:31pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975/7 "2020-12-11T17:31:17Z")

</div>

Hello,  
As your suggestion, I am installing I/O API v3.2 because my netCDF is 4.1 version. I have done following so far according to the readme.tx file from I/O API (attached):  
I have completed Step:1 to Step: 6 successfully.  
Then I copied libnetcdf.a and libnetcdff.a in the $BIN folder. (Step-8)  
Then I ran ‘make’ command in the $BASEDIR/ioapi, and It was successful (Step-7). which generated libioapi.a  
Then I ran ‘make’ command in $BASEDIR/m3tools, and it was sucessful (Step-9) which created bunch of files in $BIN (attached screenshot).  
Then when I tried step-10 to ensure that everything is working correctly, by using the command ‘make test’ in $BASEDIR, Its giving me the output  
[root@adeq m3tools]# cd $BASEDIR  
[root@adeq ioapi-3.2-20200828]# make test  
make: \*\*\* No rule to make target `test’. Stop.

Also, in Step -7, when I tried ‘make fixed\_src’ for the CMAQ, It gave me the  
make : Nothing to be done for ‘fixed\_src’

So, would you please help to understand why step-10 is not working and ‘make fixed\_src’ ?

 ![Screenshot from 2020-12-11 10-58-34](https://canada1.discourse-cdn.com/flex027/uploads/cmas/original/2X/7/7310efb8c8af294d88aa122e8481527adeb8d20e.png) ![Screenshot from 2020-12-11 11-00-12](https://canada1.discourse-cdn.com/flex027/uploads/cmas/original/2X/a/aa5593cbb83c01476b22800676af922761e833f1.png) ![Screenshot from 2020-12-11 11-01-05](https://canada1.discourse-cdn.com/flex027/uploads/cmas/original/2X/2/237ef48f9d64be360487c233dbec3203a744f4f1.png) ![Screenshot from 2020-12-11 11-21-36](https://canada1.discourse-cdn.com/flex027/uploads/cmas/original/2X/b/b4a6b644f506a18cff62406d9fe675a8eabd72dc.png) [README.txt](https://forum.cmascenter.org/uploads/short-url/hoJ84yFrgEEwVTp672i6nv1gl6m.txt) (7.7 KB)

---

<div class="post-metadata">

**Author:** ![cjcoats](https://avatars.discourse-cdn.com/v4/letter/c/ac8455/32.png) [@cjcoats](https://forum.cmascenter.org/u/cjcoats)\
**Post date:** [December 11, 2020, 7:12pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975/8 "2020-12-11T19:12:12Z")

</div>

That means \*ioapi/fixed\_\*src is up-to-date. If you did a _git pull -a_ that resulted in new versions of the `INCLUDE`-files, then that _make_ command would actually have work to do…

---

<div class="post-metadata">

**Author:** ![Iqbal](https://avatars.discourse-cdn.com/v4/letter/i/bc8723/32.png) [@Iqbal](https://forum.cmascenter.org/u/Iqbal)\
**Post date:** [December 16, 2020, 5:20pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975/9 "2020-12-16T17:20:27Z")

</div>

Hi @cjcoats,  
That means for CMAQ, CAMX , I don’t have to do anything else, is that right?.

---

<div class="post-metadata">

**Author:** ![cjcoats](https://avatars.discourse-cdn.com/v4/letter/c/ac8455/32.png) [@cjcoats](https://forum.cmascenter.org/u/cjcoats)\
**Post date:** [December 16, 2020, 5:25pm UTC](https://forum.cmascenter.org/t/i-o-api-installation-linux-3-10-0-1127-19-1-el7-x86-64/1975/10 "2020-12-16T17:25:39Z")

</div>

that is right.

[More characters to make the forum software happy…]
