From b40f99dd1701569ee27b01d53c3c8f32f4d33951 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Fri, 17 Jan 2025 08:54:10 -0500 Subject: [PATCH 1/3] Ninth reconciliation PR from production/RRFS.v1 (#899) * [production/RRFS.v1] a new parameter to fix REFS member crash and new ccpp suites for RRFS fire weather (#864) * a new parameter is added to control whether G-F will be cold started or not; new ccpp suites are added to support RRFS fire weather prediction * fix RRFS_sas_nogwd suite name inconsistency (#868) * Add is_init flag for GFS_phys_time_vary to ccpp/data/GFS_typedefs.{F90,meta} and fix bug for Thompson MP init flag (used uninitialized, correct by coincidence) * update suites with GFS_photochemistry --------- Co-authored-by: Jili Dong Co-authored-by: Dom Heinzeller --- ccpp/data/GFS_typedefs.F90 | 11 +++- ccpp/data/GFS_typedefs.meta | 14 ++++- ccpp/physics | 2 +- ccpp/suites/suite_RRFS_sas.xml | 84 ++++++++++++++++++++++++++++ ccpp/suites/suite_RRFS_sas_nogwd.xml | 81 +++++++++++++++++++++++++++ 5 files changed, 187 insertions(+), 5 deletions(-) create mode 100644 ccpp/suites/suite_RRFS_sas.xml create mode 100644 ccpp/suites/suite_RRFS_sas_nogwd.xml diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index a7cb640c8..4614c087b 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -807,6 +807,8 @@ module GFS_typedefs !< (yr, mon, day, t-zone, hr, min, sec, mil-sec) integer :: idate(4) !< initial date with different size and ordering !< (hr, mon, day, yr) + logical :: gfs_phys_time_vary_is_init=.false. !< GFS_phys_time_vary interstitial initialization flag + !--- radiation control parameters real(kind=kind_phys) :: fhswr !< frequency for shortwave radiation (secs) real(kind=kind_phys) :: fhlwr !< frequency for longwave radiation (secs) @@ -1033,7 +1035,7 @@ module GFS_typedefs real(kind=kind_phys) :: dt_inner !< time step for the inner loop in s logical :: sedi_semi !< flag for semi Lagrangian sedi of rain integer :: decfl !< deformed CFL factor - logical :: thpsnmp_is_init !< Local scheme initialization flag + logical :: thompson_mp_is_init=.false. !< Local scheme initialization flag !--- GFDL microphysical paramters logical :: lgfdlmprad !< flag for GFDL mp scheme and radiation consistency @@ -1222,6 +1224,7 @@ module GFS_typedefs integer :: ichoice = 0 !< flag for closure of C3/GF deep convection integer :: ichoicem = 13!< flag for closure of C3/GF mid convection integer :: ichoice_s = 3 !< flag for closure of C3/GF shallow convection + logical :: gf_coldstart !< flag for cold start GF integer :: conv_cf_opt !< option for convection scheme cloud fraction computation !< 0: Chaboureau-Bechtold !< 1: Xu-Randall @@ -3592,7 +3595,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & real(kind=kind_phys) :: dt_inner = -999.0 !< time step for the inner loop logical :: sedi_semi = .false. !< flag for semi Lagrangian sedi of rain integer :: decfl = 8 !< deformed CFL factor - logical :: thpsnmp_is_init = .false. !< Local scheme initialization flag !--- GFDL microphysical parameters logical :: lgfdlmprad = .false. !< flag for GFDLMP radiation interaction @@ -3986,6 +3988,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & integer :: ichoice = 0 !< flag for closure of C3/GF deep convection integer :: ichoicem = 13!< flag for closure of C3/GF mid convection integer :: ichoice_s = 3 !< flag for closure of C3/GF shallow convection + logical :: gf_coldstart = .false. !< flag for cold start GF !-- chem nml variables for RRFS-SD real(kind=kind_phys) :: dust_drylimit_factor = 1.0 @@ -4202,7 +4205,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & do_smoke_transport,smoke_conv_wet_coef,n_dbg_lines, & add_fire_moist_flux, sc_factor, & !--- C3/GF closures - ichoice,ichoicem,ichoice_s, & + ichoice,ichoicem,ichoice_s,gf_coldstart, & !--- (DFI) time ranges with radar-prescribed microphysics tendencies ! and (maybe) convection suppression fh_dfi_radar, radar_tten_limits, do_cap_suppress, & @@ -4477,6 +4480,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%ichoice_s = ichoice_s Model%ichoicem = ichoicem Model%ichoice = ichoice + Model%gf_coldstart = gf_coldstart !--- integrated dynamics through earth's atmosphere Model%lsidea = lsidea @@ -6589,6 +6593,7 @@ subroutine control_print(Model) print*,'ichoice_s : ', Model%ichoice_s print*,'ichoicem : ', Model%ichoicem print*,'ichoice : ', Model%ichoice + print*,'gf_coldstart : ', Model%gf_coldstart endif if(model%rrfs_sd) then print *, ' ' diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 5c9f73d70..bd0e34975 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -4911,12 +4911,18 @@ units = count dimensions = () type = integer -[thpsnmp_is_init] +[thompson_mp_is_init] standard_name = flag_for_thompson_mp_scheme_initialization long_name = flag carrying scheme initialization status units = flag dimensions = () type = logical +[gfs_phys_time_vary_is_init] + standard_name = flag_for_gfs_phys_time_vary_interstitial_initialization + long_name = flag carrying interstitial initialization status + units = flag + dimensions = () + type = logical [lgfdlmprad] standard_name = flag_for_GFDL_microphysics_radiation_interaction long_name = flag for GFDL microphysics-radiation interaction @@ -5623,6 +5629,12 @@ units = flag dimensions = () type = integer +[gf_coldstart] + standard_name = flag_for_cold_start_gf + long_name = flag to cold start G-F + units = flag + dimensions = () + type = logical [hwrf_samfdeep] standard_name = flag_for_hurricane_specific_code_in_scale_aware_mass_flux_deep_convection long_name = flag for hwrf samfdeepcnv scheme diff --git a/ccpp/physics b/ccpp/physics index 24643b0e0..449343f16 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 24643b0e0f9754d76176d60ce155bf8956bfb44d +Subproject commit 449343f16e87e149f05a76b565287c77f53ccf83 diff --git a/ccpp/suites/suite_RRFS_sas.xml b/ccpp/suites/suite_RRFS_sas.xml new file mode 100644 index 000000000..6ca272c54 --- /dev/null +++ b/ccpp/suites/suite_RRFS_sas.xml @@ -0,0 +1,84 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + GFS_radiation_surface + rad_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + mynnsfc_wrapper + GFS_surface_loop_control_part1 + lsm_ruc + clm_lake + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + rrfs_smoke_wrapper + mynnedmf_wrapper + rrfs_smoke_postpbl + GFS_GWD_generic_pre + drag_suite + GFS_GWD_generic_post + GFS_suite_stateout_update + GFS_photochemistry + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + samfdeepcnv + GFS_DCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + maximum_hourly_diagnostics + GFS_physics_post + + + + + GFS_stochastics + + + + diff --git a/ccpp/suites/suite_RRFS_sas_nogwd.xml b/ccpp/suites/suite_RRFS_sas_nogwd.xml new file mode 100644 index 000000000..a68c1de3e --- /dev/null +++ b/ccpp/suites/suite_RRFS_sas_nogwd.xml @@ -0,0 +1,81 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + GFS_radiation_surface + rad_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + mynnsfc_wrapper + GFS_surface_loop_control_part1 + lsm_ruc + clm_lake + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + rrfs_smoke_wrapper + mynnedmf_wrapper + rrfs_smoke_postpbl + GFS_suite_stateout_update + GFS_photochemistry + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + samfdeepcnv + GFS_DCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + maximum_hourly_diagnostics + GFS_physics_post + + + + + GFS_stochastics + + + + From 6b0794d0cda4bd2467e08714f512ba3b5bd82892 Mon Sep 17 00:00:00 2001 From: Edward Hartnett <38856240+edwardhartnett@users.noreply.github.com> Date: Tue, 21 Jan 2025 11:40:13 -0700 Subject: [PATCH 2/3] Fix the documentation build for fv3atm, getting the CI to work (#906) Change the CMake option ENABLE_DOCS to ENABLE_FV3ATM_DOCS, in order to avoid invoking the documentation build of UPP. Add a new CI workflow called "docs", and take the documentation build out of the GCC workflow. This will be more useful to programmers because having the "docs" CI run fail is pretty obvious. --- .github/workflows/GCC.yml | 15 +--- .github/workflows/docs.yml | 138 +++++++++++++++++++++++++++++++++++++ CMakeLists.txt | 5 +- docs/CMakeLists.txt | 20 +++--- docs/Doxyfile.in | 5 +- 5 files changed, 156 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/GCC.yml b/.github/workflows/GCC.yml index 86d0bf668..4f8bbf7b5 100644 --- a/.github/workflows/GCC.yml +++ b/.github/workflows/GCC.yml @@ -74,8 +74,8 @@ jobs: steps: - # Only do Doxygen and gcovr build for one job - - name: decide-doc-gcovr-build + # Only do gcovr build for one job + - name: decide-gcovr-build run: | if [[ "${{ matrix.cmake_opts }}" == "-D32BIT=ON" && "${{ matrix.gcc_ver }}" == 12 && "${{ matrix.mpi }}" == mpich ]]; then echo 'devbuild=ON' | tee -a ${GITHUB_ENV} @@ -86,7 +86,6 @@ jobs: - name: install-utilities run: | - sudo apt-get install doxygen graphviz python3 -m pip install gcovr - name: install-cmake @@ -121,7 +120,7 @@ jobs: export CC=mpicc export CXX=mpicxx export FC=mpif90 - cmake ${GITHUB_WORKSPACE}/fv3atm -DBUILD_TESTING=ON ${{ matrix.cmake_opts }} -DENABLE_DOCS=ON ${{ env.gcov_cmake }} + cmake ${GITHUB_WORKSPACE}/fv3atm -DBUILD_TESTING=ON ${{ matrix.cmake_opts }} ${{ env.gcov_cmake }} make -j2 - name: run-tests @@ -144,14 +143,6 @@ jobs: ${{ github.workspace }}/build/*.html ${{ github.workspace }}/build/*.css - - name: upload-docs - uses: actions/upload-artifact@v4 - if: ${{ env.devbuild == 'ON' }} - with: - name: docs-fv3atm - path: | - build/docs/html - - name: debug-artifacts uses: actions/upload-artifact@v4 if: ${{ failure() }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..fbc145e65 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,138 @@ +# This is a CI workflow for the fv3atm project. +# +# This workflow builds the fv3atm doxygen documentation. +# +# Ed Hartnett, 1/9/25 + +name: docs +on: + push: + branches: + - develop + pull_request: + branches: + - develop + +jobs: + build_spack: + runs-on: ubuntu-latest + + strategy: + matrix: + gcc_ver: ["12"] + mpi: ["mpich"] + + steps: + + - name: checkout-fv3atm + uses: actions/checkout@v4 + with: + path: ${{ github.workspace }}/fv3atm + submodules: recursive + + - name: install-cmake + run: | + cd ${{ github.workspace }} + curl -f -s -S -R -L https://github.com/Kitware/CMake/releases/download/v3.29.2/cmake-3.29.2-Linux-x86_64.tar.gz | tar -zx + echo "${{ github.workspace }}/cmake-3.29.2-linux-x86_64/bin" >> $GITHUB_PATH + + - name: cache-spack + id: cache-spack + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/spack-develop + key: spack-${{ hashFiles('fv3atm/ci/spack.yaml') }}-gcc${{ matrix.gcc_ver }}-${{ matrix.mpi }} + + # Building dependencies takes 40+ min + - name: spack-install + if: steps.cache-spack.outputs.cache-hit != 'true' + run: | + wget --no-verbose https://github.com/spack/spack/archive/refs/heads/develop.zip + unzip develop.zip -d ${GITHUB_WORKSPACE}/ &> unzip.out + . ${GITHUB_WORKSPACE}/spack-develop/share/spack/setup-env.sh + spack env create gcc${{ matrix.gcc_ver }} ${GITHUB_WORKSPACE}/fv3atm/ci/spack.yaml + spack env activate gcc${{ matrix.gcc_ver }} + spack compiler find | grep gcc@${{ matrix.gcc_ver }} + spack external find gmake cmake git git-lfs perl python ${{ matrix.mpi }} + spack config add "packages:all:require:['%gcc@${{ matrix.gcc_ver }}']" + spack config add "packages:mpi:require:'${{ matrix.mpi }}'" + spack concretize |& tee ${SPACK_ENV}/log.concretize + spack install -j2 --fail-fast + echo "spackrc=$?" >> ${GITHUB_ENV} + spack clean --all + + build_docs: + needs: build_spack + runs-on: ubuntu-latest + + strategy: + matrix: + cmake_opts: ["-D32BIT=ON"] + gcc_ver: ["12"] + mpi: ["mpich"] + + steps: + + # Only do Doxygen and gcovr build for one job + - name: decide-doc-gcovr-build + run: | + if [[ "${{ matrix.cmake_opts }}" == "-D32BIT=ON" && "${{ matrix.gcc_ver }}" == 12 && "${{ matrix.mpi }}" == mpich ]]; then + echo 'devbuild=ON' | tee -a ${GITHUB_ENV} + echo 'gcov_cmake="-DCMAKE_Fortran_FLAGS=-fprofile-abs-path -fprofile-arcs -ftest-coverage -O0"' | tee -a ${GITHUB_ENV} + else + echo 'devbuild=OFF' | tee -a ${GITHUB_ENV} + fi + + - name: install-utilities + run: | + sudo apt-get install doxygen graphviz + + - name: install-cmake + run: | + cd ${{ github.workspace }} + curl -f -s -S -R -L https://github.com/Kitware/CMake/releases/download/v3.29.2/cmake-3.29.2-Linux-x86_64.tar.gz | tar -zx + echo "${{ github.workspace }}/cmake-3.29.2-linux-x86_64/bin" >> $GITHUB_PATH + + - name: checkout-fv3atm + uses: actions/checkout@v4 + with: + path: ${{ github.workspace }}/fv3atm + submodules: recursive + + - name: cache-spack + id: cache-spack + uses: actions/cache/restore@v4 + with: + path: ${{ github.workspace }}/spack-develop + key: spack-${{ hashFiles('fv3atm/ci/spack.yaml') }}-gcc${{ matrix.gcc_ver }}-${{ matrix.mpi }} + + - name: docs-build + run: | + . ${GITHUB_WORKSPACE}/spack-develop/share/spack/setup-env.sh + spack env activate gcc${{ matrix.gcc_ver }} + spack load $(spack find --format "{name}") + cd ${GITHUB_WORKSPACE}/fv3atm + git clone https://github.com/NOAA-EMC/CMakeModules + git clone --recurse-submodules https://github.com/NOAA-PSL/stochastic_physics stochastic_physics_repo + mkdir ${GITHUB_WORKSPACE}/build + cd ${GITHUB_WORKSPACE}/build + export CC=mpicc + export CXX=mpicxx + export FC=mpif90 + cmake ${GITHUB_WORKSPACE}/fv3atm -DBUILD_TESTING=ON ${{ matrix.cmake_opts }} -DENABLE_FV3ATM_DOCS=ON ${{ env.gcov_cmake }} + make doxygen_doc + + - name: upload-docs + uses: actions/upload-artifact@v4 + if: ${{ env.devbuild == 'ON' }} + with: + name: docs-fv3atm + path: | + build/docs/html + + - name: debug-artifacts + uses: actions/upload-artifact@v4 + if: ${{ failure() }} + with: + name: ccpp_prebuild_logs-gcc${{ matrix.gcc_ver }}-${{ matrix.mpi }}-${{ matrix.cmake_opts }} + path: ${{ github.workspace }}/build/ccpp/ccpp_prebuild.* diff --git a/CMakeLists.txt b/CMakeLists.txt index cdf597df2..cef00a251 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,10 +4,11 @@ cmake_minimum_required(VERSION 3.19) # Handle user build options. -option(ENABLE_DOCS "Enable generation of doxygen-based documentation." OFF) +option(ENABLE_FV3ATM_DOCS "Enable generation of doxygen-based documentation." OFF) # Determine whether or not to generate documentation. -if(ENABLE_DOCS) +if(ENABLE_FV3ATM_DOCS) + message(STATUS "We will build the fv3atm doxygen documentation.") find_package(Doxygen REQUIRED) add_subdirectory(docs) endif() diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 6273869d8..17ed6c084 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -2,16 +2,12 @@ # # Ed Hartnett 12/28/23 -IF(ENABLE_DOCS) - - # Create doxyfile. - SET(abs_top_srcdir "${CMAKE_SOURCE_DIR}") - SET(abs_top_builddir "${CMAKE_BINARY_DIR}") - CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) - ADD_CUSTOM_TARGET(doxygen_doc ALL - ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating API Documentation with Doxygen" VERBATIM) - -ENDIF(ENABLE_DOCS) +# Create doxyfile. +SET(abs_top_srcdir "${CMAKE_SOURCE_DIR}") +SET(abs_top_builddir "${CMAKE_BINARY_DIR}") +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) +ADD_CUSTOM_TARGET(doxygen_doc ALL + ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Generating API Documentation with Doxygen" VERBATIM) diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in index d89e7145e..5c4a8b8f4 100644 --- a/docs/Doxyfile.in +++ b/docs/Doxyfile.in @@ -864,8 +864,11 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. +# Note EJH: Add @abs_top_srcdir@ after doxygenating those code +# files. The comments in one of them are activating a bug in doxygen +# and need to be cleaned up to get a doxygen build working. + INPUT = @abs_top_srcdir@/docs/user_guide.md \ - @abs_top_srcdir@ \ @abs_top_srcdir@/ccpp \ @abs_top_srcdir@/cpl \ @abs_top_srcdir@/io \ From c2eb454e3a4a31762f3f2d4c020fa017eea0a867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ufuk=20Turun=C3=A7o=C4=9Flu?= Date: Tue, 28 Jan 2025 11:37:03 -0700 Subject: [PATCH 3/3] Update for NoahMP land component (#886) * update suite file to get fluxes from land component model * add sfc_land scheme to suite files --- ccpp/physics | 2 +- ccpp/suites/suite_FV3_GFS_v17_coupled_p8.xml | 1 + ccpp/suites/suite_FV3_GFS_v17_coupled_p8_ugwpv1.xml | 1 + ccpp/suites/suite_FV3_GFS_v17_p8_ugwpv1.xml | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 449343f16..50a7846db 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 449343f16e87e149f05a76b565287c77f53ccf83 +Subproject commit 50a7846db918ec01fb001afb6a9dd8c76d5c0070 diff --git a/ccpp/suites/suite_FV3_GFS_v17_coupled_p8.xml b/ccpp/suites/suite_FV3_GFS_v17_coupled_p8.xml index 0cf5f40af..7d97c67b1 100644 --- a/ccpp/suites/suite_FV3_GFS_v17_coupled_p8.xml +++ b/ccpp/suites/suite_FV3_GFS_v17_coupled_p8.xml @@ -43,6 +43,7 @@ sfc_nst sfc_nst_post noahmpdrv + sfc_land sfc_cice sfc_sice GFS_surface_loop_control_part2 diff --git a/ccpp/suites/suite_FV3_GFS_v17_coupled_p8_ugwpv1.xml b/ccpp/suites/suite_FV3_GFS_v17_coupled_p8_ugwpv1.xml index e7bb03710..134fe7b9d 100644 --- a/ccpp/suites/suite_FV3_GFS_v17_coupled_p8_ugwpv1.xml +++ b/ccpp/suites/suite_FV3_GFS_v17_coupled_p8_ugwpv1.xml @@ -43,6 +43,7 @@ sfc_nst sfc_nst_post noahmpdrv + sfc_land sfc_cice sfc_sice GFS_surface_loop_control_part2 diff --git a/ccpp/suites/suite_FV3_GFS_v17_p8_ugwpv1.xml b/ccpp/suites/suite_FV3_GFS_v17_p8_ugwpv1.xml index c94396454..5ceab7c64 100644 --- a/ccpp/suites/suite_FV3_GFS_v17_p8_ugwpv1.xml +++ b/ccpp/suites/suite_FV3_GFS_v17_p8_ugwpv1.xml @@ -43,6 +43,7 @@ sfc_nst sfc_nst_post noahmpdrv + sfc_land sfc_sice GFS_surface_loop_control_part2