How to make running cesm3_0_beta08 on another machine

nuvolet

Toni Viudez
Member
What version of the code are you using?

cesm3_0_beta08

Have you made any changes to files in the source tree?

No

Describe every step you took leading up to the problem:
I recently downloaded CESM3 beta08 on our systems and am beginning to run some tests.
When I was using CESM2.2.0, I configured our machine by modifying ~/CESM2.2/cime/config/cesm/machines/config_machines.xml and ~/CESM2.2/cime_config/config_pes.xml, which allowed CESM to recognize our system.
With CESM3 beta08, I noticed that there are now multiple machine configuration files under ~/CESM3/cesm3_0_beta08/ccs_config/machines/. I modified config_machines.xml as before, but the model still does not recognize our machine.

Describe your problem or question:
Is there any documentation or guidance on how to properly add or configure a custom machine in this new version?
Thank you in advance for your help.
Best regards,
 

slevis

Moderator
Staff member
I'm not an expert (or even good) at the porting exercise, so I'm not offering to help; however, I suspect that the process hasn't changed much (if at all) from previous versions. So until someone chimes in with a more specific suggestion, I recommend that you follow any existing porting instructions that you have found.
 
Vote Upvote 0 Downvote

fischer

CSEG and Liaisons
Staff member
Hi Toni,

There's currently no documentation and our porting guru is retired. But I'll try to help. You'll need to make a new directory for your machine in ~/CESM3/cesm3_0_beta08/ccs_config/machines/YOUR_MACHINE_NAME. The files in that directory you'll edit the same way as before. Then in ~/CESM3/cesm3_0_beta08/ccs_config/machines/config_machines.xml, you'll need to add an entry for your machine name. Fingers crossed this will work for you.

Chris
 
Vote Upvote 0 Downvote

nuvolet

Toni Viudez
Member
Hi Toni,

There's currently no documentation and our porting guru is retired. But I'll try to help. You'll need to make a new directory for your machine in ~/CESM3/cesm3_0_beta08/ccs_config/machines/YOUR_MACHINE_NAME. The files in that directory you'll edit the same way as before. Then in ~/CESM3/cesm3_0_beta08/ccs_config/machines/config_machines.xml, you'll need to add an entry for your machine name. Fingers crossed this will work for you.

Chris
Hi Fischer and Slevis,

Thanks for comments/suggestions.

I pretty much followed Fischer's suggestion and at least now the machine can be recognize.
Nevertheless, after including the path for all the elements in the config_machine.xml and preparing test run, I go this error:

Code:
Running cam.case_setup.py
ERROR: Command: 'python ~/CESM3/cesm3_0_beta08/components/cam//cime_config/cam.case_setup.py ~/CESM3/cesm3_0_beta08/components/cam/ ~/CESM3/cases/test_cam7 False' failed with error 'File "~/CESM3/cesm3_0_beta08/components/cam//cime_config/cam.case_setup.py", line 25
    raise SystemExit(f"Incorrect call to {sys.argv[0]}, need CAM root and case root")
                                                                                   ^
SyntaxError: invalid syntax' from dir '~/CESM3/cases/test_cam7'
 
|------------------> modifying user_nl_cam
|------------------> ./case.build
 
Building case in directory ~/CESM3/cases/test_cam7
sharedlib_only is False
model_only is False
Generating component namelists as part of build
  2026-07-28 08:10:16 atm
Create namelist for component cam
   Calling ~/CESM3/cesm3_0_beta08/components/cam//cime_config/buildnml
     ...calling cam buildcpp to set build time options
ERROR: Command ~/CESM3/cesm3_0_beta08/components/cam/bld/build-namelist -ntasks 48 -csmdata ~/CESM3/CESM_input_data -infile ~/CESM3/cases/test_cam7/Buildconf/camconf/namelist -start_ymd 20080101 -ignore_ic_date -use_case hist_trop_strat_nudged_cam6 -inputdata ~/CESM3/cases/test_cam7/Buildconf/cam.input_data_list -namelist " &atmexp /"  -cmeps failed rc=255
out=
err=Smartmatch is experimental at ~/CESM3/cesm3_0_beta08/components/cam/bld/build-namelist line 2340.
CAM build-namelist - ERROR: Invalid namelist variable in '-infile' ~/CESM3/cases/test_cam7/Buildconf/camconf/namelist.
 ERROR: in _validate_pair (package Build::NamelistDefinition): Variable name clim_soilw_file not found in ~/CESM3/cesm3_0_beta08/components/cam/bld/namelist_files/namelist_definition.xml
