Hi,
I used to compile and run MPAS version 7 and want to test the recent versions of MPAS. For this, I am trying to compile MPAS-Model-8.2.2 using several available compilation options, namely ifort, ifort-gcc, intel-mpi, and gfortran. All create different errors and don't create the executable. First several lines of errors as soon as errors are produced for each options are:
ifort or ifort-gcc: (errors are produced at the beginning of the compilation)
mpif90 -D_MPI -DCORE_INIT_ATMOSPHERE -DMPAS_NAMELIST_SUFFIX=init_atmosphere -DMPAS_EXE_NAME=init_atmosphere_model -DSINGLE_PRECISION -DMPAS_NATIVE_TIMERS -DMPAS_GIT_VERSION=unknown -DMPAS_BUILD_TARGET=ifort -DMPAS_SMIOL_SUPPORT -DHIDE_MPI -O3 -convert big_endian -free -align array64byte -c ESMF_BaseMod.F90 -I/home/kgurer/mpas.utils/installed/include -I/data/mmb/raqm/work/users/kgurer/mpas/MPAS-Model-8.2.2/src/external/SMIOL -I/home/kgurer/mpas.utils/installed/include -I.
gfortran: error: big_endian: No such file or directory
gfortran: error: array64byte: No such file or directory
gfortran: error: unrecognized command line option ‘-convert’
gfortran: error: unrecognized command line option ‘-align’
make[4]: *** [Makefile:60: ESMF_BaseMod.o] Error 1
gfortran: (many modules are compiled and errors come after couple minutes or so)
mpif90 -O3 -o init_atmosphere_model driver/*.o -L. -ldycore -lops -lframework -L/data/mmb/raqm/work/users/kgurer/mpas/MPAS-Model-8.2.2/src/external/SMIOL -lsmiolf -lsmiol -L/home/kgurer/mpas.utils/installed/lib -lhdf5_hl -lhdf5 -ldl -lz -I./external/esmf_time_f90 -L./external/esmf_time_f90 -lesmf_time
/data/mmb/raqm/work/users/kgurer/mpas/MPAS-Model-8.2.2/src/external/SMIOL/libsmiol.a(smiol.o): In function `SMIOL_open_file':
smiol.c.text+0x3d1): undefined reference to `ncmpi_open'
smiol.c.text+0x482): undefined reference to `ncmpi_open'
smiol.c.text+0x4a3): undefined reference to `ncmpi_buffer_attach'
smiol.c.text+0x4da): undefined reference to `ncmpi_create'
intel-mpi:
mpiifort -O3 -o init_atmosphere_model driver/*.o -L. -ldycore -lops -lframework -L/data/mmb/raqm/work/users/kgurer/mpas/MPAS-Model-8.2.2/src/external/SMIOL -lsmiolf -lsmiol -L/home/kgurer/mpas.utils/installed/lib -lhdf5_hl -lhdf5 -ldl -lz -I./external/esmf_time_f90 -L./external/esmf_time_f90 -lesmf_time
./libframework.a(mpas_dmpar.o): In function `mpas_dmpar_mp_mpas_dmpar_finalize_':
mpas_dmpar.F.text+0x1e): undefined reference to `mpi_comm_free_f08_'
mpas_dmpar.F.text+0x2f): undefined reference to `mpi_finalize_f08_'
./libframework.a(mpas_dmpar.o): In function `mpas_dmpar_mp_mpas_dmpar_bcast_int_':
mpas_dmpar.F.text+0xab): undefined reference to `mpi_bcast_f08ts_'
The command and settings that I have are:
"make intel-mpi CORE=init_atmosphere AUTOCLEAN=true"
MPAS_EXTERNAL_LIBS=-L/home/kgurer/mpas.utils/installed/lib -lhdf5_hl -lhdf5 -ldl -lz
MPAS_EXTERNAL_INCLUDES=-I/home/kgurer/mpas.utils/installed/include
I compiled the required libraries using source files and script located at:
and here are the list of libraries that I generated:
-rwxr-xr-x 1 37M Oct 25 13:52 libmpi.so.12.1.7*
lrwxrwxrwx 1 16 Oct 25 13:52 libmpi.so.12 -> libmpi.so.12.1.7*
lrwxrwxrwx 1 16 Oct 25 13:52 libmpi.so -> libmpi.so.12.1.7*
-rwxr-xr-x 1 981 Oct 25 13:52 libmpi.la*
-rwxr-xr-x 1 13M Oct 25 13:52 libmpifort.so.12.1.7*
lrwxrwxrwx 1 20 Oct 25 13:52 libmpifort.so.12 -> libmpifort.so.12.1.7*
lrwxrwxrwx 1 20 Oct 25 13:52 libmpifort.so -> libmpifort.so.12.1.7*
-rwxr-xr-x 1 1.1K Oct 25 13:52 libmpifort.la*
-rwxr-xr-x 1 178K Oct 25 13:52 libmpicxx.so.12.1.7*
lrwxrwxrwx 1 19 Oct 25 13:52 libmpicxx.so.12 -> libmpicxx.so.12.1.7*
lrwxrwxrwx 1 19 Oct 25 13:52 libmpicxx.so -> libmpicxx.so.12.1.7*
-rwxr-xr-x 1 1.1K Oct 25 13:52 libmpicxx.la*
-rw-r--r-- 1 117M Oct 25 13:52 libmpi.a
-rw-r--r-- 1 49M Oct 25 13:52 libmpifort.a
-rw-r--r-- 1 248K Oct 25 13:52 libmpicxx.a
lrwxrwxrwx 1 9 Oct 25 13:52 libmpl.so -> libmpi.so*
lrwxrwxrwx 1 9 Oct 25 13:52 libopa.so -> libmpi.so*
lrwxrwxrwx 1 9 Oct 25 13:52 libmpich.so -> libmpi.so*
lrwxrwxrwx 1 13 Oct 25 13:52 libfmpich.so -> libmpifort.so*
lrwxrwxrwx 1 13 Oct 25 13:52 libmpichf90.so -> libmpifort.so*
lrwxrwxrwx 1 12 Oct 25 13:52 libmpichcxx.so -> libmpicxx.so*
-rw-r--r-- 1 305K Oct 25 13:52 libz.a
-rwxr-xr-x 1 942 Oct 25 13:54 libhdf5.la*
-rw-r--r-- 1 38M Oct 25 13:54 libhdf5.a
-rw-r--r-- 1 3.9K Oct 25 13:54 libhdf5.settings
-rwxr-xr-x 1 1000 Oct 25 13:54 libhdf5_hl.la*
-rw-r--r-- 1 1009K Oct 25 13:54 libhdf5_hl.a
-rwxr-xr-x 1 1.1K Oct 25 13:55 libpnetcdf.la*
-rw-r--r-- 1 20M Oct 25 13:55 libpnetcdf.a
-rwxr-xr-x 1 1.3K Oct 25 13:56 libnetcdf.la*
-rw-r--r-- 1 4.0M Oct 25 13:56 libnetcdf.a
-rw-r--r-- 1 986 Oct 25 13:56 libnetcdf.settings
-rwxr-xr-x 1 1.4K Oct 25 13:56 libnetcdff.la*
-rw-r--r-- 1 1.6M Oct 25 13:56 libnetcdff.a
drwxr-xr-x 2 142 Oct 25 13:56 pkgconfig/
-rw-r--r-- 1 980K Oct 25 13:57 libpioc.a
-rw-r--r-- 1 784K Oct 25 13:57 libpiof.a
I couldn't find the libraries that gfortran and intel-mpi are looking for within the local library that I generated as well as system mpi libraries.
My questions are:
Which option should I use for Centos 8 Linux machine?
Where can I find those libraries that missing?
How are the local mpi libraries used compared to the mpi libraries that system has?
Thank you.
Kemal.
I used to compile and run MPAS version 7 and want to test the recent versions of MPAS. For this, I am trying to compile MPAS-Model-8.2.2 using several available compilation options, namely ifort, ifort-gcc, intel-mpi, and gfortran. All create different errors and don't create the executable. First several lines of errors as soon as errors are produced for each options are:
ifort or ifort-gcc: (errors are produced at the beginning of the compilation)
mpif90 -D_MPI -DCORE_INIT_ATMOSPHERE -DMPAS_NAMELIST_SUFFIX=init_atmosphere -DMPAS_EXE_NAME=init_atmosphere_model -DSINGLE_PRECISION -DMPAS_NATIVE_TIMERS -DMPAS_GIT_VERSION=unknown -DMPAS_BUILD_TARGET=ifort -DMPAS_SMIOL_SUPPORT -DHIDE_MPI -O3 -convert big_endian -free -align array64byte -c ESMF_BaseMod.F90 -I/home/kgurer/mpas.utils/installed/include -I/data/mmb/raqm/work/users/kgurer/mpas/MPAS-Model-8.2.2/src/external/SMIOL -I/home/kgurer/mpas.utils/installed/include -I.
gfortran: error: big_endian: No such file or directory
gfortran: error: array64byte: No such file or directory
gfortran: error: unrecognized command line option ‘-convert’
gfortran: error: unrecognized command line option ‘-align’
make[4]: *** [Makefile:60: ESMF_BaseMod.o] Error 1
gfortran: (many modules are compiled and errors come after couple minutes or so)
mpif90 -O3 -o init_atmosphere_model driver/*.o -L. -ldycore -lops -lframework -L/data/mmb/raqm/work/users/kgurer/mpas/MPAS-Model-8.2.2/src/external/SMIOL -lsmiolf -lsmiol -L/home/kgurer/mpas.utils/installed/lib -lhdf5_hl -lhdf5 -ldl -lz -I./external/esmf_time_f90 -L./external/esmf_time_f90 -lesmf_time
/data/mmb/raqm/work/users/kgurer/mpas/MPAS-Model-8.2.2/src/external/SMIOL/libsmiol.a(smiol.o): In function `SMIOL_open_file':
smiol.c.text+0x3d1): undefined reference to `ncmpi_open'
smiol.c.text+0x482): undefined reference to `ncmpi_open'
smiol.c.text+0x4a3): undefined reference to `ncmpi_buffer_attach'
smiol.c.text+0x4da): undefined reference to `ncmpi_create'
intel-mpi:
mpiifort -O3 -o init_atmosphere_model driver/*.o -L. -ldycore -lops -lframework -L/data/mmb/raqm/work/users/kgurer/mpas/MPAS-Model-8.2.2/src/external/SMIOL -lsmiolf -lsmiol -L/home/kgurer/mpas.utils/installed/lib -lhdf5_hl -lhdf5 -ldl -lz -I./external/esmf_time_f90 -L./external/esmf_time_f90 -lesmf_time
./libframework.a(mpas_dmpar.o): In function `mpas_dmpar_mp_mpas_dmpar_finalize_':
mpas_dmpar.F.text+0x1e): undefined reference to `mpi_comm_free_f08_'
mpas_dmpar.F.text+0x2f): undefined reference to `mpi_finalize_f08_'
./libframework.a(mpas_dmpar.o): In function `mpas_dmpar_mp_mpas_dmpar_bcast_int_':
mpas_dmpar.F.text+0xab): undefined reference to `mpi_bcast_f08ts_'
The command and settings that I have are:
"make intel-mpi CORE=init_atmosphere AUTOCLEAN=true"
MPAS_EXTERNAL_LIBS=-L/home/kgurer/mpas.utils/installed/lib -lhdf5_hl -lhdf5 -ldl -lz
MPAS_EXTERNAL_INCLUDES=-I/home/kgurer/mpas.utils/installed/include
I compiled the required libraries using source files and script located at:
and here are the list of libraries that I generated:
-rwxr-xr-x 1 37M Oct 25 13:52 libmpi.so.12.1.7*
lrwxrwxrwx 1 16 Oct 25 13:52 libmpi.so.12 -> libmpi.so.12.1.7*
lrwxrwxrwx 1 16 Oct 25 13:52 libmpi.so -> libmpi.so.12.1.7*
-rwxr-xr-x 1 981 Oct 25 13:52 libmpi.la*
-rwxr-xr-x 1 13M Oct 25 13:52 libmpifort.so.12.1.7*
lrwxrwxrwx 1 20 Oct 25 13:52 libmpifort.so.12 -> libmpifort.so.12.1.7*
lrwxrwxrwx 1 20 Oct 25 13:52 libmpifort.so -> libmpifort.so.12.1.7*
-rwxr-xr-x 1 1.1K Oct 25 13:52 libmpifort.la*
-rwxr-xr-x 1 178K Oct 25 13:52 libmpicxx.so.12.1.7*
lrwxrwxrwx 1 19 Oct 25 13:52 libmpicxx.so.12 -> libmpicxx.so.12.1.7*
lrwxrwxrwx 1 19 Oct 25 13:52 libmpicxx.so -> libmpicxx.so.12.1.7*
-rwxr-xr-x 1 1.1K Oct 25 13:52 libmpicxx.la*
-rw-r--r-- 1 117M Oct 25 13:52 libmpi.a
-rw-r--r-- 1 49M Oct 25 13:52 libmpifort.a
-rw-r--r-- 1 248K Oct 25 13:52 libmpicxx.a
lrwxrwxrwx 1 9 Oct 25 13:52 libmpl.so -> libmpi.so*
lrwxrwxrwx 1 9 Oct 25 13:52 libopa.so -> libmpi.so*
lrwxrwxrwx 1 9 Oct 25 13:52 libmpich.so -> libmpi.so*
lrwxrwxrwx 1 13 Oct 25 13:52 libfmpich.so -> libmpifort.so*
lrwxrwxrwx 1 13 Oct 25 13:52 libmpichf90.so -> libmpifort.so*
lrwxrwxrwx 1 12 Oct 25 13:52 libmpichcxx.so -> libmpicxx.so*
-rw-r--r-- 1 305K Oct 25 13:52 libz.a
-rwxr-xr-x 1 942 Oct 25 13:54 libhdf5.la*
-rw-r--r-- 1 38M Oct 25 13:54 libhdf5.a
-rw-r--r-- 1 3.9K Oct 25 13:54 libhdf5.settings
-rwxr-xr-x 1 1000 Oct 25 13:54 libhdf5_hl.la*
-rw-r--r-- 1 1009K Oct 25 13:54 libhdf5_hl.a
-rwxr-xr-x 1 1.1K Oct 25 13:55 libpnetcdf.la*
-rw-r--r-- 1 20M Oct 25 13:55 libpnetcdf.a
-rwxr-xr-x 1 1.3K Oct 25 13:56 libnetcdf.la*
-rw-r--r-- 1 4.0M Oct 25 13:56 libnetcdf.a
-rw-r--r-- 1 986 Oct 25 13:56 libnetcdf.settings
-rwxr-xr-x 1 1.4K Oct 25 13:56 libnetcdff.la*
-rw-r--r-- 1 1.6M Oct 25 13:56 libnetcdff.a
drwxr-xr-x 2 142 Oct 25 13:56 pkgconfig/
-rw-r--r-- 1 980K Oct 25 13:57 libpioc.a
-rw-r--r-- 1 784K Oct 25 13:57 libpiof.a
I couldn't find the libraries that gfortran and intel-mpi are looking for within the local library that I generated as well as system mpi libraries.
My questions are:
Which option should I use for Centos 8 Linux machine?
Where can I find those libraries that missing?
How are the local mpi libraries used compared to the mpi libraries that system has?
Thank you.
Kemal.