I'm currently porting the CLM5.0 component (from CESM 2.0.04) to a new machine. While testing a single-point case encountered an error when running ./preview_namelists:
Setting resource.RLIMIT_CORE to -1 from (0, -1)
Setting resource.RLIMIT_DATA to -1 from (-1, -1)
Setting resource.RLIMIT_STACK to -1 from (8388608, -1)
Creating component namelists
Calling /data2_249/luojx_data2/moshi/clm5.0/cime/src/components/data_comps/datm/cime_config/buildnml
Calling /data2_249/luojx_data2/moshi/clm5.0/cime_config/buildnml
ERROR: Command /data2_249/luojx_data2/moshi/clm5.0/bld/build-namelist failed rc=2
out=
err=Can't locate bigint.pm in @INC (you may need to install the bigint module) (@INC contains: /data2_249/luojx_data2/moshi/clm5.0/bld /data2_249/luojx_data2/moshi/clm5.0/bld /data2_249/luojx_data2/moshi/clm5.0/cime/scripts/Tools/../../utils/perl5lib /data2_249/luojx_data2/moshi/clm5.0/bld /home/luojx/luojx_data2/software_199/install/perl5/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /data2_249/luojx_data2/moshi/clm5.0/bld/config_files/clm_phys_vers.pm line 30.
BEGIN failed--compilation aborted at /data2_249/luojx_data2/moshi/clm5.0/bld/config_files/clm_phys_vers.pm line 30.
Compilation failed in require at /data2_249/luojx_data2/moshi/clm5.0/bld/CLMBuildNamelist.pm line 374.
To address this, I installed the bigint module and added it to my ~/.bashrc configuration. The module appears to be properly installed, as confirmed by the test command:
$ perl -MMath::BigInt -e 'print "Module loaded\n"'
Module loaded
However, the issue persists despite this installation. I would greatly appreciate any suggestions or insights into resolving this problem.
The porting information in config_machines.xml:
<machine MACH="han">
<DESC>
Example port to centos7 linux system with gcc, netcdf, pnetcdf and mpich
using modules from Environment Modules – A Great Tool for Clusters » ADMIN Magazine
</DESC>
<NODENAME_REGEX>regex.expression.matching.your.machine</NODENAME_REGEX>
<OS>LINUX</OS>
<PROXY> https://howto.get.out </PROXY>
<COMPILERS>gnu</COMPILERS>
<MPILIBS>mpich</MPILIBS>
<PROJECT>none</PROJECT>
<SAVE_TIMING_DIR>/home/luojx/luojx_data2/moshi/clm5.0/timing</SAVE_TIMING_DIR>
<CIME_OUTPUT_ROOT>/home/luojx/luojx_data2/moshi/clm5.0/output</CIME_OUTPUT_ROOT>
<DIN_LOC_ROOT>/data249/0PublicData/CLM5_landdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/data249/0PublicData/CLM5_landdata/atm/datm7</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/home/luojx/luojx_data2/moshi/clm5.0/output/$CASE</DOUT_S_ROOT>
<BASELINE_ROOT>/home/luojx/luojx_data2/moshi/clm5.0/output/cesm_baselines</BASELINE_ROOT>
<CCSM_CPRNC>/home/luojx/luojx_data2/moshi/clm5.0/cime/cesm/tools/cprnc/build/cprnc</CCSM_CPRNC>
<GMAKE>make</GMAKE>
<GMAKE_J>2</GMAKE_J>
<BATCH_SYSTEM>none</BATCH_SYSTEM>
<SUPPORTED_BY>me@my.address</SUPPORTED_BY>
<MAX_TASKS_PER_NODE>20</MAX_TASKS_PER_NODE>
<MAX_MPITASKS_PER_NODE>20</MAX_MPITASKS_PER_NODE>
<PROJECT_REQUIRED>FALSE</PROJECT_REQUIRED>
<mpirun mpilib="default">
<executable>mpirun</executable>
<arguments>
<arg name="ntasks"> -np $TOTALPES </arg>
</arguments>
</mpirun>
<module_system type="none">
</module_system>
<environment_variables>
<env name="COMPILER">gnu</env>
<env name="OMP_STACKSIZE">256M</env>
<env name="NETCDF_PATH">/scratch/PublicSoftware/netcdf-gfortran/</env>
<env name="HDF5_PATH">/scratch/PublicSoftware/netcdf-gfortran/</env>
<env name="ESMF_PATH">/home/luojx/luojx_data2/software_199/install/ESMF/</env>
</environment_variables>
<resource_limits>
<resource name="RLIMIT_CORE">-1</resource>
<resource name="RLIMIT_DATA">-1</resource>
<resource name="RLIMIT_STACK">-1</resource>
</resource_limits>
</machine>
The porting information in config_compilers.xml:
<compiler COMPILER="gnu" MACH="han">
<CFLAGS>
<base> -std=gnu99 </base>
<append compile_threaded="true"> -fopenmp </append>
<append DEBUG="TRUE"> -g -Wall -Og -fbacktrace -ffpe-trap=invalid,zero,overflow -fcheck=bounds </append>
<append DEBUG="FALSE"> -O </append>
</CFLAGS>
<CPPDEFS>
<!-- Top (The GNU Fortran Compiler) -->
<append> -DFORTRANUNDERSCORE -DNO_R16 -DCPRGNU</append>
</CPPDEFS>
<CXX_LINKER>FORTRAN</CXX_LINKER>
<FC_AUTO_R8>
<base> -fdefault-real-8 </base>
</FC_AUTO_R8>
<FFLAGS>
<!-- -ffree-line-length-none and -ffixed-line-length-none need to be in FFLAGS rather than in FIXEDFLAGS/FREEFLAGS
so that these are passed to cmake builds (cmake builds don't use FIXEDFLAGS and FREEFLAGS). -->
<base> -fconvert=big-endian -ffree-line-length-none -ffixed-line-length-none </base>
<append compile_threaded="true"> -fopenmp </append>
<!-- Ideally, we would also have 'invalid' in the ffpe-trap list. But at
least with some versions of gfortran (confirmed with 5.4.0, 6.3.0 and
7.1.0), gfortran's isnan (which is called in cime via the
CPRGNU-specific shr_infnan_isnan) causes a floating point exception
when called on a signaling NaN. -->
<append DEBUG="TRUE"> -g -Wall -Og -fbacktrace -ffpe-trap=zero,overflow -fcheck=bounds </append>
<append DEBUG="FALSE"> -O </append>
</FFLAGS>
<FFLAGS_NOOPT>
<base> -O0 </base>
</FFLAGS_NOOPT>
<FIXEDFLAGS>
<base> -ffixed-form </base>
</FIXEDFLAGS>
<FREEFLAGS>
<base> -ffree-form </base>
</FREEFLAGS>
<HAS_F2008_CONTIGUOUS>FALSE</HAS_F2008_CONTIGUOUS>
<LDFLAGS>
<append compile_threaded="true"> -fopenmp </append>
</LDFLAGS>
<MPICC> mpicc </MPICC>
<MPICXX> mpicxx </MPICXX>
<MPIFC> mpif90 </MPIFC>
<SCC> gcc </SCC>
<SCXX> g++ </SCXX>
<SFC> gfortran </SFC>
<SUPPORTS_CXX>TRUE</SUPPORTS_CXX>
<ESMF_LIBDIR>/home/luojx/luojx_data2/software_199/install/ESMF/lib/libO/Linux.gfortran.64.mpiuni.default</ESMF_LIBDIR>
<MPI_PATH>/scratch/PublicSoftware/mpich-gfortran</MPI_PATH>
<SLIBS>
<append>-L/scratch/PublicSoftware/netcdf-gfortran/lib -lnetcdf -lnetcdff </append>
<append>-L/scratch/PublicSoftware/netcdf-gfortran/lib -lhdf5 -lhdf5_hl </append>
<append>-L/data2_249/luojx_data2/software_199/install/lapack/lib -llapack -lblas </append>
</SLIBS>
</compiler>
Setting resource.RLIMIT_CORE to -1 from (0, -1)
Setting resource.RLIMIT_DATA to -1 from (-1, -1)
Setting resource.RLIMIT_STACK to -1 from (8388608, -1)
Creating component namelists
Calling /data2_249/luojx_data2/moshi/clm5.0/cime/src/components/data_comps/datm/cime_config/buildnml
Calling /data2_249/luojx_data2/moshi/clm5.0/cime_config/buildnml
ERROR: Command /data2_249/luojx_data2/moshi/clm5.0/bld/build-namelist failed rc=2
out=
err=Can't locate bigint.pm in @INC (you may need to install the bigint module) (@INC contains: /data2_249/luojx_data2/moshi/clm5.0/bld /data2_249/luojx_data2/moshi/clm5.0/bld /data2_249/luojx_data2/moshi/clm5.0/cime/scripts/Tools/../../utils/perl5lib /data2_249/luojx_data2/moshi/clm5.0/bld /home/luojx/luojx_data2/software_199/install/perl5/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /data2_249/luojx_data2/moshi/clm5.0/bld/config_files/clm_phys_vers.pm line 30.
BEGIN failed--compilation aborted at /data2_249/luojx_data2/moshi/clm5.0/bld/config_files/clm_phys_vers.pm line 30.
Compilation failed in require at /data2_249/luojx_data2/moshi/clm5.0/bld/CLMBuildNamelist.pm line 374.
To address this, I installed the bigint module and added it to my ~/.bashrc configuration. The module appears to be properly installed, as confirmed by the test command:
$ perl -MMath::BigInt -e 'print "Module loaded\n"'
Module loaded
However, the issue persists despite this installation. I would greatly appreciate any suggestions or insights into resolving this problem.
The porting information in config_machines.xml:
<machine MACH="han">
<DESC>
Example port to centos7 linux system with gcc, netcdf, pnetcdf and mpich
using modules from Environment Modules – A Great Tool for Clusters » ADMIN Magazine
</DESC>
<NODENAME_REGEX>regex.expression.matching.your.machine</NODENAME_REGEX>
<OS>LINUX</OS>
<PROXY> https://howto.get.out </PROXY>
<COMPILERS>gnu</COMPILERS>
<MPILIBS>mpich</MPILIBS>
<PROJECT>none</PROJECT>
<SAVE_TIMING_DIR>/home/luojx/luojx_data2/moshi/clm5.0/timing</SAVE_TIMING_DIR>
<CIME_OUTPUT_ROOT>/home/luojx/luojx_data2/moshi/clm5.0/output</CIME_OUTPUT_ROOT>
<DIN_LOC_ROOT>/data249/0PublicData/CLM5_landdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/data249/0PublicData/CLM5_landdata/atm/datm7</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/home/luojx/luojx_data2/moshi/clm5.0/output/$CASE</DOUT_S_ROOT>
<BASELINE_ROOT>/home/luojx/luojx_data2/moshi/clm5.0/output/cesm_baselines</BASELINE_ROOT>
<CCSM_CPRNC>/home/luojx/luojx_data2/moshi/clm5.0/cime/cesm/tools/cprnc/build/cprnc</CCSM_CPRNC>
<GMAKE>make</GMAKE>
<GMAKE_J>2</GMAKE_J>
<BATCH_SYSTEM>none</BATCH_SYSTEM>
<SUPPORTED_BY>me@my.address</SUPPORTED_BY>
<MAX_TASKS_PER_NODE>20</MAX_TASKS_PER_NODE>
<MAX_MPITASKS_PER_NODE>20</MAX_MPITASKS_PER_NODE>
<PROJECT_REQUIRED>FALSE</PROJECT_REQUIRED>
<mpirun mpilib="default">
<executable>mpirun</executable>
<arguments>
<arg name="ntasks"> -np $TOTALPES </arg>
</arguments>
</mpirun>
<module_system type="none">
</module_system>
<environment_variables>
<env name="COMPILER">gnu</env>
<env name="OMP_STACKSIZE">256M</env>
<env name="NETCDF_PATH">/scratch/PublicSoftware/netcdf-gfortran/</env>
<env name="HDF5_PATH">/scratch/PublicSoftware/netcdf-gfortran/</env>
<env name="ESMF_PATH">/home/luojx/luojx_data2/software_199/install/ESMF/</env>
</environment_variables>
<resource_limits>
<resource name="RLIMIT_CORE">-1</resource>
<resource name="RLIMIT_DATA">-1</resource>
<resource name="RLIMIT_STACK">-1</resource>
</resource_limits>
</machine>
The porting information in config_compilers.xml:
<compiler COMPILER="gnu" MACH="han">
<CFLAGS>
<base> -std=gnu99 </base>
<append compile_threaded="true"> -fopenmp </append>
<append DEBUG="TRUE"> -g -Wall -Og -fbacktrace -ffpe-trap=invalid,zero,overflow -fcheck=bounds </append>
<append DEBUG="FALSE"> -O </append>
</CFLAGS>
<CPPDEFS>
<!-- Top (The GNU Fortran Compiler) -->
<append> -DFORTRANUNDERSCORE -DNO_R16 -DCPRGNU</append>
</CPPDEFS>
<CXX_LINKER>FORTRAN</CXX_LINKER>
<FC_AUTO_R8>
<base> -fdefault-real-8 </base>
</FC_AUTO_R8>
<FFLAGS>
<!-- -ffree-line-length-none and -ffixed-line-length-none need to be in FFLAGS rather than in FIXEDFLAGS/FREEFLAGS
so that these are passed to cmake builds (cmake builds don't use FIXEDFLAGS and FREEFLAGS). -->
<base> -fconvert=big-endian -ffree-line-length-none -ffixed-line-length-none </base>
<append compile_threaded="true"> -fopenmp </append>
<!-- Ideally, we would also have 'invalid' in the ffpe-trap list. But at
least with some versions of gfortran (confirmed with 5.4.0, 6.3.0 and
7.1.0), gfortran's isnan (which is called in cime via the
CPRGNU-specific shr_infnan_isnan) causes a floating point exception
when called on a signaling NaN. -->
<append DEBUG="TRUE"> -g -Wall -Og -fbacktrace -ffpe-trap=zero,overflow -fcheck=bounds </append>
<append DEBUG="FALSE"> -O </append>
</FFLAGS>
<FFLAGS_NOOPT>
<base> -O0 </base>
</FFLAGS_NOOPT>
<FIXEDFLAGS>
<base> -ffixed-form </base>
</FIXEDFLAGS>
<FREEFLAGS>
<base> -ffree-form </base>
</FREEFLAGS>
<HAS_F2008_CONTIGUOUS>FALSE</HAS_F2008_CONTIGUOUS>
<LDFLAGS>
<append compile_threaded="true"> -fopenmp </append>
</LDFLAGS>
<MPICC> mpicc </MPICC>
<MPICXX> mpicxx </MPICXX>
<MPIFC> mpif90 </MPIFC>
<SCC> gcc </SCC>
<SCXX> g++ </SCXX>
<SFC> gfortran </SFC>
<SUPPORTS_CXX>TRUE</SUPPORTS_CXX>
<ESMF_LIBDIR>/home/luojx/luojx_data2/software_199/install/ESMF/lib/libO/Linux.gfortran.64.mpiuni.default</ESMF_LIBDIR>
<MPI_PATH>/scratch/PublicSoftware/mpich-gfortran</MPI_PATH>
<SLIBS>
<append>-L/scratch/PublicSoftware/netcdf-gfortran/lib -lnetcdf -lnetcdff </append>
<append>-L/scratch/PublicSoftware/netcdf-gfortran/lib -lhdf5 -lhdf5_hl </append>
<append>-L/data2_249/luojx_data2/software_199/install/lapack/lib -llapack -lblas </append>
</SLIBS>
</compiler>