From 89b59ec4e18ea6df0f8e4ba8225b8f5b5806f599 Mon Sep 17 00:00:00 2001 From: Michael Lueken <63728921+MichaelLueken@users.noreply.github.com> Date: Wed, 27 Mar 2024 12:38:23 -0400 Subject: [PATCH] [develop] Update weather model, UPP, and UFS_UTILS hashes (#1050) Updating the ufs-weather-model hash to 8518c2c (March 1), the UPP hash to 945cb2c (January 23), and the UFS_UTILS hash to 57bd832 (February 6). This work also required several modifications to allow the updated weather model and UFS_UTILS hashes to work in the SRW: * Update spack-stack to v1.5.1 * Rename NEMS/nems to UFS/ufs * Remove ush/set_ozone_param.py (ozphys scheme in SDFs were removed in the weather model) * Update path to noahmptable.tbl * Add two new fields to INPS (MASK_ONLY and MERGE_FILE) for make_orog task * Make changes to allow for the updated method of finding CRES in chgres_cube --- .cicd/scripts/sbatch_srw_ftest.sh | 2 +- .cicd/scripts/srw_ftest.sh | 5 +- .cicd/scripts/wrapper_srw_ftest.sh | 4 + Externals.cfg | 6 +- .../CustomizingTheWorkflow/ConfigWorkflow.rst | 16 +-- modulefiles/build_derecho_intel.lua | 2 +- modulefiles/build_gaea_intel.lua | 2 +- modulefiles/build_hera_gnu.lua | 2 +- modulefiles/build_hera_intel.lua | 2 +- modulefiles/build_hercules_intel.lua | 2 +- modulefiles/build_jet_intel.lua | 2 +- modulefiles/build_noaacloud_intel.lua | 2 +- modulefiles/build_orion_intel.lua | 2 +- modulefiles/srw_common.lua | 8 +- parm/fixed_files_mapping.yaml | 2 +- parm/model_configure | 3 + parm/{nems.configure => ufs.configure} | 23 +--- scripts/exregional_make_orog.sh | 2 + scripts/exregional_run_fcst.sh | 2 +- ..._FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta.yaml | 2 + ...3km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR.yaml | 2 + ...m_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.yaml | 3 +- ...pact_3km_ics_HRRR_lbcs_RAP_suite_HRRR.yaml | 2 + ...m_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.yaml | 2 + .../config.specify_template_filenames.yaml | 2 +- .../test_create_model_configure_file.py | 2 + tests/test_python/test_set_ozone_param.py | 45 ------ ush/config_defaults.yaml | 28 ++-- ush/create_model_configure_file.py | 2 + ...e_file.py => create_ufs_configure_file.py} | 31 ++--- ush/set_ozone_param.py | 130 ------------------ ush/setup.py | 40 +----- 32 files changed, 88 insertions(+), 292 deletions(-) rename parm/{nems.configure => ufs.configure} (70%) delete mode 100644 tests/test_python/test_set_ozone_param.py rename ush/{create_nems_configure_file.py => create_ufs_configure_file.py} (79%) delete mode 100644 ush/set_ozone_param.py diff --git a/.cicd/scripts/sbatch_srw_ftest.sh b/.cicd/scripts/sbatch_srw_ftest.sh index 5add5368b5..07888d5ae9 100644 --- a/.cicd/scripts/sbatch_srw_ftest.sh +++ b/.cicd/scripts/sbatch_srw_ftest.sh @@ -7,7 +7,7 @@ #SBATCH --account=${SRW_PROJECT} #SBATCH --qos=batch #SBATCH --nodes=1 -#SBATCH --tasks-per-node=24 +#SBATCH --tasks-per-node=12 #SBATCH --cpus-per-task=1 #SBATCH -t 00:30:00 #SBATCH -o log_wrap.%j.log diff --git a/.cicd/scripts/srw_ftest.sh b/.cicd/scripts/srw_ftest.sh index d98d20c831..b77ee767f3 100755 --- a/.cicd/scripts/srw_ftest.sh +++ b/.cicd/scripts/srw_ftest.sh @@ -77,6 +77,9 @@ sed "s|^task_get_extrn_lbcs:|task_get_extrn_lbcs:\n EXTRN_MDL_SOURCE_BASEDIR_LB # Use staged data for HPSS supported machines sed 's|^platform:|platform:\n EXTRN_MDL_DATA_STORES: disk|g' -i ush/config.yaml +# Set OMP_NUM_THREADS_RUN_FCST to 1 in config.yaml +sed 's|^task_run_fcst:|task_run_fcst:\n OMP_NUM_THREADS_RUN_FCST: 1|1' -i ush/config.yaml + # Activate the workflow environment ... source etc/lmod-setup.sh ${platform,,} module use modulefiles @@ -105,7 +108,7 @@ cp ${workspace}/ush/wrappers/*.sh . export JOBSdir=${workspace}/jobs export USHdir=${workspace}/ush export OMP_NUM_THREADS=1 -export nprocs=24 +export nprocs=12 [[ -n ${TASKS} ]] || TASKS=( run_make_grid diff --git a/.cicd/scripts/wrapper_srw_ftest.sh b/.cicd/scripts/wrapper_srw_ftest.sh index fabdbb63ef..c6a4d19568 100755 --- a/.cicd/scripts/wrapper_srw_ftest.sh +++ b/.cicd/scripts/wrapper_srw_ftest.sh @@ -34,6 +34,10 @@ if [[ "${SRW_PLATFORM}" == hera ]]; then fi fi +if [[ "${SRW_PLATFORM}" == jet ]]; then + sed -i '15i #SBATCH --partition=xjet' ${WORKSPACE}/${SRW_PLATFORM}/.cicd/scripts/${workflow_cmd}_srw_ftest.sh +fi + # Call job card and return job_id echo "Running: ${workflow_cmd} -A ${SRW_PROJECT} ${arg_1} ${WORKSPACE}/${SRW_PLATFORM}/.cicd/scripts/${workflow_cmd}_srw_ftest.sh" job_id=$(${workflow_cmd} -A ${SRW_PROJECT} ${arg_1} ${WORKSPACE}/${SRW_PLATFORM}/.cicd/scripts/${workflow_cmd}_srw_ftest.sh) diff --git a/Externals.cfg b/Externals.cfg index 4b54c71d72..49ea5ffc38 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/ufs-community/UFS_UTILS # Specify either a branch name or a hash but not both. #branch = develop -hash = dc0e4a6 +hash = 57bd832 local_path = sorc/UFS_UTILS required = True @@ -12,7 +12,7 @@ protocol = git repo_url = https://github.com/ufs-community/ufs-weather-model # Specify either a branch name or a hash but not both. #branch = develop -hash = 020e783 +hash = 8518c2c local_path = sorc/ufs-weather-model required = True @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/UPP # Specify either a branch name or a hash but not both. #branch = develop -hash = fae617b +hash = 945cb2c local_path = sorc/UPP required = True diff --git a/doc/UsersGuide/CustomizingTheWorkflow/ConfigWorkflow.rst b/doc/UsersGuide/CustomizingTheWorkflow/ConfigWorkflow.rst index 10a0bcc4eb..3bfa5bdf7d 100644 --- a/doc/UsersGuide/CustomizingTheWorkflow/ConfigWorkflow.rst +++ b/doc/UsersGuide/CustomizingTheWorkflow/ConfigWorkflow.rst @@ -386,8 +386,8 @@ Set File Name Parameters ``MODEL_CONFIG_FN``: (Default: "model_configure") Name of a file that contains settings and configurations for the :term:`NUOPC`/:term:`ESMF` main component. In general, users should not set this variable in their configuration file (see :ref:`note `). -``NEMS_CONFIG_FN``: (Default: "nems.configure") - Name of a file that contains information about the various :term:`NEMS` components and their run sequence. In general, users should not set this variable in their configuration file (see :ref:`note `). +``UFS_CONFIG_FN``: (Default: "ufs.configure") + Name of a file that contains information about the various :term:`UFS` components and their run sequence. In general, users should not set this variable in their configuration file (see :ref:`note `). ``AQM_RC_FN``: (Default: "aqm.rc") Name of resource file for NOAA Air Quality Model (AQM). @@ -419,8 +419,8 @@ Set File Path Parameters ``MODEL_CONFIG_TMPL_FP``: (Default: ``'{{ [user.PARMdir, MODEL_CONFIG_FN]|path_join }}'``) Path to the ``MODEL_CONFIG_FN`` file. -``NEMS_CONFIG_TMPL_FP``: (Default: ``'{{ [user.PARMdir, NEMS_CONFIG_FN]|path_join }}'``) - Path to the ``NEMS_CONFIG_FN`` file. +``UFS_CONFIG_TMPL_FP``: (Default: ``'{{ [user.PARMdir, UFS_CONFIG_FN]|path_join }}'``) + Path to the ``UFS_CONFIG_FN`` file. ``AQM_RC_TMPL_FP``: (Default: ``'{{ [user.PARMdir, AQM_RC_TMPL_FN]|path_join }}'``) Path to the ``AQM_RC_TMPL_FN`` file. @@ -437,8 +437,8 @@ This section contains files and paths to files that are staged in the experiment ``FIELD_TABLE_FP``: (Default: ``'{{ [EXPTDIR, FIELD_TABLE_FN]|path_join }}'``) Path to the field table in the experiment directory. (The field table specifies tracers that the forecast model reads in.) -``NEMS_CONFIG_FP``: (Default: ``'{{ [EXPTDIR, NEMS_CONFIG_FN]|path_join }}'``) - Path to the ``NEMS_CONFIG_FN`` file in the experiment directory. +``UFS_CONFIG_FP``: (Default: ``'{{ [EXPTDIR, UFS_CONFIG_FN]|path_join }}'``) + Path to the ``UFS_CONFIG_FN`` file in the experiment directory. ``FV3_NML_FP``: (Default: ``'{{ [EXPTDIR, FV3_NML_FN]|path_join }}'``) Path to the ``FV3_NML_FN`` file in the experiment directory. @@ -538,7 +538,7 @@ CCPP Parameter Field Dictionary Parameters ------------------------------ -``FIELD_DICT_FN``: (Default: "fd_nems.yaml") +``FIELD_DICT_FN``: (Default: "fd_ufs.yaml") The name of the field dictionary file. This file is a community-based dictionary for shared coupling fields and is automatically generated by the :term:`NUOPC` Layer. ``FIELD_DICT_IN_UWM_FP``: (Default: ``'{{ [user.UFS_WTHR_MDL_DIR, "tests", "parm", FIELD_DICT_FN]|path_join }}'``) @@ -1109,7 +1109,7 @@ For each workflow task, certain parameter values must be passed to the job sched For more information, see the `Intel Development Reference Guide `__. ``OMP_NUM_THREADS_RUN_FCST``: (Default: 1) - The number of OpenMP threads to use for parallel regions. Corresponds to the ``ATM_omp_num_threads`` value in ``nems.configure``. + The number of OpenMP threads to use for parallel regions. Corresponds to the ``atmos_nthreads`` value in ``model_configure``. ``OMP_STACKSIZE_RUN_FCST``: (Default: "512m") Controls the size of the stack for threads created by the OpenMP implementation. diff --git a/modulefiles/build_derecho_intel.lua b/modulefiles/build_derecho_intel.lua index d434e8ecd3..ac98c39e53 100644 --- a/modulefiles/build_derecho_intel.lua +++ b/modulefiles/build_derecho_intel.lua @@ -6,7 +6,7 @@ the CISL machine Derecho (Cray) using Intel@2021.10.0 whatis([===[Loads libraries needed for building the UFS SRW App on Derecho ]===]) prepend_path("MODULEPATH","/lustre/desc1/scratch/epicufsrt/contrib/modulefiles_extra") -prepend_path("MODULEPATH", "/glade/work/epicufsrt/contrib/spack-stack/derecho/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH", "/glade/work/epicufsrt/contrib/spack-stack/derecho/spack-stack-1.5.1/envs/unified-env/install/modulefiles/Core") load(pathJoin("stack-intel", os.getenv("stack_intel_ver") or "2021.10.0")) load(pathJoin("stack-cray-mpich", os.getenv("stack_cray_mpich_ver") or "8.1.25")) diff --git a/modulefiles/build_gaea_intel.lua b/modulefiles/build_gaea_intel.lua index 9c21f685da..0eca20b5e1 100644 --- a/modulefiles/build_gaea_intel.lua +++ b/modulefiles/build_gaea_intel.lua @@ -5,7 +5,7 @@ the NOAA RDHPC machine Gaea C5 using Intel-2023.1.0 whatis([===[Loads libraries needed for building the UFS SRW App on Gaea C5 ]===]) -prepend_path("MODULEPATH","/ncrc/proj/epic/spack-stack/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH","/ncrc/proj/epic/spack-stack/spack-stack-1.5.1/envs/unified-env/install/modulefiles/Core") stack_intel_ver=os.getenv("stack_intel_ver") or "2023.1.0" load(pathJoin("stack-intel", stack_intel_ver)) diff --git a/modulefiles/build_hera_gnu.lua b/modulefiles/build_hera_gnu.lua index d5f78f397b..5355895da9 100644 --- a/modulefiles/build_hera_gnu.lua +++ b/modulefiles/build_hera_gnu.lua @@ -5,7 +5,7 @@ the NOAA RDHPC machine Hera using GNU 9.2.0 whatis([===[Loads libraries needed for building the UFS SRW App on Hera using GNU 9.2.0 ]===]) -prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.0/envs/unified-env-rocky8/install/modulefiles/Core") +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.1/envs/unified-env-rocky8/install/modulefiles/Core") prepend_path("MODULEPATH", "/scratch1/NCEPDEV/jcsda/jedipara/spack-stack/modulefiles") load("stack-gcc/9.2.0") diff --git a/modulefiles/build_hera_intel.lua b/modulefiles/build_hera_intel.lua index 061feef67b..ee11e4a386 100644 --- a/modulefiles/build_hera_intel.lua +++ b/modulefiles/build_hera_intel.lua @@ -8,7 +8,7 @@ whatis([===[Loads libraries needed for building the UFS SRW App on Hera ]===]) prepend_path("MODULEPATH","/contrib/sutils/modulefiles") load("sutils") -prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.0/envs/unified-env-rocky8/install/modulefiles/Core") +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.1/envs/unified-env-rocky8/install/modulefiles/Core") prepend_path("MODULEPATH", "/scratch1/NCEPDEV/jcsda/jedipara/spack-stack/modulefiles") stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" diff --git a/modulefiles/build_hercules_intel.lua b/modulefiles/build_hercules_intel.lua index 1cb402b8a6..cec2a3a30e 100644 --- a/modulefiles/build_hercules_intel.lua +++ b/modulefiles/build_hercules_intel.lua @@ -5,7 +5,7 @@ the MSU machine Hercules using intel-oneapi-compilers/2022.2.1 whatis([===[Loads libraries needed for building the UFS SRW App on Hercules ]===]) -prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.1/envs/unified-env/install/modulefiles/Core") prepend_path("MODULEPATH", "/work/noaa/da/role-da/spack-stack/modulefiles") load("stack-intel/2021.9.0") diff --git a/modulefiles/build_jet_intel.lua b/modulefiles/build_jet_intel.lua index eb2893d3cc..925fef3853 100644 --- a/modulefiles/build_jet_intel.lua +++ b/modulefiles/build_jet_intel.lua @@ -5,7 +5,7 @@ the NOAA RDHPC machine Jet using Intel-2021.5.0 whatis([===[Loads libraries needed for building the UFS SRW App on Jet ]===]) -prepend_path("MODULEPATH","/mnt/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/spack-stack-1.5.0/envs/unified-env-rocky8/install/modulefiles/Core") +prepend_path("MODULEPATH","/mnt/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/spack-stack-1.5.1/envs/unified-env-rocky8/install/modulefiles/Core") prepend_path("MODULEPATH", "/lfs4/HFIP/hfv3gfs/spack-stack/modulefiles") load("stack-intel/2021.5.0") diff --git a/modulefiles/build_noaacloud_intel.lua b/modulefiles/build_noaacloud_intel.lua index 50f1aec9ab..0b6a9c1ca4 100644 --- a/modulefiles/build_noaacloud_intel.lua +++ b/modulefiles/build_noaacloud_intel.lua @@ -5,7 +5,7 @@ the NOAA cloud using Intel-oneapi whatis([===[Loads libraries needed for building the UFS SRW App on NOAA cloud ]===]) -prepend_path("MODULEPATH", "/contrib/spack-stack/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH", "/contrib/spack-stack/spack-stack-1.5.1/envs/unified-env/install/modulefiles/Core") prepend_path("MODULEPATH", "/apps/modules/modulefiles") prepend_path("PATH", "/contrib/EPIC/bin") load("stack-intel") diff --git a/modulefiles/build_orion_intel.lua b/modulefiles/build_orion_intel.lua index 241b658c88..d3e777d1dc 100644 --- a/modulefiles/build_orion_intel.lua +++ b/modulefiles/build_orion_intel.lua @@ -5,7 +5,7 @@ the MSU machine Orion using Intel-2022.1.2 whatis([===[Loads libraries needed for building the UFS SRW App on Orion ]===]) -prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.5.1/envs/unified-env/install/modulefiles/Core") prepend_path("MODULEPATH", "/work/noaa/da/role-da/spack-stack/modulefiles") load("stack-intel/2022.0.2") diff --git a/modulefiles/srw_common.lua b/modulefiles/srw_common.lua index 2bcbc1f5f7..79c67283f9 100644 --- a/modulefiles/srw_common.lua +++ b/modulefiles/srw_common.lua @@ -5,8 +5,8 @@ load("libpng/1.6.37") load("netcdf-c/4.9.2") load("netcdf-fortran/4.6.0") load("parallelio/2.5.10") -load("esmf/8.4.2") -load("fms/2023.01") +load("esmf/8.5.0") +load("fms/2023.02.01") load("bacio/2.4.1") load("crtm/2.4.0") @@ -16,8 +16,8 @@ load("ip/4.3.0") load("sp/2.3.3") load("w3emc/2.10.0") -load("gftl-shared/1.5.0") -load("mapl/2.35.2-esmf-8.4.2") +load("gftl-shared/1.6.1") +load("mapl/2.40.3-esmf-8.5.0") load("nemsio/2.5.4") load("sfcio/1.4.1") diff --git a/parm/fixed_files_mapping.yaml b/parm/fixed_files_mapping.yaml index 54ddd41a81..49d3191de5 100644 --- a/parm/fixed_files_mapping.yaml +++ b/parm/fixed_files_mapping.yaml @@ -175,7 +175,7 @@ fixed_files: "global_tg3clim.2.6x1.5.grb | global_tg3clim.2.6x1.5.grb", "sfc_emissivity_idx.txt | global_sfc_emissivity_idx.txt", "solarconstant_noaa_an.txt | global_solarconstant_noaa_an.txt", - "global_o3prdlos.f77 | " + "global_o3prdlos.f77 | ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77" ] # diff --git a/parm/model_configure b/parm/model_configure index d22adf3f3a..aeb45f4719 100644 --- a/parm/model_configure +++ b/parm/model_configure @@ -1,3 +1,5 @@ +total_member: 1 +PE_MEMBER01: {{ PE_MEMBER01 }} start_year: {{ start_year }} start_month: {{ start_month }} start_day: {{ start_day }} @@ -11,6 +13,7 @@ ENS_SPS: .false. dt_atmos: {{ dt_atmos }} calendar: 'julian' memuse_verbose: .false. +atmos_nthreads: {{ atmos_nthreads }} restart_interval: {{ restart_interval }} output_1st_tstep_rst: .false. write_dopost: {{ write_dopost }} diff --git a/parm/nems.configure b/parm/ufs.configure similarity index 70% rename from parm/nems.configure rename to parm/ufs.configure index 14d9503c47..d90b7447f4 100644 --- a/parm/nems.configure +++ b/parm/ufs.configure @@ -1,5 +1,5 @@ ############################################# -#### NEMS Run-Time Configuration File ##### +#### UFS Run-Time Configuration File ##### ############################################# # ESMF # @@ -45,21 +45,8 @@ runSeq:: {% else %} # EARTH # EARTH_component_list: ATM -EARTH_attributes:: - Verbosity = 0 -:: - -# ATM # -ATM_model: fv3 -ATM_petlist_bounds: 0 {{ pe_member01_m1 }} -ATM_omp_num_threads: {{ atm_omp_num_threads }} -ATM_attributes:: - Verbosity = 0 - Diagnostic = 0 -:: - -# Run Sequence # -runSeq:: - ATM -:: + ATM_model: fv3 + runSeq:: + ATM + :: {% endif %} diff --git a/scripts/exregional_make_orog.sh b/scripts/exregional_make_orog.sh index 4fcf34a4ad..47430a802d 100755 --- a/scripts/exregional_make_orog.sh +++ b/scripts/exregional_make_orog.sh @@ -186,6 +186,8 @@ echo $mtnres $lonb $latb $jcap $NR $NF1 $NF2 $efac $blat > "${input_redirect_fn} # echo "\"${grid_fp}\"" >> "${input_redirect_fn}" echo "\"$orogfile\"" >> "${input_redirect_fn}" +echo ".false." >> "${input_redirect_fn}" #MASK_ONLY +echo "none" >> "${input_redirect_fn}" #MERGE_FILE cat "${input_redirect_fn}" # #----------------------------------------------------------------------- diff --git a/scripts/exregional_run_fcst.sh b/scripts/exregional_run_fcst.sh index 0013fad47d..9e6dc38584 100755 --- a/scripts/exregional_run_fcst.sh +++ b/scripts/exregional_run_fcst.sh @@ -696,7 +696,7 @@ fi # #----------------------------------------------------------------------- # -python3 $USHdir/create_nems_configure_file.py \ +python3 $USHdir/create_ufs_configure_file.py \ --path-to-defns ${GLOBAL_VAR_DEFNS_FP} \ --run-dir "${DATA}" export err=$? diff --git a/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_CONUS_3km_GFDLgrid_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta.yaml b/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_CONUS_3km_GFDLgrid_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta.yaml index f4c40bf722..de456cea73 100644 --- a/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_CONUS_3km_GFDLgrid_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta.yaml +++ b/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_CONUS_3km_GFDLgrid_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta.yaml @@ -20,3 +20,5 @@ task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 3 USE_USER_STAGED_EXTRN_FILES: true +task_run_fcst: + OMP_NUM_THREADS_RUN_FCST: 3 diff --git a/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_AK_3km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR.yaml b/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_AK_3km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR.yaml index 6d4dbc3b33..4a340185f3 100644 --- a/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_AK_3km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR.yaml +++ b/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_AK_3km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR.yaml @@ -19,3 +19,5 @@ task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 3 USE_USER_STAGED_EXTRN_FILES: true +task_run_fcst: + OMP_NUM_THREADS_RUN_FCST: 3 diff --git a/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.yaml b/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.yaml index dd5f5a464a..2e4f1dc22f 100644 --- a/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.yaml +++ b/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.yaml @@ -3,11 +3,10 @@ metadata: This test is to ensure that the workflow running in community mode completes successfully on the RRFS_CONUScompact_25km grid using the RRFS_v1beta physics suite with ICs derived from the HRRR and LBCs derived from the RAP. - It also tests the "DOT_OR_USCORE" option and enables offline UPP 2D decomposition. + It also enables offline UPP 2D decomposition. user: RUN_ENVIR: community workflow: - DOT_OR_USCORE: . CCPP_PHYS_SUITE: FV3_RRFS_v1beta PREDEF_GRID_NAME: RRFS_CONUScompact_25km DATE_FIRST_CYCL: '2020081000' diff --git a/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_HRRR.yaml b/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_HRRR.yaml index b00a24ae84..35be12a1ee 100644 --- a/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_HRRR.yaml +++ b/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_HRRR.yaml @@ -23,3 +23,5 @@ task_get_extrn_lbcs: USE_USER_STAGED_EXTRN_FILES: true EXTRN_MDL_FILES_LBCS: - '{yy}{jjj}{hh}00{fcst_hr:02d}00' +task_run_fcst: + OMP_NUM_THREADS_RUN_FCST: 3 diff --git a/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.yaml b/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.yaml index 44dfec5e75..1265fa8e0c 100644 --- a/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.yaml +++ b/tests/WE2E/test_configs/grids_extrn_mdls_suites_community/config.grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.yaml @@ -24,3 +24,5 @@ task_get_extrn_lbcs: USE_USER_STAGED_EXTRN_FILES: true EXTRN_MDL_FILES_LBCS: - '{yy}{jjj}{hh}00{fcst_hr:02d}00' +task_run_fcst: + OMP_NUM_THREADS_RUN_FCST: 3 diff --git a/tests/WE2E/test_configs/wflow_features/config.specify_template_filenames.yaml b/tests/WE2E/test_configs/wflow_features/config.specify_template_filenames.yaml index 2c39bc388e..996ea2e7d5 100644 --- a/tests/WE2E/test_configs/wflow_features/config.specify_template_filenames.yaml +++ b/tests/WE2E/test_configs/wflow_features/config.specify_template_filenames.yaml @@ -9,7 +9,7 @@ workflow: DIAG_TABLE_TMPL_FN: diag_table.FV3_GFS_v15p2 FIELD_TABLE_TMPL_FN: field_table.FV3_GFS_v15p2 MODEL_CONFIG_FN: model_configure - NEMS_CONFIG_FN: nems.configure + UFS_CONFIG_FN: ufs.configure CCPP_PHYS_SUITE: FV3_GFS_v15p2 PREDEF_GRID_NAME: RRFS_CONUS_25km DATE_FIRST_CYCL: '2019070100' diff --git a/tests/test_python/test_create_model_configure_file.py b/tests/test_python/test_create_model_configure_file.py index 9475028505..d5aea79ed8 100644 --- a/tests/test_python/test_create_model_configure_file.py +++ b/tests/test_python/test_create_model_configure_file.py @@ -43,9 +43,11 @@ def setUp(self): set_env_var("USHdir", USHdir) set_env_var("MODEL_CONFIG_FN", MODEL_CONFIG_FN) set_env_var("MODEL_CONFIG_TMPL_FP", MODEL_CONFIG_TMPL_FP) + set_env_var("PE_MEMBER01", 24) set_env_var("FCST_LEN_HRS", 72) set_env_var("FHROT", 0) set_env_var("DT_ATMOS", 1) + set_env_var("OMP_NUM_THREADS_RUN_FCST", 1) set_env_var("RESTART_INTERVAL", 4) set_env_var("ITASKS", 1) diff --git a/tests/test_python/test_set_ozone_param.py b/tests/test_python/test_set_ozone_param.py deleted file mode 100644 index 1d0e6d6aa7..0000000000 --- a/tests/test_python/test_set_ozone_param.py +++ /dev/null @@ -1,45 +0,0 @@ -""" Tests for set_ozone_param.py """ - -#pylint: disable=invalid-name - -import os -import unittest - -from set_ozone_param import set_ozone_param - -class Testing(unittest.TestCase): - """ Define the tests """ - def test_set_ozone_param(self): - """ Test that when the CCPP phyiscs suite XML is provided that - activates ozone, the expected ozone parameter is returned""" - test_dir = os.path.dirname(os.path.abspath(__file__)) - USHdir = os.path.join(test_dir, "..", "..", "ush") - ozone_param, _, _ = set_ozone_param( - os.path.join(USHdir, "test_data", "suite_FV3_GSD_SAR.xml"), - self.CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING, - ) - self.assertEqual("ozphys_2015", ozone_param) - - def setUp(self): - self.CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING = [ - "aerosol.dat | global_climaeropac_global.txt", - "co2historicaldata_2010.txt | fix_co2_proj/global_co2historicaldata_2010.txt", - "co2historicaldata_2011.txt | fix_co2_proj/global_co2historicaldata_2011.txt", - "co2historicaldata_2012.txt | fix_co2_proj/global_co2historicaldata_2012.txt", - "co2historicaldata_2013.txt | fix_co2_proj/global_co2historicaldata_2013.txt", - "co2historicaldata_2014.txt | fix_co2_proj/global_co2historicaldata_2014.txt", - "co2historicaldata_2015.txt | fix_co2_proj/global_co2historicaldata_2015.txt", - "co2historicaldata_2016.txt | fix_co2_proj/global_co2historicaldata_2016.txt", - "co2historicaldata_2017.txt | fix_co2_proj/global_co2historicaldata_2017.txt", - "co2historicaldata_2018.txt | fix_co2_proj/global_co2historicaldata_2018.txt", - "co2historicaldata_2019.txt | fix_co2_proj/global_co2historicaldata_2019.txt", - "co2historicaldata_2020.txt | fix_co2_proj/global_co2historicaldata_2020.txt", - "co2historicaldata_2021.txt | fix_co2_proj/global_co2historicaldata_2021.txt", - "co2historicaldata_glob.txt | global_co2historicaldata_glob.txt", - "co2monthlycyc.txt | co2monthlycyc.txt", - "global_h2oprdlos.f77 | global_h2o_pltc.f77", - "global_zorclim.1x1.grb | global_zorclim.1x1.grb", - "sfc_emissivity_idx.txt | global_sfc_emissivity_idx.txt", - "solarconstant_noaa_an.txt | global_solarconstant_noaa_an.txt", - "global_o3prdlos.f77 | ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77", - ] diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 6e7823c5d2..6a403754cb 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -610,9 +610,9 @@ workflow: # NUOPC/ESMF main component (ufs-weather-model: model_config). Its default # value is the name of the file that the ufs weather model expects to read in. # - # NEMS_CONFIG_FN: - # Name of a template file that contains information about the various NEMS - # components and their run sequence (ufs-weather-model: nems.configure). + # UFS_CONFIG_FN: + # Name of a template file that contains information about the various UFS + # components and their run sequence (ufs-weather-model: ufs.configure). # Its default value is the name of the file that the ufs weather model expects # to read in. # @@ -641,7 +641,7 @@ workflow: DIAG_TABLE_TMPL_FN: 'diag_table.{{ CCPP_PHYS_SUITE }}' FIELD_TABLE_TMPL_FN: 'field_table.{{ CCPP_PHYS_SUITE }}' MODEL_CONFIG_FN: "model_configure" - NEMS_CONFIG_FN: "nems.configure" + UFS_CONFIG_FN: "ufs.configure" AQM_RC_FN: "aqm.rc" AQM_RC_TMPL_FN: "aqm.rc" @@ -668,8 +668,8 @@ workflow: # MODEL_CONFIG_TMPL_FP: # Path to the MODEL_CONFIG_FN file. # - # NEMS_CONFIG_TMPL_FP: - # Path to the NEMS_CONFIG_FN file. + # UFS_CONFIG_TMPL_FP: + # Path to the UFS_CONFIG_FN file. # # AQM_RC_TMPL_FP: # Path to the AQM_RC_TMPL_FN file. @@ -684,7 +684,7 @@ workflow: DIAG_TABLE_TMPL_FP: '{{ [user.PARMdir, DIAG_TABLE_TMPL_FN]|path_join }}' FIELD_TABLE_TMPL_FP: '{{ [user.PARMdir, FIELD_TABLE_TMPL_FN]|path_join }}' MODEL_CONFIG_TMPL_FP: '{{ [user.PARMdir, MODEL_CONFIG_FN]|path_join }}' - NEMS_CONFIG_TMPL_FP: '{{ [user.PARMdir, NEMS_CONFIG_FN]|path_join }}' + UFS_CONFIG_TMPL_FP: '{{ [user.PARMdir, UFS_CONFIG_FN]|path_join }}' AQM_RC_TMPL_FP: '{{ [user.PARMdir, AQM_RC_TMPL_FN]|path_join }}' # @@ -697,8 +697,8 @@ workflow: # FIELD_TABLE_FP: # Path to the field table in the experiment directory. # - # NEMS_CONFIG_FP: - # Path to the NEMS_CONFIG_FN file in the experiment directory. + # UFS_CONFIG_FP: + # Path to the UFS_CONFIG_FN file in the experiment directory. # # FV3_NML_FP: # Path to the FV3_NML_FN file in the experiment directory. @@ -759,7 +759,7 @@ workflow: # DATA_TABLE_FP: '{{ [EXPTDIR, DATA_TABLE_FN]|path_join }}' FIELD_TABLE_FP: '{{ [EXPTDIR, FIELD_TABLE_FN]|path_join }}' - NEMS_CONFIG_FP: '{{ [EXPTDIR, NEMS_CONFIG_FN]|path_join }}' + UFS_CONFIG_FP: '{{ [EXPTDIR, UFS_CONFIG_FN]|path_join }}' FV3_NML_FP: '{{ [EXPTDIR, FV3_NML_FN]|path_join }}' FV3_NML_STOCH_FP: '{{ [EXPTDIR, [FV3_NML_FN, "_stoch"]|join ]|path_join }}' @@ -846,7 +846,7 @@ workflow: CCPP_PHYS_SUITE_FN: 'suite_{{ CCPP_PHYS_SUITE }}.xml' CCPP_PHYS_SUITE_IN_CCPP_FP: '{{ [user.UFS_WTHR_MDL_DIR, "FV3", "ccpp", "suites", CCPP_PHYS_SUITE_FN] |path_join }}' CCPP_PHYS_SUITE_FP: '{{ [workflow.EXPTDIR, CCPP_PHYS_SUITE_FN]|path_join }}' - CCPP_PHYS_DIR: '{{ [user.UFS_WTHR_MDL_DIR, "FV3", "ccpp", "physics", "physics"] |path_join }}' + CCPP_PHYS_DIR: '{{ [user.UFS_WTHR_MDL_DIR, "FV3", "ccpp", "physics", "physics", "SFC_Models", "Land", "Noahmp"] |path_join }}' # #----------------------------------------------------------------------- # @@ -866,7 +866,7 @@ workflow: # #----------------------------------------------------------------------- # - FIELD_DICT_FN: "fd_nems.yaml" + FIELD_DICT_FN: "fd_ufs.yaml" FIELD_DICT_IN_UWM_FP: '{{ [user.UFS_WTHR_MDL_DIR, "tests", "parm", FIELD_DICT_FN]|path_join }}' FIELD_DICT_FP: '{{ [workflow.EXPTDIR, FIELD_DICT_FN]|path_join }}' # @@ -1728,8 +1728,8 @@ task_run_fcst: #----------------------------------------------------------------------- # KMP_AFFINITY_RUN_FCST: "scatter" - OMP_NUM_THREADS_RUN_FCST: 1 # ATM_omp_num_threads in nems.configure - OMP_STACKSIZE_RUN_FCST: "512m" + OMP_NUM_THREADS_RUN_FCST: 2 # atmos_nthreads in model_configure + OMP_STACKSIZE_RUN_FCST: "1024m" # #----------------------------------------------------------------------- # diff --git a/ush/create_model_configure_file.py b/ush/create_model_configure_file.py index c2778f1be5..cd10ac404e 100644 --- a/ush/create_model_configure_file.py +++ b/ush/create_model_configure_file.py @@ -71,6 +71,7 @@ def create_model_configure_file( # ----------------------------------------------------------------------- # settings = { + "PE_MEMBER01": PE_MEMBER01, "start_year": cdate.year, "start_month": cdate.month, "start_day": cdate.day, @@ -78,6 +79,7 @@ def create_model_configure_file( "nhours_fcst": fcst_len_hrs, "fhrot": fhrot, "dt_atmos": DT_ATMOS, + "atmos_nthreads": OMP_NUM_THREADS_RUN_FCST, "restart_interval": RESTART_INTERVAL, "itasks": ITASKS, "write_dopost": f".{lowercase(str(WRITE_DOPOST))}.", diff --git a/ush/create_nems_configure_file.py b/ush/create_ufs_configure_file.py similarity index 79% rename from ush/create_nems_configure_file.py rename to ush/create_ufs_configure_file.py index a6ba1cbd6b..03de3e24c7 100644 --- a/ush/create_nems_configure_file.py +++ b/ush/create_ufs_configure_file.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """ -Function to create a NEMS configuration file for the FV3 forecast +Function to create a UFS configuration file for the FV3 forecast model(s) from a template. """ @@ -21,8 +21,8 @@ print_input_args, ) -def create_nems_configure_file(run_dir): - """ Creates a nems configuration file in the specified +def create_ufs_configure_file(run_dir): + """ Creates a ufs configuration file in the specified run directory Args: @@ -41,19 +41,18 @@ def create_nems_configure_file(run_dir): # #----------------------------------------------------------------------- # - # Create a NEMS configuration file in the specified run directory. + # Create a UFS configuration file in the specified run directory. # #----------------------------------------------------------------------- # print_info_msg(f''' - Creating a nems.configure file (\"{NEMS_CONFIG_FN}\") in the specified + Creating a ufs.configure file (\"{UFS_CONFIG_FN}\") in the specified run directory (run_dir): run_dir = \"{run_dir}\"''', verbose=VERBOSE) # # Set output file path # - nems_config_fp = os.path.join(run_dir, NEMS_CONFIG_FN) - pe_member01_m1 = str(int(PE_MEMBER01)-1) + ufs_config_fp = os.path.join(run_dir, UFS_CONFIG_FN) # #----------------------------------------------------------------------- # @@ -66,16 +65,14 @@ def create_nems_configure_file(run_dir): settings = { "dt_atmos": DT_ATMOS, "print_esmf": PRINT_ESMF, - "cpl_aqm": CPL_AQM, - "pe_member01_m1": pe_member01_m1, - "atm_omp_num_threads": OMP_NUM_THREADS_RUN_FCST, + "cpl_aqm": CPL_AQM } settings_str = cfg_to_yaml_str(settings) print_info_msg( dedent( f""" - The variable \"settings\" specifying values to be used in the \"{NEMS_CONFIG_FN}\" + The variable \"settings\" specifying values to be used in the \"{UFS_CONFIG_FN}\" file has been set as follows:\n settings =\n\n""" ) @@ -85,7 +82,7 @@ def create_nems_configure_file(run_dir): # #----------------------------------------------------------------------- # - # Call a python script to generate the experiment's actual NEMS_CONFIG_FN + # Call a python script to generate the experiment's actual UFS_CONFIG_FN # file from the template file. # #----------------------------------------------------------------------- @@ -93,14 +90,14 @@ def create_nems_configure_file(run_dir): # Store the settings in a temporary file with tempfile.NamedTemporaryFile(dir="./", mode="w+t", - prefix="nems_config_settings", + prefix="ufs_config_settings", suffix=".yaml") as tmpfile: tmpfile.write(settings_str) tmpfile.seek(0) cmd = " ".join(["uw template render", - "-i", NEMS_CONFIG_TMPL_FP, - "-o", nems_config_fp, + "-i", UFS_CONFIG_TMPL_FP, + "-o", ufs_config_fp, "-v", "--values-file", tmpfile.name, ] @@ -124,7 +121,7 @@ def create_nems_configure_file(run_dir): def parse_args(argv): """ Parse command line arguments""" parser = argparse.ArgumentParser( - description='Creates NEMS configuration file.' + description='Creates UFS configuration file.' ) parser.add_argument("-r", "--run-dir", @@ -144,6 +141,6 @@ def parse_args(argv): cfg = load_shell_config(args.path_to_defns) cfg = flatten_dict(cfg) import_vars(dictionary=cfg) - create_nems_configure_file( + create_ufs_configure_file( run_dir=args.run_dir, ) diff --git a/ush/set_ozone_param.py b/ush/set_ozone_param.py deleted file mode 100644 index 14a57b3fe9..0000000000 --- a/ush/set_ozone_param.py +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env python3 - -import copy -import os -from textwrap import dedent - -from python_utils import ( - log_info, - list_to_str, - print_input_args, - load_xml_file, - has_tag_with_value, - find_pattern_in_str, -) - - -def set_ozone_param(ccpp_phys_suite_fp, link_mappings): - """Function that does the following: - (1) Determines the ozone parameterization being used by checking in the - CCPP physics suite XML. - - (2) Sets the name of the global ozone production/loss file in the FIXgsm - FIXgsm system directory to copy to the experiment's FIXam directory. - - (3) Updates the symlink for the ozone file provided in link_mappings - list to include the name of global ozone production/loss file. - - Args: - ccpp_phys_suite_fp: full path to CCPP physics suite - link_mappings: list of mappings between symlinks and their - target files for this experiment - Returns: - ozone_param: a string - fixgsm_ozone_fn: a path to a fix file that should be used with - this experiment - ozone_link_mappings: a list of mappings for the files needed for - this experiment - - """ - - print_input_args(locals()) - - # - # ----------------------------------------------------------------------- - # - # Get the name of the ozone parameterization being used. There are two - # possible ozone parameterizations: - # - # (1) A parameterization developed/published in 2015. Here, we refer to - # this as the 2015 parameterization. If this is being used, then we - # set the variable ozone_param to the string "ozphys_2015". - # - # (2) A parameterization developed/published sometime after 2015. Here, - # we refer to this as the after-2015 parameterization. If this is - # being used, then we set the variable ozone_param to the string - # "ozphys". - # - # We check the CCPP physics suite definition file (SDF) to determine the - # parameterization being used. If this file contains the line - # - # ozphys_2015 - # - # then the 2015 parameterization is being used. If it instead contains - # the line - # - # ozphys - # - # then the after-2015 parameterization is being used. (The SDF should - # contain exactly one of these lines; not both nor neither; we check for - # this.) - # - # ----------------------------------------------------------------------- - # - tree = load_xml_file(ccpp_phys_suite_fp) - ozone_param = "" - if has_tag_with_value(tree, "scheme", "ozphys_2015"): - fixgsm_ozone_fn = "ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77" - ozone_param = "ozphys_2015" - elif has_tag_with_value(tree, "scheme", "ozphys"): - fixgsm_ozone_fn = "global_o3prdlos.f77" - ozone_param = "ozphys" - else: - raise KeyError( - f"Unknown or no ozone parameterization specified in the " - "CCPP physics suite file '{ccpp_phys_suite_fp}'" - ) - # - # ----------------------------------------------------------------------- - # - # Set the element in the array CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING that - # specifies the mapping between the symlink for the ozone production/loss - # file that must be created in each cycle directory and its target in the - # FIXam directory. The name of the symlink is already in the array, but - # the target is not because it depends on the ozone parameterization that - # the physics suite uses. Since we determined the ozone parameterization - # above, we now set the target of the symlink accordingly. - - # - # ----------------------------------------------------------------------- - # - # Set the mapping between the symlink and the target file we just - # found. The link name is already in the list, but the target file - # is not. - # - # ----------------------------------------------------------------------- - # - - ozone_symlink = "global_o3prdlos.f77" - fixgsm_ozone_fn_is_set = False - - ozone_link_mappings = copy.deepcopy(link_mappings) - for i, mapping in enumerate(ozone_link_mappings): - symlink = mapping.split("|")[0] - if symlink.strip() == ozone_symlink: - ozone_link_mappings[i] = f"{symlink}| {fixgsm_ozone_fn}" - fixgsm_ozone_fn_is_set = True - break - - # Make sure the list has been updated - if not fixgsm_ozone_fn_is_set: - - raise Exception( - f""" - Unable to set name of the ozone production/loss file in the FIXgsm directory - in the array that specifies the mapping between the symlinks that need to - be created in the cycle directories and the files in the FIXgsm directory: - fixgsm_ozone_fn_is_set = '{fixgsm_ozone_fn_is_set}'""" - ) - - return ozone_param, fixgsm_ozone_fn, ozone_link_mappings diff --git a/ush/setup.py b/ush/setup.py index cdea8fde0f..0511653fa2 100644 --- a/ush/setup.py +++ b/ush/setup.py @@ -39,7 +39,6 @@ from set_cycle_dates import set_cycle_dates from set_predef_grid_params import set_predef_grid_params -from set_ozone_param import set_ozone_param from set_gridparams_ESGgrid import set_gridparams_ESGgrid from set_gridparams_GFDLgrid import set_gridparams_GFDLgrid from link_fix import link_fix @@ -1230,43 +1229,6 @@ def get_location(xcs, fmt, expt_cfg): FIELD_DICT_IN_UWM_FP = '{field_dict_in_uwm_fp}'""" ) - fixed_files = expt_config["fixed_files"] - # Set the appropriate ozone production/loss file paths and symlinks - ozone_param, fixgsm_ozone_fn, ozone_link_mappings = set_ozone_param( - ccpp_phys_suite_in_ccpp_fp, - fixed_files["CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING"], - ) - - # Reset the dummy value saved in the last list item to the ozone - # file name - fixed_files["FIXgsm_FILES_TO_COPY_TO_FIXam"][-1] = fixgsm_ozone_fn - - # Reset the experiment config list with the update list - fixed_files["CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING"] = ozone_link_mappings - - log_info( - f""" - The ozone parameter used for this experiment is {ozone_param}. - """ - ) - - log_info( - f""" - The list that sets the mapping between symlinks in the cycle - directory, and the files in the FIXam directory has been updated - to include the ozone production/loss file. - """, - verbose=verbose, - ) - - log_info( - f""" - CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING = {list_to_str(ozone_link_mappings)} - """, - verbose=verbose, - dedent_=False, - ) - # # ----------------------------------------------------------------------- # @@ -1354,6 +1316,8 @@ def dict_find(user_dict, substring): (run_make_ics or run_make_lbcs), } + fixed_files = expt_config["fixed_files"] + prep_tasks = ["GRID", "OROG", "SFC_CLIMO"] res_in_fixlam_filenames = None for prep_task in prep_tasks: