Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Offline CTSM5.3.030 Build Failure: ESMF Module Not Found & Request for CTSM5.3.030 Package

pengzhou

peng zhou
New Member
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
 
Top