Dear CESM Scientists,
I am attempting an offline compilation of CTSM5.3.030, but I am currently encountering an error that I have been unable to resolve. During the build, the compiler fails in esm_utils_mod.F90 with
Error in opening the compiled module file. Check INCLUDE paths. [ESMF]
followed by a cascade of “conflicting attributes or multiple declaration” messages for ESMF_LogWrite, ESMF_FAILURE, and ESMF_LogFoundError. Although I have set ESMF_DIR and pointed both -I flags and linker flags to the correct ESMF install paths (including the modO/Linux.intel.64.mpich.default directory), the build still cannot locate esmf.mod and thus cannot resolve any of the ESMF symbols. I have cleaned the case (./case.clean --all), updated both env_build.xml and my shell environment to include the ESMF module and library directories, and rerun ./case.setup and ./case.build, but the same errors persist.
Could you please provide any guidance on correcting the module search paths? Additionally, since I am working in an offline environment, could you kindly share the CTSM5.3.030 compressed package (tarball) for me to use? I believe many beginners or users with poor network connections encounter numerous issues when cloning from GitHub, and I would also like to verify whether I experienced any problems during my own pull.
Thank you for your assistance!
Sincerely,
Peng Zhou
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(23): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [ESMF]
use ESMF, only : ESMF_LogFoundError, ESMF_LOGERR_PASSTHRU, ESMF_LOGMSG_INFO
--------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(47): error #6406: Conflicting attributes or multiple declaration of name. [ESMF_LOGWRITE]
call ESMF_LogWrite("ERROR: "//trim(lstring), ESMF_LOGMSG_INFO, line=line, file=file, rc=dbrc)
---------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(48): error #6406: Conflicting attributes or multiple declaration of name. [ESMF_FAILURE]
lrc = ESMF_FAILURE
----------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(52): error #6406: Conflicting attributes or multiple declaration of name. [ESMF_LOGFOUNDERROR]
if (ESMF_LogFoundError(rcToCheck=lrc, msg=ESMF_LOGERR_PASSTHRU, line=line, file=file)) then
--------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(52): error #6341: A logical data type is required in this context. [ESMF_LOGFOUNDERROR]
if (ESMF_LogFoundError(rcToCheck=lrc, msg=ESMF_LOGERR_PASSTHRU, line=line, file=file)) then
--------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(23): error #6580: Name in only-list does not exist or is not accessible. [ESMF_LOGFOUNDERROR]
use ESMF, only : ESMF_LogFoundError, ESMF_LOGERR_PASSTHRU, ESMF_LOGMSG_INFO
---------------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(23): error #6580: Name in only-list does not exist or is not accessible. [ESMF_LOGERR_PASSTHRU]
use ESMF, only : ESMF_LogFoundError, ESMF_LOGERR_PASSTHRU, ESMF_LOGMSG_INFO
-----------------------------------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(23): error #6580: Name in only-list does not exist or is not accessible. [ESMF_LOGMSG_INFO]
use ESMF, only : ESMF_LogFoundError, ESMF_LOGERR_PASSTHRU, ESMF_LOGMSG_INFO
---------------------------------------------------------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(24): error #6580: Name in only-list does not exist or is not accessible. [ESMF_FAILURE]
use ESMF, only : ESMF_FAILURE, ESMF_LogWrite
---------------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(24): error #6580: Name in only-list does not exist or is not accessible. [ESMF_LOGWRITE]
use ESMF, only : ESMF_FAILURE, ESMF_LogWrite
-----------------------------------^
compilation aborted for /XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90 (code 1)
gmake: *** [/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/cime/scripts/I20001/Tools/Makefile:949: esm_utils_mod.o] Error 1
gmake: *** Waiting for unfinished jobs....
intel_tianheXY.cmake:
string(APPEND CPPDEFS " -DNO_SHR_VMATH -DCNL")
if (DEBUG)
string(APPEND FFLAGS " -check all -ftrapuv")
endif()
set(ESMF_PATH "/APP/u22/x86/esmf/8.8.0-icc-oneapi2023.2-mpich-4.1.2-ch4")
set(ESMF_MOD_PATH "${ESMF_PATH}/mod/modO/Linux.intel.64.mpich.default")
set(ESMF_LIB_PATH "${ESMF_PATH}/lib")
string(APPEND FFLAGS
" -I${ESMF_MOD_PATH}"
" -I${ESMF_PATH}/include"
)
string(APPEND SLIBS
" ${ESMF_LIB_PATH}/libesmf.so"
)
string(APPEND SLIBS
" /APP/u22/x86/intel/oneapi2023.2/mkl/2023.2.0/lib/intel64/libmkl_intel_lp64.so"
" /APP/u22/x86/intel/oneapi2023.2/mkl/2023.2.0/lib/intel64/libmkl_intel_thread.so"
" /APP/u22/x86/intel/oneapi2023.2/mkl/2023.2.0/lib/intel64/libmkl_core.so"
" /APP/u22/x86/intel/oneapi2023.2/compiler/2023.2.0/linux/compiler/lib/intel64_lin/libiomp5.so")
set(PYTHONPATH "/APP/u22/x86/python3/3.9.7/")
set(MPI_LIB_NAME "mpi")
set(MPI_PATH "/APP/u22/x86/mpi/mpich/4.1.2-icc-oneapi2023.2-ch4/")
set(NETCDF_PATH "/APP/u22/x86/netcdf/4.9.3-icc-oneapi2023.2-mpich-4.1.2-ch4/")
execute_process(COMMAND /APP/u22/x86/netcdf/4.9.3-icc-oneapi2023.2-mpich-4.1.2-ch4/bin/nf-config --flibs OUTPUT_VARIABLE SHELL_CMD_OUTPUT_BUILD_INTERNAL_IGNORE0 OUTPUT_STRIP_TRAILING_WHITESPACE)
string(APPEND SLIBS " ${SHELL_CMD_OUTPUT_BUILD_INTERNAL_IGNORE0}")
config_machines.xml:
<machine MACH="tianheXY">
<DESC>NSCC-gz TianheXY, os is RedHat/Centos, 64 pes/node, batch system is Slurm</DESC>
<NODENAME_REGEX>tianheXY</NODENAME_REGEX>
<OS>linux</OS>
<COMPILERS>intel</COMPILERS>
<MPILIBS>mpich,mpi</MPILIBS>
<PROJECT>NSCC-GZ</PROJECT>
<CIME_OUTPUT_ROOT>/XYFS01/sysu_atmos_choujm_1/zhoup/CTSMoutput</CIME_OUTPUT_ROOT>
<DIN_LOC_ROOT>/XYFS01/sysu_atmos_choujm_1/zhoup/CLMinput/inputdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/XYFS01/sysu_atmos_choujm_1/zhoup/CLMinput/inputdata/atm/datm7</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/XYFS01/sysu_atmos_choujm_1/zhoup/CTSMoutput/projects/scratch/archive/$CASE</DOUT_S_ROOT>
<BASELINE_ROOT>/XYFS01/sysu_atmos_choujm_1/zhoup/CTSMoutput/projects/baselines</BASELINE_ROOT>
<CCSM_CPRNC>/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/cime/tools/cprnc/cprnc</CCSM_CPRNC>
<GMAKE_J>4</GMAKE_J>
<BATCH_SYSTEM>slurm</BATCH_SYSTEM>
<SUPPORTED_BY>Chenjingkun-nscc_gz</SUPPORTED_BY>
<MAX_TASKS_PER_NODE>64</MAX_TASKS_PER_NODE>
<MAX_MPITASKS_PER_NODE>64</MAX_MPITASKS_PER_NODE>
<mpirun mpilib="mpich">
<executable>srun</executable>
<arguments>
<arg name="label"> --label</arg>
<arg name="num_tasks" > -n {{ total_tasks }}</arg>
</arguments>
</mpirun>
<module_system type="none"/>
<environment_variables>
<env name="NETCDF_PATH">/APP/u22/x86/netcdf/4.9.3-icc-oneapi2023.2-mpich-4.1.2-ch4</env>
<env name="HDF5_PATH">/APP/u22/x86/hdf5/1.14.3-icc-oneapi2023.2</env>
<env name="ESMF_PATH">/APP/u22/x86/esmf/8.8.0-icc-oneapi2023.2-mpich-4.1.2-ch4</env>
<env name="ESMF_INCLUDE">/APP/u22/x86/esmf/8.8.0-icc-oneapi2023.2-mpich-4.1.2-ch4/mod/modO/Linux.intel.64.mpich.default</env>
<env name="ESMF_LIB">/APP/u22/x86/esmf/8.8.0-icc-oneapi2023.2-mpich-4.1.2-ch4/lib</env>
</environment_variables>
</machine>
config_batch.xml
<batch_system MACH="tianheXY" type="slurm" >
<batch_submit>sbatch</batch_submit>
<submit_args>
<arg flag="--time" name="$JOB_WALLCLOCK_TIME"/>
<arg flag="-p" name="$JOB_QUEUE"/>
</submit_args>
<queues>
<queue walltimemax="48:00:00" nodemin="1" nodemax="256" default="true">deimos</queue>
</queues>
Currently Loaded Modulefiles:
1) intel/oneapi2023.2_noimpi 6) netcdf/4.9.3-icc-oneapi2023.2-mpich-4.1.2-ch4
2) mpi/mpich/4.1.2-icc-oneapi2023.2-ch4 7) python/python3/3.9.7
3) pnetcdf/1.12.3-icc-oneapi2023.2-mpich-4.1.2-ch4 8) perl/5.41.8-gcc-11.4.0
4) hdf5/1.14.3-icc-oneapi2023.2-mpich-4.1.2-ch4 9) pio/ParallelIO-pio2.6.2-icc-2023
5) libxml/2.9.14-icc-2023 10) esmf/8.8.0-icc-oneapi2023.2-mpich-4.1.2-ch4
I am attempting an offline compilation of CTSM5.3.030, but I am currently encountering an error that I have been unable to resolve. During the build, the compiler fails in esm_utils_mod.F90 with
Error in opening the compiled module file. Check INCLUDE paths. [ESMF]
followed by a cascade of “conflicting attributes or multiple declaration” messages for ESMF_LogWrite, ESMF_FAILURE, and ESMF_LogFoundError. Although I have set ESMF_DIR and pointed both -I flags and linker flags to the correct ESMF install paths (including the modO/Linux.intel.64.mpich.default directory), the build still cannot locate esmf.mod and thus cannot resolve any of the ESMF symbols. I have cleaned the case (./case.clean --all), updated both env_build.xml and my shell environment to include the ESMF module and library directories, and rerun ./case.setup and ./case.build, but the same errors persist.
Could you please provide any guidance on correcting the module search paths? Additionally, since I am working in an offline environment, could you kindly share the CTSM5.3.030 compressed package (tarball) for me to use? I believe many beginners or users with poor network connections encounter numerous issues when cloning from GitHub, and I would also like to verify whether I experienced any problems during my own pull.
Thank you for your assistance!
Sincerely,
Peng Zhou
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(23): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [ESMF]
use ESMF, only : ESMF_LogFoundError, ESMF_LOGERR_PASSTHRU, ESMF_LOGMSG_INFO
--------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(47): error #6406: Conflicting attributes or multiple declaration of name. [ESMF_LOGWRITE]
call ESMF_LogWrite("ERROR: "//trim(lstring), ESMF_LOGMSG_INFO, line=line, file=file, rc=dbrc)
---------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(48): error #6406: Conflicting attributes or multiple declaration of name. [ESMF_FAILURE]
lrc = ESMF_FAILURE
----------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(52): error #6406: Conflicting attributes or multiple declaration of name. [ESMF_LOGFOUNDERROR]
if (ESMF_LogFoundError(rcToCheck=lrc, msg=ESMF_LOGERR_PASSTHRU, line=line, file=file)) then
--------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(52): error #6341: A logical data type is required in this context. [ESMF_LOGFOUNDERROR]
if (ESMF_LogFoundError(rcToCheck=lrc, msg=ESMF_LOGERR_PASSTHRU, line=line, file=file)) then
--------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(23): error #6580: Name in only-list does not exist or is not accessible. [ESMF_LOGFOUNDERROR]
use ESMF, only : ESMF_LogFoundError, ESMF_LOGERR_PASSTHRU, ESMF_LOGMSG_INFO
---------------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(23): error #6580: Name in only-list does not exist or is not accessible. [ESMF_LOGERR_PASSTHRU]
use ESMF, only : ESMF_LogFoundError, ESMF_LOGERR_PASSTHRU, ESMF_LOGMSG_INFO
-----------------------------------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(23): error #6580: Name in only-list does not exist or is not accessible. [ESMF_LOGMSG_INFO]
use ESMF, only : ESMF_LogFoundError, ESMF_LOGERR_PASSTHRU, ESMF_LOGMSG_INFO
---------------------------------------------------------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(24): error #6580: Name in only-list does not exist or is not accessible. [ESMF_FAILURE]
use ESMF, only : ESMF_FAILURE, ESMF_LogWrite
---------------------^
/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90(24): error #6580: Name in only-list does not exist or is not accessible. [ESMF_LOGWRITE]
use ESMF, only : ESMF_FAILURE, ESMF_LogWrite
-----------------------------------^
compilation aborted for /XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/components/cmeps/cesm/nuopc_cap_share/esm_utils_mod.F90 (code 1)
gmake: *** [/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/cime/scripts/I20001/Tools/Makefile:949: esm_utils_mod.o] Error 1
gmake: *** Waiting for unfinished jobs....
intel_tianheXY.cmake:
string(APPEND CPPDEFS " -DNO_SHR_VMATH -DCNL")
if (DEBUG)
string(APPEND FFLAGS " -check all -ftrapuv")
endif()
set(ESMF_PATH "/APP/u22/x86/esmf/8.8.0-icc-oneapi2023.2-mpich-4.1.2-ch4")
set(ESMF_MOD_PATH "${ESMF_PATH}/mod/modO/Linux.intel.64.mpich.default")
set(ESMF_LIB_PATH "${ESMF_PATH}/lib")
string(APPEND FFLAGS
" -I${ESMF_MOD_PATH}"
" -I${ESMF_PATH}/include"
)
string(APPEND SLIBS
" ${ESMF_LIB_PATH}/libesmf.so"
)
string(APPEND SLIBS
" /APP/u22/x86/intel/oneapi2023.2/mkl/2023.2.0/lib/intel64/libmkl_intel_lp64.so"
" /APP/u22/x86/intel/oneapi2023.2/mkl/2023.2.0/lib/intel64/libmkl_intel_thread.so"
" /APP/u22/x86/intel/oneapi2023.2/mkl/2023.2.0/lib/intel64/libmkl_core.so"
" /APP/u22/x86/intel/oneapi2023.2/compiler/2023.2.0/linux/compiler/lib/intel64_lin/libiomp5.so")
set(PYTHONPATH "/APP/u22/x86/python3/3.9.7/")
set(MPI_LIB_NAME "mpi")
set(MPI_PATH "/APP/u22/x86/mpi/mpich/4.1.2-icc-oneapi2023.2-ch4/")
set(NETCDF_PATH "/APP/u22/x86/netcdf/4.9.3-icc-oneapi2023.2-mpich-4.1.2-ch4/")
execute_process(COMMAND /APP/u22/x86/netcdf/4.9.3-icc-oneapi2023.2-mpich-4.1.2-ch4/bin/nf-config --flibs OUTPUT_VARIABLE SHELL_CMD_OUTPUT_BUILD_INTERNAL_IGNORE0 OUTPUT_STRIP_TRAILING_WHITESPACE)
string(APPEND SLIBS " ${SHELL_CMD_OUTPUT_BUILD_INTERNAL_IGNORE0}")
config_machines.xml:
<machine MACH="tianheXY">
<DESC>NSCC-gz TianheXY, os is RedHat/Centos, 64 pes/node, batch system is Slurm</DESC>
<NODENAME_REGEX>tianheXY</NODENAME_REGEX>
<OS>linux</OS>
<COMPILERS>intel</COMPILERS>
<MPILIBS>mpich,mpi</MPILIBS>
<PROJECT>NSCC-GZ</PROJECT>
<CIME_OUTPUT_ROOT>/XYFS01/sysu_atmos_choujm_1/zhoup/CTSMoutput</CIME_OUTPUT_ROOT>
<DIN_LOC_ROOT>/XYFS01/sysu_atmos_choujm_1/zhoup/CLMinput/inputdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/XYFS01/sysu_atmos_choujm_1/zhoup/CLMinput/inputdata/atm/datm7</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/XYFS01/sysu_atmos_choujm_1/zhoup/CTSMoutput/projects/scratch/archive/$CASE</DOUT_S_ROOT>
<BASELINE_ROOT>/XYFS01/sysu_atmos_choujm_1/zhoup/CTSMoutput/projects/baselines</BASELINE_ROOT>
<CCSM_CPRNC>/XYFS01/sysu_atmos_choujm_1/zhoup/ctsm5.3.030/cime/tools/cprnc/cprnc</CCSM_CPRNC>
<GMAKE_J>4</GMAKE_J>
<BATCH_SYSTEM>slurm</BATCH_SYSTEM>
<SUPPORTED_BY>Chenjingkun-nscc_gz</SUPPORTED_BY>
<MAX_TASKS_PER_NODE>64</MAX_TASKS_PER_NODE>
<MAX_MPITASKS_PER_NODE>64</MAX_MPITASKS_PER_NODE>
<mpirun mpilib="mpich">
<executable>srun</executable>
<arguments>
<arg name="label"> --label</arg>
<arg name="num_tasks" > -n {{ total_tasks }}</arg>
</arguments>
</mpirun>
<module_system type="none"/>
<environment_variables>
<env name="NETCDF_PATH">/APP/u22/x86/netcdf/4.9.3-icc-oneapi2023.2-mpich-4.1.2-ch4</env>
<env name="HDF5_PATH">/APP/u22/x86/hdf5/1.14.3-icc-oneapi2023.2</env>
<env name="ESMF_PATH">/APP/u22/x86/esmf/8.8.0-icc-oneapi2023.2-mpich-4.1.2-ch4</env>
<env name="ESMF_INCLUDE">/APP/u22/x86/esmf/8.8.0-icc-oneapi2023.2-mpich-4.1.2-ch4/mod/modO/Linux.intel.64.mpich.default</env>
<env name="ESMF_LIB">/APP/u22/x86/esmf/8.8.0-icc-oneapi2023.2-mpich-4.1.2-ch4/lib</env>
</environment_variables>
</machine>
config_batch.xml
<batch_system MACH="tianheXY" type="slurm" >
<batch_submit>sbatch</batch_submit>
<submit_args>
<arg flag="--time" name="$JOB_WALLCLOCK_TIME"/>
<arg flag="-p" name="$JOB_QUEUE"/>
</submit_args>
<queues>
<queue walltimemax="48:00:00" nodemin="1" nodemax="256" default="true">deimos</queue>
</queues>
Currently Loaded Modulefiles:
1) intel/oneapi2023.2_noimpi 6) netcdf/4.9.3-icc-oneapi2023.2-mpich-4.1.2-ch4
2) mpi/mpich/4.1.2-icc-oneapi2023.2-ch4 7) python/python3/3.9.7
3) pnetcdf/1.12.3-icc-oneapi2023.2-mpich-4.1.2-ch4 8) perl/5.41.8-gcc-11.4.0
4) hdf5/1.14.3-icc-oneapi2023.2-mpich-4.1.2-ch4 9) pio/ParallelIO-pio2.6.2-icc-2023
5) libxml/2.9.14-icc-2023 10) esmf/8.8.0-icc-oneapi2023.2-mpich-4.1.2-ch4