|------------------> ./case.submit
 
  2026-07-28 08:10:17 atm
Create namelist for component cam
   Calling ~/CESM3/cesm3_0_beta08/components/cam//cime_config/buildnml
ERROR: Command ~/CESM3/cesm3_0_beta08/components/cam/bld/build-namelist -ntasks 48 -csmdata ~/CESM3/CESM_input_data -infile ~/CESM3/cases/test_cam7/Buildconf/camconf/namelist -start_ymd 20080101 -ignore_ic_date -use_case hist_trop_strat_nudged_cam6 -inputdata ~/CESM3/cases/test_cam7/Buildconf/cam.input_data_list -namelist " &atmexp /"  -cmeps failed rc=255
out=
err=Smartmatch is experimental at ~/CESM3/cesm3_0_beta08/components/cam/bld/build-namelist line 2340.
CAM build-namelist - ERROR: Invalid namelist variable in '-infile' ~/CESM3/cases/test_cam7/Buildconf/camconf/namelist.
 ERROR: in _validate_pair (package Build::NamelistDefinition): Variable name depvel_file not found in ~/CESM3/cesm3_0_beta08/components/cam/bld/namelist_files/namelist_definition.xml
|------------------> Run completed
 
Vote Upvote 0 Downvote

fischer

CSEG and Liaisons
Staff member
Hi Toni,

It looks like you have a configuration issue in the CAM model. Can you tell me what case you're trying to run? Also, attach any machine configuration files you've modified.

Also can you try doing the following, it'll run a really simple test.

./create_test SMS_Ld5.f10_f10_mg37.1850_DATM%CRUJRA2024b_SLND_SICE_SOCN_SROF_SGLC_SWAV_SESP.YOURMACHINENAME_COMPILERYOURUSING

So on our system(derecho) using intel compiler the command looks like.
./create_test SMS_Ld5.f10_f10_mg37.1850_DATM%CRUJRA2024b_SLND_SICE_SOCN_SROF_SGLC_SWAV_SESP.derecho_intel

Thanks
Chris
 
Vote Upvote 0 Downvote

nuvolet

Toni Viudez
Member
Hi Toni,

It looks like you have a configuration issue in the CAM model. Can you tell me what case you're trying to run? Also, attach any machine configuration files you've modified.

Also can you try doing the following, it'll run a really simple test.

./create_test SMS_Ld5.f10_f10_mg37.1850_DATM%CRUJRA2024b_SLND_SICE_SOCN_SROF_SGLC_SWAV_SESP.YOURMACHINENAME_COMPILERYOURUSING

So on our system(derecho) using intel compiler the command looks like.
./create_test SMS_Ld5.f10_f10_mg37.1850_DATM%CRUJRA2024b_SLND_SICE_SOCN_SROF_SGLC_SWAV_SESP.derecho_intel

Thanks
Chris
Hi Chris,

I try to run a test using ERA5 reanalysis like this:

./create_newcase --case ~CESM3/cases/$casename --compset FCnudged --machine x86_64 --res f09_f09_mg17 --run-unsupported

I will try run in our machines that.
Thanks

Toni
 
Vote Upvote 0 Downvote

fischer

CSEG and Liaisons
Staff member
Hi Toni,

What modifications did you make to the user_nl_cam file? Can you attach the file? I think this might be where the issue is.

Thanks
Chris
 
Vote Upvote 0 Downvote

fischer

CSEG and Liaisons
Staff member
Hi Toni,

It look like your user_nl_cam file is setup for CESM2.2 and is incompatible with CESM3. Try running with an empty user_nl_cam file. If that works, then the CAM forum should be able to help you setup a new user_nl_cam file.

Thanks
Chris
 
Vote Upvote 0 Downvote

nuvolet

Toni Viudez
Member
Hi Toni,

