CMEPS icon indicating copy to clipboard operation
CMEPS copied to clipboard

CMEPS does NOT add files to cpl.input_data_list for existence checking

Open ekluzek opened this issue 11 months ago • 3 comments

CMEPS always has empty cpl.input_data_list files because the buildnml doesn't send the right list of groups to it's write. None of the variables in the groups sent are files and so the list is always empty. The groups sent are: papi_inparm, prof_inparm and debug_inparm. The groups that should be sent are the various *_attributes groups.

See this code difference here, for what I think it should change to:

diff --git a/cime_config/buildnml b/cime_config/buildnml
index 7ffc28f8..d71842ba 100755
--- a/cime_config/buildnml
+++ b/cime_config/buildnml
@@ -320,7 +320,7 @@ def _create_drv_namelists(case, infile, confdir, nmlgen, files):
     # Write namelist file drv_in and initial input dataset list.
     # --------------------------------
     namelist_file = os.path.join(confdir, "drv_in")
-    drv_namelist_groups = ["papi_inparm", "prof_inparm", "debug_inparm"]
+    drv_namelist_groups = ["DRIVER_attributes", "MED_attributes", "ALLCOMP_attributes", "ROF_attributes", "WAV_attributes"]
     nmlgen.write_output_file(
         namelist_file, data_list_path=data_list_path, groups=drv_namelist_groups
     )

Fixing this would be helpful to catch when a CMEPS driver file isn't available on a machine, as well as make it easier to download it.

Technically there are currently no files in the DRIVER_attributes group, but for completeness in case anything is added it seems like it should be in the list. Also more groups could be added that don't currently have files like LND_attributes for example.

ekluzek avatar Jan 18 '25 06:01 ekluzek

I tried this with the above suggested fix for the test:

SMS_D_Ld1.f10_f10_mg37.I2000Clm60Sp.derecho_intel.clm-default

and it properly lists the files:

mesh_mask = /glade/campaign/cesm/cesmdata/inputdata/share/meshes/gx3v7_120309_ESMFmesh.nc mesh_atm = /glade/campaign/cesm/cesmdata/inputdata/share/meshes/10x15_nomask_c110308_ESMFmesh.nc mesh_lnd = /glade/campaign/cesm/cesmdata/inputdata/share/meshes/10x15_nomask_c110308_ESMFmesh.nc mesh_rof = /glade/campaign/cesm/cesmdata/inputdata/share/meshes/r05_nomask_c110308_ESMFmesh.nc

which all exist and check_input_data functions correctly.

ekluzek avatar Jan 18 '25 06:01 ekluzek

Should the rpointer file also be added to existence checking?

ekluzek avatar Nov 11 '25 20:11 ekluzek

Should the rpointer file also be added to existence checking?

@jedwards4b confirmed in the CSEG meeting that we should NOT do this as there is seperate checking for the restart directory and it's file contents.

ekluzek avatar Nov 11 '25 21:11 ekluzek