-
Notifications
You must be signed in to change notification settings - Fork 14
Description
Hello,
I am currently trying to compile ESM4 from source on one of Princeton's newer systems (tiger3). I am able to get through the FMS compilation stage, and get a library libFMS.a where I expect. The Makefile and templates have been properly edited to include the right paths to netcdf and hdf5, as evidenced by the successful build of FMS. However, the compilation fails when attempting to compile the atmos_phys library, with several errors similar to the following:
/scratch/gpfs/GEOCLIM/climate/ESM4/src/atmos_phys/atmos_param/shallow_conv.F90(211): error #6285: There is no matching specific subroutine for this generic subroutine call. [COMPUTE_QS]
call compute_qs (Temp, pfull, qsat)
-------^
Several other codes fail to compile with similar errors. The exact command that the Makefile is executing when compiling this particular code is:
mpiifort -DINTERNAL_FILE_NML -g -DCLUBB -Wp,-w -I/usr/local/netcdf/oneapi-2024.2/hdf5-1.14.4/intel-mpi/4.9.2/include -I/usr/local/hdf5/oneapi-2024.2/intel-mpi/1.14.4/include -fp-model source -O2 -qoverride-limits -I/scratch/gpfs/GEOCLIM/climate/ESM4/exec/fms/build/.mods -I/scratch/gpfs/GEOCLIM/climate/ESM4/src/FMS/include -c /scratch/gpfs/GEOCLIM/climate/ESM4/src/atmos_phys/atmos_param/shallow_conv/shallow_conv.F90
The compiler being used by mpiifort is ifx, but I've also tried using the old intel compiler, ifort, as well as gcc/11 (after disabling the barrier that ESM4 has on using gcc/11 - unfortunately, this is the only version available on this system) and the intel compilers with different mpi implementations (in particular OpenMPI) - I get the same error for all of these environments. I've also tried compiling this particular code with the simplified commands below
mpiifort -I/scratch/gpfs/GEOCLIM/climate/ESM4/exec/fms/build/.mods -I/scratch/gpfs/GEOCLIM/climate/ESM4/src/FMS/include -c /scratch/gpfs/GEOCLIM/climate/ESM4/src/atmos_phys/atmos_param/shallow_conv/shallow_conv.F90
and
ifort -I/scratch/gpfs/GEOCLIM/climate/ESM4/exec/fms/build/.mods -I/scratch/gpfs/GEOCLIM/climate/ESM4/src/FMS/include -c /scratch/gpfs/GEOCLIM/climate/ESM4/src/atmos_phys/atmos_param/shallow_conv/shallow_conv.F90
but get the same errors. My troubleshooting suggests that this error could arise due to inconsistent interface definitions (all of the functions not recognized in this compilation stage are defined in FMS).
Can you please help me compile the atmos_phys library without needing to modify the FMS source code? Thank you.
Below are some of the modules I am currently using:
intel-tbb/2021.13
intel-oneapi/2024.2
hdf5/oneapi-2024.2/intel-mpi/1.14.4
intel-mkl/2024.2
intel-rt/2024.2
intel-mpi/oneapi/2021.13
netcdf/oneapi-2024.2/hdf5-1.14.4/intel-mpi/4.9.2