From 6de9bba39aaed4c50562f451f822dc65a91cb0c1 Mon Sep 17 00:00:00 2001 From: alperaltuntas Date: Mon, 6 Apr 2026 16:03:50 -0600 Subject: [PATCH] Update to CESM3 beta08 and address incompability issues --- .github/workflows/ci-tests.yml | 2 +- docs/installation.rst | 6 +++--- docs/open.rst | 2 +- tests/2_integration/test_standard_compset.py | 2 +- tests/3_system/test_f2000_custom_grid.py | 8 ++++---- .../custom_widget_types/clm_modifier_launcher.py | 3 +++ .../custom_widget_types/fsurdat_area_specifier.py | 4 ++-- 7 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index fd123f4..893a1af 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -36,7 +36,7 @@ jobs: uses: actions/checkout@v4 with: repository: alperaltuntas/CESM - ref: cesm3_0_beta06_gui + ref: cesm3_0_beta08_gui path: CESM #submodules: recursive diff --git a/docs/installation.rst b/docs/installation.rst index bd5e0d4..8f963bc 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -1,7 +1,7 @@ Installation ====================================== -visualCaseGen is presently bundled with a CESM distribution (fork) based on cesm3_0_beta06. The following +visualCaseGen is presently bundled with a CESM distribution (fork) based on cesm3_0_beta08. The following instructions guide you through obtaining and installing this specific CESM distribution with visualCaseGen. Prerequisite @@ -31,8 +31,8 @@ CESM may take some time. .. code-block:: bash - git clone https://github.com/alperaltuntas/cesm.git -b cesm3_0_beta06_gui cesm3_0_beta06_gui - cd cesm3_0_beta06_gui + git clone https://github.com/alperaltuntas/cesm.git -b cesm3_0_beta08_gui cesm3_0_beta08_gui + cd cesm3_0_beta08_gui ./bin/git-fleximod update This will download the required CESM version, including visualCaseGen. diff --git a/docs/open.rst b/docs/open.rst index 6b71b9e..794419f 100644 --- a/docs/open.rst +++ b/docs/open.rst @@ -64,7 +64,7 @@ To access the GUI on a remote machine, set up SSH tunneling with port forwarding .. code-block:: bash conda activate visualCaseGen - cd [PATH_TO_visualCaseGen] # e.g., ~/cesm3_0_beta03_gui/visualCaseGen + cd [PATH_TO_visualCaseGen] # e.g., ~/cesm3_0_beta08_gui/visualCaseGen jupyter-lab GUI.ipynb --no-browser If the above steps are successful, the command line will display a URL that you can copy and paste into your web browser diff --git a/tests/2_integration/test_standard_compset.py b/tests/2_integration/test_standard_compset.py index 1604d41..1e7064a 100755 --- a/tests/2_integration/test_standard_compset.py +++ b/tests/2_integration/test_standard_compset.py @@ -61,7 +61,7 @@ def configure_standard_compset(cime): cvars[f"COMP_{comp_class}_FILTER"].value = "any" ## Pick a standard compset - cvars['COMPSET_ALIAS'].value = "BLT1850" + cvars['COMPSET_ALIAS'].value = "B1850C_LTso" # Generate standard grids list (but don't select any yet) cvars['GRID_MODE'].value = 'Standard' diff --git a/tests/3_system/test_f2000_custom_grid.py b/tests/3_system/test_f2000_custom_grid.py index 74fc17d..a972cc4 100755 --- a/tests/3_system/test_f2000_custom_grid.py +++ b/tests/3_system/test_f2000_custom_grid.py @@ -106,8 +106,8 @@ def construct_custom_f2000_compset(): cvars["COMP_ROF_OPTION"].value = "(none)" cvars["COMP_GLC_OPTION"].value = "NOEVOLVE" -def construct_standard_blt1850(cime): - """Construct a standard BLT1850 case.""" +def construct_standard_b1850(cime): + """Construct a standard B1850C_LTso case.""" assert os.path.exists(base_temp_dir), "temp testing directory does not exist" # At initialization, the first stage should be enabled @@ -131,7 +131,7 @@ def construct_standard_blt1850(cime): cvars[f"COMP_{comp_class}_FILTER"].value = "any" ## Pick a standard compset - cvars["COMPSET_ALIAS"].value = "BLT1850" + cvars["COMPSET_ALIAS"].value = "B1850C_LTso" def construct_custom_res_from_std_grids(cime): @@ -444,7 +444,7 @@ def test_custom_f2000_new_mom6_grid_modified_clm_grid(): if machine not in ["derecho", "casper"]: pytest.skip("This test is only for the derecho and casper machines") - construct_standard_blt1850(cime) + construct_standard_b1850(cime) construct_custom_res_from_new_mom6_grid_modified_clm_grid(cime) if __name__ == "__main__": diff --git a/visualCaseGen/custom_widget_types/clm_modifier_launcher.py b/visualCaseGen/custom_widget_types/clm_modifier_launcher.py index 920be86..d11d9de 100644 --- a/visualCaseGen/custom_widget_types/clm_modifier_launcher.py +++ b/visualCaseGen/custom_widget_types/clm_modifier_launcher.py @@ -225,6 +225,7 @@ def _write_config(self, config_file_path, modified_file_path): f'lon_dimname = {cvars["LON_DIM_NAME"].value}\n' f'lat_varname = {cvars["LAT_VAR_NAME"].value}\n' f'lon_varname = {cvars["LON_VAR_NAME"].value}\n' + f'lon_type = 360\n' ) @@ -281,6 +282,7 @@ def _write_config(self, config_file_path, modified_file_path): f"lnd_lon_1 = {coords[2]}\n" f"lnd_lon_2 = {coords[3]}\n" f'landmask_file = UNSET\n' + f'lon_type = 360\n' ) elif cvars["FSURDAT_AREA_SPEC"].value.startswith("mask_file:"): f.write( @@ -289,6 +291,7 @@ def _write_config(self, config_file_path, modified_file_path): f"lnd_lon_1 = 0.0\n" f"lnd_lon_2 = 360.0\n" f'landmask_file = {cvars["FSURDAT_AREA_SPEC"].value[10:]}\n' + f'lon_type = 360\n' ) else: raise ValueError("Invalid FSURDAT_AREA_SPEC value") diff --git a/visualCaseGen/custom_widget_types/fsurdat_area_specifier.py b/visualCaseGen/custom_widget_types/fsurdat_area_specifier.py index 28304b0..f98d498 100644 --- a/visualCaseGen/custom_widget_types/fsurdat_area_specifier.py +++ b/visualCaseGen/custom_widget_types/fsurdat_area_specifier.py @@ -40,13 +40,13 @@ def __init__(self, value=None, disabled=False, **kwargs): style={"description_width": "260px"}, ) self._west = BoundedFloatText( - value=0.0, min=-360.0, max=360.0, + value=0.0, min=0.0, max=360.0, description="Westernmost longitude for rectangle:", layout={"display": "none", "width": "350px", "margin": "5px"}, style={"description_width": "260px"}, ) self._east = BoundedFloatText( - value=360.0, min=-360.0, max=360.0, + value=360.0, min=-0.0, max=360.0, description="Easternmost longitude for rectangle:", layout={"display": "none", "width": "350px", "margin": "5px"}, style={"description_width": "260px"},