It look like your user_nl_cam file is setup for CESM2.2 and is incompatible with CESM3. Try running with an empty user_nl_cam file. If that works, then the CAM forum should be able to help you setup a new user_nl_cam file.

Thanks
Chris
Hi Chris,

I rana. test run with an empty user_nl_cam and I still have same error:

Code:
|------------------> ./create_newcase
 
Compset longname is HIST_CAM60%CT1S1%NUDG_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
Compset specification file is /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/cam//cime_config/config_compsets.xml
Automatically adding SESP to compset
Compset forcing is Historic transient
ATM component is CAM cam6 physics:CAM-Chem troposphere/stratosphere chemistry with simplified VBS-SOA:
LND component is clm5.0:Satellite phenology:
ICE component is Sea ICE (cice) model version 6 :prescribed cice
OCN component is DOCN   prescribed ocean mode
ROF component is MOSART: MOdel for Scale Adaptive River Transport
GLC component is Stub glacier (land ice) component
WAV component is Stub wave component
ESP component is Stub external system processing (ESP) component
Pes     specification file is /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/cam//cime_config/config_pes.xml
Compset specific settings: name is RUN_STARTDATE and value is 2010-01-01
Compset specific settings: name is CALENDAR and value is GREGORIAN
Machine is x86_64
Pes setting: grid match    is a%0.9x1.25
Pes setting: grid          is a%0.9x1.25_l%0.9x1.25_oi%0.9x1.25_r%r05_g%null_w%null_z%null_m%gx1v7
Pes setting: compset       is HIST_CAM60%CT1S1%NUDG_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV_SESP
Pes setting: tasks       is {'NTASKS_ATM': -4, 'NTASKS_LND': -4, 'NTASKS_ROF': -4, 'NTASKS_ICE': -4, 'NTASKS_OCN': -4, 'NTASKS_GLC': -4, 'NTASKS_WAV': -4, 'NTASKS_CPL': -4}
Pes setting: threads     is {'NTHRDS_ATM': 1, 'NTHRDS_LND': 1, 'NTHRDS_ROF': 1, 'NTHRDS_ICE': 1, 'NTHRDS_OCN': 1, 'NTHRDS_GLC': 1, 'NTHRDS_WAV': 1, 'NTHRDS_CPL': 1}
Pes setting: rootpe      is {'ROOTPE_ATM': 0, 'ROOTPE_LND': 0, 'ROOTPE_ROF': 0, 'ROOTPE_ICE': 0, 'ROOTPE_OCN': 0, 'ROOTPE_GLC': 0, 'ROOTPE_WAV': 0, 'ROOTPE_CPL': 0}
Pes setting: pstrid      is {}
Pes setting: excl_stride is {}
Pes other settings: {}
Pes other settings append: {}
Pes comments: none
setting additional fields from config_pes: {}, append {}
 Compset is: HIST_CAM60%CT1S1%NUDG_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV_SESP
 Grid is: a%0.9x1.25_l%0.9x1.25_oi%0.9x1.25_r%r05_g%null_w%null_z%null_m%gx1v7
 Components in compset are: ['cam', 'clm', 'cice', 'docn', 'mosart', 'sglc', 'swav', 'sesp']
Using project from config_machines.xml: CESM_Testing
No charge_account info available, using value from PROJECT
cesm model version found: cesm3_0_beta08
Batch_system_type is none
 Creating Case directory /CERES/sarb/aviudezm/CESM3/cases/test
| ---> THIS IS A START-UP RUN
Creating batch scripts
Writing case.run script from input template /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/ccs_config/machines/template.case.run
Creating file .case.run
Writing case.st_archive script from input template /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/ccs_config/machines/template.st_archive
Creating file case.st_archive
Writing case.cupid script from input template /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/ccs_config/machines/template.cupid
Creating file case.cupid
Creating user_nl_xxx files for components and cpl
Running cam.case_setup.py
ERROR: Command: 'python /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/cam//cime_config/cam.case_setup.py /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/cam/ /CERES/sarb/aviudezm/CESM3/cases/test False' failed with error 'File "/CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/cam//cime_config/cam.case_setup.py", line 25
    raise SystemExit(f"Incorrect call to {sys.argv[0]}, need CAM root and case root")
                                                                                   ^
