CMAQV53 Benchmark Run "Cannot open shared object file"

Hello,

I decided to rebuild my entire CMAQ from the ground up including the libraries since there seemed to be no solution to my other problem. I am now running into this problem when I try and run the benchmark.

This is potentially a LD_LIBRARY_PATH problem… or a failure to follow the CMAQ-build instructions.
Evidently, you are using a vendor supplied shared-object netCDF library, rather than following the advice to build a static netCDF library using the same compiler and flags as you used for CMAQ, and using the resulting (libnetcdf.a and) libnetcdf.a to build CMAQ.

Note that shared library usage is particularly problematic on institutional servers, since it frequently requires module load… commands that may be incompatible with the batch-servers used on those same machines ;-(

I was following the commands given in https://github.com/USEPA/CMAQ/blob/master/DOCS/Users_Guide/Tutorials/CMAQ_UG_tutorial_build_library_gcc.md I didnt see anything about shared vs static

I tried to redo the NetCDF Fortran part with a static library as you suggested but now I am getting the error

checking if Fortran “byte” is C “signed char”… configure: error: Could not link conftestf.o and conftest.o

The I/O API manual is at
https://www.cmascenter.org/ioapi/documentation/all_versions/html/AA.html
and https://cjcoats.github.io/ioapi/AA.html; the
“Availability/Download/Installation” link is under that, e.g.,
https://www.cmascenter.org/ioapi/documentation/all_versions/html/AVAIL.html

See Item 8 under “Build and installation instructions for I/O API Versions
3.0, 3.1, and 3.2”.

See also
https://www.cmascenter.org/ioapi/documentation/all_versions/html/AVAIL.html#ncf4
for info about recommended configuration
information for netCDF.

To the extent the CMAQ tutorial has misled you on these points, it needs
to be fixed.

FWIW –

Carlie J. Coats, Jr., Ph.D. cjcoats@email.unc.edu
Senior Software Engineer I/O API Author/Maintainer
Center for Environmental Modeling for Policy Development,
UNC Institute for the Environment www.ie.unc.edu
100 Europa Dr., Suite 490 Rm 4051 / Campus Box 1105 919.843.5951
Chapel Hill, NC 27599-1105 Fax 919.966.9920

1 Like

So I have succesfully fixed the problem with my netCDF Fortran by setting the LIBS=-lgfortran and both the FC and F77 to gfortran.

Now I am getting a new problem when trying to run make in /m3tools. I get the error:

collect2: error: ld returned 1 exit status
Makefile:208: recipe for target ‘airs2m3’ failed
make: *** [airs2m3] Error 1

make.log.txt (1.9 KB)

This is yet another of those netCDF-incompatible-from-version-to-version problems. Add

-DIOAPI_NCF4=1

to the ARCHFLAGS in your ioapi/Makeinclude.${BIN} and then do

make clean; make

in your I/O API directory.

1 Like

Totally worked! Thanks!

Hi
I have a question about benchmarking. Why we have different errors for different species? For example, my maximum error for ozone is 0.08%, but for NO2 is 4.5%!! Why we don’t have similar errors for all of the species??
Thank you

Hi Esm,
Please ask this type of question in a new issue. Adding comments to existing issues makes it difficult to track and answer your question. You can reference the existing issue by putting a link within your new issue to an older issue as follows: CMAQV53 Benchmark Run "Cannot open shared object file"
Thank you, Liz

Hi Liz,

Ok, Thank you.