Skip to content

Unable to compile atmos_phys library #12

@p-espino

Description

@p-espino

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions