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

Build error from cesm2.1 with CLM4.0

Status
Not open for further replies.
Dear all,

I'm trying to run CAM5-CLM4.0 coupled simulation using cesm2.1.
To use CLM4.0 with satellite phenology, I made the following change in env_build.xml:
./xmlchange --append CLM_CONFIG_OPTS="-phys clm4_0 -bgc none"

I also added the following to use the simple year 2000 surface data

./xmlchange CLM_NML_USE_CASE='2000_control'

With these changes, the clm itself is successfully compiled. But case.build fails while cesm.exe is being built.
The cesm log file says
"gmake: *** No rule to make target '../../intel/mpt/nodebug/nothreads/mct/noesmf/lib/libclm.a', needed by '/global/cscratch1/sd/ksa/simulation/MPAS/cesm21/cam5
4-clm4_test01_mp120a/bld/cesm.exe'. Stop."

Indeed the clm library file is not located in ${casename}/bld/intel/mpt/nodebug/nothreads/mct/noesmf/lib/libclm.a, but it is in ${casename}/bld/lib, along with other libraries for other model components:
include/ libatm.a libclm.a libesp.a libglc.a libice.a libocn.a librof.a libwav.a


When I build cesm2.1 with CLM5.0, then I see the libclm.a file in
${casename}/bld/intel/mpt/nodebug/nothreads/mct/noesmf/lib
where I also see the following subdirectories
c1a1l1i1o1r1g1w1e1/ clm/ include/ lib/

(When I try to build cesm2.1 with CLM4.0, the last three directories (clm/ include/ lib/) do not exist here; I see only c1a1l1i1o1r1g1w1e1/)

So it seems that case.build does not know where clm is installed when CLM4.0 is used.
Could you point me to the file(s) I can modify so that cesm2.1 can be build with the CLM4.0 physics?

I cannot use a later version of CESM2 since we have significantly modified the CAM source code in our cesm2.1 copy.


Thanks in advance,

Koichi
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I'm not sure if this helps at all, but I tried the following compset on our local cluster hobart (cheyenne is down this week) using cesm2.1.0:

2000_CAM50_CLM40%SP_CICE%PRES_DOCN%DOM_MOSART_CISM2%NOEVOLVE_SWAV

and it seemed to compile fine. This is a year 2000 compset with CAM5 and CLM4SP.
I don't see a libclm.a, but instead a liblnd.a, which is in bld/lib

If I grep for liblnd I get:

cime/scripts/Tools/Makefile: LNDLIB := liblnd.a
components/clm/cime_config/buildlib: complib = os.path.join(libroot,"liblnd.a")

For CLM4, it seems as if the library should be liblnd.a and for other versions it should be libclm.a

Looks like libroot is specified in env_build.xml:

<entry id="LIBROOT" value="$EXEROOT/lib">
 
Hi Keith,

Thank you so much for the help! The same approach works for me as well (on NERSC cori).

The compset longname for my previous, failing attempt was
HIST_CAM60_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_CISM2%NOEVOLVE_SWAV
by using the "FHIST" compset, from which I tried to customize with *_CONFIG_OPTS and namelist variables.

I've never used compset longname to create a case, but it seems to be a more robust way when customizing physics options that I'd like to use for each component model. This would be especially true if the compset appearing in the longname is used by cime scripts to set LIBROOT and the name of the library files, which may have happened in my first attempt.

Best regards,

Koichi
 
Status
Not open for further replies.
Top