Thanks for the feedback. Although I am not completely sure what is the solution or workaround to this.
Let me clarify, for I/O API I used the Makeinclude.Linux2_x86_64gfort10
as base. I had to include the --fallow-argument-mismatch
flag when building it since after a Google search, I found that adding it will remove the errors I was getting. The errors were the same as the ones shown in this other CMAS thread. However, the solution given there did not solve my problem. But adding this flag did. My guess that this issue was caused by the newer gcc version I am using.
Now, I made a test without using this flag when building CCTM and also linking the openmpi/include directory as CMAQ_HOME/lib/gcc/mpi. Therefore, the mpi.h file is present there now. However, I get the same error as before. The code complains that it cannot find that file. What should I do now?
Snapshot of the error:
distr_env.c:36:10: fatal error: mpi.h: No such file or directory
36 | #include "mpi.h"
| ^~~~~~~
compilation terminated.
make: *** [Makefile:461: distr_env.o] Error 1
make: *** Waiting for unfinished jobs....
Note 1: I am not using the -fopenmp
flag when building CCTM, since I also did not use it for I/O API. However, I am not sure whether I should specify something in other flags in my config_cmaq.csh, such as extra_lib, mpi_lib or myLINK_FLAG.
Note 2: I noticed that the Makefile created defines:
FC = mpifort
CC = gcc
Is this correct? Should not it be FC = gfortran
or something similar?
Before running the bldit_cctm.csh script I have set setenv FC gfortran
but then it is overwritten in the Makefile.