SyntaxError: invalid syntax' from dir '/CERES/sarb/aviudezm/CESM3/cases/test'
 
|------------------> modifying user_nl_cam
--> using ERA5 from archive: /CERES/sarb/aviudezm/CESM3-CAM7
|------------------> ./case.build
 
Building case in directory /CERES/sarb/aviudezm/CESM3/cases/test
sharedlib_only is False
model_only is False
Generating component namelists as part of build
  2026-08-07 11:24:51 atm
Create namelist for component cam
   Calling /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/cam//cime_config/buildnml
     ...calling cam buildcpp to set build time options
CAM namelist copy: file1 /CERES/sarb/aviudezm/CESM3/cases/test/Buildconf/camconf/atm_in file2 /CERES/sarb/aviudezm/CESM3/CESM_output/test/run/atm_in
  2026-08-07 11:24:55 lnd
Create namelist for component clm
   Calling /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/clm//cime_config/buildnml
WARNING: No file /CERES/sarb/aviudezm/CESM3/cases/test/user_nl_clm found in case directory
  2026-08-07 11:24:57 ice
Create namelist for component cice
   Calling /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/cice//cime_config/buildnml
ERROR: Missing required user_nl_file /CERES/sarb/aviudezm/CESM3/cases/test/user_nl_cice
|------------------> ./case.submit
 
  2026-08-07 11:24:58 atm
Create namelist for component cam
   Calling /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/cam//cime_config/buildnml
CAM namelist copy: file1 /CERES/sarb/aviudezm/CESM3/cases/test/Buildconf/camconf/atm_in file2 /CERES/sarb/aviudezm/CESM3/CESM_output/test/run/atm_in
  2026-08-07 11:25:01 lnd
Create namelist for component clm
   Calling /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/clm//cime_config/buildnml
WARNING: No file /CERES/sarb/aviudezm/CESM3/cases/test/user_nl_clm found in case directory
  2026-08-07 11:25:02 ice
Create namelist for component cice
   Calling /CERES/sarb/aviudezm/CESM3/cesm3_0_beta08/components/cice//cime_config/buildnml
ERROR: Missing required user_nl_file /CERES/sarb/aviudezm/CESM3/cases/test/user_nl_cice
|------------------> Run completed
 
Vote Upvote 0 Downvote

fischer

CSEG and Liaisons
Staff member
Hi Toni,

Are you running the create_newcase, case.setup, case.build, and case.submit commands from the command line? Or are you using a script that sets up the run for you? If you are using a script, can you attach it.

Thanks
Chris
 
Vote Upvote 0 Downvote

nuvolet

Toni Viudez
Member
Yes, I am using the attached script.
This script is a short modification from what I was using for cesm2.2.
When the script is executed show on terminal the other file enclosed.
Thanks

Toni
 

Attachments

Vote Upvote 0 Downvote

fischer

CSEG and Liaisons
Staff member
Hi Toni,

The script was working for me. But I'm not sure how the commends in the script were modifying the user_nl_cam file. But lets try a simple build to see if that works. Try running the following from cime/scripts.

./create_test SMS_Ln9.f09_f09_mg17.X.x86_64_intel

I'm assuming you're using intel. This will build a very simple cesm case and run it for 9 time steps. If this works, then we can try.

./create_test SMS_Ln9.f09_f09_mg17.F2000climo.x86_64_intel.

Then try.

./create_test SMS_Ln9.f09_f09_mg17.FCnudged.x86_64_intel.

Let me know how these tests turn out.

Chris
 
Vote Upvote 0 Downvote

nuvolet

Toni Viudez
Member
Hi Chris,

I made some changes to the <span>config_machine.xml</span> file and also updated the Python compiler to the latest 3.x version instead of the 2.x version that was used before. The test run now gets a little further.

Nevertheless, the model is still reporting an issue when trying to download the data required for the test. The file it is having trouble accessing is:

https://redoak.cs.toronto.edu/twitc...surfdata_0.9x1.25_hist_1850_78pfts_c251022.nc

Could you please let me know if there is an issue with accessing this file or if any additional configuration is needed?

Thanks,
 
Vote Upvote 0 Downvote
Back
Top