How to compile IOAPI and CMAQ with cray compilers (ftn/cc/CC)

Dear CMAQ developers and users,

I am trying to compile the IOAPI-3.2 library and CMAQv5.4 model with cray compilers (ftn/cc/CC). I have experience with compiling IOAPI and CMAQ with PGI and Intel compilers before but I have moved to a new place where cray compilers are used. As I have very little experience with cray computer and cray compilers, I would like to ask for your advice on how to compile IOAPI and CMAQ using cray compilers. If anyone has done it before, please kindly help me out. I already built netCDF with netCDF-4, DAP, and HDF disabled as suggested by the developers using cray compilers.

Thank you.

The I/O API still has BIN=cray (with the flags in Makeinclude.cray), but that is thirty years out of date – was used on Cray C90 vector-supercomputers of the late 80s/early 90s, so almost-certainly is not appropriate for your machine.

The idea is to invent a BIN – say CRAYFTN, maybe – and then create a Makeinclude.$BIN with flags and definitions appropriate for your current compilers (or a pair of BINs, with flags for optimized and debug), and use that for your I/O API, SMOKE, and M3Tools builds. You can probably use the log of your netCDF builds to determine what might be appropriate flags.

For CMAQ, you’ll have to use the CMAQ build system to create Makefiles for some compiler-set it knows about, and then go back and modify them manually to use the Cray compilers and their appropriate flags.

Get it working, and get the result back to me and I’ll include it in the I/O API distribution, with credit to you in the documentation.