From db9437a47b9ba1c172b6a8cd277ca78ea86d6133 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 11 Feb 2026 21:39:09 -0700 Subject: [PATCH 01/78] Initial commit --- .github/workflows/bld_mpas_images.yaml | 78 ++++++++++++++++++++++++++ docker/Dockerfile-add-netcdf | 35 ++++++++++++ docker/Dockerfile-add-pnetcdf | 39 +++++++++++++ docker/Dockerfile-add-python | 27 +++++++++ docker/Dockerfile-finalize | 12 ++++ docker/Dockerfile-gnu-minimal | 30 ++++++++++ docker/Dockerfile-nvhpc-minimal | 33 +++++++++++ docker/Dockerfile-oneapi-minimal | 50 +++++++++++++++++ 8 files changed, 304 insertions(+) create mode 100644 .github/workflows/bld_mpas_images.yaml create mode 100644 docker/Dockerfile-add-netcdf create mode 100644 docker/Dockerfile-add-pnetcdf create mode 100644 docker/Dockerfile-add-python create mode 100644 docker/Dockerfile-finalize create mode 100644 docker/Dockerfile-gnu-minimal create mode 100644 docker/Dockerfile-nvhpc-minimal create mode 100644 docker/Dockerfile-oneapi-minimal diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml new file mode 100644 index 0000000000..b34c51ff44 --- /dev/null +++ b/.github/workflows/bld_mpas_images.yaml @@ -0,0 +1,78 @@ +name: MPAS-A Base Images Build +run-name: CI Image Build for MPAS-A + +on: + pull_request: + workflow_dispatch: +# push: +# branches: +# # Only build containers when pushing to main +# - "main" + +jobs: + docker: + #if: github.repository == 'ufs-community/MPAS-Model' + strategy: + fail-fast: false # Disable fail-fast + matrix: + toolchain: [oneapi,gnu,nvhpc] + include: + # Set toolchain configuration(s) + - toolchain: oneapi + nfversion: 4.5.4 + pnfversion: 1.12.3 + - toolchain: gnu + nfversion: 4.6.2 + pnfversion: 1.14.1 + - toolchain: nvhpc + nfversion: 4.5.4 + pnfversion: 1.12.3 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - name: Log in to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + + - name: Build minimal-toolchain:${{ matrix.toolchain }} + uses: docker/build-push-action@v6 + with: + file: docker/Dockerfile-${{ matrix.toolchain }}-minimal + tags: minimal-toolchain:${{ matrix.toolchain }} + + - name: Build add-netcdf:${{ matrix.toolchain }} + uses: docker/build-push-action@v6 + with: + file: docker/Dockerfile-add-netcdf + tags: add-netcdf:${{ matrix.toolchain }} + build-args: | + TOOLCHAIN=${{ matrix.toolchain }} + NFVERSION=${{ matrix.nfversion }} + + - name: Build add-pnetcdf:${{ matrix.toolchain }} + uses: docker/build-push-action@v6 + with: + file: docker/Dockerfile-add-pnetcdf + tags: add-pnetcdf:${{ matrix.toolchain }} + build-args: | + TOOLCHAIN=${{ matrix.toolchain }} + PNFVERSION=${{ matrix.pnfversion }} + + - name: Build add-python:${{ matrix.toolchain }} + uses: docker/build-push-action@v6 + with: + file: docker/Dockerfile-add-python + build-args: TOOLCHAIN=${{ matrix.toolchain }} + tags: add-python:${{ matrix.toolchain }} + + - name: Build and push dustinswales/ufs-community-mpas-ci:${{ matrix.toolchain }} + uses: docker/build-push-action@v6 + with: + file: docker/Dockerfile-finalize + build-args: TOOLCHAIN=${{ matrix.toolchain }} + push: True + tags: | + dustinswales/ufs-community-mpas-ci:${{ matrix.toolchain }} diff --git a/docker/Dockerfile-add-netcdf b/docker/Dockerfile-add-netcdf new file mode 100644 index 0000000000..4e442f3e41 --- /dev/null +++ b/docker/Dockerfile-add-netcdf @@ -0,0 +1,35 @@ +# +# Install NetCDF Fortran and its dependencies +# + +ARG TOOLCHAIN +FROM minimal-toolchain:$TOOLCHAIN + +# Install the dependencies +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get --yes install --no-install-recommends \ + curl \ + libnetcdf-dev \ +# libopenmpi-dev \ + openmpi-bin \ + && rm -rf /var/lib/apt/lists/* + +# Install NetCDF Fortran +# The version must be compitible with NetCDF C installed above +ARG NFVERSION +ENV NFVERSION=$NFVERSION + +RUN curl https://downloads.unidata.ucar.edu/netcdf-fortran/$NFVERSION/netcdf-fortran-$NFVERSION.tar.gz | tar xz \ + && cd netcdf-fortran-$NFVERSION \ + && { ./configure \ + CFLAGS='-O2' \ + FCFLAGS='-O2 -fPIC' \ + --disable-static \ + --prefix=/usr || \ + { cat ./config.log; exit 1; } } +RUN cd netcdf-fortran-$NFVERSION \ + && make -j \ + && make install \ + && cd .. \ + && rm -rf netcdf-fortran-$NFVERSION \ + && ldconfig diff --git a/docker/Dockerfile-add-pnetcdf b/docker/Dockerfile-add-pnetcdf new file mode 100644 index 0000000000..1223588f7d --- /dev/null +++ b/docker/Dockerfile-add-pnetcdf @@ -0,0 +1,39 @@ +# +# Install Parallel NetCDF Fortran and its dependencies +# + +ARG TOOLCHAIN +FROM add-netcdf:$TOOLCHAIN + +ARG PNFVERSION +ENV PNFVERSION=$PNFVERSION +ARG FC +ENV FC=$FC +ARG CC +ENV CC=$CC + +# Set environment variables for PnetCDF installation +ENV PNETCDF_PREFIX=/opt/pnetcdf +ENV PATH="${PNETCDF_PREFIX}/bin:${PATH}" +ENV LD_LIBRARY_PATH="${PNETCDF_PREFIX}/lib:{$LD_LIBRARY_PATH}" +ENV PKG_CONFIG_PATH="${PNETCDF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" + +# Update and install necessary build tools +RUN apt-get update && apt-get install -y --no-install-recommends \ + automake \ + libtool \ + && rm -rf /var/lib/apt/lists/* + +# Download, compile, and install PnetCDF +WORKDIR /tmp +RUN wget https://parallel-netcdf.github.io/Release/pnetcdf-${PNFVERSION}.tar.gz \ + && tar xzf pnetcdf-${PNFVERSION}.tar.gz \ + && cd pnetcdf-${PNFVERSION} \ + && CC=$CC FC=$FC ./configure --prefix=${PNETCDF_PREFIX} \ + && make -j 8 install \ + && cd /tmp \ + && rm -rf pnetcdf-${PNFVERSION} pnetcdf-${PNFVERSION}.tar.gz + +# Add PnetCDF library path to the environment +ENV PATH="${PNETCDF_PREFIX}/bin:${PATH}" +ENV LD_LIBRARY_PATH="${PNETCDF_PREFIX}/lib:${LD_LIBRARY_PATH}" diff --git a/docker/Dockerfile-add-python b/docker/Dockerfile-add-python new file mode 100644 index 0000000000..7232cca6bc --- /dev/null +++ b/docker/Dockerfile-add-python @@ -0,0 +1,27 @@ +# +# Install Python3 and a small set of packages +# + +ARG TOOLCHAIN +FROM add-pnetcdf:$TOOLCHAIN + +# Install Python +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get --yes install --no-install-recommends \ + python-is-python3 \ + python3 \ + python3-pip \ + && rm -rf /var/lib/apt/lists/* + +# Install essential packages +RUN pip3 install --break-system-packages \ + f90nml \ + h5py \ + netCDF4 \ + numpy \ + xarray + +# Install packages for the validation plot generation +RUN pip3 install --break-system-packages \ + matplotlib + diff --git a/docker/Dockerfile-finalize b/docker/Dockerfile-finalize new file mode 100644 index 0000000000..581663cd4e --- /dev/null +++ b/docker/Dockerfile-finalize @@ -0,0 +1,12 @@ +# +# Finalize CI containers +# + +ARG TOOLCHAIN +FROM add-python:$TOOLCHAIN + +# Install additional tools +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get --yes install --no-install-recommends \ + zstd \ + && rm -rf /var/lib/apt/lists/* diff --git a/docker/Dockerfile-gnu-minimal b/docker/Dockerfile-gnu-minimal new file mode 100644 index 0000000000..f8334e19a8 --- /dev/null +++ b/docker/Dockerfile-gnu-minimal @@ -0,0 +1,30 @@ +FROM ubuntu:24.04 + +# Extend and update the package registry +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get --yes install --no-install-recommends \ + ca-certificates \ + curl \ + wget \ + gpg \ + binutils \ + g++ \ + gcc \ + libc-dev \ + make \ + git \ + gfortran>=14 \ + cmake \ + libopenmpi-dev \ + openmpi-bin \ + ksh \ + m4 \ + tcsh \ + time \ + vim \ + file \ + libxml2 \ + gh \ + jq + +ENV FC=mpif90 CC=mpicc CXX=mpicxx \ No newline at end of file diff --git a/docker/Dockerfile-nvhpc-minimal b/docker/Dockerfile-nvhpc-minimal new file mode 100644 index 0000000000..484c6ecf2d --- /dev/null +++ b/docker/Dockerfile-nvhpc-minimal @@ -0,0 +1,33 @@ +FROM ubuntu:24.04 + +ARG NVHPC_VERSION_MAJOR='25' +ARG NVHPC_VERSION_MINOR='9' + +# Extend and update the package registry +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get --yes install --no-install-recommends \ + ca-certificates \ + curl \ + time \ + gpg \ + make \ + cmake \ + wget \ + git + RUN curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK \ + | gpg --dearmor > /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /" > /etc/apt/sources.list.d/nvhpc.list \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get --yes install --no-install-recommends \ + nvhpc-${NVHPC_VERSION_MAJOR}-${NVHPC_VERSION_MINOR} \ + && rm -rf /var/lib/apt/lists/* \ + && for dir in comm_libs examples math_libs profilers; do \ + rm -rf "/opt/nvidia/hpc_sdk/Linux_x86_64/${NVHPC_VERSION_MAJOR}.${NVHPC_VERSION_MINOR}/${dir}"; \ + done + +ENV PATH="/opt/nvidia/hpc_sdk/Linux_x86_64/${NVHPC_VERSION_MAJOR}.${NVHPC_VERSION_MINOR}/compilers/bin:${PATH}" + +# Set default compiler executables +ENV FC=nvfortran CC=nvc CXX=nvc++ +ENV MPICC=mpicc +#ENV FC=mpifort CC=mpicc CXX=mpic++ \ No newline at end of file diff --git a/docker/Dockerfile-oneapi-minimal b/docker/Dockerfile-oneapi-minimal new file mode 100644 index 0000000000..cf07bc76ec --- /dev/null +++ b/docker/Dockerfile-oneapi-minimal @@ -0,0 +1,50 @@ +FROM ubuntu:24.04 + +ARG ONEAPI_VERSION='2025.3' + +# Extend and update the package registry +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get --yes install --no-install-recommends \ + ca-certificates \ + curl \ + wget \ + gpg \ + binutils \ + g++ \ + gcc \ + gfortran \ + libc-dev \ + make \ + cmake \ + git \ + ksh \ + m4 \ + tcsh \ + time \ + vim \ + gh \ + jq +# See https://www.intel.com/content/www/us/en/docs/oneapi/installation-guide-linux/2025-2/hpc-apt.html + +RUN wget -O - https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ + | gpg --dearmor \ + | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null \ + && echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" \ + | tee /etc/apt/sources.list.d/oneAPI.list \ + && apt-get update \ + && apt-get install --yes --no-install-recommends \ + intel-oneapi-common-vars \ + intel-oneapi-compiler-fortran-${ONEAPI_VERSION} \ + intel-oneapi-mpi \ + intel-oneapi-mpi-devel\ + intel-oneapi-compiler-dpcpp-cpp-${ONEAPI_VERSION} \ + && rm -rf /var/lib/apt/lists/* + +ENV PATH="/opt/intel/oneapi/compiler/latest/bin:${PATH}" +ENV LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/latest/lib:${LD_LIBRARY_PATH}" + +ENV I_MPI_ROOT=/opt/intel/oneapi/mpi/latest + +# oneAPI environments +RUN . /opt/intel/oneapi/setvars.sh +ENV FC=ifx CC=icx CXX=icpx From e4fe912dd1ae9869dc0d7c04f54993f8ae180ec1 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 11 Feb 2026 21:40:14 -0700 Subject: [PATCH 02/78] Initial commit --- .github/workflows/bld_mpas_images.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index b34c51ff44..5e41633baa 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -2,6 +2,7 @@ name: MPAS-A Base Images Build run-name: CI Image Build for MPAS-A on: + push: pull_request: workflow_dispatch: # push: From 4a4b8c37d00a465a0cb6b61adbdffd0bfb05fc42 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 11 Feb 2026 21:59:25 -0700 Subject: [PATCH 03/78] Initial commit --- .github/workflows/run_mpas.yml | 141 +++++----------------------- .github/workflows/run_mpas_hrrr.yml | 2 +- 2 files changed, 27 insertions(+), 116 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 2e998264fb..406e5c8608 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -43,6 +43,7 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: + f-compiler: [gfortran]#,ifx] physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp] repo: [ufs-community, MPAS-Dev] branch: [gsl/develop, v8.3.0] @@ -52,6 +53,14 @@ jobs: branch: gsl/develop - repo: ufs-community branch: v8.3.0 + include: + # Set container images for each compiler + - fortran-compiler: gfortran + image: dustinswales/ufs-community-mpas-ci:gnu +# - fortran-compiler: ifx +# image: dustinswales/ufs-community-mpas-ci:oneapi + container: + image: ${{ matrix.image }} # defaults: run: @@ -61,17 +70,17 @@ jobs: env: fortran-compiler: gfortran-12 py-version: 3.11 - runner_ROOT: /home/runner - mpas_rt_ROOT: /home/runner/work/MPAS-Model - mpas_bl_ROOT: /home/runner/MPAS-Model-BL - mpas_run_ROOT: /home/runner/work + runner_ROOT: /__w/ + mpas_rt_ROOT: /__w/work/MPAS-Model + mpas_bl_ROOT: /__w/MPAS-Model-BL + mpas_run_ROOT: /__w/work AUTOCONF_VERSION: 2.71 AUTOMAKE_VERSION: 1.17 M4_VERSION: 1.4.19 LIBTOOL_VERSION: 2.5.4 - PNETCDF: /home/runner/PnetCDF - AUTOTOOLS: /home/runner/AUTOTOOLS - OMPI: /home/runner/ompi-4.1.6 + PNETCDF: /__w/PnetCDF + AUTOTOOLS: /__w/AUTOTOOLS + OMPI: /__w/ompi-4.1.6 grid_dir: thredds/catalog/retro/mpas_ci/mpas_test_data/grid case_dir: retro/mpas_ci/mpas_test_data/run_case_input/create_case_output mpdata_dir: retro/mpas_ci/mpas_test_data/run_case_input/tables @@ -92,112 +101,14 @@ jobs: steps: ########################################################################################## - # Step 0: Build Software Stack needed for MPAS on GitHub server. + # Step 0: Setup ########################################################################################## - - name: Install NetCDF library + - name: Setup MPI (GNU) + if: matrix.fortran-compiler == 'gfortran' run: | - sudo apt-get update - sudo apt-get install libnetcdff-dev - - - name: Cache openmpi - id: cache-openmpi - uses: actions/cache@v4 - with: - path: /home/runner/ompi-4.1.6 - key: cache-openmpi-${{env.fortran-compiler}}-key - - - name: Install openmpi - if: steps.cache-openmpi.outputs.cache-hit != 'true' - run: | - wget https://github.com/open-mpi/ompi/archive/refs/tags/v4.1.6.tar.gz - tar -xvf v4.1.6.tar.gz - cd ompi-4.1.6 - ./autogen.pl - ./configure --prefix=${OMPI} - make -j4 - make install - - - name: Add (OMPI) to Paths - run: | - echo "LD_LIBRARY_PATH=${OMPI}/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "PATH=${OMPI}/bin:$PATH" >> $GITHUB_ENV - - - name: Cache GNU autotools - id: cache-AUTOTOOLS - uses: actions/cache@v4 - with: - path: /home/runner/AUTOTOOLS - key: cache-AUTOTOOLS-${{env.fortran-compiler}}-key - - - name: Build GNU autotools - if: steps.cache-AUTOTOOLS.outputs.cache-hit != 'true' - run: | - wget -q https://ftp.gnu.org/gnu/m4/m4-${M4_VERSION}.tar.gz - gzip -dc m4-${M4_VERSION}.tar.gz | tar -xf - - cd m4-${M4_VERSION} - ./configure --prefix=${AUTOTOOLS} --silent - make -s -j 8 install > qout 2>&1 - make -s -j 8 distclean >> qout 2>&1 - - wget -q https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.gz - gzip -dc autoconf-${AUTOCONF_VERSION}.tar.gz | tar -xf - - cd autoconf-${AUTOCONF_VERSION} - ./configure --prefix=${AUTOTOOLS} --silent - make -s -j 8 install > qout 2>&1 - make -s -j 8 distclean >> qout 2>&1 - - wget -q https://ftp.gnu.org/gnu/automake/automake-${AUTOMAKE_VERSION}.tar.gz - gzip -dc automake-${AUTOMAKE_VERSION}.tar.gz | tar -xf - - cd automake-${AUTOMAKE_VERSION} - ./configure --prefix=${AUTOTOOLS} --silent - make -s -j 8 install > qout 2>&1 - make -s -j 8 distclean >> qout 2>&1 - - wget -q https://ftp.gnu.org/gnu/libtool/libtool-${LIBTOOL_VERSION}.tar.gz - gzip -dc libtool-${LIBTOOL_VERSION}.tar.gz | tar -xf - - cd libtool-${LIBTOOL_VERSION} - ./configure --prefix=${AUTOTOOLS} --silent - make -s -j 8 install > qout 2>&1 - make -s -j 8 distclean >> qout 2>&1 - echo "LD_LIBRARY_PATH=${AUTOTOOLS}/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "PATH=${AUTOTOOLS}/bin:$PATH" >> $GITHUB_ENV - - - name: Add (autotools) to Paths - run: | - echo "LD_LIBRARY_PATH=${AUTOTOOLS}/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "PATH=${AUTOTOOLS}/bin:$PATH" >> $GITHUB_ENV - - - name: Cache PnetCDF - id: cache-pnetcdf - uses: actions/cache@v4 - with: - path: /home/runner/PnetCDF - key: cache-PnetCDF-${{env.fortran-compiler}}-key - - - name: Install PnetCDF - if: steps.cache-PnetCDF.outputs.cache-hit != 'true' - run: | - set -x - echo "LD_LIBRARY_PATH=${AUTOTOOLS}/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "PATH=${AUTOTOOLS}/bin:$PATH" >> $GITHUB_ENV - m4 --version - autoconf --version - automake --version - libtool --version - echo "Install PnetCDF on ${PNETCDF}" - rm -rf PnetCDF ; mkdir PnetCDF ; cd PnetCDF - git clone -q https://github.com/Parallel-NetCDF/PnetCDF.git - cd PnetCDF - autoreconf -i - ./configure --prefix=${PNETCDF} --with-mpi=${OMPI} - make -j 8 install - echo "PATH=${PNETCDF}/bin:$PATH" >> $GITHUB_ENV - - - name: Add (PNETCDF) to paths. - run: | - echo "PNETCDF=${PNETCDF}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PNETCDF}/lib" >> $GITHUB_ENV - echo "PATH=$PATH:${PNETCDF}/bin" >> $GITHUB_ENV + echo "CC=mpicc" >> $GITHUB_ENV + echo "CXX=mpicxx" >> $GITHUB_ENV + echo "FC=mpif90" >> $GITHUB_ENV ########################################################################################## # Step 1: Setup configuration for current test @@ -291,7 +202,7 @@ jobs: id: cache-thompson-data uses: actions/cache@v4 with: - path: /home/runner/thompson + path: /__w/thompson key: cache-thompson-data-key - name: Download Thompson MP tables @@ -307,7 +218,7 @@ jobs: id: cache-ugw-data uses: actions/cache@v4 with: - path: /home/runner/ugw + path: /__w/ugw key: cache-ugw-data-key - name: Download GWD data @@ -332,7 +243,7 @@ jobs: ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc ln -sf ${mpas_run_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} - ln -sf /home/runner/MPAS-Model-BL/atmosphere_model . + ln -sf /__w/MPAS-Model-BL/atmosphere_model . ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere @@ -434,4 +345,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: mpas-baselines-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} - path: /home/runner/artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + path: /__w/artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 2eafc7dd44..0871101e88 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -1,6 +1,6 @@ name: Run MPAS Standalone (NOAA GSL HRRRv5 tests) -on: [push, pull_request, workflow_dispatch] +on: [pull_request, workflow_dispatch] ############################################################################################# # Testing script/workflow for ufs-community fork of MPAS-Dev/MPAS-A. From 5b6ba474a64c740f3352fa2cd0e3c58f91a08802 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 11 Feb 2026 22:07:18 -0700 Subject: [PATCH 04/78] Update CI --- .github/workflows/run_mpas.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 406e5c8608..d7fa57bb72 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -110,6 +110,18 @@ jobs: echo "CXX=mpicxx" >> $GITHUB_ENV echo "FC=mpif90" >> $GITHUB_ENV + - name: Display 1 + run: | + ls -l /__w/ + + - name: Display 2 + run: | + ls -l /opt/pnetcdf + + - name: Setup PnetCDF + run: | + echo "PNETCDF=/opt/pnetcdf" >> $GITHUB_ENV + ########################################################################################## # Step 1: Setup configuration for current test ########################################################################################## From 27e54e452b2296c5274fc47070276cd75271cb90 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 11 Feb 2026 22:12:57 -0700 Subject: [PATCH 05/78] Update CI --- .github/workflows/run_mpas.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index d7fa57bb72..3261ca6ad3 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -71,6 +71,7 @@ jobs: fortran-compiler: gfortran-12 py-version: 3.11 runner_ROOT: /__w/ + MPAS_ROOT: /__w/MPAS-Model/MPAS-Model mpas_rt_ROOT: /__w/work/MPAS-Model mpas_bl_ROOT: /__w/MPAS-Model-BL mpas_run_ROOT: /__w/work @@ -179,6 +180,8 @@ jobs: - name: Initialize any submodules from testing codebase. run: | + git config --global --add safe.directory ${MPAS_ROOT} + cd ${MPAS_ROOT} git submodule update --init --recursive - name: Build MPAS standalone for testing (Debug) From 2ac0b7869437986e07b16d6fdca1674c22d038ad Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 11 Feb 2026 22:22:21 -0700 Subject: [PATCH 06/78] Update CI --- .github/workflows/bld_mpas_images.yaml | 2 +- .github/workflows/run_mpas.yml | 74 +++++++++++++------------- 2 files changed, 37 insertions(+), 39 deletions(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index 5e41633baa..99fe50b901 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - toolchain: [oneapi,gnu,nvhpc] + toolchain: [gnu]#,oneapi,nvhpc] include: # Set toolchain configuration(s) - toolchain: oneapi diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 3261ca6ad3..d0825001f6 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -72,9 +72,7 @@ jobs: py-version: 3.11 runner_ROOT: /__w/ MPAS_ROOT: /__w/MPAS-Model/MPAS-Model - mpas_rt_ROOT: /__w/work/MPAS-Model mpas_bl_ROOT: /__w/MPAS-Model-BL - mpas_run_ROOT: /__w/work AUTOCONF_VERSION: 2.71 AUTOMAKE_VERSION: 1.17 M4_VERSION: 1.4.19 @@ -117,7 +115,7 @@ jobs: - name: Display 2 run: | - ls -l /opt/pnetcdf + ls -l /__w/MPAS-Model - name: Setup PnetCDF run: | @@ -187,13 +185,13 @@ jobs: - name: Build MPAS standalone for testing (Debug) if: contains(matrix.build-type, 'Debug') run: | - cd ${mpas_rt_ROOT}/MPAS-Model + cd ${MPAS_ROOT} make gfortran CORE=atmosphere DEBUG=true - name: Build MPAS standalone for testing (Release) if: contains(matrix.build-type, 'Release') run: | - cd ${mpas_rt_ROOT}/MPAS-Model + cd ${MPAS_ROOT} make gfortran CORE=atmosphere ########################################################################################## @@ -201,7 +199,7 @@ jobs: ########################################################################################## - name: Download MPAS data (grid info, IC and LBC files) run: | - cd ${mpas_run_ROOT} && mkdir run_data && cd run_data + cd ${runner_ROOT} && mkdir run_data && cd run_data wget -q https://gsl.noaa.gov/${grid_dir}/${domain}.${res}.graph.info.part.${nproc} wget -q -e robots=off -nH --cut-dirs N -nc -r -lX -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ https://gsl.noaa.gov/thredds/catalog/${case_dir}/${case_base}/${nml}.${code_base}.${domain}.${res}.${ic_source}.${yyyy}${mm}${dd}${hh}/case_files/catalog.html @@ -210,7 +208,7 @@ jobs: - name: Download MPAS testing repository with runtime configurations. run: | - cd ${mpas_run_ROOT} + cd ${runner_ROOT} git clone --recursive --branch main https://github.com/barlage/mpas_testcase.git - name: Cache Thompson MP tables @@ -250,28 +248,28 @@ jobs: ########################################################################################## - name: Create and populate run directory (baselines) run: | - cd ${mpas_run_ROOT} && mkdir run_bl && cd run_bl - cp ${mpas_run_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${ic_source}.${yyyy}${mm}${dd}${hh}/${{matrix.physics}}/* . + cd ${runner_ROOT} && mkdir run_bl && cd run_bl + cp ${runner_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${ic_source}.${yyyy}${mm}${dd}${hh}/${{matrix.physics}}/* . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc - ln -sf ${mpas_run_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc + ln -sf ${runner_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} ln -sf /__w/MPAS-Model-BL/atmosphere_model . - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. if: env.domain == 'conus' run: | - cd ${mpas_run_ROOT}/run_bl - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc + cd ${runner_ROOT}/run_bl + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc - name: Link Thompson MP data tables to run directory if: contains(matrix.physics, 'convection_permitting') run: | - cd ${mpas_run_ROOT}/run_bl + cd ${runner_ROOT}/run_bl cp ${runner_ROOT}/thompson/* . ########################################################################################## @@ -279,28 +277,28 @@ jobs: ########################################################################################## - name: Create and populate run directory (feature test) run: | - cd ${mpas_run_ROOT} && mkdir run_rt && cd run_rt - cp ${mpas_run_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${ic_source}.${yyyy}${mm}${dd}${hh}/${{matrix.physics}}/* . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_wrf/files/*.TBL . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_wrf/files/*.DBL . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_wrf/files/*DATA . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc - ln -sf ${mpas_run_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} - ln -sf ${mpas_rt_ROOT}/MPAS-Model/atmosphere_model . - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + cd ${runner_ROOT} && mkdir run_rt && cd run_rt + cp ${runner_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${ic_source}.${yyyy}${mm}${dd}${hh}/${{matrix.physics}}/* . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc + ln -sf ${runner_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} + ln -sf ${MPAS_ROOT}/atmosphere_model . + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc ln -sf namelist.atmosphere.gsl namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. if: env.domain == 'conus' run: | - cd ${mpas_run_ROOT}/run_rt - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc + cd ${runner_ROOT}/run_rt + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc - name: Link Thompson MP data tables to run directory if: contains(matrix.physics, 'convection_permitting') run: | - cd ${mpas_run_ROOT}/run_rt + cd ${runner_ROOT}/run_rt cp ${runner_ROOT}/thompson/* . ########################################################################################## @@ -308,14 +306,14 @@ jobs: ########################################################################################## - name: Run MPAS (baselines) run: | - cd ${mpas_run_ROOT}/run_bl + cd ${runner_ROOT}/run_bl pwd && ls -l mpiexec -np 1 ./atmosphere_model pwd && ls -l - name: Run MPAS (feature branch) run: | - cd ${mpas_run_ROOT}/run_rt + cd ${runner_ROOT}/run_rt pwd && ls -l mpiexec -np 1 ./atmosphere_model pwd && ls -l @@ -335,8 +333,8 @@ jobs: - name: Run comparison script id: cmp run: | - cd ${mpas_rt_ROOT}/MPAS-Model/testing_and_setup/ufs-community - ./cmp_rt2bl.py --dir_rt ${mpas_run_ROOT}/run_rt --dir_bl ${mpas_run_ROOT}/run_bl + cd ${MPAS_ROOT}/testing_and_setup/ufs-community + ./cmp_rt2bl.py --dir_rt ${runner_ROOT}/run_rt --dir_bl ${runner_ROOT}/run_bl ########################################################################################## # Step 7: Save MPAS output and log files as GitHub Artifact. @@ -347,14 +345,14 @@ jobs: mkdir artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} cd artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} mkdir data_bl && cd data_bl - cp ${mpas_run_ROOT}/run_bl/log.atmosphere.*.out log.atmosphere.BL.out - cp ${mpas_run_ROOT}/run_bl/history.*.nc . - cp ${mpas_run_ROOT}/run_bl/diag.*.nc . + cp ${runner_ROOT}/run_bl/log.atmosphere.*.out log.atmosphere.BL.out + cp ${runner_ROOT}/run_bl/history.*.nc . + cp ${runner_ROOT}/run_bl/diag.*.nc . cd .. mkdir data_rt && cd data_rt - cp ${mpas_run_ROOT}/run_rt/log.atmosphere.*.out log.atmosphere.RT.out - cp ${mpas_run_ROOT}/run_rt/history.*.nc . - cp ${mpas_run_ROOT}/run_rt/diag.*.nc . + cp ${runner_ROOT}/run_rt/log.atmosphere.*.out log.atmosphere.RT.out + cp ${runner_ROOT}/run_rt/history.*.nc . + cp ${runner_ROOT}/run_rt/diag.*.nc . - name: Upload log files as GitHub Artifact uses: actions/upload-artifact@v4 From 9591b1b0dd02300caf577231f81d9b0bfed27efd Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 11 Feb 2026 22:28:54 -0700 Subject: [PATCH 07/78] Update CI --- .github/workflows/run_mpas.yml | 35 ++++++++++------------------------ 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index d0825001f6..fbdff53c65 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -55,9 +55,9 @@ jobs: branch: v8.3.0 include: # Set container images for each compiler - - fortran-compiler: gfortran + - f-compiler: gfortran image: dustinswales/ufs-community-mpas-ci:gnu -# - fortran-compiler: ifx +# - f-compiler: ifx # image: dustinswales/ufs-community-mpas-ci:oneapi container: image: ${{ matrix.image }} @@ -68,18 +68,11 @@ jobs: # Environmental variables env: - fortran-compiler: gfortran-12 py-version: 3.11 runner_ROOT: /__w/ MPAS_ROOT: /__w/MPAS-Model/MPAS-Model mpas_bl_ROOT: /__w/MPAS-Model-BL - AUTOCONF_VERSION: 2.71 - AUTOMAKE_VERSION: 1.17 - M4_VERSION: 1.4.19 - LIBTOOL_VERSION: 2.5.4 - PNETCDF: /__w/PnetCDF - AUTOTOOLS: /__w/AUTOTOOLS - OMPI: /__w/ompi-4.1.6 + PNETCDF: /opt/pnetcdf grid_dir: thredds/catalog/retro/mpas_ci/mpas_test_data/grid case_dir: retro/mpas_ci/mpas_test_data/run_case_input/create_case_output mpdata_dir: retro/mpas_ci/mpas_test_data/run_case_input/tables @@ -103,20 +96,12 @@ jobs: # Step 0: Setup ########################################################################################## - name: Setup MPI (GNU) - if: matrix.fortran-compiler == 'gfortran' + if: matrix.f-compiler == 'gfortran' run: | echo "CC=mpicc" >> $GITHUB_ENV echo "CXX=mpicxx" >> $GITHUB_ENV echo "FC=mpif90" >> $GITHUB_ENV - - name: Display 1 - run: | - ls -l /__w/ - - - name: Display 2 - run: | - ls -l /__w/MPAS-Model - - name: Setup PnetCDF run: | echo "PNETCDF=/opt/pnetcdf" >> $GITHUB_ENV @@ -308,14 +293,14 @@ jobs: run: | cd ${runner_ROOT}/run_bl pwd && ls -l - mpiexec -np 1 ./atmosphere_model + mpiexec --allow-run-as-root -np 1 ./atmosphere_model pwd && ls -l - name: Run MPAS (feature branch) run: | cd ${runner_ROOT}/run_rt pwd && ls -l - mpiexec -np 1 ./atmosphere_model + mpiexec --allow-run-as-root -np 1 ./atmosphere_model pwd && ls -l ########################################################################################## @@ -342,8 +327,8 @@ jobs: - name: Create GitHub artifact run: | cd ${runner_ROOT} - mkdir artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} - cd artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + mkdir artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + cd artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} mkdir data_bl && cd data_bl cp ${runner_ROOT}/run_bl/log.atmosphere.*.out log.atmosphere.BL.out cp ${runner_ROOT}/run_bl/history.*.nc . @@ -357,5 +342,5 @@ jobs: - name: Upload log files as GitHub Artifact uses: actions/upload-artifact@v4 with: - name: mpas-baselines-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} - path: /__w/artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + name: mpas-baselines-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + path: /__w/artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} From c2a07477dfa9969d6123b86e1ad6f28954f83878 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 11 Feb 2026 22:32:04 -0700 Subject: [PATCH 08/78] Update CI --- .github/workflows/bld_mpas_images.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index 99fe50b901..b2fd298dac 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -19,15 +19,15 @@ jobs: toolchain: [gnu]#,oneapi,nvhpc] include: # Set toolchain configuration(s) - - toolchain: oneapi - nfversion: 4.5.4 - pnfversion: 1.12.3 - toolchain: gnu nfversion: 4.6.2 pnfversion: 1.14.1 - - toolchain: nvhpc - nfversion: 4.5.4 - pnfversion: 1.12.3 +# - toolchain: oneapi +# nfversion: 4.5.4 +# pnfversion: 1.12.3 +# - toolchain: nvhpc +# nfversion: 4.5.4 +# pnfversion: 1.12.3 runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 From 3312998b3c4f2d00f6d50b459a43d3b7084b8e52 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 11 Feb 2026 22:45:39 -0700 Subject: [PATCH 09/78] Update CI --- docker/Dockerfile-add-python | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile-add-python b/docker/Dockerfile-add-python index 7232cca6bc..414f76a40b 100644 --- a/docker/Dockerfile-add-python +++ b/docker/Dockerfile-add-python @@ -15,7 +15,7 @@ RUN apt-get update \ # Install essential packages RUN pip3 install --break-system-packages \ - f90nml \ + nccmp \ h5py \ netCDF4 \ numpy \ From 5df98578fe06200fc1ac8513d9f5a1396b1760a4 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Thu, 12 Feb 2026 07:31:26 -0700 Subject: [PATCH 10/78] Revert change --- docker/Dockerfile-add-python | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/Dockerfile-add-python b/docker/Dockerfile-add-python index 414f76a40b..a8c71342c2 100644 --- a/docker/Dockerfile-add-python +++ b/docker/Dockerfile-add-python @@ -15,7 +15,6 @@ RUN apt-get update \ # Install essential packages RUN pip3 install --break-system-packages \ - nccmp \ h5py \ netCDF4 \ numpy \ From 682948642510e88d26c4e9bd32497ca7c979d334 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Thu, 12 Feb 2026 16:22:16 -0700 Subject: [PATCH 11/78] Update CI --- .github/workflows/run_mpas_hrrr.yml | 212 ++++++++-------------------- 1 file changed, 60 insertions(+), 152 deletions(-) diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 0871101e88..975964055f 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -1,6 +1,6 @@ name: Run MPAS Standalone (NOAA GSL HRRRv5 tests) -on: [pull_request, workflow_dispatch] +on: [push, pull_request, workflow_dispatch] ############################################################################################# # Testing script/workflow for ufs-community fork of MPAS-Dev/MPAS-A. @@ -40,12 +40,21 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: + f-compiler: [gfortran]#,ifx] ic_source: [gfs, rap] season: [summer, winter] build-type: [Release] exclude: - ic_source: gfs season: summer + include: + # Set container images for each compiler + - f-compiler: gfortran + image: dustinswales/ufs-community-mpas-ci:gnu +# - f-compiler: ifx +# image: dustinswales/ufs-community-mpas-ci:oneapi + container: + image: ${{ matrix.image }} # defaults: run: @@ -59,16 +68,9 @@ jobs: fortran-compiler: gfortran-12 py-version: 3.11 runner_ROOT: /home/runner - mpas_rt_ROOT: /home/runner/work/MPAS-Model - mpas_bl_ROOT: /home/runner/MPAS-Model-BL - mpas_run_ROOT: /home/runner/work - AUTOCONF_VERSION: 2.71 - AUTOMAKE_VERSION: 1.17 - M4_VERSION: 1.4.19 - LIBTOOL_VERSION: 2.5.4 - PNETCDF: /home/runner/PnetCDF - AUTOTOOLS: /home/runner/AUTOTOOLS - OMPI: /home/runner/ompi-4.1.6 + MPAS_ROOT: /__w/MPAS-Model/MPAS-Model + mpas_bl_ROOT: /__w/MPAS-Model-BL + PNETCDF: /opt/pnetcdf grid_dir: thredds/catalog/retro/mpas_ci/mpas_test_data/grid case_dir: retro/mpas_ci/mpas_test_data/run_case_input/create_case_output gwddata_dir: retro/mpas_ci/mpas_test_data/run_case_input/tables @@ -86,112 +88,18 @@ jobs: steps: ########################################################################################## - # Step 0: Build Software Stack needed for MPAS on GitHub server. + # Step 0: Setup ########################################################################################## - - name: Install NetCDF library + - name: Setup MPI (GNU) + if: matrix.f-compiler == 'gfortran' run: | - sudo apt-get update - sudo apt-get install libnetcdff-dev + echo "CC=mpicc" >> $GITHUB_ENV + echo "CXX=mpicxx" >> $GITHUB_ENV + echo "FC=mpif90" >> $GITHUB_ENV - - name: Cache openmpi - id: cache-openmpi - uses: actions/cache@v4 - with: - path: /home/runner/ompi-4.1.6 - key: cache-openmpi-${{env.fortran-compiler}}-key - - - name: Install openmpi - if: steps.cache-openmpi.outputs.cache-hit != 'true' + - name: Setup PnetCDF run: | - wget https://github.com/open-mpi/ompi/archive/refs/tags/v4.1.6.tar.gz - tar -xvf v4.1.6.tar.gz - cd ompi-4.1.6 - ./autogen.pl - ./configure --prefix=${OMPI} - make -j4 - make install - - - name: Add (OMPI) to Paths - run: | - echo "LD_LIBRARY_PATH=${OMPI}/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "PATH=${OMPI}/bin:$PATH" >> $GITHUB_ENV - - - name: Cache GNU autotools - id: cache-AUTOTOOLS - uses: actions/cache@v4 - with: - path: /home/runner/AUTOTOOLS - key: cache-AUTOTOOLS-${{env.fortran-compiler}}-key - - - name: Build GNU autotools - if: steps.cache-AUTOTOOLS.outputs.cache-hit != 'true' - run: | - wget -q https://ftp.gnu.org/gnu/m4/m4-${M4_VERSION}.tar.gz - gzip -dc m4-${M4_VERSION}.tar.gz | tar -xf - - cd m4-${M4_VERSION} - ./configure --prefix=${AUTOTOOLS} --silent - make -s -j 8 install > qout 2>&1 - make -s -j 8 distclean >> qout 2>&1 - - wget -q https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.gz - gzip -dc autoconf-${AUTOCONF_VERSION}.tar.gz | tar -xf - - cd autoconf-${AUTOCONF_VERSION} - ./configure --prefix=${AUTOTOOLS} --silent - make -s -j 8 install > qout 2>&1 - make -s -j 8 distclean >> qout 2>&1 - - wget -q https://ftp.gnu.org/gnu/automake/automake-${AUTOMAKE_VERSION}.tar.gz - gzip -dc automake-${AUTOMAKE_VERSION}.tar.gz | tar -xf - - cd automake-${AUTOMAKE_VERSION} - ./configure --prefix=${AUTOTOOLS} --silent - make -s -j 8 install > qout 2>&1 - make -s -j 8 distclean >> qout 2>&1 - - wget -q https://ftp.gnu.org/gnu/libtool/libtool-${LIBTOOL_VERSION}.tar.gz - gzip -dc libtool-${LIBTOOL_VERSION}.tar.gz | tar -xf - - cd libtool-${LIBTOOL_VERSION} - ./configure --prefix=${AUTOTOOLS} --silent - make -s -j 8 install > qout 2>&1 - make -s -j 8 distclean >> qout 2>&1 - echo "LD_LIBRARY_PATH=${AUTOTOOLS}/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "PATH=${AUTOTOOLS}/bin:$PATH" >> $GITHUB_ENV - - - name: Add (autotools) to Paths - run: | - echo "LD_LIBRARY_PATH=${AUTOTOOLS}/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "PATH=${AUTOTOOLS}/bin:$PATH" >> $GITHUB_ENV - - - name: Cache PnetCDF - id: cache-pnetcdf - uses: actions/cache@v4 - with: - path: /home/runner/PnetCDF - key: cache-PnetCDF-${{env.fortran-compiler}}-key - - - name: Install PnetCDF - if: steps.cache-PnetCDF.outputs.cache-hit != 'true' - run: | - set -x - echo "LD_LIBRARY_PATH=${AUTOTOOLS}/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "PATH=${AUTOTOOLS}/bin:$PATH" >> $GITHUB_ENV - m4 --version - autoconf --version - automake --version - libtool --version - echo "Install PnetCDF on ${PNETCDF}" - rm -rf PnetCDF ; mkdir PnetCDF ; cd PnetCDF - git clone -q https://github.com/Parallel-NetCDF/PnetCDF.git - cd PnetCDF - autoreconf -i - ./configure --prefix=${PNETCDF} --with-mpi=${OMPI} - make -j 8 install - echo "PATH=${PNETCDF}/bin:$PATH" >> $GITHUB_ENV - - - name: Add (PNETCDF) to paths. - run: | - echo "PNETCDF=${PNETCDF}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PNETCDF}/lib" >> $GITHUB_ENV - echo "PATH=$PATH:${PNETCDF}/bin" >> $GITHUB_ENV + echo "PNETCDF=/opt/pnetcdf" >> $GITHUB_ENV ########################################################################################## # Step 1: Setup configuration for current test @@ -264,13 +172,13 @@ jobs: - name: Build MPAS standalone for testing (Debug) if: contains(matrix.build-type, 'Debug') run: | - cd ${mpas_rt_ROOT}/MPAS-Model + cd ${MPAS_ROOT} make gfortran CORE=atmosphere DEBUG=true - name: Build MPAS standalone for testing (Release) if: contains(matrix.build-type, 'Release') run: | - cd ${mpas_rt_ROOT}/MPAS-Model + cd ${MPAS_ROOT} make gfortran CORE=atmosphere ########################################################################################## @@ -278,7 +186,7 @@ jobs: ########################################################################################## - name: Download MPAS data (grid info, IC and LBC files) run: | - cd ${mpas_run_ROOT} && mkdir run_data && cd run_data + cd ${runner_ROOT} && mkdir run_data && cd run_data wget -q https://gsl.noaa.gov/${grid_dir}/${domain}.${res}.graph.info.part.${nproc} wget -q -e robots=off -nH --cut-dirs N -nc -r -lX -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ https://gsl.noaa.gov/thredds/catalog/${case_dir}/${case_base}/${nml}.${code_base}.${domain}.${res}.${{matrix.ic_source}}.${yyyy}${mm}${dd}${hh}/case_files/catalog.html @@ -287,7 +195,7 @@ jobs: - name: Download MPAS testing repository with runtime configurations. run: | - cd ${mpas_run_ROOT} + cd ${runner_ROOT} git clone --recursive --branch main https://github.com/barlage/mpas_testcase.git - name: Cache TEMPO MP tables @@ -327,76 +235,76 @@ jobs: ########################################################################################## - name: Create and populate run directory (baselines) run: | - cd ${mpas_run_ROOT} && mkdir run_bl && cd run_bl - cp ${mpas_run_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${{matrix.ic_source}}.${yyyy}${mm}${dd}${hh}/${{env.physics}}/* . + cd ${runner_ROOT} && mkdir run_bl && cd run_bl + cp ${runner_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${{matrix.ic_source}}.${yyyy}${mm}${dd}${hh}/${{env.physics}}/* . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc - ln -sf ${mpas_run_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc + ln -sf ${runner_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} ln -sf ${mpas_bl_ROOT}/atmosphere_model atmosphere_model - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.ugwp_file}} mpas.ugwp_oro_data.nc + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.ugwp_file}} mpas.ugwp_oro_data.nc ln -sf ${runner_ROOT}/tempo/* . ln -sf ${runner_ROOT}/ugw/ugwp_limb_tau.nc . - name: Link lateral boundary condition file for regional MPAS (baselines). if: env.domain == 'conus' run: | - cd ${mpas_run_ROOT}/run_bl - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc + cd ${runner_ROOT}/run_bl + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc - name: Link surface files to run directory (baselines) if: ${{matrix.ic_source}} == 'gfs' run: | - cd ${mpas_run_ROOT}/run_bl - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + cd ${runner_ROOT}/run_bl + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc ########################################################################################## # Step 4b: Configure MPAS feature runs ########################################################################################## - name: Create and populate run directory (feature test) run: | - cd ${mpas_run_ROOT} && mkdir run_rt && cd run_rt - cp ${mpas_run_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${{matrix.ic_source}}.${yyyy}${mm}${dd}${hh}/${{env.physics}}/* . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_wrf/files/*.TBL . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_wrf/files/*.DBL . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_wrf/files/*DATA . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc - ln -sf ${mpas_run_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} - ln -sf ${mpas_rt_ROOT}/MPAS-Model/atmosphere_model atmosphere_model - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.ugwp_file}} mpas.ugwp_oro_data.nc + cd ${runner_ROOT} && mkdir run_rt && cd run_rt + cp ${runner_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${{matrix.ic_source}}.${yyyy}${mm}${dd}${hh}/${{env.physics}}/* . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc + ln -sf ${runner_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} + ln -sf ${MPAS_ROOT}/atmosphere_model atmosphere_model + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.ugwp_file}} mpas.ugwp_oro_data.nc ln -sf ${runner_ROOT}/tempo/* . ln -sf ${runner_ROOT}/ugw/ugwp_limb_tau.nc . - name: Link lateral boundary condition file for regional MPAS (feature) if: env.domain == 'conus' run: | - cd ${mpas_run_ROOT}/run_rt - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc + cd ${runner_ROOT}/run_rt + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc - name: Link surface files to run directory (feature) if: ${{matrix.ic_source}} == 'gfs' run: | - cd ${mpas_run_ROOT}/run_rt - ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + cd ${runner_ROOT}/run_rt + ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc ########################################################################################## # Step 5: Run MPAS ########################################################################################## - name: Run MPAS (baselines) run: | - cd ${mpas_run_ROOT}/run_bl + cd ${runner_ROOT}/run_bl pwd && ls -l - mpiexec -np 1 ./atmosphere_model + mpiexec --allow-run-as-root -np 1 ./atmosphere_model pwd && ls -l - name: Run MPAS (feature branch) run: | - cd ${mpas_run_ROOT}/run_rt + cd ${runner_ROOT}/run_rt pwd && ls -l - mpiexec -np 1 ./atmosphere_model + mpiexec --allow-run-as-root -np 1 ./atmosphere_model pwd && ls -l ########################################################################################## @@ -413,8 +321,8 @@ jobs: - name: Run comparison script run: | - cd ${mpas_rt_ROOT}/MPAS-Model/testing_and_setup/ufs-community - ./cmp_rt2bl.py --dir_rt ${mpas_run_ROOT}/run_rt --dir_bl ${mpas_run_ROOT}/run_bl + cd ${MPAS_ROOT}/testing_and_setup/ufs-community + ./cmp_rt2bl.py --dir_rt ${runner_ROOT}/run_rt --dir_bl ${runner_ROOT}/run_bl ########################################################################################## # Step 7: Save MPAS output and log files as GitHub Artifact. @@ -425,14 +333,14 @@ jobs: mkdir artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} cd artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} mkdir data_bl && cd data_bl - cp ${mpas_run_ROOT}/run_bl/log.atmosphere.*.out log.atmosphere.BL.out - cp ${mpas_run_ROOT}/run_bl/history.*.nc . - cp ${mpas_run_ROOT}/run_bl/diag.*.nc . + cp ${runner_ROOT}/run_bl/log.atmosphere.*.out log.atmosphere.BL.out + cp ${runner_ROOT}/run_bl/history.*.nc . + cp ${runner_ROOT}/run_bl/diag.*.nc . cd .. mkdir data_rt && cd data_rt - cp ${mpas_run_ROOT}/run_rt/log.atmosphere.*.out log.atmosphere.RT.out - cp ${mpas_run_ROOT}/run_rt/history.*.nc . - cp ${mpas_run_ROOT}/run_rt/diag.*.nc . + cp ${runner_ROOT}/run_rt/log.atmosphere.*.out log.atmosphere.RT.out + cp ${runner_ROOT}/run_rt/history.*.nc . + cp ${runner_ROOT}/run_rt/diag.*.nc . - name: Upload log files as GitHub Artifact uses: actions/upload-artifact@v4 From b3c482e3bcf738af3a821bfd97782d96be0d0f0f Mon Sep 17 00:00:00 2001 From: dustinswales Date: Thu, 12 Feb 2026 16:24:15 -0700 Subject: [PATCH 12/78] Update CI --- .github/workflows/run_mpas_hrrr.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 975964055f..26efb128ba 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -67,7 +67,7 @@ jobs: branch: gsl/develop fortran-compiler: gfortran-12 py-version: 3.11 - runner_ROOT: /home/runner + runner_ROOT: /__w/ MPAS_ROOT: /__w/MPAS-Model/MPAS-Model mpas_bl_ROOT: /__w/MPAS-Model-BL PNETCDF: /opt/pnetcdf @@ -202,7 +202,7 @@ jobs: id: cache-tempo-data uses: actions/cache@v4 with: - path: /home/runner/tempo + path: /__w/tempo key: cache-tempo-data-key - name: Download TEMPO MP tables @@ -218,7 +218,7 @@ jobs: id: cache-ugw-data uses: actions/cache@v4 with: - path: /home/runner/ugw + path: /__w/ugw key: cache-ugw-data-key - name: Download GWD data @@ -346,4 +346,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: mpas-baselines-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} - path: /home/runner/artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} + path: /__w/artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} From a5dec8c957f9a74d9d94449ca0ef18aae0269867 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Thu, 12 Feb 2026 16:32:28 -0700 Subject: [PATCH 13/78] Update CI --- .github/workflows/bld_mpas_images.yaml | 8 ++++---- .github/workflows/run_mpas_hrrr.yml | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index b2fd298dac..632a264b92 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -16,15 +16,15 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - toolchain: [gnu]#,oneapi,nvhpc] + toolchain: [gnu,oneapi]#,nvhpc] include: # Set toolchain configuration(s) - toolchain: gnu nfversion: 4.6.2 pnfversion: 1.14.1 -# - toolchain: oneapi -# nfversion: 4.5.4 -# pnfversion: 1.12.3 + - toolchain: oneapi + nfversion: 4.5.4 + pnfversion: 1.12.3 # - toolchain: nvhpc # nfversion: 4.5.4 # pnfversion: 1.12.3 diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 26efb128ba..9baad7ab55 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -167,6 +167,8 @@ jobs: - name: Initialize any submodules from testing codebase. run: | + git config --global --add safe.directory ${MPAS_ROOT} + cd ${MPAS_ROOT} git submodule update --init --recursive - name: Build MPAS standalone for testing (Debug) From 6aca62305b20e4824ec4bd844d25e9398e482dcf Mon Sep 17 00:00:00 2001 From: dustinswales Date: Thu, 12 Feb 2026 16:38:27 -0700 Subject: [PATCH 14/78] Update CI --- docker/Dockerfile-add-netcdf | 1 - docker/Dockerfile-add-pnetcdf | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile-add-netcdf b/docker/Dockerfile-add-netcdf index 4e442f3e41..263009edf6 100644 --- a/docker/Dockerfile-add-netcdf +++ b/docker/Dockerfile-add-netcdf @@ -10,7 +10,6 @@ RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get --yes install --no-install-recommends \ curl \ libnetcdf-dev \ -# libopenmpi-dev \ openmpi-bin \ && rm -rf /var/lib/apt/lists/* diff --git a/docker/Dockerfile-add-pnetcdf b/docker/Dockerfile-add-pnetcdf index 1223588f7d..59ec1d8f9f 100644 --- a/docker/Dockerfile-add-pnetcdf +++ b/docker/Dockerfile-add-pnetcdf @@ -22,6 +22,7 @@ ENV PKG_CONFIG_PATH="${PNETCDF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" RUN apt-get update && apt-get install -y --no-install-recommends \ automake \ libtool \ + openmpi-bin \ && rm -rf /var/lib/apt/lists/* # Download, compile, and install PnetCDF From 76fda4dcfc03e3c3984b5aa004924a062b2eff51 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 08:54:38 -0700 Subject: [PATCH 15/78] Update CI --- docker/Dockerfile-oneapi-minimal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile-oneapi-minimal b/docker/Dockerfile-oneapi-minimal index cf07bc76ec..b00c48efb9 100644 --- a/docker/Dockerfile-oneapi-minimal +++ b/docker/Dockerfile-oneapi-minimal @@ -47,4 +47,4 @@ ENV I_MPI_ROOT=/opt/intel/oneapi/mpi/latest # oneAPI environments RUN . /opt/intel/oneapi/setvars.sh -ENV FC=ifx CC=icx CXX=icpx +ENV FC=mpiifx CC=mpiicx CXX=mpiicpx From db6fc123c17951f259d4468fc90afbeb8a72fbc6 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 10:29:24 -0700 Subject: [PATCH 16/78] Update CI --- .github/workflows/run_mpas.yml | 2 +- .github/workflows/run_mpas_hrrr.yml | 2 +- docker/Dockerfile-add-netcdf | 2 +- docker/Dockerfile-add-pnetcdf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index fbdff53c65..4968cb7635 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -1,6 +1,6 @@ name: Run MPAS Standalone (NOAA GSL tests) -on: [push, pull_request, workflow_dispatch] +on: [pull_request, workflow_dispatch] ############################################################################################# # Testing script/workflow for ufs-community fork of MPAS-Dev/MPAS-A. diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 9baad7ab55..cfee2ea706 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -1,6 +1,6 @@ name: Run MPAS Standalone (NOAA GSL HRRRv5 tests) -on: [push, pull_request, workflow_dispatch] +on: [pull_request, workflow_dispatch] ############################################################################################# # Testing script/workflow for ufs-community fork of MPAS-Dev/MPAS-A. diff --git a/docker/Dockerfile-add-netcdf b/docker/Dockerfile-add-netcdf index 263009edf6..c31bb07456 100644 --- a/docker/Dockerfile-add-netcdf +++ b/docker/Dockerfile-add-netcdf @@ -10,7 +10,7 @@ RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get --yes install --no-install-recommends \ curl \ libnetcdf-dev \ - openmpi-bin \ +# openmpi-bin \ && rm -rf /var/lib/apt/lists/* # Install NetCDF Fortran diff --git a/docker/Dockerfile-add-pnetcdf b/docker/Dockerfile-add-pnetcdf index 59ec1d8f9f..015130ce60 100644 --- a/docker/Dockerfile-add-pnetcdf +++ b/docker/Dockerfile-add-pnetcdf @@ -22,7 +22,7 @@ ENV PKG_CONFIG_PATH="${PNETCDF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" RUN apt-get update && apt-get install -y --no-install-recommends \ automake \ libtool \ - openmpi-bin \ +# openmpi-bin \ && rm -rf /var/lib/apt/lists/* # Download, compile, and install PnetCDF From e949ff9ae5c97c13696092e42dca0a2dd99764d8 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 10:35:43 -0700 Subject: [PATCH 17/78] Update CI --- docker/Dockerfile-add-netcdf | 2 +- docker/Dockerfile-add-pnetcdf | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/docker/Dockerfile-add-netcdf b/docker/Dockerfile-add-netcdf index c31bb07456..263009edf6 100644 --- a/docker/Dockerfile-add-netcdf +++ b/docker/Dockerfile-add-netcdf @@ -10,7 +10,7 @@ RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get --yes install --no-install-recommends \ curl \ libnetcdf-dev \ -# openmpi-bin \ + openmpi-bin \ && rm -rf /var/lib/apt/lists/* # Install NetCDF Fortran diff --git a/docker/Dockerfile-add-pnetcdf b/docker/Dockerfile-add-pnetcdf index 015130ce60..d0116c4b66 100644 --- a/docker/Dockerfile-add-pnetcdf +++ b/docker/Dockerfile-add-pnetcdf @@ -7,10 +7,6 @@ FROM add-netcdf:$TOOLCHAIN ARG PNFVERSION ENV PNFVERSION=$PNFVERSION -ARG FC -ENV FC=$FC -ARG CC -ENV CC=$CC # Set environment variables for PnetCDF installation ENV PNETCDF_PREFIX=/opt/pnetcdf @@ -22,7 +18,6 @@ ENV PKG_CONFIG_PATH="${PNETCDF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" RUN apt-get update && apt-get install -y --no-install-recommends \ automake \ libtool \ -# openmpi-bin \ && rm -rf /var/lib/apt/lists/* # Download, compile, and install PnetCDF From 49aa70ba31a59d82eef9f2c9ceb0cb3ef7f6cd15 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 10:41:45 -0700 Subject: [PATCH 18/78] Update CI --- docker/Dockerfile-add-pnetcdf | 1 + docker/Dockerfile-oneapi-minimal | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile-add-pnetcdf b/docker/Dockerfile-add-pnetcdf index d0116c4b66..cab47a4a2a 100644 --- a/docker/Dockerfile-add-pnetcdf +++ b/docker/Dockerfile-add-pnetcdf @@ -13,6 +13,7 @@ ENV PNETCDF_PREFIX=/opt/pnetcdf ENV PATH="${PNETCDF_PREFIX}/bin:${PATH}" ENV LD_LIBRARY_PATH="${PNETCDF_PREFIX}/lib:{$LD_LIBRARY_PATH}" ENV PKG_CONFIG_PATH="${PNETCDF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" +ENV FC=mpiifx CC=mpiicx CXX=mpiicpx # Update and install necessary build tools RUN apt-get update && apt-get install -y --no-install-recommends \ diff --git a/docker/Dockerfile-oneapi-minimal b/docker/Dockerfile-oneapi-minimal index b00c48efb9..fab339a4dd 100644 --- a/docker/Dockerfile-oneapi-minimal +++ b/docker/Dockerfile-oneapi-minimal @@ -47,4 +47,5 @@ ENV I_MPI_ROOT=/opt/intel/oneapi/mpi/latest # oneAPI environments RUN . /opt/intel/oneapi/setvars.sh -ENV FC=mpiifx CC=mpiicx CXX=mpiicpx +ENV FC=ifx CC=icx CXX=icpx +#ENV FC=mpiifx CC=mpiicx CXX=mpiicpx From fb2c38c2a3464ca5ba7c4c9339af1b1b07393d68 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:01:32 -0700 Subject: [PATCH 19/78] Update CI --- .github/workflows/bld_mpas_images.yaml | 8 ++++++++ docker/Dockerfile-add-pnetcdf | 1 - docker/Dockerfile-oneapi-minimal | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index 632a264b92..fc0ad20df1 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -44,6 +44,14 @@ jobs: file: docker/Dockerfile-${{ matrix.toolchain }}-minimal tags: minimal-toolchain:${{ matrix.toolchain }} + - name: Display 1 + run: | + ls /opt/intel/oneapi/mpi/ + + - name: Display 2 + run: | + ls /opt/intel/oneapi/mpi/latest + - name: Build add-netcdf:${{ matrix.toolchain }} uses: docker/build-push-action@v6 with: diff --git a/docker/Dockerfile-add-pnetcdf b/docker/Dockerfile-add-pnetcdf index cab47a4a2a..d0116c4b66 100644 --- a/docker/Dockerfile-add-pnetcdf +++ b/docker/Dockerfile-add-pnetcdf @@ -13,7 +13,6 @@ ENV PNETCDF_PREFIX=/opt/pnetcdf ENV PATH="${PNETCDF_PREFIX}/bin:${PATH}" ENV LD_LIBRARY_PATH="${PNETCDF_PREFIX}/lib:{$LD_LIBRARY_PATH}" ENV PKG_CONFIG_PATH="${PNETCDF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" -ENV FC=mpiifx CC=mpiicx CXX=mpiicpx # Update and install necessary build tools RUN apt-get update && apt-get install -y --no-install-recommends \ diff --git a/docker/Dockerfile-oneapi-minimal b/docker/Dockerfile-oneapi-minimal index fab339a4dd..fef993440f 100644 --- a/docker/Dockerfile-oneapi-minimal +++ b/docker/Dockerfile-oneapi-minimal @@ -49,3 +49,4 @@ ENV I_MPI_ROOT=/opt/intel/oneapi/mpi/latest RUN . /opt/intel/oneapi/setvars.sh ENV FC=ifx CC=icx CXX=icpx #ENV FC=mpiifx CC=mpiicx CXX=mpiicpx +ENV MPICC /opt/intel/oneapi/mpi/latest/bin/mpiicx \ No newline at end of file From 5dfddaeb98fa131f081f5292471ab08e96ea912c Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:07:03 -0700 Subject: [PATCH 20/78] Update CI --- .github/workflows/bld_mpas_images.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index fc0ad20df1..19d9fca61a 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -46,11 +46,11 @@ jobs: - name: Display 1 run: | - ls /opt/intel/oneapi/mpi/ + ls /opt/intel/oneapi/ - name: Display 2 run: | - ls /opt/intel/oneapi/mpi/latest + ls /opt/intel/oneapi/latest - name: Build add-netcdf:${{ matrix.toolchain }} uses: docker/build-push-action@v6 From aaaf0654e15a10472e9c1c2a2892ff9615625f7c Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:13:29 -0700 Subject: [PATCH 21/78] Update CI --- .github/workflows/bld_mpas_images.yaml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index 19d9fca61a..632a264b92 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -44,14 +44,6 @@ jobs: file: docker/Dockerfile-${{ matrix.toolchain }}-minimal tags: minimal-toolchain:${{ matrix.toolchain }} - - name: Display 1 - run: | - ls /opt/intel/oneapi/ - - - name: Display 2 - run: | - ls /opt/intel/oneapi/latest - - name: Build add-netcdf:${{ matrix.toolchain }} uses: docker/build-push-action@v6 with: From 42ceae6e2abbb0e18125c9d937468763f1496910 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:22:02 -0700 Subject: [PATCH 22/78] Update CI --- .github/workflows/run_mpas.yml | 23 ++++++++++++++++------- docker/Dockerfile-oneapi-minimal | 1 - 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 4968cb7635..e072bc3202 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -1,6 +1,6 @@ name: Run MPAS Standalone (NOAA GSL tests) -on: [pull_request, workflow_dispatch] +on: [push, pull_request, workflow_dispatch] ############################################################################################# # Testing script/workflow for ufs-community fork of MPAS-Dev/MPAS-A. @@ -43,11 +43,11 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - f-compiler: [gfortran]#,ifx] - physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp] - repo: [ufs-community, MPAS-Dev] + f-compiler: [gfortran,ifx] + physics: [mesoscale_reference]#, convection_permitting, mesoscale_reference_noahmp] + repo: [ufs-community]#, MPAS-Dev] branch: [gsl/develop, v8.3.0] - build-type: [Release, Debug] + build-type: [Release]#, Debug] exclude: - repo: MPAS-Dev branch: gsl/develop @@ -57,8 +57,8 @@ jobs: # Set container images for each compiler - f-compiler: gfortran image: dustinswales/ufs-community-mpas-ci:gnu -# - f-compiler: ifx -# image: dustinswales/ufs-community-mpas-ci:oneapi + - f-compiler: ifx + image: dustinswales/ufs-community-mpas-ci:oneapi container: image: ${{ matrix.image }} # @@ -102,6 +102,15 @@ jobs: echo "CXX=mpicxx" >> $GITHUB_ENV echo "FC=mpif90" >> $GITHUB_ENV + - name: Setup MPI (Intel OneAPI) + if: matrix.fortran-compiler == 'ifx' + run: | + echo "PATH=/opt/intel/oneapi/mpi/latest/bin:${PATH}" >> $GITHUB_ENV + echo "LD_LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV + echo "CC=mpiicx" >> $GITHUB_ENV + echo "CXX=mpiicpx" >> $GITHUB_ENV + echo "FC=mpiifx" >> $GITHUB_ENV + - name: Setup PnetCDF run: | echo "PNETCDF=/opt/pnetcdf" >> $GITHUB_ENV diff --git a/docker/Dockerfile-oneapi-minimal b/docker/Dockerfile-oneapi-minimal index fef993440f..1b30550afe 100644 --- a/docker/Dockerfile-oneapi-minimal +++ b/docker/Dockerfile-oneapi-minimal @@ -48,5 +48,4 @@ ENV I_MPI_ROOT=/opt/intel/oneapi/mpi/latest # oneAPI environments RUN . /opt/intel/oneapi/setvars.sh ENV FC=ifx CC=icx CXX=icpx -#ENV FC=mpiifx CC=mpiicx CXX=mpiicpx ENV MPICC /opt/intel/oneapi/mpi/latest/bin/mpiicx \ No newline at end of file From 7e17fa0f1564af44ef030b9c133c55e4851d3ded Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:24:55 -0700 Subject: [PATCH 23/78] Update CI --- .github/workflows/run_mpas.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index e072bc3202..be55de6d4a 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -43,7 +43,7 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - f-compiler: [gfortran,ifx] + f-compiler: [gfortran, ifx] physics: [mesoscale_reference]#, convection_permitting, mesoscale_reference_noahmp] repo: [ufs-community]#, MPAS-Dev] branch: [gsl/develop, v8.3.0] From a6432df7aaa82c4a1d56fdd5ab60f789a0af8730 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:27:15 -0700 Subject: [PATCH 24/78] Update CI --- .github/workflows/run_mpas.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index be55de6d4a..a8d0c8ee81 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -37,17 +37,17 @@ on: [push, pull_request, workflow_dispatch] # ############################################################################################# jobs: - run_mpas: - # + run_mpas: + # runs-on: ubuntu-22.04 strategy: fail-fast: false # Disable fail-fast matrix: - f-compiler: [gfortran, ifx] - physics: [mesoscale_reference]#, convection_permitting, mesoscale_reference_noahmp] - repo: [ufs-community]#, MPAS-Dev] + f-compiler: [gfortran,ifx] + physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp] + repo: [ufs-community, MPAS-Dev] branch: [gsl/develop, v8.3.0] - build-type: [Release]#, Debug] + build-type: [Release, Debug] exclude: - repo: MPAS-Dev branch: gsl/develop From 286e81cc1bd0b2afdde80b4926442a6d07e4a20c Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:28:16 -0700 Subject: [PATCH 25/78] Update CI --- .github/workflows/run_mpas.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index a8d0c8ee81..b6e4713d08 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -43,7 +43,7 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - f-compiler: [gfortran,ifx] + f-compiler: [gfortran]#,ifx] physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp] repo: [ufs-community, MPAS-Dev] branch: [gsl/develop, v8.3.0] @@ -57,8 +57,8 @@ jobs: # Set container images for each compiler - f-compiler: gfortran image: dustinswales/ufs-community-mpas-ci:gnu - - f-compiler: ifx - image: dustinswales/ufs-community-mpas-ci:oneapi +# - f-compiler: ifx +# image: dustinswales/ufs-community-mpas-ci:oneapi container: image: ${{ matrix.image }} # From 24976ce79faae02c64ace38cc0af74b7554ef16f Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:29:45 -0700 Subject: [PATCH 26/78] Update CI --- .github/workflows/run_mpas.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index b6e4713d08..64e95d0ea2 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -43,11 +43,11 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - f-compiler: [gfortran]#,ifx] - physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp] - repo: [ufs-community, MPAS-Dev] - branch: [gsl/develop, v8.3.0] - build-type: [Release, Debug] + f-compiler: [gfortran,ifx] + physics: [mesoscale_reference]#, convection_permitting, mesoscale_reference_noahmp] + repo: [ufs-community]#, MPAS-Dev] + branch: [gsl/develop]#, v8.3.0] + build-type: [Release]#, Debug] exclude: - repo: MPAS-Dev branch: gsl/develop @@ -57,8 +57,8 @@ jobs: # Set container images for each compiler - f-compiler: gfortran image: dustinswales/ufs-community-mpas-ci:gnu -# - f-compiler: ifx -# image: dustinswales/ufs-community-mpas-ci:oneapi + - f-compiler: ifx + image: dustinswales/ufs-community-mpas-ci:oneapi container: image: ${{ matrix.image }} # @@ -103,13 +103,13 @@ jobs: echo "FC=mpif90" >> $GITHUB_ENV - name: Setup MPI (Intel OneAPI) - if: matrix.fortran-compiler == 'ifx' - run: | - echo "PATH=/opt/intel/oneapi/mpi/latest/bin:${PATH}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - echo "CC=mpiicx" >> $GITHUB_ENV - echo "CXX=mpiicpx" >> $GITHUB_ENV - echo "FC=mpiifx" >> $GITHUB_ENV + if: matrix.fortran-compiler == 'ifx' + run: | + echo "PATH=/opt/intel/oneapi/mpi/latest/bin:${PATH}" >> $GITHUB_ENV + echo "LD_LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV + echo "CC=mpiicx" >> $GITHUB_ENV + echo "CXX=mpiicpx" >> $GITHUB_ENV + echo "FC=mpiifx" >> $GITHUB_ENV - name: Setup PnetCDF run: | From c91a4b257ee4c0a524cf7ff8ba1148ba5d23ff78 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:30:37 -0700 Subject: [PATCH 27/78] Update CI --- .github/workflows/run_mpas.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 64e95d0ea2..f5fb5c2d47 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -38,7 +38,6 @@ on: [push, pull_request, workflow_dispatch] ############################################################################################# jobs: run_mpas: - # runs-on: ubuntu-22.04 strategy: fail-fast: false # Disable fail-fast From 7e43ce1403a8a6b2a619f15533c8c72aee8acc66 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:33:50 -0700 Subject: [PATCH 28/78] Update CI --- .github/workflows/run_mpas.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index f5fb5c2d47..b08a79c0ad 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -42,7 +42,7 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - f-compiler: [gfortran,ifx] + f-compiler: [gfortran,ifx]#, nvfortran] physics: [mesoscale_reference]#, convection_permitting, mesoscale_reference_noahmp] repo: [ufs-community]#, MPAS-Dev] branch: [gsl/develop]#, v8.3.0] @@ -58,6 +58,8 @@ jobs: image: dustinswales/ufs-community-mpas-ci:gnu - f-compiler: ifx image: dustinswales/ufs-community-mpas-ci:oneapi +# - fortran-compiler: nvfortran +# image: dustinswales/ccpp-scm-ci:nvhpc container: image: ${{ matrix.image }} # From 7d3ab9b58010ff9113532032dd7140ae504a7bb4 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:34:52 -0700 Subject: [PATCH 29/78] Update CI --- .github/workflows/run_mpas.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index b08a79c0ad..ef8026cde9 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -58,7 +58,7 @@ jobs: image: dustinswales/ufs-community-mpas-ci:gnu - f-compiler: ifx image: dustinswales/ufs-community-mpas-ci:oneapi -# - fortran-compiler: nvfortran +# - f-compiler: nvfortran # image: dustinswales/ccpp-scm-ci:nvhpc container: image: ${{ matrix.image }} @@ -104,7 +104,7 @@ jobs: echo "FC=mpif90" >> $GITHUB_ENV - name: Setup MPI (Intel OneAPI) - if: matrix.fortran-compiler == 'ifx' + if: matrix.f-compiler == 'ifx' run: | echo "PATH=/opt/intel/oneapi/mpi/latest/bin:${PATH}" >> $GITHUB_ENV echo "LD_LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV From c22ac1c7e02128197e2af01998a43d97f1f32690 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:36:01 -0700 Subject: [PATCH 30/78] Update CI --- .github/workflows/run_mpas.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index ef8026cde9..acb808ec4e 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -42,10 +42,10 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - f-compiler: [gfortran,ifx]#, nvfortran] - physics: [mesoscale_reference]#, convection_permitting, mesoscale_reference_noahmp] - repo: [ufs-community]#, MPAS-Dev] - branch: [gsl/develop]#, v8.3.0] + f-compiler: [gfortran]#,ifx]#, nvfortran] + physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp] + repo: [ufs-community, MPAS-Dev] + branch: [gsl/develop, v8.3.0] build-type: [Release]#, Debug] exclude: - repo: MPAS-Dev @@ -56,8 +56,8 @@ jobs: # Set container images for each compiler - f-compiler: gfortran image: dustinswales/ufs-community-mpas-ci:gnu - - f-compiler: ifx - image: dustinswales/ufs-community-mpas-ci:oneapi +# - f-compiler: ifx +# image: dustinswales/ufs-community-mpas-ci:oneapi # - f-compiler: nvfortran # image: dustinswales/ccpp-scm-ci:nvhpc container: @@ -103,14 +103,14 @@ jobs: echo "CXX=mpicxx" >> $GITHUB_ENV echo "FC=mpif90" >> $GITHUB_ENV - - name: Setup MPI (Intel OneAPI) - if: matrix.f-compiler == 'ifx' - run: | - echo "PATH=/opt/intel/oneapi/mpi/latest/bin:${PATH}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - echo "CC=mpiicx" >> $GITHUB_ENV - echo "CXX=mpiicpx" >> $GITHUB_ENV - echo "FC=mpiifx" >> $GITHUB_ENV +# - name: Setup MPI (Intel OneAPI) +# if: matrix.f-compiler == 'ifx' +# run: | +# echo "PATH=/opt/intel/oneapi/mpi/latest/bin:${PATH}" >> $GITHUB_ENV +# echo "LD_LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV +# echo "CC=mpiicx" >> $GITHUB_ENV +# echo "CXX=mpiicpx" >> $GITHUB_ENV +# echo "FC=mpiifx" >> $GITHUB_ENV - name: Setup PnetCDF run: | From b6852d4e76694100f776b66fd008ce65c877931f Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:36:52 -0700 Subject: [PATCH 31/78] Update CI --- .github/workflows/run_mpas.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index acb808ec4e..6c9400a037 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -42,7 +42,7 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - f-compiler: [gfortran]#,ifx]#, nvfortran] + f-compiler: [gfortran,ifx]#, nvfortran] physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp] repo: [ufs-community, MPAS-Dev] branch: [gsl/develop, v8.3.0] @@ -56,8 +56,8 @@ jobs: # Set container images for each compiler - f-compiler: gfortran image: dustinswales/ufs-community-mpas-ci:gnu -# - f-compiler: ifx -# image: dustinswales/ufs-community-mpas-ci:oneapi + - f-compiler: ifx + image: dustinswales/ufs-community-mpas-ci:oneapi # - f-compiler: nvfortran # image: dustinswales/ccpp-scm-ci:nvhpc container: From 526c18a10854d6ce24806f7ea279bd21a727f45d Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:40:10 -0700 Subject: [PATCH 32/78] Update CI --- .github/workflows/run_mpas.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 6c9400a037..c8edfc905a 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -103,14 +103,14 @@ jobs: echo "CXX=mpicxx" >> $GITHUB_ENV echo "FC=mpif90" >> $GITHUB_ENV -# - name: Setup MPI (Intel OneAPI) -# if: matrix.f-compiler == 'ifx' -# run: | -# echo "PATH=/opt/intel/oneapi/mpi/latest/bin:${PATH}" >> $GITHUB_ENV -# echo "LD_LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV -# echo "CC=mpiicx" >> $GITHUB_ENV -# echo "CXX=mpiicpx" >> $GITHUB_ENV -# echo "FC=mpiifx" >> $GITHUB_ENV + - name: Setup MPI (Intel OneAPI) + if: matrix.f-compiler == 'ifx' + run: | + echo "PATH=/opt/intel/oneapi/mpi/latest/bin:${PATH}" >> $GITHUB_ENV + echo "LD_LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV + echo "CC=mpiicx" >> $GITHUB_ENV + echo "CXX=mpiicpx" >> $GITHUB_ENV + echo "FC=mpiifx" >> $GITHUB_ENV - name: Setup PnetCDF run: | From 71c645b00a6fc0eb80fe4b4c6dc1614d1ef138de Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:41:12 -0700 Subject: [PATCH 33/78] Update CI --- .github/workflows/run_mpas.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index c8edfc905a..6274a52360 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -103,14 +103,14 @@ jobs: echo "CXX=mpicxx" >> $GITHUB_ENV echo "FC=mpif90" >> $GITHUB_ENV - - name: Setup MPI (Intel OneAPI) - if: matrix.f-compiler == 'ifx' - run: | - echo "PATH=/opt/intel/oneapi/mpi/latest/bin:${PATH}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - echo "CC=mpiicx" >> $GITHUB_ENV - echo "CXX=mpiicpx" >> $GITHUB_ENV - echo "FC=mpiifx" >> $GITHUB_ENV + - name: Setup MPI (Intel OneAPI) + if: matrix.f-compiler == 'ifx' + run: | + echo "PATH=/opt/intel/oneapi/mpi/latest/bin:${PATH}" >> $GITHUB_ENV + echo "LD_LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV + echo "CC=mpiicx" >> $GITHUB_ENV + echo "CXX=mpiicpx" >> $GITHUB_ENV + echo "FC=mpiifx" >> $GITHUB_ENV - name: Setup PnetCDF run: | From ab9b1954a2a0c738e342cd458bf82f97bf6da586 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:42:11 -0700 Subject: [PATCH 34/78] Update CI --- .github/workflows/run_mpas.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 6274a52360..898af71b42 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -43,9 +43,9 @@ jobs: fail-fast: false # Disable fail-fast matrix: f-compiler: [gfortran,ifx]#, nvfortran] - physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp] - repo: [ufs-community, MPAS-Dev] - branch: [gsl/develop, v8.3.0] + physics: [mesoscale_reference]#, convection_permitting, mesoscale_reference_noahmp] + repo: [ufs-community]#, MPAS-Dev] + branch: [gsl/develop]#, v8.3.0] build-type: [Release]#, Debug] exclude: - repo: MPAS-Dev From b2b3256c8e15b93fd2be52a51bb3ea805578bf9d Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 11:45:34 -0700 Subject: [PATCH 35/78] Update CI --- .github/workflows/run_mpas.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 898af71b42..18825a1e27 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -158,7 +158,7 @@ jobs: cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} - make gfortran CORE=atmosphere DEBUG=true + make ${{matrix.f-compiler}} CORE=atmosphere DEBUG=true - name: Checkout and build MPAS standalone for baseline generation (Release) if: contains(matrix.build-type, 'Release') @@ -166,7 +166,7 @@ jobs: cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} - make gfortran CORE=atmosphere + make ${{matrix.f-compiler}} CORE=atmosphere - name: Checkout MPAS codebase for testing. uses: actions/checkout@v3 @@ -181,13 +181,13 @@ jobs: if: contains(matrix.build-type, 'Debug') run: | cd ${MPAS_ROOT} - make gfortran CORE=atmosphere DEBUG=true + make ${{matrix.f-compiler}} CORE=atmosphere DEBUG=true - name: Build MPAS standalone for testing (Release) if: contains(matrix.build-type, 'Release') run: | cd ${MPAS_ROOT} - make gfortran CORE=atmosphere + make ${{matrix.f-compiler}} CORE=atmosphere ########################################################################################## # Step 3: Fetch any data/files needed for MPAS runs. From 553d32a7872ff73181949967e5be0907832c83d9 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 12:01:40 -0700 Subject: [PATCH 36/78] Update CI --- .github/workflows/run_mpas.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 18825a1e27..6f813954ee 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -55,9 +55,11 @@ jobs: include: # Set container images for each compiler - f-compiler: gfortran + bld_target: gfortran image: dustinswales/ufs-community-mpas-ci:gnu - f-compiler: ifx image: dustinswales/ufs-community-mpas-ci:oneapi + bld_target: intel # - f-compiler: nvfortran # image: dustinswales/ccpp-scm-ci:nvhpc container: @@ -158,7 +160,7 @@ jobs: cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} - make ${{matrix.f-compiler}} CORE=atmosphere DEBUG=true + make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - name: Checkout and build MPAS standalone for baseline generation (Release) if: contains(matrix.build-type, 'Release') @@ -166,7 +168,7 @@ jobs: cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} - make ${{matrix.f-compiler}} CORE=atmosphere + make ${{matrix.bld_target}} CORE=atmosphere - name: Checkout MPAS codebase for testing. uses: actions/checkout@v3 @@ -181,13 +183,13 @@ jobs: if: contains(matrix.build-type, 'Debug') run: | cd ${MPAS_ROOT} - make ${{matrix.f-compiler}} CORE=atmosphere DEBUG=true + make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - name: Build MPAS standalone for testing (Release) if: contains(matrix.build-type, 'Release') run: | cd ${MPAS_ROOT} - make ${{matrix.f-compiler}} CORE=atmosphere + make ${{matrix.bld_target}} CORE=atmosphere ########################################################################################## # Step 3: Fetch any data/files needed for MPAS runs. From e71a830f531be9c23348c463bba5611ef63c06c6 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 12:04:06 -0700 Subject: [PATCH 37/78] Update CI --- .github/workflows/run_mpas.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 6f813954ee..ddfc5b1f1e 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -59,7 +59,7 @@ jobs: image: dustinswales/ufs-community-mpas-ci:gnu - f-compiler: ifx image: dustinswales/ufs-community-mpas-ci:oneapi - bld_target: intel + bld_target: intel # - f-compiler: nvfortran # image: dustinswales/ccpp-scm-ci:nvhpc container: From 8e061aeac75d2312c994e144f8b1dfb64a8689c4 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Fri, 13 Feb 2026 12:08:25 -0700 Subject: [PATCH 38/78] Update CI --- .github/workflows/run_mpas.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index ddfc5b1f1e..799d189f0c 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -113,6 +113,7 @@ jobs: echo "CC=mpiicx" >> $GITHUB_ENV echo "CXX=mpiicpx" >> $GITHUB_ENV echo "FC=mpiifx" >> $GITHUB_ENV + echo "MPICC=/opt/intel/oneapi/mpi/latest/bin/mpiicx" >> $GITHUB_ENV - name: Setup PnetCDF run: | From b7d01d8cb884b400ecd32fb514d9cbabfcb67cdc Mon Sep 17 00:00:00 2001 From: dustinswales Date: Mon, 23 Feb 2026 20:27:37 -0700 Subject: [PATCH 39/78] Turn off physics --- src/core_atmosphere/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core_atmosphere/Makefile b/src/core_atmosphere/Makefile index 966027bc77..e6f65ad92f 100644 --- a/src/core_atmosphere/Makefile +++ b/src/core_atmosphere/Makefile @@ -6,9 +6,9 @@ # # If MPAS_CAM_DYCORE is found in CPPFLAGS, PHYSICS will become undefined automatically # -ifeq ($(findstring MPAS_CAM_DYCORE,$(CPPFLAGS)),) - PHYSICS = -DDO_PHYSICS -endif +#ifeq ($(findstring MPAS_CAM_DYCORE,$(CPPFLAGS)),) +# PHYSICS = -DDO_PHYSICS +#endif ifdef PHYSICS PHYSCORE = physcore From 52a8791ef96a9e0d4829df988143f850b71375b7 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Mon, 23 Feb 2026 20:35:45 -0700 Subject: [PATCH 40/78] Turn off physics --- src/core_atmosphere/Makefile | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/core_atmosphere/Makefile b/src/core_atmosphere/Makefile index e6f65ad92f..3d8e35dacb 100644 --- a/src/core_atmosphere/Makefile +++ b/src/core_atmosphere/Makefile @@ -10,11 +10,6 @@ # PHYSICS = -DDO_PHYSICS #endif -ifdef PHYSICS - PHYSCORE = physcore - PHYS_OBJS = libphys/*.o -endif - OBJS = mpas_atm_core.o \ mpas_atm_core_interface.o \ mpas_atm_dimensions.o \ From bcfa404e6a4c044313f747f7019fbc9adfcb254c Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 17:34:09 +0000 Subject: [PATCH 41/78] Add namelists to mpas repo --- .github/workflows/run_mpas.yml | 6 +- .gitignore | 6 +- .../namelist.atmosphere.gsl | 73 +++++++++ .../namelist.atmosphere.ncar | 72 +++++++++ .../stream_list.atmosphere.diagnostics | 92 ++++++++++++ .../stream_list.atmosphere.output | 110 ++++++++++++++ .../stream_list.atmosphere.surface | 2 + .../streams.atmosphere | 53 +++++++ .../namelist.atmosphere.gsl | 69 +++++++++ .../namelist.atmosphere.ncar | 68 +++++++++ .../stream_list.atmosphere.diagnostics | 92 ++++++++++++ .../stream_list.atmosphere.output | 110 ++++++++++++++ .../stream_list.atmosphere.surface | 2 + .../streams.atmosphere | 53 +++++++ .../namelist.atmosphere.gsl | 70 +++++++++ .../namelist.atmosphere.ncar | 69 +++++++++ .../stream_list.atmosphere.diagnostics | 92 ++++++++++++ .../stream_list.atmosphere.output | 110 ++++++++++++++ .../stream_list.atmosphere.surface | 2 + .../streams.atmosphere | 53 +++++++ .../namelist.atmosphere.gsl | 73 +++++++++ .../namelist.atmosphere.ncar | 72 +++++++++ .../stream_list.atmosphere.diagnostics | 92 ++++++++++++ .../stream_list.atmosphere.output | 110 ++++++++++++++ .../stream_list.atmosphere.surface | 2 + .../streams.atmosphere | 53 +++++++ .../namelist.atmosphere | 60 ++++++++ .../stream_list.atmosphere.diagnostics | 141 ++++++++++++++++++ .../stream_list.atmosphere.output | 127 ++++++++++++++++ .../stream_list.atmosphere.surface | 2 + .../streams.atmosphere | 59 ++++++++ .../namelist.atmosphere | 61 ++++++++ .../stream_list.atmosphere.diagnostics | 141 ++++++++++++++++++ .../stream_list.atmosphere.output | 127 ++++++++++++++++ .../stream_list.atmosphere.surface | 2 + .../streams.atmosphere | 59 ++++++++ .../namelist.atmosphere | 61 ++++++++ .../stream_list.atmosphere.diagnostics | 141 ++++++++++++++++++ .../stream_list.atmosphere.output | 127 ++++++++++++++++ .../stream_list.atmosphere.surface | 2 + .../streams.atmosphere | 59 ++++++++ .../namelist.atmosphere.gsl | 69 +++++++++ .../namelist.atmosphere.ncar | 68 +++++++++ .../stream_list.atmosphere.diagnostics | 92 ++++++++++++ .../stream_list.atmosphere.output | 110 ++++++++++++++ .../stream_list.atmosphere.surface | 2 + .../streams.atmosphere | 53 +++++++ .../namelist.atmosphere.gsl | 70 +++++++++ .../namelist.atmosphere.ncar | 69 +++++++++ .../stream_list.atmosphere.diagnostics | 92 ++++++++++++ .../stream_list.atmosphere.output | 110 ++++++++++++++ .../stream_list.atmosphere.surface | 2 + .../streams.atmosphere | 53 +++++++ 53 files changed, 3560 insertions(+), 5 deletions(-) create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/namelist.atmosphere.gsl create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/namelist.atmosphere.ncar create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.diagnostics create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.output create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.surface create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/streams.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/namelist.atmosphere.gsl create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/namelist.atmosphere.ncar create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.diagnostics create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.output create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.surface create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/streams.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.gsl create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.ncar create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.diagnostics create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.output create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.surface create mode 100644 testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/streams.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/namelist.atmosphere.gsl create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/namelist.atmosphere.ncar create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.diagnostics create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.output create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.surface create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/streams.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/namelist.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.diagnostics create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.output create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.surface create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/streams.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/namelist.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.diagnostics create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.output create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.surface create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/streams.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/namelist.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.diagnostics create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.output create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.surface create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/streams.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/namelist.atmosphere.gsl create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/namelist.atmosphere.ncar create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.diagnostics create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.output create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.surface create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/streams.atmosphere create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.gsl create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.ncar create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.diagnostics create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.output create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.surface create mode 100644 testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/streams.atmosphere diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 2e998264fb..ce9f55b24a 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -206,11 +206,13 @@ jobs: if: contains(matrix.repo, 'MPAS-Dev') run: | echo "nml_suffix=ncar" >> $GITHUB_ENV + echo "repo_name=mpasdev" >> $GITHUB_ENV - name: Configuration for ufs-community (baseline) tests. if: contains(matrix.repo, 'ufs-community') run: | echo "nml_suffix=gsl" >> $GITHUB_ENV + echo "repo_name=ufscommunity" >> $GITHUB_ENV - name: Set test variables. id: set_vars @@ -325,7 +327,6 @@ jobs: - name: Create and populate run directory (baselines) run: | cd ${mpas_run_ROOT} && mkdir run_bl && cd run_bl - cp ${mpas_run_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${ic_source}.${yyyy}${mm}${dd}${hh}/${{matrix.physics}}/* . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . @@ -334,6 +335,7 @@ jobs: ln -sf ${mpas_run_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} ln -sf /home/runner/MPAS-Model-BL/atmosphere_model . ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + cp ${mpas_rt_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. @@ -354,7 +356,6 @@ jobs: - name: Create and populate run directory (feature test) run: | cd ${mpas_run_ROOT} && mkdir run_rt && cd run_rt - cp ${mpas_run_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${ic_source}.${yyyy}${mm}${dd}${hh}/${{matrix.physics}}/* . ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_wrf/files/*DATA . @@ -363,6 +364,7 @@ jobs: ln -sf ${mpas_run_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} ln -sf ${mpas_rt_ROOT}/MPAS-Model/atmosphere_model . ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + cp ${mpas_rt_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.gsl namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. diff --git a/.gitignore b/.gitignore index eaf71a8102..fb29b6bd68 100644 --- a/.gitignore +++ b/.gitignore @@ -53,9 +53,9 @@ restart_timestamp .build_opts* # Ignore all runtime config files -namelist.* -streams.* -stream_list.* +#namelist.* +#streams.* +#stream_list.* # Intermediate files that may be produced by Intel compilers *.i diff --git a/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/namelist.atmosphere.gsl b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/namelist.atmosphere.gsl new file mode 100644 index 0000000000..2670eb3afb --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/namelist.atmosphere.gsl @@ -0,0 +1,73 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true + config_lbc_w = "zero" +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'convection_permitting' + config_mynn_closure = 2.5 + config_mynn_mixlength = 2 + config_mynn_edmf_mom = 0 + config_mynn_mixscalars = 1 + config_microp_re = false +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/namelist.atmosphere.ncar b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/namelist.atmosphere.ncar new file mode 100644 index 0000000000..70f9830937 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/namelist.atmosphere.ncar @@ -0,0 +1,72 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'convection_permitting' + config_mynn_closure = 2.5 + config_mynn_mixlength = 2 + config_mynn_edmf_mom = 0 + config_mynn_mixscalars = 1 + config_microp_re = false +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.diagnostics b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.diagnostics new file mode 100644 index 0000000000..4e7979fb61 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.diagnostics @@ -0,0 +1,92 @@ +initial_time +xtime +olrtoa +rainc +rainnc +refl10cm_max +refl10cm_1km +refl10cm_1km_max +precipw +u10 +v10 +q2 +t2m +th2m +mslp +relhum_200hPa +relhum_250hPa +relhum_500hPa +relhum_700hPa +relhum_850hPa +relhum_925hPa +dewpoint_200hPa +dewpoint_250hPa +dewpoint_500hPa +dewpoint_700hPa +dewpoint_850hPa +dewpoint_925hPa +temperature_200hPa +temperature_250hPa +temperature_500hPa +temperature_700hPa +temperature_850hPa +temperature_925hPa +height_200hPa +height_250hPa +height_500hPa +height_700hPa +height_850hPa +height_925hPa +uzonal_200hPa +uzonal_250hPa +uzonal_500hPa +uzonal_700hPa +uzonal_850hPa +uzonal_925hPa +umeridional_200hPa +umeridional_250hPa +umeridional_500hPa +umeridional_700hPa +umeridional_850hPa +umeridional_925hPa +w_200hPa +w_250hPa +w_500hPa +w_700hPa +w_850hPa +w_925hPa +vorticity_200hPa +vorticity_250hPa +vorticity_500hPa +vorticity_700hPa +vorticity_850hPa +vorticity_925hPa +t_isobaric +t_iso_levels +z_isobaric +z_iso_levels +meanT_500_300 +cape +cin +lcl +lfc +srh_0_1km +srh_0_3km +uzonal_surface +uzonal_1km +uzonal_6km +umeridional_surface +umeridional_1km +umeridional_6km +temperature_surface +dewpoint_surface +updraft_helicity_max +w_velocity_max +wind_speed_level1_max +t_oml +t_oml_initial +t_oml_200m_initial +h_oml +h_oml_initial +hu_oml +hv_oml diff --git a/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.output b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.output new file mode 100644 index 0000000000..24c30f010b --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.output @@ -0,0 +1,110 @@ +scalars +latCell +lonCell +xCell +yCell +zCell +indexToCellID +latEdge +lonEdge +xEdge +yEdge +zEdge +indexToEdgeID +latVertex +lonVertex +xVertex +yVertex +zVertex +indexToVertexID +cellsOnEdge +nEdgesOnCell +nEdgesOnEdge +edgesOnCell +edgesOnEdge +weightsOnEdge +dvEdge +dcEdge +angleEdge +areaCell +areaTriangle +cellsOnCell +verticesOnCell +verticesOnEdge +edgesOnVertex +cellsOnVertex +kiteAreasOnVertex +meshDensity +zgrid +fzm +fzp +zz +initial_time +xtime +u +w +pressure +surface_pressure +rho +theta +relhum +divergence +vorticity +ke +uReconstructZonal +uReconstructMeridional +ertel_pv +u_pv +v_pv +theta_pv +vort_pv +depv_dt_lw +depv_dt_sw +depv_dt_bl +depv_dt_cu +depv_dt_mix +dtheta_dt_mp +depv_dt_mp +depv_dt_diab +depv_dt_fric +depv_dt_diab_pv +depv_dt_fric_pv +iLev_DT +i_rainnc +rainnc +precipw +cuprec +i_rainc +rainc +kpbl +hpbl +hfx +qfx +cd +cda +ck +cka +lh +u10 +v10 +q2 +t2m +th2m +gsw +glw +acsnow +pin +ozmixm +mminlu +isice_lu +iswater_lu +xland +skintemp +snow +snowh +sst +vegfra +xice +sh2o +smois +tslb diff --git a/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.surface b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.surface new file mode 100644 index 0000000000..db54cab459 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/stream_list.atmosphere.surface @@ -0,0 +1,2 @@ +sst +xice diff --git a/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/streams.atmosphere b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/streams.atmosphere new file mode 100644 index 0000000000..c4a888ac66 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.convection_permitting.gfs.winter/streams.atmosphere @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/namelist.atmosphere.gsl b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/namelist.atmosphere.gsl new file mode 100644 index 0000000000..e7cc47d8f1 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/namelist.atmosphere.gsl @@ -0,0 +1,69 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true + config_lbc_w = "zero" +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'mesoscale_reference' + config_microp_re = false +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/namelist.atmosphere.ncar b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/namelist.atmosphere.ncar new file mode 100644 index 0000000000..6229bc51dd --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/namelist.atmosphere.ncar @@ -0,0 +1,68 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'mesoscale_reference' + config_microp_re = false +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.diagnostics b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.diagnostics new file mode 100644 index 0000000000..4e7979fb61 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.diagnostics @@ -0,0 +1,92 @@ +initial_time +xtime +olrtoa +rainc +rainnc +refl10cm_max +refl10cm_1km +refl10cm_1km_max +precipw +u10 +v10 +q2 +t2m +th2m +mslp +relhum_200hPa +relhum_250hPa +relhum_500hPa +relhum_700hPa +relhum_850hPa +relhum_925hPa +dewpoint_200hPa +dewpoint_250hPa +dewpoint_500hPa +dewpoint_700hPa +dewpoint_850hPa +dewpoint_925hPa +temperature_200hPa +temperature_250hPa +temperature_500hPa +temperature_700hPa +temperature_850hPa +temperature_925hPa +height_200hPa +height_250hPa +height_500hPa +height_700hPa +height_850hPa +height_925hPa +uzonal_200hPa +uzonal_250hPa +uzonal_500hPa +uzonal_700hPa +uzonal_850hPa +uzonal_925hPa +umeridional_200hPa +umeridional_250hPa +umeridional_500hPa +umeridional_700hPa +umeridional_850hPa +umeridional_925hPa +w_200hPa +w_250hPa +w_500hPa +w_700hPa +w_850hPa +w_925hPa +vorticity_200hPa +vorticity_250hPa +vorticity_500hPa +vorticity_700hPa +vorticity_850hPa +vorticity_925hPa +t_isobaric +t_iso_levels +z_isobaric +z_iso_levels +meanT_500_300 +cape +cin +lcl +lfc +srh_0_1km +srh_0_3km +uzonal_surface +uzonal_1km +uzonal_6km +umeridional_surface +umeridional_1km +umeridional_6km +temperature_surface +dewpoint_surface +updraft_helicity_max +w_velocity_max +wind_speed_level1_max +t_oml +t_oml_initial +t_oml_200m_initial +h_oml +h_oml_initial +hu_oml +hv_oml diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.output b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.output new file mode 100644 index 0000000000..24c30f010b --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.output @@ -0,0 +1,110 @@ +scalars +latCell +lonCell +xCell +yCell +zCell +indexToCellID +latEdge +lonEdge +xEdge +yEdge +zEdge +indexToEdgeID +latVertex +lonVertex +xVertex +yVertex +zVertex +indexToVertexID +cellsOnEdge +nEdgesOnCell +nEdgesOnEdge +edgesOnCell +edgesOnEdge +weightsOnEdge +dvEdge +dcEdge +angleEdge +areaCell +areaTriangle +cellsOnCell +verticesOnCell +verticesOnEdge +edgesOnVertex +cellsOnVertex +kiteAreasOnVertex +meshDensity +zgrid +fzm +fzp +zz +initial_time +xtime +u +w +pressure +surface_pressure +rho +theta +relhum +divergence +vorticity +ke +uReconstructZonal +uReconstructMeridional +ertel_pv +u_pv +v_pv +theta_pv +vort_pv +depv_dt_lw +depv_dt_sw +depv_dt_bl +depv_dt_cu +depv_dt_mix +dtheta_dt_mp +depv_dt_mp +depv_dt_diab +depv_dt_fric +depv_dt_diab_pv +depv_dt_fric_pv +iLev_DT +i_rainnc +rainnc +precipw +cuprec +i_rainc +rainc +kpbl +hpbl +hfx +qfx +cd +cda +ck +cka +lh +u10 +v10 +q2 +t2m +th2m +gsw +glw +acsnow +pin +ozmixm +mminlu +isice_lu +iswater_lu +xland +skintemp +snow +snowh +sst +vegfra +xice +sh2o +smois +tslb diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.surface b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.surface new file mode 100644 index 0000000000..db54cab459 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/stream_list.atmosphere.surface @@ -0,0 +1,2 @@ +sst +xice diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/streams.atmosphere b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/streams.atmosphere new file mode 100644 index 0000000000..c4a888ac66 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference.gfs.winter/streams.atmosphere @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.gsl b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.gsl new file mode 100644 index 0000000000..93702c56f7 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.gsl @@ -0,0 +1,70 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true + config_lbc_w = "zero" +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'mesoscale_reference' + config_microp_re = false + config_lsm_scheme = "sf_noahmp" +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.ncar b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.ncar new file mode 100644 index 0000000000..cab4d85552 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.ncar @@ -0,0 +1,69 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'mesoscale_reference' + config_microp_re = false + config_lsm_scheme = "sf_noahmp" +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.diagnostics b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.diagnostics new file mode 100644 index 0000000000..4e7979fb61 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.diagnostics @@ -0,0 +1,92 @@ +initial_time +xtime +olrtoa +rainc +rainnc +refl10cm_max +refl10cm_1km +refl10cm_1km_max +precipw +u10 +v10 +q2 +t2m +th2m +mslp +relhum_200hPa +relhum_250hPa +relhum_500hPa +relhum_700hPa +relhum_850hPa +relhum_925hPa +dewpoint_200hPa +dewpoint_250hPa +dewpoint_500hPa +dewpoint_700hPa +dewpoint_850hPa +dewpoint_925hPa +temperature_200hPa +temperature_250hPa +temperature_500hPa +temperature_700hPa +temperature_850hPa +temperature_925hPa +height_200hPa +height_250hPa +height_500hPa +height_700hPa +height_850hPa +height_925hPa +uzonal_200hPa +uzonal_250hPa +uzonal_500hPa +uzonal_700hPa +uzonal_850hPa +uzonal_925hPa +umeridional_200hPa +umeridional_250hPa +umeridional_500hPa +umeridional_700hPa +umeridional_850hPa +umeridional_925hPa +w_200hPa +w_250hPa +w_500hPa +w_700hPa +w_850hPa +w_925hPa +vorticity_200hPa +vorticity_250hPa +vorticity_500hPa +vorticity_700hPa +vorticity_850hPa +vorticity_925hPa +t_isobaric +t_iso_levels +z_isobaric +z_iso_levels +meanT_500_300 +cape +cin +lcl +lfc +srh_0_1km +srh_0_3km +uzonal_surface +uzonal_1km +uzonal_6km +umeridional_surface +umeridional_1km +umeridional_6km +temperature_surface +dewpoint_surface +updraft_helicity_max +w_velocity_max +wind_speed_level1_max +t_oml +t_oml_initial +t_oml_200m_initial +h_oml +h_oml_initial +hu_oml +hv_oml diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.output b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.output new file mode 100644 index 0000000000..24c30f010b --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.output @@ -0,0 +1,110 @@ +scalars +latCell +lonCell +xCell +yCell +zCell +indexToCellID +latEdge +lonEdge +xEdge +yEdge +zEdge +indexToEdgeID +latVertex +lonVertex +xVertex +yVertex +zVertex +indexToVertexID +cellsOnEdge +nEdgesOnCell +nEdgesOnEdge +edgesOnCell +edgesOnEdge +weightsOnEdge +dvEdge +dcEdge +angleEdge +areaCell +areaTriangle +cellsOnCell +verticesOnCell +verticesOnEdge +edgesOnVertex +cellsOnVertex +kiteAreasOnVertex +meshDensity +zgrid +fzm +fzp +zz +initial_time +xtime +u +w +pressure +surface_pressure +rho +theta +relhum +divergence +vorticity +ke +uReconstructZonal +uReconstructMeridional +ertel_pv +u_pv +v_pv +theta_pv +vort_pv +depv_dt_lw +depv_dt_sw +depv_dt_bl +depv_dt_cu +depv_dt_mix +dtheta_dt_mp +depv_dt_mp +depv_dt_diab +depv_dt_fric +depv_dt_diab_pv +depv_dt_fric_pv +iLev_DT +i_rainnc +rainnc +precipw +cuprec +i_rainc +rainc +kpbl +hpbl +hfx +qfx +cd +cda +ck +cka +lh +u10 +v10 +q2 +t2m +th2m +gsw +glw +acsnow +pin +ozmixm +mminlu +isice_lu +iswater_lu +xland +skintemp +snow +snowh +sst +vegfra +xice +sh2o +smois +tslb diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.surface b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.surface new file mode 100644 index 0000000000..db54cab459 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.surface @@ -0,0 +1,2 @@ +sst +xice diff --git a/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/streams.atmosphere b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/streams.atmosphere new file mode 100644 index 0000000000..c4a888ac66 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/mpasdev.mesoscale_reference_noahmp.gfs.winter/streams.atmosphere @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/namelist.atmosphere.gsl b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/namelist.atmosphere.gsl new file mode 100644 index 0000000000..2670eb3afb --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/namelist.atmosphere.gsl @@ -0,0 +1,73 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true + config_lbc_w = "zero" +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'convection_permitting' + config_mynn_closure = 2.5 + config_mynn_mixlength = 2 + config_mynn_edmf_mom = 0 + config_mynn_mixscalars = 1 + config_microp_re = false +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/namelist.atmosphere.ncar b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/namelist.atmosphere.ncar new file mode 100644 index 0000000000..70f9830937 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/namelist.atmosphere.ncar @@ -0,0 +1,72 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'convection_permitting' + config_mynn_closure = 2.5 + config_mynn_mixlength = 2 + config_mynn_edmf_mom = 0 + config_mynn_mixscalars = 1 + config_microp_re = false +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.diagnostics b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.diagnostics new file mode 100644 index 0000000000..4e7979fb61 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.diagnostics @@ -0,0 +1,92 @@ +initial_time +xtime +olrtoa +rainc +rainnc +refl10cm_max +refl10cm_1km +refl10cm_1km_max +precipw +u10 +v10 +q2 +t2m +th2m +mslp +relhum_200hPa +relhum_250hPa +relhum_500hPa +relhum_700hPa +relhum_850hPa +relhum_925hPa +dewpoint_200hPa +dewpoint_250hPa +dewpoint_500hPa +dewpoint_700hPa +dewpoint_850hPa +dewpoint_925hPa +temperature_200hPa +temperature_250hPa +temperature_500hPa +temperature_700hPa +temperature_850hPa +temperature_925hPa +height_200hPa +height_250hPa +height_500hPa +height_700hPa +height_850hPa +height_925hPa +uzonal_200hPa +uzonal_250hPa +uzonal_500hPa +uzonal_700hPa +uzonal_850hPa +uzonal_925hPa +umeridional_200hPa +umeridional_250hPa +umeridional_500hPa +umeridional_700hPa +umeridional_850hPa +umeridional_925hPa +w_200hPa +w_250hPa +w_500hPa +w_700hPa +w_850hPa +w_925hPa +vorticity_200hPa +vorticity_250hPa +vorticity_500hPa +vorticity_700hPa +vorticity_850hPa +vorticity_925hPa +t_isobaric +t_iso_levels +z_isobaric +z_iso_levels +meanT_500_300 +cape +cin +lcl +lfc +srh_0_1km +srh_0_3km +uzonal_surface +uzonal_1km +uzonal_6km +umeridional_surface +umeridional_1km +umeridional_6km +temperature_surface +dewpoint_surface +updraft_helicity_max +w_velocity_max +wind_speed_level1_max +t_oml +t_oml_initial +t_oml_200m_initial +h_oml +h_oml_initial +hu_oml +hv_oml diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.output b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.output new file mode 100644 index 0000000000..24c30f010b --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.output @@ -0,0 +1,110 @@ +scalars +latCell +lonCell +xCell +yCell +zCell +indexToCellID +latEdge +lonEdge +xEdge +yEdge +zEdge +indexToEdgeID +latVertex +lonVertex +xVertex +yVertex +zVertex +indexToVertexID +cellsOnEdge +nEdgesOnCell +nEdgesOnEdge +edgesOnCell +edgesOnEdge +weightsOnEdge +dvEdge +dcEdge +angleEdge +areaCell +areaTriangle +cellsOnCell +verticesOnCell +verticesOnEdge +edgesOnVertex +cellsOnVertex +kiteAreasOnVertex +meshDensity +zgrid +fzm +fzp +zz +initial_time +xtime +u +w +pressure +surface_pressure +rho +theta +relhum +divergence +vorticity +ke +uReconstructZonal +uReconstructMeridional +ertel_pv +u_pv +v_pv +theta_pv +vort_pv +depv_dt_lw +depv_dt_sw +depv_dt_bl +depv_dt_cu +depv_dt_mix +dtheta_dt_mp +depv_dt_mp +depv_dt_diab +depv_dt_fric +depv_dt_diab_pv +depv_dt_fric_pv +iLev_DT +i_rainnc +rainnc +precipw +cuprec +i_rainc +rainc +kpbl +hpbl +hfx +qfx +cd +cda +ck +cka +lh +u10 +v10 +q2 +t2m +th2m +gsw +glw +acsnow +pin +ozmixm +mminlu +isice_lu +iswater_lu +xland +skintemp +snow +snowh +sst +vegfra +xice +sh2o +smois +tslb diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.surface b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.surface new file mode 100644 index 0000000000..db54cab459 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/stream_list.atmosphere.surface @@ -0,0 +1,2 @@ +sst +xice diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/streams.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/streams.atmosphere new file mode 100644 index 0000000000..c4a888ac66 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.convection_permitting.gfs.winter/streams.atmosphere @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/namelist.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/namelist.atmosphere new file mode 100644 index 0000000000..33817d7a17 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/namelist.atmosphere @@ -0,0 +1,60 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 4 + config_dynamics_split_steps = 3 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_scalar_advection = true + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_mpas_cam_coef = 2.0 + config_rayleigh_damp_u = true + config_zd = 16000.0 + config_xnutr = 0.2 + config_number_cam_damping_levels = 8 +/ +&limited_area + config_apply_lbcs = true +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_frac_seaice = true + config_deepsoiltemp_update = false + config_radtlw_interval = '00:15:00' + config_radtsw_interval = '00:15:00' + config_bucket_update = 'none' + config_physics_suite = 'hrrrv5' + config_tempo_aerosolaware = .true. + config_tempo_hailaware = .true. + num_soil_layers = 9 +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.diagnostics b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.diagnostics new file mode 100644 index 0000000000..048ec8b9d6 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.diagnostics @@ -0,0 +1,141 @@ +initial_time +xtime +Time +snowncv +rainncv +graupelncv +prec_acc_c +prec_acc_nc +snow_acc_nc +mslp +relhum_50hPa +relhum_100hPa +relhum_200hPa +relhum_250hPa +relhum_500hPa +relhum_700hPa +relhum_850hPa +relhum_925hPa +dewpoint_50hPa +dewpoint_100hPa +dewpoint_200hPa +dewpoint_250hPa +dewpoint_500hPa +dewpoint_700hPa +dewpoint_850hPa +dewpoint_925hPa +temperature_50hPa +temperature_100hPa +temperature_200hPa +temperature_250hPa +temperature_500hPa +temperature_700hPa +temperature_850hPa +temperature_925hPa +height_50hPa +height_100hPa +height_200hPa +height_250hPa +height_500hPa +height_700hPa +height_850hPa +height_925hPa +uzonal_50hPa +uzonal_100hPa +uzonal_200hPa +uzonal_250hPa +uzonal_500hPa +uzonal_700hPa +uzonal_850hPa +uzonal_925hPa +umeridional_50hPa +umeridional_100hPa +umeridional_200hPa +umeridional_250hPa +umeridional_500hPa +umeridional_700hPa +umeridional_850hPa +umeridional_925hPa +w_50hPa +w_100hPa +w_200hPa +w_250hPa +w_500hPa +w_700hPa +w_850hPa +w_925hPa +vorticity_50hPa +vorticity_100hPa +vorticity_200hPa +vorticity_250hPa +vorticity_500hPa +vorticity_700hPa +vorticity_850hPa +vorticity_925hPa +t_isobaric +t_iso_levels +z_isobaric +z_iso_levels +meanT_500_300 +olrtoa +rainc +rainnc +refl10cm +refl10cm_max +refl10cm_1km +refl10cm_1km_max +precipw +u10 +v10 +q2 +t2m +th2m +cape +cin +lcl +lfc +srh_0_1km +srh_0_3km +uzonal_surface +uzonal_1km +uzonal_6km +umeridional_surface +umeridional_1km +umeridional_6km +temperature_surface +dewpoint_surface +updraft_helicity_max +w_velocity_max +w_velocity_min +w_velocity_mean +wind_speed_level1_max +t_oml +t_oml_initial +t_oml_200m_initial +h_oml +h_oml_initial +hu_oml +hv_oml +updraft_helicity_max_01 +updraft_helicity_max_16 +updraft_helicity_max0_15 +updraft_helicity_max05_15 +updraft_helicity_max_02 +updraft_helicity_max_03 +updraft_helicity_min_01 +updraft_helicity_min_16 +updraft_helicity_min0_15 +updraft_helicity_min05_15 +updraft_helicity_min_02 +updraft_helicity_min_03 +wind02_max +wind02_integral_max +wind_speed_10m_max +wind_speed_10m_mean +u10m_mean +v10m_mean +swdnb +swupt +swddir +swddni +swddif diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.output b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.output new file mode 100644 index 0000000000..9c151a488d --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.output @@ -0,0 +1,127 @@ +scalars +latCell +lonCell +xCell +yCell +zCell +indexToCellID +latEdge +lonEdge +xEdge +yEdge +zEdge +indexToEdgeID +latVertex +lonVertex +xVertex +yVertex +zVertex +indexToVertexID +cellsOnEdge +nEdgesOnCell +nEdgesOnEdge +edgesOnCell +edgesOnEdge +weightsOnEdge +dvEdge +dcEdge +angleEdge +areaCell +areaTriangle +cellsOnCell +verticesOnCell +verticesOnEdge +edgesOnVertex +cellsOnVertex +kiteAreasOnVertex +meshDensity +zgrid +fzm +fzp +zz +initial_time +xtime +Time +u +w +pressure +surface_pressure +rho +theta +relhum +divergence +vorticity +ke +uReconstructZonal +uReconstructMeridional +ertel_pv +u_pv +v_pv +theta_pv +vort_pv +iLev_DT +depv_dt_lw +depv_dt_sw +depv_dt_bl +depv_dt_cu +depv_dt_mix +dtheta_dt_mp +depv_dt_mp +depv_dt_diab +depv_dt_fric +depv_dt_diab_pv +depv_dt_fric_pv +i_rainnc +rainnc +precipw +cuprec +i_rainc +rainc +kpbl +hpbl +hfx +qfx +cd +cda +ck +cka +lh +u10 +v10 +q2 +t2m +th2m +gsw +glw +acsnow +pin +ozmixm +mminlu +isice_lu +iswater_lu +xland +skintemp +snow +snowh +sst +vegfra +shdmin +shdmax +canwat +xice +sh2o +smois +tslb +soilt1 +rhosnf +snowfallac +acrunoff +grdflx +ivgtyp +isltyp +lai +sfc_albedo +cldfrac_bl +snowc +snownc +graupelnc diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.surface b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.surface new file mode 100644 index 0000000000..db54cab459 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/stream_list.atmosphere.surface @@ -0,0 +1,2 @@ +sst +xice diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/streams.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/streams.atmosphere new file mode 100644 index 0000000000..b076c1bc12 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/streams.atmosphere @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/namelist.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/namelist.atmosphere new file mode 100644 index 0000000000..af31a5e6c3 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/namelist.atmosphere @@ -0,0 +1,61 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2024-08-15_18:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 4 + config_dynamics_split_steps = 3 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_scalar_advection = true + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_mpas_cam_coef = 2.0 + config_rayleigh_damp_u = true + config_zd = 16000.0 + config_xnutr = 0.2 + config_number_cam_damping_levels = 8 +/ +&limited_area + config_apply_lbcs = true +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_gvf_update = false + config_sstdiurn_update = false + config_frac_seaice = true + config_deepsoiltemp_update = false + config_radtlw_interval = '00:15:00' + config_radtsw_interval = '00:15:00' + config_bucket_update = 'none' + config_physics_suite = 'hrrrv5' + config_tempo_aerosolaware = .true. + config_tempo_hailaware = .true. + num_soil_layers = 9 +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.diagnostics b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.diagnostics new file mode 100644 index 0000000000..048ec8b9d6 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.diagnostics @@ -0,0 +1,141 @@ +initial_time +xtime +Time +snowncv +rainncv +graupelncv +prec_acc_c +prec_acc_nc +snow_acc_nc +mslp +relhum_50hPa +relhum_100hPa +relhum_200hPa +relhum_250hPa +relhum_500hPa +relhum_700hPa +relhum_850hPa +relhum_925hPa +dewpoint_50hPa +dewpoint_100hPa +dewpoint_200hPa +dewpoint_250hPa +dewpoint_500hPa +dewpoint_700hPa +dewpoint_850hPa +dewpoint_925hPa +temperature_50hPa +temperature_100hPa +temperature_200hPa +temperature_250hPa +temperature_500hPa +temperature_700hPa +temperature_850hPa +temperature_925hPa +height_50hPa +height_100hPa +height_200hPa +height_250hPa +height_500hPa +height_700hPa +height_850hPa +height_925hPa +uzonal_50hPa +uzonal_100hPa +uzonal_200hPa +uzonal_250hPa +uzonal_500hPa +uzonal_700hPa +uzonal_850hPa +uzonal_925hPa +umeridional_50hPa +umeridional_100hPa +umeridional_200hPa +umeridional_250hPa +umeridional_500hPa +umeridional_700hPa +umeridional_850hPa +umeridional_925hPa +w_50hPa +w_100hPa +w_200hPa +w_250hPa +w_500hPa +w_700hPa +w_850hPa +w_925hPa +vorticity_50hPa +vorticity_100hPa +vorticity_200hPa +vorticity_250hPa +vorticity_500hPa +vorticity_700hPa +vorticity_850hPa +vorticity_925hPa +t_isobaric +t_iso_levels +z_isobaric +z_iso_levels +meanT_500_300 +olrtoa +rainc +rainnc +refl10cm +refl10cm_max +refl10cm_1km +refl10cm_1km_max +precipw +u10 +v10 +q2 +t2m +th2m +cape +cin +lcl +lfc +srh_0_1km +srh_0_3km +uzonal_surface +uzonal_1km +uzonal_6km +umeridional_surface +umeridional_1km +umeridional_6km +temperature_surface +dewpoint_surface +updraft_helicity_max +w_velocity_max +w_velocity_min +w_velocity_mean +wind_speed_level1_max +t_oml +t_oml_initial +t_oml_200m_initial +h_oml +h_oml_initial +hu_oml +hv_oml +updraft_helicity_max_01 +updraft_helicity_max_16 +updraft_helicity_max0_15 +updraft_helicity_max05_15 +updraft_helicity_max_02 +updraft_helicity_max_03 +updraft_helicity_min_01 +updraft_helicity_min_16 +updraft_helicity_min0_15 +updraft_helicity_min05_15 +updraft_helicity_min_02 +updraft_helicity_min_03 +wind02_max +wind02_integral_max +wind_speed_10m_max +wind_speed_10m_mean +u10m_mean +v10m_mean +swdnb +swupt +swddir +swddni +swddif diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.output b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.output new file mode 100644 index 0000000000..9c151a488d --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.output @@ -0,0 +1,127 @@ +scalars +latCell +lonCell +xCell +yCell +zCell +indexToCellID +latEdge +lonEdge +xEdge +yEdge +zEdge +indexToEdgeID +latVertex +lonVertex +xVertex +yVertex +zVertex +indexToVertexID +cellsOnEdge +nEdgesOnCell +nEdgesOnEdge +edgesOnCell +edgesOnEdge +weightsOnEdge +dvEdge +dcEdge +angleEdge +areaCell +areaTriangle +cellsOnCell +verticesOnCell +verticesOnEdge +edgesOnVertex +cellsOnVertex +kiteAreasOnVertex +meshDensity +zgrid +fzm +fzp +zz +initial_time +xtime +Time +u +w +pressure +surface_pressure +rho +theta +relhum +divergence +vorticity +ke +uReconstructZonal +uReconstructMeridional +ertel_pv +u_pv +v_pv +theta_pv +vort_pv +iLev_DT +depv_dt_lw +depv_dt_sw +depv_dt_bl +depv_dt_cu +depv_dt_mix +dtheta_dt_mp +depv_dt_mp +depv_dt_diab +depv_dt_fric +depv_dt_diab_pv +depv_dt_fric_pv +i_rainnc +rainnc +precipw +cuprec +i_rainc +rainc +kpbl +hpbl +hfx +qfx +cd +cda +ck +cka +lh +u10 +v10 +q2 +t2m +th2m +gsw +glw +acsnow +pin +ozmixm +mminlu +isice_lu +iswater_lu +xland +skintemp +snow +snowh +sst +vegfra +shdmin +shdmax +canwat +xice +sh2o +smois +tslb +soilt1 +rhosnf +snowfallac +acrunoff +grdflx +ivgtyp +isltyp +lai +sfc_albedo +cldfrac_bl +snowc +snownc +graupelnc diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.surface b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.surface new file mode 100644 index 0000000000..db54cab459 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/stream_list.atmosphere.surface @@ -0,0 +1,2 @@ +sst +xice diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/streams.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/streams.atmosphere new file mode 100644 index 0000000000..b076c1bc12 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/streams.atmosphere @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/namelist.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/namelist.atmosphere new file mode 100644 index 0000000000..d71850f0e6 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/namelist.atmosphere @@ -0,0 +1,61 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2024-02-02_18:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 4 + config_dynamics_split_steps = 3 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_scalar_advection = true + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_mpas_cam_coef = 2.0 + config_rayleigh_damp_u = true + config_zd = 16000.0 + config_xnutr = 0.2 + config_number_cam_damping_levels = 8 +/ +&limited_area + config_apply_lbcs = true +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_gvf_update = false + config_sstdiurn_update = false + config_frac_seaice = true + config_deepsoiltemp_update = false + config_radtlw_interval = '00:15:00' + config_radtsw_interval = '00:15:00' + config_bucket_update = 'none' + config_physics_suite = 'hrrrv5' + config_tempo_aerosolaware = .true. + config_tempo_hailaware = .true. + num_soil_layers = 9 +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.diagnostics b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.diagnostics new file mode 100644 index 0000000000..048ec8b9d6 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.diagnostics @@ -0,0 +1,141 @@ +initial_time +xtime +Time +snowncv +rainncv +graupelncv +prec_acc_c +prec_acc_nc +snow_acc_nc +mslp +relhum_50hPa +relhum_100hPa +relhum_200hPa +relhum_250hPa +relhum_500hPa +relhum_700hPa +relhum_850hPa +relhum_925hPa +dewpoint_50hPa +dewpoint_100hPa +dewpoint_200hPa +dewpoint_250hPa +dewpoint_500hPa +dewpoint_700hPa +dewpoint_850hPa +dewpoint_925hPa +temperature_50hPa +temperature_100hPa +temperature_200hPa +temperature_250hPa +temperature_500hPa +temperature_700hPa +temperature_850hPa +temperature_925hPa +height_50hPa +height_100hPa +height_200hPa +height_250hPa +height_500hPa +height_700hPa +height_850hPa +height_925hPa +uzonal_50hPa +uzonal_100hPa +uzonal_200hPa +uzonal_250hPa +uzonal_500hPa +uzonal_700hPa +uzonal_850hPa +uzonal_925hPa +umeridional_50hPa +umeridional_100hPa +umeridional_200hPa +umeridional_250hPa +umeridional_500hPa +umeridional_700hPa +umeridional_850hPa +umeridional_925hPa +w_50hPa +w_100hPa +w_200hPa +w_250hPa +w_500hPa +w_700hPa +w_850hPa +w_925hPa +vorticity_50hPa +vorticity_100hPa +vorticity_200hPa +vorticity_250hPa +vorticity_500hPa +vorticity_700hPa +vorticity_850hPa +vorticity_925hPa +t_isobaric +t_iso_levels +z_isobaric +z_iso_levels +meanT_500_300 +olrtoa +rainc +rainnc +refl10cm +refl10cm_max +refl10cm_1km +refl10cm_1km_max +precipw +u10 +v10 +q2 +t2m +th2m +cape +cin +lcl +lfc +srh_0_1km +srh_0_3km +uzonal_surface +uzonal_1km +uzonal_6km +umeridional_surface +umeridional_1km +umeridional_6km +temperature_surface +dewpoint_surface +updraft_helicity_max +w_velocity_max +w_velocity_min +w_velocity_mean +wind_speed_level1_max +t_oml +t_oml_initial +t_oml_200m_initial +h_oml +h_oml_initial +hu_oml +hv_oml +updraft_helicity_max_01 +updraft_helicity_max_16 +updraft_helicity_max0_15 +updraft_helicity_max05_15 +updraft_helicity_max_02 +updraft_helicity_max_03 +updraft_helicity_min_01 +updraft_helicity_min_16 +updraft_helicity_min0_15 +updraft_helicity_min05_15 +updraft_helicity_min_02 +updraft_helicity_min_03 +wind02_max +wind02_integral_max +wind_speed_10m_max +wind_speed_10m_mean +u10m_mean +v10m_mean +swdnb +swupt +swddir +swddni +swddif diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.output b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.output new file mode 100644 index 0000000000..9c151a488d --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.output @@ -0,0 +1,127 @@ +scalars +latCell +lonCell +xCell +yCell +zCell +indexToCellID +latEdge +lonEdge +xEdge +yEdge +zEdge +indexToEdgeID +latVertex +lonVertex +xVertex +yVertex +zVertex +indexToVertexID +cellsOnEdge +nEdgesOnCell +nEdgesOnEdge +edgesOnCell +edgesOnEdge +weightsOnEdge +dvEdge +dcEdge +angleEdge +areaCell +areaTriangle +cellsOnCell +verticesOnCell +verticesOnEdge +edgesOnVertex +cellsOnVertex +kiteAreasOnVertex +meshDensity +zgrid +fzm +fzp +zz +initial_time +xtime +Time +u +w +pressure +surface_pressure +rho +theta +relhum +divergence +vorticity +ke +uReconstructZonal +uReconstructMeridional +ertel_pv +u_pv +v_pv +theta_pv +vort_pv +iLev_DT +depv_dt_lw +depv_dt_sw +depv_dt_bl +depv_dt_cu +depv_dt_mix +dtheta_dt_mp +depv_dt_mp +depv_dt_diab +depv_dt_fric +depv_dt_diab_pv +depv_dt_fric_pv +i_rainnc +rainnc +precipw +cuprec +i_rainc +rainc +kpbl +hpbl +hfx +qfx +cd +cda +ck +cka +lh +u10 +v10 +q2 +t2m +th2m +gsw +glw +acsnow +pin +ozmixm +mminlu +isice_lu +iswater_lu +xland +skintemp +snow +snowh +sst +vegfra +shdmin +shdmax +canwat +xice +sh2o +smois +tslb +soilt1 +rhosnf +snowfallac +acrunoff +grdflx +ivgtyp +isltyp +lai +sfc_albedo +cldfrac_bl +snowc +snownc +graupelnc diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.surface b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.surface new file mode 100644 index 0000000000..db54cab459 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/stream_list.atmosphere.surface @@ -0,0 +1,2 @@ +sst +xice diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/streams.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/streams.atmosphere new file mode 100644 index 0000000000..b076c1bc12 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/streams.atmosphere @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/namelist.atmosphere.gsl b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/namelist.atmosphere.gsl new file mode 100644 index 0000000000..e7cc47d8f1 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/namelist.atmosphere.gsl @@ -0,0 +1,69 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true + config_lbc_w = "zero" +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'mesoscale_reference' + config_microp_re = false +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/namelist.atmosphere.ncar b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/namelist.atmosphere.ncar new file mode 100644 index 0000000000..6229bc51dd --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/namelist.atmosphere.ncar @@ -0,0 +1,68 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'mesoscale_reference' + config_microp_re = false +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.diagnostics b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.diagnostics new file mode 100644 index 0000000000..4e7979fb61 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.diagnostics @@ -0,0 +1,92 @@ +initial_time +xtime +olrtoa +rainc +rainnc +refl10cm_max +refl10cm_1km +refl10cm_1km_max +precipw +u10 +v10 +q2 +t2m +th2m +mslp +relhum_200hPa +relhum_250hPa +relhum_500hPa +relhum_700hPa +relhum_850hPa +relhum_925hPa +dewpoint_200hPa +dewpoint_250hPa +dewpoint_500hPa +dewpoint_700hPa +dewpoint_850hPa +dewpoint_925hPa +temperature_200hPa +temperature_250hPa +temperature_500hPa +temperature_700hPa +temperature_850hPa +temperature_925hPa +height_200hPa +height_250hPa +height_500hPa +height_700hPa +height_850hPa +height_925hPa +uzonal_200hPa +uzonal_250hPa +uzonal_500hPa +uzonal_700hPa +uzonal_850hPa +uzonal_925hPa +umeridional_200hPa +umeridional_250hPa +umeridional_500hPa +umeridional_700hPa +umeridional_850hPa +umeridional_925hPa +w_200hPa +w_250hPa +w_500hPa +w_700hPa +w_850hPa +w_925hPa +vorticity_200hPa +vorticity_250hPa +vorticity_500hPa +vorticity_700hPa +vorticity_850hPa +vorticity_925hPa +t_isobaric +t_iso_levels +z_isobaric +z_iso_levels +meanT_500_300 +cape +cin +lcl +lfc +srh_0_1km +srh_0_3km +uzonal_surface +uzonal_1km +uzonal_6km +umeridional_surface +umeridional_1km +umeridional_6km +temperature_surface +dewpoint_surface +updraft_helicity_max +w_velocity_max +wind_speed_level1_max +t_oml +t_oml_initial +t_oml_200m_initial +h_oml +h_oml_initial +hu_oml +hv_oml diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.output b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.output new file mode 100644 index 0000000000..24c30f010b --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.output @@ -0,0 +1,110 @@ +scalars +latCell +lonCell +xCell +yCell +zCell +indexToCellID +latEdge +lonEdge +xEdge +yEdge +zEdge +indexToEdgeID +latVertex +lonVertex +xVertex +yVertex +zVertex +indexToVertexID +cellsOnEdge +nEdgesOnCell +nEdgesOnEdge +edgesOnCell +edgesOnEdge +weightsOnEdge +dvEdge +dcEdge +angleEdge +areaCell +areaTriangle +cellsOnCell +verticesOnCell +verticesOnEdge +edgesOnVertex +cellsOnVertex +kiteAreasOnVertex +meshDensity +zgrid +fzm +fzp +zz +initial_time +xtime +u +w +pressure +surface_pressure +rho +theta +relhum +divergence +vorticity +ke +uReconstructZonal +uReconstructMeridional +ertel_pv +u_pv +v_pv +theta_pv +vort_pv +depv_dt_lw +depv_dt_sw +depv_dt_bl +depv_dt_cu +depv_dt_mix +dtheta_dt_mp +depv_dt_mp +depv_dt_diab +depv_dt_fric +depv_dt_diab_pv +depv_dt_fric_pv +iLev_DT +i_rainnc +rainnc +precipw +cuprec +i_rainc +rainc +kpbl +hpbl +hfx +qfx +cd +cda +ck +cka +lh +u10 +v10 +q2 +t2m +th2m +gsw +glw +acsnow +pin +ozmixm +mminlu +isice_lu +iswater_lu +xland +skintemp +snow +snowh +sst +vegfra +xice +sh2o +smois +tslb diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.surface b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.surface new file mode 100644 index 0000000000..db54cab459 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/stream_list.atmosphere.surface @@ -0,0 +1,2 @@ +sst +xice diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/streams.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/streams.atmosphere new file mode 100644 index 0000000000..c4a888ac66 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference.gfs.winter/streams.atmosphere @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.gsl b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.gsl new file mode 100644 index 0000000000..93702c56f7 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.gsl @@ -0,0 +1,70 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true + config_lbc_w = "zero" +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'mesoscale_reference' + config_microp_re = false + config_lsm_scheme = "sf_noahmp" +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.ncar b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.ncar new file mode 100644 index 0000000000..cab4d85552 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/namelist.atmosphere.ncar @@ -0,0 +1,69 @@ +&nhyd_model + config_time_integration_order = 2 + config_dt = 720.0 + config_start_time = '2023-03-10_15:00:00' + config_run_duration = '0_01:00:00' + config_split_dynamics_transport = true + config_number_of_sub_steps = 2 + config_dynamics_split_steps = 3 + config_h_mom_eddy_visc2 = 0.0 + config_h_mom_eddy_visc4 = 0.0 + config_v_mom_eddy_visc2 = 0.0 + config_h_theta_eddy_visc2 = 0.0 + config_h_theta_eddy_visc4 = 0.0 + config_v_theta_eddy_visc2 = 0.0 + config_horiz_mixing = '2d_smagorinsky' + config_visc4_2dsmag = 0.05 + config_w_adv_order = 3 + config_theta_adv_order = 3 + config_scalar_adv_order = 3 + config_u_vadv_order = 3 + config_w_vadv_order = 3 + config_theta_vadv_order = 3 + config_scalar_vadv_order = 3 + config_scalar_advection = true + config_positive_definite = false + config_monotonic = true + config_coef_3rd_order = 0.25 + config_epssm = 0.1 + config_smdiv = 0.1 +/ +&damping + config_zd = 22000.0 + config_xnutr = 0.2 +/ +&limited_area + config_apply_lbcs = true +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'graph.info.part.' +/ +&restart + config_do_restart = false +/ +&printout + config_print_global_minmax_vel = true + config_print_detailed_minmax_vel = false +/ +&IAU + config_IAU_option = 'off' + config_IAU_window_length_s = 21600. +/ +&physics + config_sst_update = false + config_sstdiurn_update = false + config_deepsoiltemp_update = false + config_radtlw_interval = '00:30:00' + config_radtsw_interval = '00:30:00' + config_bucket_update = 'none' + config_physics_suite = 'mesoscale_reference' + config_microp_re = false + config_lsm_scheme = "sf_noahmp" +/ +&soundings + config_sounding_interval = 'none' +/ diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.diagnostics b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.diagnostics new file mode 100644 index 0000000000..4e7979fb61 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.diagnostics @@ -0,0 +1,92 @@ +initial_time +xtime +olrtoa +rainc +rainnc +refl10cm_max +refl10cm_1km +refl10cm_1km_max +precipw +u10 +v10 +q2 +t2m +th2m +mslp +relhum_200hPa +relhum_250hPa +relhum_500hPa +relhum_700hPa +relhum_850hPa +relhum_925hPa +dewpoint_200hPa +dewpoint_250hPa +dewpoint_500hPa +dewpoint_700hPa +dewpoint_850hPa +dewpoint_925hPa +temperature_200hPa +temperature_250hPa +temperature_500hPa +temperature_700hPa +temperature_850hPa +temperature_925hPa +height_200hPa +height_250hPa +height_500hPa +height_700hPa +height_850hPa +height_925hPa +uzonal_200hPa +uzonal_250hPa +uzonal_500hPa +uzonal_700hPa +uzonal_850hPa +uzonal_925hPa +umeridional_200hPa +umeridional_250hPa +umeridional_500hPa +umeridional_700hPa +umeridional_850hPa +umeridional_925hPa +w_200hPa +w_250hPa +w_500hPa +w_700hPa +w_850hPa +w_925hPa +vorticity_200hPa +vorticity_250hPa +vorticity_500hPa +vorticity_700hPa +vorticity_850hPa +vorticity_925hPa +t_isobaric +t_iso_levels +z_isobaric +z_iso_levels +meanT_500_300 +cape +cin +lcl +lfc +srh_0_1km +srh_0_3km +uzonal_surface +uzonal_1km +uzonal_6km +umeridional_surface +umeridional_1km +umeridional_6km +temperature_surface +dewpoint_surface +updraft_helicity_max +w_velocity_max +wind_speed_level1_max +t_oml +t_oml_initial +t_oml_200m_initial +h_oml +h_oml_initial +hu_oml +hv_oml diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.output b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.output new file mode 100644 index 0000000000..24c30f010b --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.output @@ -0,0 +1,110 @@ +scalars +latCell +lonCell +xCell +yCell +zCell +indexToCellID +latEdge +lonEdge +xEdge +yEdge +zEdge +indexToEdgeID +latVertex +lonVertex +xVertex +yVertex +zVertex +indexToVertexID +cellsOnEdge +nEdgesOnCell +nEdgesOnEdge +edgesOnCell +edgesOnEdge +weightsOnEdge +dvEdge +dcEdge +angleEdge +areaCell +areaTriangle +cellsOnCell +verticesOnCell +verticesOnEdge +edgesOnVertex +cellsOnVertex +kiteAreasOnVertex +meshDensity +zgrid +fzm +fzp +zz +initial_time +xtime +u +w +pressure +surface_pressure +rho +theta +relhum +divergence +vorticity +ke +uReconstructZonal +uReconstructMeridional +ertel_pv +u_pv +v_pv +theta_pv +vort_pv +depv_dt_lw +depv_dt_sw +depv_dt_bl +depv_dt_cu +depv_dt_mix +dtheta_dt_mp +depv_dt_mp +depv_dt_diab +depv_dt_fric +depv_dt_diab_pv +depv_dt_fric_pv +iLev_DT +i_rainnc +rainnc +precipw +cuprec +i_rainc +rainc +kpbl +hpbl +hfx +qfx +cd +cda +ck +cka +lh +u10 +v10 +q2 +t2m +th2m +gsw +glw +acsnow +pin +ozmixm +mminlu +isice_lu +iswater_lu +xland +skintemp +snow +snowh +sst +vegfra +xice +sh2o +smois +tslb diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.surface b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.surface new file mode 100644 index 0000000000..db54cab459 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/stream_list.atmosphere.surface @@ -0,0 +1,2 @@ +sst +xice diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/streams.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/streams.atmosphere new file mode 100644 index 0000000000..c4a888ac66 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.mesoscale_reference_noahmp.gfs.winter/streams.atmosphere @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + From 6fb6ec31c0321b71d34c85937bae81b03623869d Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 18:24:29 +0000 Subject: [PATCH 42/78] Add script to dl data for MPAS --- .github/workflows/run_mpas.yml | 4 +- .../ufs-community/data/get_data.sh | 83 +++++++++++++++++++ 2 files changed, 85 insertions(+), 2 deletions(-) create mode 100755 testing_and_setup/ufs-community/data/get_data.sh diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index ce9f55b24a..4ec4c895e6 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -335,7 +335,7 @@ jobs: ln -sf ${mpas_run_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} ln -sf /home/runner/MPAS-Model-BL/atmosphere_model . ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc - cp ${mpas_rt_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . + cp ${mpas_rt_ROOT}/MPAS-Model/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. @@ -364,7 +364,7 @@ jobs: ln -sf ${mpas_run_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} ln -sf ${mpas_rt_ROOT}/MPAS-Model/atmosphere_model . ln -sf ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc - cp ${mpas_rt_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . + cp ${mpas_rt_ROOT}/MPAS-Model/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.gsl namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. diff --git a/testing_and_setup/ufs-community/data/get_data.sh b/testing_and_setup/ufs-community/data/get_data.sh new file mode 100755 index 0000000000..ba1bbd324f --- /dev/null +++ b/testing_and_setup/ufs-community/data/get_data.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +# Function to display help message +print_help() { + echo "get_data.sh: testing_and_setup/ufs-community/data/get_data.sh [-v,--verbose]" + echo " Script for downloading/extracting the Physics lookup tables and MPAS ICs." + echo "" + echo "Options:" + echo " -v, --verbose Turn on wget verbose output." + echo " --help Show this help message and exit." +} + +verbose="-q" +# Parse command-line arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + --help) + print_help + exit 0 + ;; + -v|--verbose) + verbose="-v" + ;; + *) + echo "Unknown option: $1" + print_help + exit 1 + ;; + esac + shift +done + +set -ex + +if [[ $(uname -s) == Darwin ]]; then + if [[ $(sw_vers -productVersion) < 12.3 ]]; then + MYDIR=$(cd "$(dirname "$(greadlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) + else + MYDIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) + fi +else + MYDIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) +fi +BASEDIR=$MYDIR/.. + +# Change to directory containing theinput data, download and extract archive +cd $MYDIR + +# Get TEMPO data +wget ${verbose} https://github.com/dustinswales/MPAS-Model/releases/download/MPAS-v8.3.1-2.14/tempo_data.tar +mkdir -p tables/tempo/ +mv tempo_data.tar tables/tempo/ +cd tables/tempo +tar -xvf tempo_data.tar +rm tempo_data.tar +cd ../../ + +# Get Thompson data +wget ${verbose} https://github.com/dustinswales/MPAS-Model/releases/download/MPAS-v8.3.1-2.14/thompson_data.tar +mkdir -p tables/thompson/ +mv thompson_data.tar tables/thompson/ +cd tables/thompson +tar -xvf thompson_data.tar +rm thompson_data.tar +cd ../../ + +# Get UGW data +wget ${verbose} https://github.com/dustinswales/MPAS-Model/releases/download/MPAS-v8.3.1-2.14/ugw_data.tar +mkdir -p tables/ugw/ +mv ugw_data.tar tables/ugw/ +cd tables/ugw +tar -xvf ugw_data.tar +rm ugw_data.tar +cd ../../ + +# Get MPAS case data +wget ${verbose} https://github.com/dustinswales/MPAS-Model/releases/download/MPAS-v8.3.1-2.14/mpas_data.tar +mkdir -p ics +mv mpas_data.tar ics/ +cd ics +tar -xvf mpas_data.tar +rm mpas_data.tar +cd ../ From 3a6b8878f4680bf30ac6668089269dab212d2314 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 18:33:23 +0000 Subject: [PATCH 43/78] Merge containerized CI into this branch --- .github/workflows/run_mpas.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 8afe48efae..d4a1bd788b 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -42,7 +42,7 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - f-compiler: [gfortran,ifx]#, nvfortran] + f-compiler: [gfortran]#,ifx]#, nvfortran] physics: [mesoscale_reference]#, convection_permitting, mesoscale_reference_noahmp] repo: [ufs-community]#, MPAS-Dev] branch: [gsl/develop]#, v8.3.0] From e82fedad94ec5e2bb876fc95f34d45c23b385f45 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 18:51:52 +0000 Subject: [PATCH 44/78] Update CI --- .github/workflows/run_mpas.yml | 51 ++++------------------------------ src/core_atmosphere/Makefile | 11 ++++++-- 2 files changed, 13 insertions(+), 49 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index d4a1bd788b..54cbcb2fee 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -57,9 +57,9 @@ jobs: - f-compiler: gfortran bld_target: gfortran image: dustinswales/ufs-community-mpas-ci:gnu - - f-compiler: ifx - image: dustinswales/ufs-community-mpas-ci:oneapi - bld_target: intel +# - f-compiler: ifx +# image: dustinswales/ufs-community-mpas-ci:oneapi +# bld_target: intel # - f-compiler: nvfortran # image: dustinswales/ccpp-scm-ci:nvhpc container: @@ -199,49 +199,8 @@ jobs: ########################################################################################## - name: Download MPAS data (grid info, IC and LBC files) run: | - cd ${runner_ROOT} && mkdir run_data && cd run_data - wget -q https://gsl.noaa.gov/${grid_dir}/${domain}.${res}.graph.info.part.${nproc} - wget -q -e robots=off -nH --cut-dirs N -nc -r -lX -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ - https://gsl.noaa.gov/thredds/catalog/${case_dir}/${case_base}/${nml}.${code_base}.${domain}.${res}.${ic_source}.${yyyy}${mm}${dd}${hh}/case_files/catalog.html - mv thredds/fileServer/${case_dir}/${case_base}/${nml}.${code_base}.${domain}.${res}.${ic_source}.${yyyy}${mm}${dd}${hh}/case_files/* . - rm -rf thredds - - - name: Download MPAS testing repository with runtime configurations. - run: | - cd ${runner_ROOT} - git clone --recursive --branch main https://github.com/barlage/mpas_testcase.git - - - name: Cache Thompson MP tables - id: cache-thompson-data - uses: actions/cache@v4 - with: - path: /__w/thompson - key: cache-thompson-data-key - - - name: Download Thompson MP tables - if: steps.cache-thompson-data.outputs.cache-hit != 'true' - run: | - cd ${runner_ROOT} && mkdir thompson && cd thompson - wget -q -e robots=off -nH --cut-dirs N -nc -r -lX -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ - https://gsl.noaa.gov/thredds/catalog/${mpdata_dir}/thompson/catalog.html - mv thredds/fileServer/${mpdata_dir}/thompson/* . - rm -rf thredds - - - name: Cache UGWD data - id: cache-ugw-data - uses: actions/cache@v4 - with: - path: /__w/ugw - key: cache-ugw-data-key - - - name: Download GWD data - if: steps.cache-ugw-data.outputs.cache-hit != 'true' - run: | - cd ${runner_ROOT} && mkdir ugw && cd ugw - wget -q -e robots=off -nH --cut-dirs N -nc -r -lX -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ - https://gsl.noaa.gov/thredds/catalog/${mpdata_dir}/ugw/catalog.html - mv thredds/fileServer/${mpdata_dir}/ugw/* . - rm -rf thredds + cd ${mpas_ROOT} + ./testing_and_setup/ufs-community/data/get_data.sh ########################################################################################## # Step 4a: Configure MPAS baseline runs diff --git a/src/core_atmosphere/Makefile b/src/core_atmosphere/Makefile index 3d8e35dacb..966027bc77 100644 --- a/src/core_atmosphere/Makefile +++ b/src/core_atmosphere/Makefile @@ -6,9 +6,14 @@ # # If MPAS_CAM_DYCORE is found in CPPFLAGS, PHYSICS will become undefined automatically # -#ifeq ($(findstring MPAS_CAM_DYCORE,$(CPPFLAGS)),) -# PHYSICS = -DDO_PHYSICS -#endif +ifeq ($(findstring MPAS_CAM_DYCORE,$(CPPFLAGS)),) + PHYSICS = -DDO_PHYSICS +endif + +ifdef PHYSICS + PHYSCORE = physcore + PHYS_OBJS = libphys/*.o +endif OBJS = mpas_atm_core.o \ mpas_atm_core_interface.o \ From 810e3f2c7dd1e6cc927d5764ef43a49fc573e334 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 19:09:17 +0000 Subject: [PATCH 45/78] Update CI --- .github/workflows/run_mpas.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 54cbcb2fee..643c1b730b 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -76,6 +76,7 @@ jobs: MPAS_ROOT: /__w/MPAS-Model/MPAS-Model mpas_bl_ROOT: /__w/MPAS-Model-BL PNETCDF: /opt/pnetcdf + mpas_ics: testing_and_setup/ufs-community/data/ics/mpasdev.gfs.winter grid_dir: thredds/catalog/retro/mpas_ci/mpas_test_data/grid case_dir: retro/mpas_ci/mpas_test_data/run_case_input/create_case_output mpdata_dir: retro/mpas_ci/mpas_test_data/run_case_input/tables @@ -212,10 +213,10 @@ jobs: ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc - ln -sf ${runner_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} ln -sf /__w/MPAS-Model-BL/atmosphere_model . - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc + ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc + ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere @@ -223,13 +224,13 @@ jobs: if: env.domain == 'conus' run: | cd ${runner_ROOT}/run_bl - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc + ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc - name: Link Thompson MP data tables to run directory if: contains(matrix.physics, 'convection_permitting') run: | cd ${runner_ROOT}/run_bl - cp ${runner_ROOT}/thompson/* . + cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . ########################################################################################## # Step 4b: Configure MPAS feature runs @@ -242,10 +243,10 @@ jobs: ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc - ln -sf ${runner_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} ln -sf ${MPAS_ROOT}/atmosphere_model . - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc + ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc + ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.gsl namelist.atmosphere @@ -253,13 +254,13 @@ jobs: if: env.domain == 'conus' run: | cd ${runner_ROOT}/run_rt - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc + ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc - name: Link Thompson MP data tables to run directory if: contains(matrix.physics, 'convection_permitting') run: | cd ${runner_ROOT}/run_rt - cp ${runner_ROOT}/thompson/* . + cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . ########################################################################################## # Step 5: Run MPAS From 8b544ff1eff30530a9a25ca939e6de77071a1371 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 19:14:42 +0000 Subject: [PATCH 46/78] Update CI --- .github/workflows/run_mpas.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 643c1b730b..a2d6d4f836 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -135,20 +135,8 @@ jobs: echo "nml_suffix=gsl" >> $GITHUB_ENV echo "repo_name=ufscommunity" >> $GITHUB_ENV - - name: Set test variables. - id: set_vars - run: | - echo "init_file=mpas.${code_base}.${nml}.${domain}.${res}.${ic_source}.init.${yyyy}'-'${mm}'-'${dd}'_'${hh}'.00.00'.nc" >> $GITHUB_OUTPUT - echo "lbc_file=mpas.${code_base}.${nml}.${domain}.${res}.${ic_source}.lbc.${yyyy}'-'${mm}'-'${dd}'_'${hh}'.00.00'.nc" >> $GITHUB_OUTPUT - echo "sst_file=mpas.${code_base}.${nml}.${domain}.${res}.${ic_source}.sfc_update.${yyyy}'-'${mm}'-'${dd}'_'${hh}'.00.00'.nc" >> $GITHUB_OUTPUT - echo "ugwp_file=mpas.${code_base}.${nml}.${domain}.${res}.ugwp_oro_data.nc" >> $GITHUB_OUTPUT - - name: Display configuration run: | - echo ${{steps.set_vars.outputs.init_file}} - echo ${{steps.set_vars.outputs.lbc_file}} - echo ${{steps.set_vars.outputs.sst_file}} - echo ${{steps.set_vars.outputs.ugwp_file}} echo ${nml} echo ${nml_version} echo ${code_base} From 2c252c4a9706cbda0629885eda45c5f1a8909154 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 20:09:57 +0000 Subject: [PATCH 47/78] Update CI --- .github/workflows/run_mpas.yml | 18 ++++++++++++++++-- .../ufs-community/data/get_data.sh | 5 +++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index a2d6d4f836..9e91703f15 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -146,16 +146,30 @@ jobs: # Step 2: Clone MPAS and build. ########################################################################################## + - name: Cache MPAS build (DEBUG; baselines) + id: cache-mpas-bl-debug + uses: actions/cache@v4 + with: + path: /__w/tempo + key: cache-mpas-bl-debug-key + - name: Checkout and build MPAS standalone for baseline generation (Debug) - if: contains(matrix.build-type, 'Debug') + if: contains(matrix.build-type, 'Debug') && steps.cache-mpas-bl-debug.outputs.cache-hit != 'true' run: | cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true + - name: Cache MPAS build (RELEASEbaselines) + id: cache-mpas-bl-release + uses: actions/cache@v4 + with: + path: /__w/tempo + key: cache-mpas-bl-release-debug-key + - name: Checkout and build MPAS standalone for baseline generation (Release) - if: contains(matrix.build-type, 'Release') + if: contains(matrix.build-type, 'Release') && steps.cache-mpas-bl-release.outputs.cache-hit != 'true' run: | cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL diff --git a/testing_and_setup/ufs-community/data/get_data.sh b/testing_and_setup/ufs-community/data/get_data.sh index ba1bbd324f..6266cc6a2f 100755 --- a/testing_and_setup/ufs-community/data/get_data.sh +++ b/testing_and_setup/ufs-community/data/get_data.sh @@ -41,10 +41,11 @@ if [[ $(uname -s) == Darwin ]]; then else MYDIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) fi -BASEDIR=$MYDIR/.. +BASEDIR=$MYDIR/../../.. + # Change to directory containing theinput data, download and extract archive -cd $MYDIR +cd $BASEDIR/testing_and_setup/ufs-community/data/ # Get TEMPO data wget ${verbose} https://github.com/dustinswales/MPAS-Model/releases/download/MPAS-v8.3.1-2.14/tempo_data.tar From 24ba25c081ed5f6cfaec33bce3f2e082d1effe60 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 20:17:11 +0000 Subject: [PATCH 48/78] Update CI --- .github/workflows/run_mpas.yml | 154 +++++---------------------------- 1 file changed, 23 insertions(+), 131 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 9e91703f15..4716769675 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -143,14 +143,14 @@ jobs: echo ${case_base} ########################################################################################## - # Step 2: Clone MPAS and build. + # Step 2a: Clone MPAS and build. (baselines) ########################################################################################## - name: Cache MPAS build (DEBUG; baselines) id: cache-mpas-bl-debug uses: actions/cache@v4 with: - path: /__w/tempo + path: ${mpas_bl_ROOT} key: cache-mpas-bl-debug-key - name: Checkout and build MPAS standalone for baseline generation (Debug) @@ -161,11 +161,11 @@ jobs: cd ${mpas_bl_ROOT} make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - - name: Cache MPAS build (RELEASEbaselines) + - name: Cache MPAS build (RELEASE; baselines) id: cache-mpas-bl-release uses: actions/cache@v4 with: - path: /__w/tempo + path: ${mpas_bl_ROOT} key: cache-mpas-bl-release-debug-key - name: Checkout and build MPAS standalone for baseline generation (Release) @@ -176,6 +176,9 @@ jobs: cd ${mpas_bl_ROOT} make ${{matrix.bld_target}} CORE=atmosphere + ########################################################################################## + # Step 2b: Clone MPAS and build (feature) + ########################################################################################## - name: Checkout MPAS codebase for testing. uses: actions/checkout@v3 @@ -185,140 +188,29 @@ jobs: cd ${MPAS_ROOT} git submodule update --init --recursive + - name: Cache MPAS build (DEBUG; feature) + id: cache-mpas-rt-debug + uses: actions/cache@v4 + with: + path: ${MPAS_ROOT} + key: cache-mpas-rt-debug-key + - name: Build MPAS standalone for testing (Debug) - if: contains(matrix.build-type, 'Debug') + if: contains(matrix.build-type, 'Debug') && steps.cache-mpas-rt-debug.outputs.cache-hit != 'true' run: | cd ${MPAS_ROOT} make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true + - name: Cache MPAS build (RELEASE; feature) + id: cache-mpas-rt-release + uses: actions/cache@v4 + with: + path: ${MPAS_ROOT} + key: cache-mpas-rt-release-key + - name: Build MPAS standalone for testing (Release) - if: contains(matrix.build-type, 'Release') + if: contains(matrix.build-type, 'Release') && steps.cache-mpas-rt-release.outputs.cache-hit != 'true' run: | cd ${MPAS_ROOT} make ${{matrix.bld_target}} CORE=atmosphere - ########################################################################################## - # Step 3: Fetch any data/files needed for MPAS runs. - ########################################################################################## - - name: Download MPAS data (grid info, IC and LBC files) - run: | - cd ${mpas_ROOT} - ./testing_and_setup/ufs-community/data/get_data.sh - - ########################################################################################## - # Step 4a: Configure MPAS baseline runs - ########################################################################################## - - name: Create and populate run directory (baselines) - run: | - cd ${mpas_run_ROOT} && mkdir run_bl && cd run_bl - ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . - ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . - ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . - ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf /__w/MPAS-Model-BL/atmosphere_model . - ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc - ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc - ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} - cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . - ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere - - - name: Link lateral boundary condition file for regional MPAS. - if: env.domain == 'conus' - run: | - cd ${runner_ROOT}/run_bl - ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc - - - name: Link Thompson MP data tables to run directory - if: contains(matrix.physics, 'convection_permitting') - run: | - cd ${runner_ROOT}/run_bl - cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . - - ########################################################################################## - # Step 4b: Configure MPAS feature runs - ########################################################################################## - - name: Create and populate run directory (feature test) - run: | - cd ${runner_ROOT} && mkdir run_rt && cd run_rt - cp ${runner_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${ic_source}.${yyyy}${mm}${dd}${hh}/${{matrix.physics}}/* . - ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . - ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . - ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . - ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${MPAS_ROOT}/atmosphere_model . - ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc - ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc - ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} - cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . - ln -sf namelist.atmosphere.gsl namelist.atmosphere - - - name: Link lateral boundary condition file for regional MPAS. - if: env.domain == 'conus' - run: | - cd ${runner_ROOT}/run_rt - ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc - - - name: Link Thompson MP data tables to run directory - if: contains(matrix.physics, 'convection_permitting') - run: | - cd ${runner_ROOT}/run_rt - cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . - - ########################################################################################## - # Step 5: Run MPAS - ########################################################################################## - - name: Run MPAS (baselines) - run: | - cd ${runner_ROOT}/run_bl - pwd && ls -l - mpiexec --allow-run-as-root -np 1 ./atmosphere_model - pwd && ls -l - - - name: Run MPAS (feature branch) - run: | - cd ${runner_ROOT}/run_rt - pwd && ls -l - mpiexec --allow-run-as-root -np 1 ./atmosphere_model - pwd && ls -l - - ########################################################################################## - # Step 6: Compare feature branch to baseline branch. - ########################################################################################## - - name: Setup Miniconda - uses: conda-incubator/setup-miniconda@v3.2.0 - with: - python-version: ${{env.py-version}} - auto-update-conda: true - auto-activate-base: false - environment-file: testing_and_setup/ufs-community/environment.yml - activate-environment: mpas-ci-env - - - name: Run comparison script - id: cmp - run: | - cd ${MPAS_ROOT}/testing_and_setup/ufs-community - ./cmp_rt2bl.py --dir_rt ${runner_ROOT}/run_rt --dir_bl ${runner_ROOT}/run_bl - - ########################################################################################## - # Step 7: Save MPAS output and log files as GitHub Artifact. - ########################################################################################## - - name: Create GitHub artifact - run: | - cd ${runner_ROOT} - mkdir artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} - cd artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} - mkdir data_bl && cd data_bl - cp ${runner_ROOT}/run_bl/log.atmosphere.*.out log.atmosphere.BL.out - cp ${runner_ROOT}/run_bl/history.*.nc . - cp ${runner_ROOT}/run_bl/diag.*.nc . - cd .. - mkdir data_rt && cd data_rt - cp ${runner_ROOT}/run_rt/log.atmosphere.*.out log.atmosphere.RT.out - cp ${runner_ROOT}/run_rt/history.*.nc . - cp ${runner_ROOT}/run_rt/diag.*.nc . - - - name: Upload log files as GitHub Artifact - uses: actions/upload-artifact@v4 - with: - name: mpas-baselines-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} - path: /__w/artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} From 71dc29cf1e2c13862857bdcfc0c842ef1b22d90d Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 20:28:31 +0000 Subject: [PATCH 49/78] Update CI --- .github/workflows/run_mpas.yml | 140 +++++++++++++++++++++++++++++---- 1 file changed, 124 insertions(+), 16 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 4716769675..26c07b0156 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -77,21 +77,7 @@ jobs: mpas_bl_ROOT: /__w/MPAS-Model-BL PNETCDF: /opt/pnetcdf mpas_ics: testing_and_setup/ufs-community/data/ics/mpasdev.gfs.winter - grid_dir: thredds/catalog/retro/mpas_ci/mpas_test_data/grid - case_dir: retro/mpas_ci/mpas_test_data/run_case_input/create_case_output - mpdata_dir: retro/mpas_ci/mpas_test_data/run_case_input/tables ic_source: gfs - domain: conus - res: 120km - nproc: 2 - yyyy: "2023" - mm: "03" - dd: "10" - hh: "15" - nml: ncar - case_base: ncar-v8.3.0-intelmpi - code_base: ncar - nml_version: ncar # Workflow steps steps: @@ -126,13 +112,13 @@ jobs: - name: Configuration for MPAS-Dev (baseline) tests. if: contains(matrix.repo, 'MPAS-Dev') run: | - echo "nml_suffix=ncar" >> $GITHUB_ENV + echo "nml_suffix=ncar" >> $GITHUB_ENV echo "repo_name=mpasdev" >> $GITHUB_ENV - name: Configuration for ufs-community (baseline) tests. if: contains(matrix.repo, 'ufs-community') run: | - echo "nml_suffix=gsl" >> $GITHUB_ENV + echo "nml_suffix=gsl" >> $GITHUB_ENV echo "repo_name=ufscommunity" >> $GITHUB_ENV - name: Display configuration @@ -214,3 +200,125 @@ jobs: cd ${MPAS_ROOT} make ${{matrix.bld_target}} CORE=atmosphere + ########################################################################################## + # Step 3: Fetch any data/files needed for MPAS runs. + ########################################################################################## + - name: Download MPAS data (grid info, IC and LBC files) + run: | + cd ${mpas_ROOT} + ./testing_and_setup/ufs-community/data/get_data.sh + + ########################################################################################## + # Step 4a: Configure MPAS baseline runs + ########################################################################################## + - name: Create and populate run directory (baselines) + run: | + cd ${mpas_run_ROOT} && mkdir run_bl && cd run_bl + ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . + ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . + ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . + ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . + ln -sf /__w/MPAS-Model-BL/atmosphere_model . + ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc + ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc + ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} + cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . + ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere + + - name: Link lateral boundary condition file for regional MPAS. + run: | + cd ${runner_ROOT}/run_bl + ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc + + - name: Link Thompson MP data tables to run directory + if: contains(matrix.physics, 'convection_permitting') + run: | + cd ${runner_ROOT}/run_bl + cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . + + ########################################################################################## + # Step 4b: Configure MPAS feature runs + ########################################################################################## + - name: Create and populate run directory (feature test) + run: | + cd ${runner_ROOT} && mkdir run_rt && cd run_rt + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . + ln -sf ${MPAS_ROOT}/atmosphere_model . + ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc + ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc + ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} + cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . + ln -sf namelist.atmosphere.gsl namelist.atmosphere + + - name: Link lateral boundary condition file for regional MPAS. + run: | + cd ${runner_ROOT}/run_rt + ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc + + - name: Link Thompson MP data tables to run directory + if: contains(matrix.physics, 'convection_permitting') + run: | + cd ${runner_ROOT}/run_rt + cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . + + ########################################################################################## + # Step 5: Run MPAS + ########################################################################################## + - name: Run MPAS (baselines) + run: | + cd ${runner_ROOT}/run_bl + pwd && ls -l + mpiexec --allow-run-as-root -np 1 ./atmosphere_model + pwd && ls -l + + - name: Run MPAS (feature branch) + run: | + cd ${runner_ROOT}/run_rt + pwd && ls -l + mpiexec --allow-run-as-root -np 1 ./atmosphere_model + pwd && ls -l + + ########################################################################################## + # Step 6: Compare feature branch to baseline branch. + ########################################################################################## + - name: Setup Miniconda + uses: conda-incubator/setup-miniconda@v3.2.0 + with: + python-version: ${{env.py-version}} + auto-update-conda: true + auto-activate-base: false + environment-file: testing_and_setup/ufs-community/environment.yml + activate-environment: mpas-ci-env + + - name: Run comparison script + id: cmp + run: | + cd ${MPAS_ROOT}/testing_and_setup/ufs-community + ./cmp_rt2bl.py --dir_rt ${runner_ROOT}/run_rt --dir_bl ${runner_ROOT}/run_bl + + ########################################################################################## + # Step 7: Save MPAS output and log files as GitHub Artifact. + ########################################################################################## + - name: Create GitHub artifact + run: | + cd ${runner_ROOT} + mkdir artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + cd artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + mkdir data_bl && cd data_bl + cp ${runner_ROOT}/run_bl/log.atmosphere.*.out log.atmosphere.BL.out + cp ${runner_ROOT}/run_bl/history.*.nc . + cp ${runner_ROOT}/run_bl/diag.*.nc . + cd .. + mkdir data_rt && cd data_rt + cp ${runner_ROOT}/run_rt/log.atmosphere.*.out log.atmosphere.RT.out + cp ${runner_ROOT}/run_rt/history.*.nc . + cp ${runner_ROOT}/run_rt/diag.*.nc . + + - name: Upload log files as GitHub Artifact + uses: actions/upload-artifact@v4 + with: + name: mpas-baselines-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + path: /__w/artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} From 36a7605953ca6c28f96b65876241645041d594c0 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 20:32:07 +0000 Subject: [PATCH 50/78] Update CI --- .github/workflows/bld_mpas_images.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index 632a264b92..b8a7b2d7a9 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -2,7 +2,7 @@ name: MPAS-A Base Images Build run-name: CI Image Build for MPAS-A on: - push: +# push: pull_request: workflow_dispatch: # push: From 4c1b8ab68c20722911437f237baffc30079ca970 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 20:32:58 +0000 Subject: [PATCH 51/78] Update CI --- .github/workflows/run_mpas.yml | 123 --------------------------------- 1 file changed, 123 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 26c07b0156..dadfe18531 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -199,126 +199,3 @@ jobs: run: | cd ${MPAS_ROOT} make ${{matrix.bld_target}} CORE=atmosphere - - ########################################################################################## - # Step 3: Fetch any data/files needed for MPAS runs. - ########################################################################################## - - name: Download MPAS data (grid info, IC and LBC files) - run: | - cd ${mpas_ROOT} - ./testing_and_setup/ufs-community/data/get_data.sh - - ########################################################################################## - # Step 4a: Configure MPAS baseline runs - ########################################################################################## - - name: Create and populate run directory (baselines) - run: | - cd ${mpas_run_ROOT} && mkdir run_bl && cd run_bl - ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . - ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . - ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . - ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf /__w/MPAS-Model-BL/atmosphere_model . - ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc - ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc - ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} - cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . - ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere - - - name: Link lateral boundary condition file for regional MPAS. - run: | - cd ${runner_ROOT}/run_bl - ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc - - - name: Link Thompson MP data tables to run directory - if: contains(matrix.physics, 'convection_permitting') - run: | - cd ${runner_ROOT}/run_bl - cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . - - ########################################################################################## - # Step 4b: Configure MPAS feature runs - ########################################################################################## - - name: Create and populate run directory (feature test) - run: | - cd ${runner_ROOT} && mkdir run_rt && cd run_rt - ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . - ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . - ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . - ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${MPAS_ROOT}/atmosphere_model . - ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc - ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc - ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} - cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . - ln -sf namelist.atmosphere.gsl namelist.atmosphere - - - name: Link lateral boundary condition file for regional MPAS. - run: | - cd ${runner_ROOT}/run_rt - ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc - - - name: Link Thompson MP data tables to run directory - if: contains(matrix.physics, 'convection_permitting') - run: | - cd ${runner_ROOT}/run_rt - cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . - - ########################################################################################## - # Step 5: Run MPAS - ########################################################################################## - - name: Run MPAS (baselines) - run: | - cd ${runner_ROOT}/run_bl - pwd && ls -l - mpiexec --allow-run-as-root -np 1 ./atmosphere_model - pwd && ls -l - - - name: Run MPAS (feature branch) - run: | - cd ${runner_ROOT}/run_rt - pwd && ls -l - mpiexec --allow-run-as-root -np 1 ./atmosphere_model - pwd && ls -l - - ########################################################################################## - # Step 6: Compare feature branch to baseline branch. - ########################################################################################## - - name: Setup Miniconda - uses: conda-incubator/setup-miniconda@v3.2.0 - with: - python-version: ${{env.py-version}} - auto-update-conda: true - auto-activate-base: false - environment-file: testing_and_setup/ufs-community/environment.yml - activate-environment: mpas-ci-env - - - name: Run comparison script - id: cmp - run: | - cd ${MPAS_ROOT}/testing_and_setup/ufs-community - ./cmp_rt2bl.py --dir_rt ${runner_ROOT}/run_rt --dir_bl ${runner_ROOT}/run_bl - - ########################################################################################## - # Step 7: Save MPAS output and log files as GitHub Artifact. - ########################################################################################## - - name: Create GitHub artifact - run: | - cd ${runner_ROOT} - mkdir artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} - cd artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} - mkdir data_bl && cd data_bl - cp ${runner_ROOT}/run_bl/log.atmosphere.*.out log.atmosphere.BL.out - cp ${runner_ROOT}/run_bl/history.*.nc . - cp ${runner_ROOT}/run_bl/diag.*.nc . - cd .. - mkdir data_rt && cd data_rt - cp ${runner_ROOT}/run_rt/log.atmosphere.*.out log.atmosphere.RT.out - cp ${runner_ROOT}/run_rt/history.*.nc . - cp ${runner_ROOT}/run_rt/diag.*.nc . - - - name: Upload log files as GitHub Artifact - uses: actions/upload-artifact@v4 - with: - name: mpas-baselines-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} - path: /__w/artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} From 29370727f325d0498bc69b5d1c9500dbb4b34c7b Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 20:48:13 +0000 Subject: [PATCH 52/78] Update CI --- .github/workflows/run_mpas.yml | 168 +++++++++++++++++++++++++++------ 1 file changed, 141 insertions(+), 27 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index dadfe18531..3554b58414 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -9,14 +9,12 @@ on: [push, pull_request, workflow_dispatch] # # - Clone and build MPAS for baseline generation. # - Clone and build MPAS for feature branch testing (against baselines). -# - Clone ufs-community MPAS testing repository. -# - Fetch data from THREDDS server. -# - Donwload any other data (e.g. MP tables, etc). +# - Download any data (MP tables, MPAS ICs/LBCs/etc...). # - Create/populate MPAS run directories. # - Run MPAS using baseline codebase/configuration. # - Run MPAS using feature branch. # - Compare results. -# - Save output files to GitHub artifact (for comparision w/ inline/standaloen results) +# - Save output files to GitHub artifact (for comparision w/ inline/standalone results) # # Comments: # - The test build/run configurations matrix is described below. @@ -46,7 +44,7 @@ jobs: physics: [mesoscale_reference]#, convection_permitting, mesoscale_reference_noahmp] repo: [ufs-community]#, MPAS-Dev] branch: [gsl/develop]#, v8.3.0] - build-type: [Release]#, Debug] + build-type: [Debug]#, Release] exclude: - repo: MPAS-Dev branch: gsl/develop @@ -71,13 +69,13 @@ jobs: # Environmental variables env: - py-version: 3.11 - runner_ROOT: /__w/ - MPAS_ROOT: /__w/MPAS-Model/MPAS-Model - mpas_bl_ROOT: /__w/MPAS-Model-BL - PNETCDF: /opt/pnetcdf - mpas_ics: testing_and_setup/ufs-community/data/ics/mpasdev.gfs.winter - ic_source: gfs + py-version: 3.11 + runner_ROOT: /__w/ + MPAS_ROOT: /__w/MPAS-Model/MPAS-Model + mpas_bl_ROOT: /__w/MPAS-Model-BL + PNETCDF: /opt/pnetcdf + mpas_ics: testing_and_setup/ufs-community/data/ics/mpasdev.gfs.winter + ic_source: gfs # Workflow steps steps: @@ -121,13 +119,6 @@ jobs: echo "nml_suffix=gsl" >> $GITHUB_ENV echo "repo_name=ufscommunity" >> $GITHUB_ENV - - name: Display configuration - run: | - echo ${nml} - echo ${nml_version} - echo ${code_base} - echo ${case_base} - ########################################################################################## # Step 2a: Clone MPAS and build. (baselines) ########################################################################################## @@ -136,7 +127,7 @@ jobs: id: cache-mpas-bl-debug uses: actions/cache@v4 with: - path: ${mpas_bl_ROOT} + path: /__w/MPAS-Model-BL key: cache-mpas-bl-debug-key - name: Checkout and build MPAS standalone for baseline generation (Debug) @@ -145,13 +136,13 @@ jobs: cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} - make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true +# make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - name: Cache MPAS build (RELEASE; baselines) id: cache-mpas-bl-release uses: actions/cache@v4 with: - path: ${mpas_bl_ROOT} + path: /__w/MPAS-Model-BL key: cache-mpas-bl-release-debug-key - name: Checkout and build MPAS standalone for baseline generation (Release) @@ -160,7 +151,7 @@ jobs: cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} - make ${{matrix.bld_target}} CORE=atmosphere +# make ${{matrix.bld_target}} CORE=atmosphere ########################################################################################## # Step 2b: Clone MPAS and build (feature) @@ -178,24 +169,147 @@ jobs: id: cache-mpas-rt-debug uses: actions/cache@v4 with: - path: ${MPAS_ROOT} + path: /__w/MPAS-Model/MPAS-Model key: cache-mpas-rt-debug-key - name: Build MPAS standalone for testing (Debug) if: contains(matrix.build-type, 'Debug') && steps.cache-mpas-rt-debug.outputs.cache-hit != 'true' run: | cd ${MPAS_ROOT} - make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true +# make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - name: Cache MPAS build (RELEASE; feature) id: cache-mpas-rt-release uses: actions/cache@v4 with: - path: ${MPAS_ROOT} + path: /__w/MPAS-Model/MPAS-Model key: cache-mpas-rt-release-key - name: Build MPAS standalone for testing (Release) if: contains(matrix.build-type, 'Release') && steps.cache-mpas-rt-release.outputs.cache-hit != 'true' run: | cd ${MPAS_ROOT} - make ${{matrix.bld_target}} CORE=atmosphere +# make ${{matrix.bld_target}} CORE=atmosphere + + ########################################################################################## + # Step 3: Fetch any data/files needed for MPAS runs. + ########################################################################################## + - name: Download MPAS data (grid info, IC and LBC files) + run: | + cd ${mpas_ROOT} + ./testing_and_setup/ufs-community/data/get_data.sh + + ########################################################################################## + # Step 4a: Configure MPAS baseline runs + ########################################################################################## + - name: Create and populate run directory (baselines) + run: | + cd ${mpas_run_ROOT} && mkdir run_bl && cd run_bl + ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . + ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . + ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . + ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . + ln -sf ${mpas_bl_ROOT}/atmosphere_model . + ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc + ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc + ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} + cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . + ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere + + - name: Link lateral boundary condition file for regional MPAS. + run: | + cd ${runner_ROOT}/run_bl + ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc + + - name: Link Thompson MP data tables to run directory + if: contains(matrix.physics, 'convection_permitting') + run: | + cd ${runner_ROOT}/run_bl + cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . + + ########################################################################################## + # Step 4b: Configure MPAS feature runs + ########################################################################################## + - name: Create and populate run directory (feature test) + run: | + cd ${runner_ROOT} && mkdir run_rt && cd run_rt + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . + ln -sf ${MPAS_ROOT}/atmosphere_model . + ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc + ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc + ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} + cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . + ln -sf namelist.atmosphere.gsl namelist.atmosphere + + - name: Link lateral boundary condition file for regional MPAS. + run: | + cd ${runner_ROOT}/run_rt + ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc + + - name: Link Thompson MP data tables to run directory + if: contains(matrix.physics, 'convection_permitting') + run: | + cd ${runner_ROOT}/run_rt + cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . + + ########################################################################################## + # Step 5: Run MPAS + ########################################################################################## + - name: Run MPAS (baselines) + run: | + cd ${runner_ROOT}/run_bl + pwd && ls -l + mpiexec --allow-run-as-root -np 1 ./atmosphere_model + pwd && ls -l + + - name: Run MPAS (feature branch) + run: | + cd ${runner_ROOT}/run_rt + pwd && ls -l + mpiexec --allow-run-as-root -np 1 ./atmosphere_model + pwd && ls -l + + ########################################################################################## + # Step 6: Compare feature branch to baseline branch. + ########################################################################################## + - name: Setup Miniconda + uses: conda-incubator/setup-miniconda@v3.2.0 + with: + python-version: ${{env.py-version}} + auto-update-conda: true + auto-activate-base: false + environment-file: testing_and_setup/ufs-community/environment.yml + activate-environment: mpas-ci-env + + - name: Run comparison script + id: cmp + run: | + cd ${MPAS_ROOT}/testing_and_setup/ufs-community + ./cmp_rt2bl.py --dir_rt ${runner_ROOT}/run_rt --dir_bl ${runner_ROOT}/run_bl + + ########################################################################################## + # Step 7: Save MPAS output and log files as GitHub Artifact. + ########################################################################################## + - name: Create GitHub artifact + run: | + cd ${runner_ROOT} + mkdir artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + cd artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + mkdir data_bl && cd data_bl + cp ${runner_ROOT}/run_bl/log.atmosphere.*.out log.atmosphere.BL.out + cp ${runner_ROOT}/run_bl/history.*.nc . + cp ${runner_ROOT}/run_bl/diag.*.nc . + cd .. + mkdir data_rt && cd data_rt + cp ${runner_ROOT}/run_rt/log.atmosphere.*.out log.atmosphere.RT.out + cp ${runner_ROOT}/run_rt/history.*.nc . + cp ${runner_ROOT}/run_rt/diag.*.nc . + + - name: Upload log files as GitHub Artifact + uses: actions/upload-artifact@v4 + with: + name: mpas-baselines-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} + path: /__w/artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.repo}}-${{matrix.physics}} From c2b4e7a5c5c5c59f20e6e682d09970608f52be9c Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 20:52:00 +0000 Subject: [PATCH 53/78] Update CI --- .github/workflows/run_mpas.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 3554b58414..2a96376709 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -196,7 +196,7 @@ jobs: ########################################################################################## - name: Download MPAS data (grid info, IC and LBC files) run: | - cd ${mpas_ROOT} + cd ${MPAS_ROOT} ./testing_and_setup/ufs-community/data/get_data.sh ########################################################################################## From eac0aa4a1bf9dbaa91a1492f509daa37ece158c9 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 20:55:45 +0000 Subject: [PATCH 54/78] Update CI --- .github/workflows/run_mpas.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 2a96376709..51ae9fa9e2 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -213,7 +213,7 @@ jobs: ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} - cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. @@ -225,7 +225,7 @@ jobs: if: contains(matrix.physics, 'convection_permitting') run: | cd ${runner_ROOT}/run_bl - cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . ########################################################################################## # Step 4b: Configure MPAS feature runs @@ -241,7 +241,7 @@ jobs: ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} - cp ${mpas_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.gsl namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. @@ -253,7 +253,7 @@ jobs: if: contains(matrix.physics, 'convection_permitting') run: | cd ${runner_ROOT}/run_rt - cp ${mpas_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . ########################################################################################## # Step 5: Run MPAS From b078e6272e82e19d1ff4c47aeede82172ad79650 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 20:59:04 +0000 Subject: [PATCH 55/78] Update CI --- .github/workflows/run_mpas.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 51ae9fa9e2..f812e20171 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -204,7 +204,7 @@ jobs: ########################################################################################## - name: Create and populate run directory (baselines) run: | - cd ${mpas_run_ROOT} && mkdir run_bl && cd run_bl + cd ${runner_ROOT} && mkdir run_bl && cd run_bl ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . From 5a65b8366952cab2374122205dc547c5b7f4137e Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 21:04:01 +0000 Subject: [PATCH 56/78] Update CI --- .github/workflows/run_mpas.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index f812e20171..269c9d8479 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -136,7 +136,7 @@ jobs: cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} -# make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true + make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - name: Cache MPAS build (RELEASE; baselines) id: cache-mpas-bl-release @@ -151,10 +151,10 @@ jobs: cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} -# make ${{matrix.bld_target}} CORE=atmosphere + make ${{matrix.bld_target}} CORE=atmosphere ########################################################################################## - # Step 2b: Clone MPAS and build (feature) + # Step 2b: Clone MPAS and build (feature branch) ########################################################################################## - name: Checkout MPAS codebase for testing. uses: actions/checkout@v3 @@ -176,7 +176,7 @@ jobs: if: contains(matrix.build-type, 'Debug') && steps.cache-mpas-rt-debug.outputs.cache-hit != 'true' run: | cd ${MPAS_ROOT} -# make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true + make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - name: Cache MPAS build (RELEASE; feature) id: cache-mpas-rt-release @@ -189,7 +189,7 @@ jobs: if: contains(matrix.build-type, 'Release') && steps.cache-mpas-rt-release.outputs.cache-hit != 'true' run: | cd ${MPAS_ROOT} -# make ${{matrix.bld_target}} CORE=atmosphere + make ${{matrix.bld_target}} CORE=atmosphere ########################################################################################## # Step 3: Fetch any data/files needed for MPAS runs. From 30578fd1b427a4926d5cd9c3c5f65d6b13aee01e Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 21:18:24 +0000 Subject: [PATCH 57/78] Update CI --- .github/workflows/run_mpas.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 269c9d8479..ac34a48d95 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -212,7 +212,7 @@ jobs: ln -sf ${mpas_bl_ROOT}/atmosphere_model . ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc - ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} + ln -sf ${mpas_ics}/graph.info.part.2 graph.info.part.2 cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere @@ -240,7 +240,7 @@ jobs: ln -sf ${MPAS_ROOT}/atmosphere_model . ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc - ln -sf ${mpas_ics}/graph.info.part.${nproc} graph.info.part.${nproc} + ln -sf ${mpas_ics}/graph.info.part.2 graph.info.part.2 cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.gsl namelist.atmosphere From 195f9e8ad35b0a8d8cc408e983aa5bb11ce85d0d Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 21:29:03 +0000 Subject: [PATCH 58/78] Update CI --- .github/workflows/run_mpas.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index ac34a48d95..f4207271f1 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -5,7 +5,7 @@ on: [push, pull_request, workflow_dispatch] ############################################################################################# # Testing script/workflow for ufs-community fork of MPAS-Dev/MPAS-A. # -# Description (outside of software stack setup (Step 0)) +# Description # # - Clone and build MPAS for baseline generation. # - Clone and build MPAS for feature branch testing (against baselines). @@ -111,13 +111,11 @@ jobs: if: contains(matrix.repo, 'MPAS-Dev') run: | echo "nml_suffix=ncar" >> $GITHUB_ENV - echo "repo_name=mpasdev" >> $GITHUB_ENV - name: Configuration for ufs-community (baseline) tests. if: contains(matrix.repo, 'ufs-community') run: | echo "nml_suffix=gsl" >> $GITHUB_ENV - echo "repo_name=ufscommunity" >> $GITHUB_ENV ########################################################################################## # Step 2a: Clone MPAS and build. (baselines) @@ -213,7 +211,7 @@ jobs: ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc ln -sf ${mpas_ics}/graph.info.part.2 graph.info.part.2 - cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/mpasdev.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. @@ -241,7 +239,7 @@ jobs: ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc ln -sf ${mpas_ics}/graph.info.part.2 graph.info.part.2 - cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/${{env.repo_name}}.${{matrix.physics}}.${ic_source}.winter/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/mpasdev.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.gsl namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. From 77ec94dadfd8eee2b5b79d721ff62ea38f76158a Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 21:55:18 +0000 Subject: [PATCH 59/78] Update CI --- .github/workflows/bld_mpas_images.yaml | 2 +- .github/workflows/run_mpas.yml | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index b8a7b2d7a9..f7c458c32d 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -5,7 +5,7 @@ on: # push: pull_request: workflow_dispatch: -# push: + push: # branches: # # Only build containers when pushing to main # - "main" diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index f4207271f1..e740323fc3 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -110,17 +110,16 @@ jobs: - name: Configuration for MPAS-Dev (baseline) tests. if: contains(matrix.repo, 'MPAS-Dev') run: | - echo "nml_suffix=ncar" >> $GITHUB_ENV + echo "nml_suffix=ncar" >> $GITHUB_ENV - name: Configuration for ufs-community (baseline) tests. if: contains(matrix.repo, 'ufs-community') run: | - echo "nml_suffix=gsl" >> $GITHUB_ENV + echo "nml_suffix=gsl" >> $GITHUB_ENV ########################################################################################## # Step 2a: Clone MPAS and build. (baselines) ########################################################################################## - - name: Cache MPAS build (DEBUG; baselines) id: cache-mpas-bl-debug uses: actions/cache@v4 From 54940d39f1817387d87ffa272cbf8fc04ff89207 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 22:03:10 +0000 Subject: [PATCH 60/78] Update CI --- .github/workflows/run_mpas.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index e740323fc3..f8b41d0230 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -207,16 +207,16 @@ jobs: ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . ln -sf ${mpas_bl_ROOT}/atmosphere_model . - ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc - ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc - ln -sf ${mpas_ics}/graph.info.part.2 graph.info.part.2 + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.init.nc mpas.init.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}/graph.info.part.2 graph.info.part.2 cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/mpasdev.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. run: | cd ${runner_ROOT}/run_bl - ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.lbc.nc mpas.lbc.nc - name: Link Thompson MP data tables to run directory if: contains(matrix.physics, 'convection_permitting') @@ -235,16 +235,16 @@ jobs: ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . ln -sf ${MPAS_ROOT}/atmosphere_model . - ln -sf ${mpas_ics}/mpas.init.nc mpas.init.nc - ln -sf ${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc - ln -sf ${mpas_ics}/graph.info.part.2 graph.info.part.2 + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.init.nc mpas.init.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}/graph.info.part.2 graph.info.part.2 cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/mpasdev.${{matrix.physics}}.${ic_source}.winter/* . ln -sf namelist.atmosphere.gsl namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. run: | cd ${runner_ROOT}/run_rt - ln -sf ${mpas_ics}/mpas.lbc.nc mpas.lbc.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.lbc.nc mpas.lbc.nc - name: Link Thompson MP data tables to run directory if: contains(matrix.physics, 'convection_permitting') From baa2e4587e4e0b642de832792ade284453916458 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 22:12:56 +0000 Subject: [PATCH 61/78] Update CI --- .github/workflows/run_mpas.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index f8b41d0230..2dc97bbe11 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -41,10 +41,10 @@ jobs: fail-fast: false # Disable fail-fast matrix: f-compiler: [gfortran]#,ifx]#, nvfortran] - physics: [mesoscale_reference]#, convection_permitting, mesoscale_reference_noahmp] - repo: [ufs-community]#, MPAS-Dev] - branch: [gsl/develop]#, v8.3.0] - build-type: [Debug]#, Release] + physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp] + repo: [ufs-community, MPAS-Dev] + branch: [gsl/develop, v8.3.0] + build-type: [Debug, Release] exclude: - repo: MPAS-Dev branch: gsl/develop From b171b3a297db7c714b22b6bf0fc311ebe23f14f4 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 22:19:18 +0000 Subject: [PATCH 62/78] Update CI --- .github/workflows/run_mpas.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 2dc97bbe11..8231f65e9c 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -222,7 +222,7 @@ jobs: if: contains(matrix.physics, 'convection_permitting') run: | cd ${runner_ROOT}/run_bl - cp ${MPAS_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/data/tables/thompson/* . ########################################################################################## # Step 4b: Configure MPAS feature runs @@ -250,7 +250,7 @@ jobs: if: contains(matrix.physics, 'convection_permitting') run: | cd ${runner_ROOT}/run_rt - cp ${MPAS_ROOT}/testing_and_setup/ufs-community/tables/thompson/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/data/tables/thompson/* . ########################################################################################## # Step 5: Run MPAS From 3b5f5a99461a174520aea986ba2a3ef3180114ca Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 22:25:51 +0000 Subject: [PATCH 63/78] Update CI --- testing_and_setup/ufs-community/data/get_data.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/testing_and_setup/ufs-community/data/get_data.sh b/testing_and_setup/ufs-community/data/get_data.sh index 6266cc6a2f..a79e805597 100755 --- a/testing_and_setup/ufs-community/data/get_data.sh +++ b/testing_and_setup/ufs-community/data/get_data.sh @@ -48,7 +48,7 @@ BASEDIR=$MYDIR/../../.. cd $BASEDIR/testing_and_setup/ufs-community/data/ # Get TEMPO data -wget ${verbose} https://github.com/dustinswales/MPAS-Model/releases/download/MPAS-v8.3.1-2.14/tempo_data.tar +wget ${verbose} https://github.com/ufs-community/MPAS-Model/releases/download/MPAS-v8.3.1-2.13/tempo_data.tar mkdir -p tables/tempo/ mv tempo_data.tar tables/tempo/ cd tables/tempo @@ -57,7 +57,7 @@ rm tempo_data.tar cd ../../ # Get Thompson data -wget ${verbose} https://github.com/dustinswales/MPAS-Model/releases/download/MPAS-v8.3.1-2.14/thompson_data.tar +wget ${verbose} https://github.com/ufs-community/MPAS-Model/releases/download/MPAS-v8.3.1-2.13/thompson_data.tar mkdir -p tables/thompson/ mv thompson_data.tar tables/thompson/ cd tables/thompson @@ -66,7 +66,7 @@ rm thompson_data.tar cd ../../ # Get UGW data -wget ${verbose} https://github.com/dustinswales/MPAS-Model/releases/download/MPAS-v8.3.1-2.14/ugw_data.tar +wget ${verbose} https://github.com/ufs-community/MPAS-Model/releases/download/MPAS-v8.3.1-2.13/ugw_data.tar mkdir -p tables/ugw/ mv ugw_data.tar tables/ugw/ cd tables/ugw @@ -75,7 +75,7 @@ rm ugw_data.tar cd ../../ # Get MPAS case data -wget ${verbose} https://github.com/dustinswales/MPAS-Model/releases/download/MPAS-v8.3.1-2.14/mpas_data.tar +wget ${verbose} https://github.com/ufs-community/MPAS-Model/releases/download/MPAS-v8.3.1-2.13/mpas_data.tar mkdir -p ics mv mpas_data.tar ics/ cd ics From 30b0b85917586bad225a975ba9a457773b1e17c3 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 22:33:13 +0000 Subject: [PATCH 64/78] Update CI --- .github/workflows/run_mpas.yml | 56 +++++++++++++++++----------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 8231f65e9c..6e36555932 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -120,30 +120,30 @@ jobs: ########################################################################################## # Step 2a: Clone MPAS and build. (baselines) ########################################################################################## - - name: Cache MPAS build (DEBUG; baselines) - id: cache-mpas-bl-debug - uses: actions/cache@v4 - with: - path: /__w/MPAS-Model-BL - key: cache-mpas-bl-debug-key +# - name: Cache MPAS build (DEBUG; baselines) +# id: cache-mpas-bl-debug +# uses: actions/cache@v4 +# with: +# path: /__w/MPAS-Model-BL +# key: cache-mpas-bl-debug-key - name: Checkout and build MPAS standalone for baseline generation (Debug) - if: contains(matrix.build-type, 'Debug') && steps.cache-mpas-bl-debug.outputs.cache-hit != 'true' + if: contains(matrix.build-type, 'Debug') run: | cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - - name: Cache MPAS build (RELEASE; baselines) - id: cache-mpas-bl-release - uses: actions/cache@v4 - with: - path: /__w/MPAS-Model-BL - key: cache-mpas-bl-release-debug-key +# - name: Cache MPAS build (RELEASE; baselines) +# id: cache-mpas-bl-release +# uses: actions/cache@v4 +# with: +# path: /__w/MPAS-Model-BL +# key: cache-mpas-bl-release-debug-key - name: Checkout and build MPAS standalone for baseline generation (Release) - if: contains(matrix.build-type, 'Release') && steps.cache-mpas-bl-release.outputs.cache-hit != 'true' + if: contains(matrix.build-type, 'Release') run: | cd ${runner_ROOT} git clone --recursive --branch ${{matrix.branch}} https://github.com/${{matrix.repo}}/MPAS-Model.git MPAS-Model-BL @@ -162,28 +162,28 @@ jobs: cd ${MPAS_ROOT} git submodule update --init --recursive - - name: Cache MPAS build (DEBUG; feature) - id: cache-mpas-rt-debug - uses: actions/cache@v4 - with: - path: /__w/MPAS-Model/MPAS-Model - key: cache-mpas-rt-debug-key +# - name: Cache MPAS build (DEBUG; feature) +# id: cache-mpas-rt-debug +# uses: actions/cache@v4 +# with: +# path: /__w/MPAS-Model/MPAS-Model +# key: cache-mpas-rt-debug-key - name: Build MPAS standalone for testing (Debug) - if: contains(matrix.build-type, 'Debug') && steps.cache-mpas-rt-debug.outputs.cache-hit != 'true' + if: contains(matrix.build-type, 'Debug') run: | cd ${MPAS_ROOT} make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - - name: Cache MPAS build (RELEASE; feature) - id: cache-mpas-rt-release - uses: actions/cache@v4 - with: - path: /__w/MPAS-Model/MPAS-Model - key: cache-mpas-rt-release-key +# - name: Cache MPAS build (RELEASE; feature) +# id: cache-mpas-rt-release +# uses: actions/cache@v4 +# with: +# path: /__w/MPAS-Model/MPAS-Model +# key: cache-mpas-rt-release-key - name: Build MPAS standalone for testing (Release) - if: contains(matrix.build-type, 'Release') && steps.cache-mpas-rt-release.outputs.cache-hit != 'true' + if: contains(matrix.build-type, 'Release') run: | cd ${MPAS_ROOT} make ${{matrix.bld_target}} CORE=atmosphere From 8e791d2bae56f2157e9a17506ae9cf2e254a45e9 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 23:18:43 +0000 Subject: [PATCH 65/78] Update CI --- .github/workflows/run_mpas.yml | 16 +-- .github/workflows/run_mpas_hrrr.yml | 179 +++++++--------------------- 2 files changed, 49 insertions(+), 146 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 6e36555932..44f77723de 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -202,15 +202,15 @@ jobs: - name: Create and populate run directory (baselines) run: | cd ${runner_ROOT} && mkdir run_bl && cd run_bl + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/mpasdev.${{matrix.physics}}.${ic_source}.winter/* . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . ln -sf ${mpas_bl_ROOT}/atmosphere_model . - ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.init.nc mpas.init.nc - ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc - ln -sf ${MPAS_ROOT}/${mpas_ics}/graph.info.part.2 graph.info.part.2 - cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/mpasdev.${{matrix.physics}}.${ic_source}.winter/* . + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.init.nc . + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.ugwp_oro_data.nc . + ln -sf ${MPAS_ROOT}/${mpas_ics}/graph.info.part.2 . ln -sf namelist.atmosphere.${{env.nml_suffix}} namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. @@ -230,15 +230,15 @@ jobs: - name: Create and populate run directory (feature test) run: | cd ${runner_ROOT} && mkdir run_rt && cd run_rt + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/mpasdev.${{matrix.physics}}.${ic_source}.winter/* . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . ln -sf ${MPAS_ROOT}/atmosphere_model . - ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.init.nc mpas.init.nc - ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.sfc_update.nc mpas.sfc_update.nc - ln -sf ${MPAS_ROOT}/${mpas_ics}/graph.info.part.2 graph.info.part.2 - cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/mpasdev.${{matrix.physics}}.${ic_source}.winter/* . + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.init.nc . + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.ugwp_oro_data.nc . + ln -sf ${MPAS_ROOT}/${mpas_ics}/graph.info.part.2 . ln -sf namelist.atmosphere.gsl namelist.atmosphere - name: Link lateral boundary condition file for regional MPAS. diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index cfee2ea706..4948e6aade 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -1,17 +1,15 @@ name: Run MPAS Standalone (NOAA GSL HRRRv5 tests) -on: [pull_request, workflow_dispatch] +on: [push, pull_request, workflow_dispatch] ############################################################################################# # Testing script/workflow for ufs-community fork of MPAS-Dev/MPAS-A. # -# Description (outside of software stack setup (Step 0)) +# Description # # - Clone and build MPAS for baseline generation. # - Clone and build MPAS for feature branch testing (against baselines). -# - Clone ufs-community MPAS testing repository. -# - Fetch data from THREDDS server. -# - Donwload any other data (e.g. MP tables, etc). +# - Download any data (MP tables, MPAS ICs/LBCs/etc...). # - Create/populate MPAS run directories. # - Run MPAS using baseline codebase/configuration. # - Run MPAS using feature branch. @@ -23,8 +21,6 @@ on: [pull_request, workflow_dispatch] # - This script uses a matrix run configuration with exclusions to achieve the desired "run list" # # - List of physics configuration to test. See https://github.com/barlage/mpas_testcase.git -# - Baseline codebase repository. -# - Baseline codebase repository branch. # # Tests: # Baseline Codebase Repository:Branch Physics IC source season build-type @@ -35,7 +31,6 @@ on: [pull_request, workflow_dispatch] ############################################################################################# jobs: run_mpas_hrrr: - # runs-on: ubuntu-22.04 strategy: fail-fast: false # Disable fail-fast @@ -50,8 +45,10 @@ jobs: include: # Set container images for each compiler - f-compiler: gfortran + bld_target: gfortran image: dustinswales/ufs-community-mpas-ci:gnu # - f-compiler: ifx +# bld_target: intel # image: dustinswales/ufs-community-mpas-ci:oneapi container: image: ${{ matrix.image }} @@ -63,27 +60,13 @@ jobs: # Environmental variables env: physics: hrrrv5 - repo: ufs-community - branch: gsl/develop - fortran-compiler: gfortran-12 py-version: 3.11 runner_ROOT: /__w/ MPAS_ROOT: /__w/MPAS-Model/MPAS-Model mpas_bl_ROOT: /__w/MPAS-Model-BL PNETCDF: /opt/pnetcdf - grid_dir: thredds/catalog/retro/mpas_ci/mpas_test_data/grid - case_dir: retro/mpas_ci/mpas_test_data/run_case_input/create_case_output - gwddata_dir: retro/mpas_ci/mpas_test_data/run_case_input/tables - mpdata_dir: retro/jensen - domain: conus - res: 120km - nproc: 2 - nml: gsl - case_base: gsl-v8.3.0-1.8-intelmpi - code_base: gsl - nml_version: gsl - - + mpas_ics: testing_and_setup/ufs-community/data/ics/ufscommunity + physics_tables: testing_and_setup/ufs-community/data/tables # Workflow steps steps: @@ -101,67 +84,28 @@ jobs: run: | echo "PNETCDF=/opt/pnetcdf" >> $GITHUB_ENV - ########################################################################################## - # Step 1: Setup configuration for current test - ########################################################################################## - - name: Set tests start time (GFS case) - if: contains(matrix.ic_source, 'gfs') - run: | - echo "yyyy=2023" >> $GITHUB_ENV - echo "mm=03" >> $GITHUB_ENV - echo "dd=10" >> $GITHUB_ENV - echo "hh=15" >> $GITHUB_ENV - - - name: Set test start time (RAP summer case). - if: contains(matrix.season, 'summer') && contains(matrix.ic_source, 'rap') - run: | - echo "yyyy=2024" >> $GITHUB_ENV - echo "mm=08" >> $GITHUB_ENV - echo "dd=15" >> $GITHUB_ENV - echo "hh=18" >> $GITHUB_ENV - - - name: Set test start time (RAP winter case). - if: contains(matrix.season, 'winter') && contains(matrix.ic_source, 'rap') - run: | - echo "yyyy=2024" >> $GITHUB_ENV - echo "mm=02" >> $GITHUB_ENV - echo "dd=02" >> $GITHUB_ENV - echo "hh=18" >> $GITHUB_ENV - - - name: Set test variables. - id: set_vars - run: | - echo "init_file=mpas.${code_base}.${nml}.${domain}.${res}.${{matrix.ic_source}}.init.${yyyy}'-'${mm}'-'${dd}'_'${hh}'.00.00'.nc" >> $GITHUB_OUTPUT - echo "lbc_file=mpas.${code_base}.${nml}.${domain}.${res}.${{matrix.ic_source}}.lbc.${yyyy}'-'${mm}'-'${dd}'_'${hh}'.00.00'.nc" >> $GITHUB_OUTPUT - echo "sst_file=mpas.${code_base}.${nml}.${domain}.${res}.${{matrix.ic_source}}.sfc_update.${yyyy}'-'${mm}'-'${dd}'_'${hh}'.00.00'.nc" >> $GITHUB_OUTPUT - echo "ugwp_file=mpas.${code_base}.${nml}.${domain}.${res}.ugwp_oro_data.nc" >> $GITHUB_OUTPUT - - - name: Display configuration - run: | - echo ${{steps.set_vars.outputs.init_file}} - echo ${{steps.set_vars.outputs.lbc_file}} - echo ${{steps.set_vars.outputs.sst_file}} - echo ${{steps.set_vars.outputs.ugwp_file}} - ########################################################################################## - # Step 2: Clone MPAS and build. + # Step 2a: Clone MPAS and build. (baselines) ########################################################################################## - name: Checkout and build MPAS standalone for baseline generation (Debug) if: contains(matrix.build-type, 'Debug') run: | cd ${runner_ROOT} - git clone --recursive --branch ${{env.branch}} https://github.com/${{env.repo}}/MPAS-Model.git MPAS-Model-BL + git clone --recursive --branch gsl/develop https://github.com/ufs-community/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} - make gfortran CORE=atmosphere DEBUG=true + make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - name: Checkout and build MPAS standalone for baseline generation (Release) if: contains(matrix.build-type, 'Release') run: | cd ${runner_ROOT} - git clone --recursive --branch ${{env.branch}} https://github.com/${{env.repo}}/MPAS-Model.git MPAS-Model-BL + git clone --recursive --branch gsl/develop https://github.com/ufs-community/MPAS-Model.git MPAS-Model-BL cd ${mpas_bl_ROOT} - make gfortran CORE=atmosphere + make ${{matrix.bld_target}} CORE=atmosphere + ########################################################################################## + # Step 2b: Clone MPAS and build (feature branch) + ########################################################################################## - name: Checkout MPAS codebase for testing. uses: actions/checkout@v3 @@ -175,62 +119,21 @@ jobs: if: contains(matrix.build-type, 'Debug') run: | cd ${MPAS_ROOT} - make gfortran CORE=atmosphere DEBUG=true + make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - name: Build MPAS standalone for testing (Release) if: contains(matrix.build-type, 'Release') run: | cd ${MPAS_ROOT} - make gfortran CORE=atmosphere + make ${{matrix.bld_target}} CORE=atmosphere ########################################################################################## # Step 3: Fetch any data/files needed for MPAS runs. ########################################################################################## - name: Download MPAS data (grid info, IC and LBC files) run: | - cd ${runner_ROOT} && mkdir run_data && cd run_data - wget -q https://gsl.noaa.gov/${grid_dir}/${domain}.${res}.graph.info.part.${nproc} - wget -q -e robots=off -nH --cut-dirs N -nc -r -lX -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ - https://gsl.noaa.gov/thredds/catalog/${case_dir}/${case_base}/${nml}.${code_base}.${domain}.${res}.${{matrix.ic_source}}.${yyyy}${mm}${dd}${hh}/case_files/catalog.html - mv thredds/fileServer/${case_dir}/${case_base}/${nml}.${code_base}.${domain}.${res}.${{matrix.ic_source}}.${yyyy}${mm}${dd}${hh}/case_files/* . - rm -rf thredds - - - name: Download MPAS testing repository with runtime configurations. - run: | - cd ${runner_ROOT} - git clone --recursive --branch main https://github.com/barlage/mpas_testcase.git - - - name: Cache TEMPO MP tables - id: cache-tempo-data - uses: actions/cache@v4 - with: - path: /__w/tempo - key: cache-tempo-data-key - - - name: Download TEMPO MP tables - if: steps.cache-tempo-data.outputs.cache-hit != 'true' - run: | - cd ${runner_ROOT} && mkdir tempo && cd tempo - wget -q -e robots=off -nH --cut-dirs N -nc -r -lX --accept-regex='_tempo_v3' -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ - https://gsl.noaa.gov/thredds/catalog/${mpdata_dir}/catalog.html - mv thredds/fileServer/${mpdata_dir}/* . - rm -rf thredds - - - name: Cache UGWD data - id: cache-ugw-data - uses: actions/cache@v4 - with: - path: /__w/ugw - key: cache-ugw-data-key - - - name: Download GWD data - if: steps.cache-ugw-data.outputs.cache-hit != 'true' - run: | - cd ${runner_ROOT} && mkdir ugw && cd ugw - wget -q -e robots=off -nH --cut-dirs N -nc -r -lX -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ - https://gsl.noaa.gov/thredds/catalog/${gwddata_dir}/ugw/catalog.html - mv thredds/fileServer/${gwddata_dir}/ugw/* . - rm -rf thredds + cd ${MPAS_ROOT} + ./testing_and_setup/ufs-community/data/get_data.sh ########################################################################################## # Step 4a: Configure MPAS baseline runs @@ -238,29 +141,29 @@ jobs: - name: Create and populate run directory (baselines) run: | cd ${runner_ROOT} && mkdir run_bl && cd run_bl - cp ${runner_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${{matrix.ic_source}}.${yyyy}${mm}${dd}${hh}/${{env.physics}}/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.${{matrix.ic_source}}.${{matrix.season}}/* . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc - ln -sf ${runner_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} - ln -sf ${mpas_bl_ROOT}/atmosphere_model atmosphere_model - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.ugwp_file}} mpas.ugwp_oro_data.nc - ln -sf ${runner_ROOT}/tempo/* . - ln -sf ${runner_ROOT}/ugw/ugwp_limb_tau.nc . + ln -sf ${mpas_bl_ROOT}/atmosphere_model . + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.init.nc mpas.init.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc mpas.ugwp_oro_data.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 graph.info.part.2 + ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . + ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . - name: Link lateral boundary condition file for regional MPAS (baselines). if: env.domain == 'conus' run: | cd ${runner_ROOT}/run_bl - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . - name: Link surface files to run directory (baselines) if: ${{matrix.ic_source}} == 'gfs' run: | cd ${runner_ROOT}/run_bl - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.sfc_update.nc . ########################################################################################## # Step 4b: Configure MPAS feature runs @@ -268,29 +171,29 @@ jobs: - name: Create and populate run directory (feature test) run: | cd ${runner_ROOT} && mkdir run_rt && cd run_rt - cp ${runner_ROOT}/mpas_testcase/run_case/case_files/${nml_version}/${domain}/${{matrix.ic_source}}.${yyyy}${mm}${dd}${hh}/${{env.physics}}/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.${{matrix.ic_source}}.${{matrix.season}}/* . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.init_file}} mpas.init.nc - ln -sf ${runner_ROOT}/run_data/${domain}.${res}.graph.info.part.${nproc} graph.info.part.${nproc} - ln -sf ${MPAS_ROOT}/atmosphere_model atmosphere_model - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.ugwp_file}} mpas.ugwp_oro_data.nc - ln -sf ${runner_ROOT}/tempo/* . - ln -sf ${runner_ROOT}/ugw/ugwp_limb_tau.nc . + ln -sf ${MPAS_ROOT}/atmosphere_model . + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.init.nc . + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc . + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 . + ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . + ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . - name: Link lateral boundary condition file for regional MPAS (feature) if: env.domain == 'conus' run: | cd ${runner_ROOT}/run_rt - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.lbc_file}} mpas.lbc.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . - name: Link surface files to run directory (feature) if: ${{matrix.ic_source}} == 'gfs' run: | cd ${runner_ROOT}/run_rt - ln -sf ${runner_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.sfc_update.nc . ########################################################################################## # Step 5: Run MPAS @@ -332,8 +235,8 @@ jobs: - name: Create GitHub artifact run: | cd ${runner_ROOT} - mkdir artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} - cd artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} + mkdir artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} + cd artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} mkdir data_bl && cd data_bl cp ${runner_ROOT}/run_bl/log.atmosphere.*.out log.atmosphere.BL.out cp ${runner_ROOT}/run_bl/history.*.nc . @@ -347,5 +250,5 @@ jobs: - name: Upload log files as GitHub Artifact uses: actions/upload-artifact@v4 with: - name: mpas-baselines-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} - path: /__w/artifact-${{env.fortran-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} + name: mpas-baselines-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} + path: /__w/artifact-${{matrix.f-compiler}}-${{matrix.build-type}}-${{matrix.ic_source}}-${{matrix.season}}-${{env.physics}} From 6dde376cb1798775e7c52cb0167ac32c57f5a38e Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 23:19:58 +0000 Subject: [PATCH 66/78] Update CI --- .github/workflows/run_mpas_hrrr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 4948e6aade..8ab6574322 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -181,7 +181,7 @@ jobs: ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 . ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . - ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . + ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . - name: Link lateral boundary condition file for regional MPAS (feature) if: env.domain == 'conus' From 05513a608564f538ace693fd434a89452292c170 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 23:28:31 +0000 Subject: [PATCH 67/78] Update CI --- .github/workflows/run_mpas.yml | 41 +++----------------------- .github/workflows/run_mpas_hrrr.yml | 45 +++++++++++------------------ 2 files changed, 21 insertions(+), 65 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 44f77723de..f4e911f4d8 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -40,7 +40,7 @@ jobs: strategy: fail-fast: false # Disable fail-fast matrix: - f-compiler: [gfortran]#,ifx]#, nvfortran] + f-compiler: [gfortran]#,ifx] physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp] repo: [ufs-community, MPAS-Dev] branch: [gsl/develop, v8.3.0] @@ -58,8 +58,6 @@ jobs: # - f-compiler: ifx # image: dustinswales/ufs-community-mpas-ci:oneapi # bld_target: intel -# - f-compiler: nvfortran -# image: dustinswales/ccpp-scm-ci:nvhpc container: image: ${{ matrix.image }} # @@ -81,7 +79,7 @@ jobs: steps: ########################################################################################## - # Step 0: Setup + # Step 1: Setup ########################################################################################## - name: Setup MPI (GNU) if: matrix.f-compiler == 'gfortran' @@ -104,9 +102,6 @@ jobs: run: | echo "PNETCDF=/opt/pnetcdf" >> $GITHUB_ENV - ########################################################################################## - # Step 1: Setup configuration for current test - ########################################################################################## - name: Configuration for MPAS-Dev (baseline) tests. if: contains(matrix.repo, 'MPAS-Dev') run: | @@ -120,13 +115,6 @@ jobs: ########################################################################################## # Step 2a: Clone MPAS and build. (baselines) ########################################################################################## -# - name: Cache MPAS build (DEBUG; baselines) -# id: cache-mpas-bl-debug -# uses: actions/cache@v4 -# with: -# path: /__w/MPAS-Model-BL -# key: cache-mpas-bl-debug-key - - name: Checkout and build MPAS standalone for baseline generation (Debug) if: contains(matrix.build-type, 'Debug') run: | @@ -135,13 +123,6 @@ jobs: cd ${mpas_bl_ROOT} make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true -# - name: Cache MPAS build (RELEASE; baselines) -# id: cache-mpas-bl-release -# uses: actions/cache@v4 -# with: -# path: /__w/MPAS-Model-BL -# key: cache-mpas-bl-release-debug-key - - name: Checkout and build MPAS standalone for baseline generation (Release) if: contains(matrix.build-type, 'Release') run: | @@ -162,26 +143,12 @@ jobs: cd ${MPAS_ROOT} git submodule update --init --recursive -# - name: Cache MPAS build (DEBUG; feature) -# id: cache-mpas-rt-debug -# uses: actions/cache@v4 -# with: -# path: /__w/MPAS-Model/MPAS-Model -# key: cache-mpas-rt-debug-key - - name: Build MPAS standalone for testing (Debug) if: contains(matrix.build-type, 'Debug') run: | cd ${MPAS_ROOT} make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true -# - name: Cache MPAS build (RELEASE; feature) -# id: cache-mpas-rt-release -# uses: actions/cache@v4 -# with: -# path: /__w/MPAS-Model/MPAS-Model -# key: cache-mpas-rt-release-key - - name: Build MPAS standalone for testing (Release) if: contains(matrix.build-type, 'Release') run: | @@ -216,7 +183,7 @@ jobs: - name: Link lateral boundary condition file for regional MPAS. run: | cd ${runner_ROOT}/run_bl - ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.lbc.nc mpas.lbc.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.lbc.nc. - name: Link Thompson MP data tables to run directory if: contains(matrix.physics, 'convection_permitting') @@ -244,7 +211,7 @@ jobs: - name: Link lateral boundary condition file for regional MPAS. run: | cd ${runner_ROOT}/run_rt - ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.lbc.nc mpas.lbc.nc + ln -sf ${MPAS_ROOT}/${mpas_ics}/mpas.lbc.nc . - name: Link Thompson MP data tables to run directory if: contains(matrix.physics, 'convection_permitting') diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 8ab6574322..543417cdfd 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -20,8 +20,6 @@ on: [push, pull_request, workflow_dispatch] # - The test build/run configurations matrix is described below. # - This script uses a matrix run configuration with exclusions to achieve the desired "run list" # -# - List of physics configuration to test. See https://github.com/barlage/mpas_testcase.git -# # Tests: # Baseline Codebase Repository:Branch Physics IC source season build-type # 1/4) ufs-community:gsl/develop hrrrv5 gfs winter Release/Debug @@ -59,19 +57,20 @@ jobs: # Environmental variables env: - physics: hrrrv5 - py-version: 3.11 - runner_ROOT: /__w/ - MPAS_ROOT: /__w/MPAS-Model/MPAS-Model - mpas_bl_ROOT: /__w/MPAS-Model-BL - PNETCDF: /opt/pnetcdf - mpas_ics: testing_and_setup/ufs-community/data/ics/ufscommunity - physics_tables: testing_and_setup/ufs-community/data/tables + physics: hrrrv5 + py-version: 3.11 + runner_ROOT: /__w/ + MPAS_ROOT: /__w/MPAS-Model/MPAS-Model + mpas_bl_ROOT: /__w/MPAS-Model-BL + PNETCDF: /opt/pnetcdf + mpas_ics: testing_and_setup/ufs-community/data/ics/ufscommunity + physics_tables: testing_and_setup/ufs-community/data/tables + # Workflow steps steps: ########################################################################################## - # Step 0: Setup + # Step 1: Setup ########################################################################################## - name: Setup MPI (GNU) if: matrix.f-compiler == 'gfortran' @@ -141,24 +140,19 @@ jobs: - name: Create and populate run directory (baselines) run: | cd ${runner_ROOT} && mkdir run_bl && cd run_bl - cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.${{matrix.ic_source}}.${{matrix.season}}/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/ufscommunity.${{env.physics}}.${{matrix.ic_source}}.${{matrix.season}}/* . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . ln -sf ${mpas_bl_ROOT}/atmosphere_model . - ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.init.nc mpas.init.nc - ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc mpas.ugwp_oro_data.nc - ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 graph.info.part.2 + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.init.nc . + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc . + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 . ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . - - name: Link lateral boundary condition file for regional MPAS (baselines). - if: env.domain == 'conus' - run: | - cd ${runner_ROOT}/run_bl - ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . - - name: Link surface files to run directory (baselines) if: ${{matrix.ic_source}} == 'gfs' run: | @@ -171,7 +165,7 @@ jobs: - name: Create and populate run directory (feature test) run: | cd ${runner_ROOT} && mkdir run_rt && cd run_rt - cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.${{matrix.ic_source}}.${{matrix.season}}/* . + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/cases/ufscommunity.${{env.physics}}.${{matrix.ic_source}}.${{matrix.season}}/* . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.TBL . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . @@ -179,16 +173,11 @@ jobs: ln -sf ${MPAS_ROOT}/atmosphere_model . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.init.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc . + ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 . ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . - - name: Link lateral boundary condition file for regional MPAS (feature) - if: env.domain == 'conus' - run: | - cd ${runner_ROOT}/run_rt - ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . - - name: Link surface files to run directory (feature) if: ${{matrix.ic_source}} == 'gfs' run: | From 15bd20b6cb8fc83d1563b77a64e31c114989ab9d Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 24 Feb 2026 23:46:55 +0000 Subject: [PATCH 68/78] Revert action trigger for PR --- .github/workflows/run_mpas.yml | 2 +- .github/workflows/run_mpas_hrrr.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index f4e911f4d8..79b84fdc6a 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -1,6 +1,6 @@ name: Run MPAS Standalone (NOAA GSL tests) -on: [push, pull_request, workflow_dispatch] +on: [pull_request, workflow_dispatch] ############################################################################################# # Testing script/workflow for ufs-community fork of MPAS-Dev/MPAS-A. diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 543417cdfd..c8de439295 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -1,6 +1,6 @@ name: Run MPAS Standalone (NOAA GSL HRRRv5 tests) -on: [push, pull_request, workflow_dispatch] +on: [pull_request, workflow_dispatch] ############################################################################################# # Testing script/workflow for ufs-community fork of MPAS-Dev/MPAS-A. From 5e6fc1afd108da68d693db52b0029fe84199ca2f Mon Sep 17 00:00:00 2001 From: dustinswales Date: Tue, 24 Feb 2026 19:02:04 -0700 Subject: [PATCH 69/78] Update CI --- .github/workflows/bld_mpas_images.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index f7c458c32d..615f068e8d 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -3,7 +3,7 @@ run-name: CI Image Build for MPAS-A on: # push: - pull_request: + pull_request_target: workflow_dispatch: push: # branches: From 04843a5ea0e3cd212ef477f62d98d4a1e6634d21 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Tue, 24 Feb 2026 19:03:36 -0700 Subject: [PATCH 70/78] Update CI --- .github/workflows/bld_mpas_images.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index 615f068e8d..f7c458c32d 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -3,7 +3,7 @@ run-name: CI Image Build for MPAS-A on: # push: - pull_request_target: + pull_request: workflow_dispatch: push: # branches: From 0a8f157b1971617469a8ce98a9af0182365ca08f Mon Sep 17 00:00:00 2001 From: dustinswales Date: Tue, 3 Mar 2026 17:21:19 -0700 Subject: [PATCH 71/78] Namelist updates --- .../cases/ufscommunity.hrrrv5.gfs.winter/namelist.atmosphere | 4 +++- .../cases/ufscommunity.hrrrv5.rap.summer/namelist.atmosphere | 4 +++- .../cases/ufscommunity.hrrrv5.rap.winter/namelist.atmosphere | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/namelist.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/namelist.atmosphere index 33817d7a17..2e54c86387 100644 --- a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/namelist.atmosphere +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/namelist.atmosphere @@ -51,9 +51,11 @@ config_radtsw_interval = '00:15:00' config_bucket_update = 'none' config_physics_suite = 'hrrrv5' + num_soil_layers = 9 +/ +&physics_mp_tempo config_tempo_aerosolaware = .true. config_tempo_hailaware = .true. - num_soil_layers = 9 / &soundings config_sounding_interval = 'none' diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/namelist.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/namelist.atmosphere index af31a5e6c3..4858c5213f 100644 --- a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/namelist.atmosphere +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/namelist.atmosphere @@ -52,9 +52,11 @@ config_radtsw_interval = '00:15:00' config_bucket_update = 'none' config_physics_suite = 'hrrrv5' + num_soil_layers = 9 +/ +&physics_mp_tempo config_tempo_aerosolaware = .true. config_tempo_hailaware = .true. - num_soil_layers = 9 / &soundings config_sounding_interval = 'none' diff --git a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/namelist.atmosphere b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/namelist.atmosphere index d71850f0e6..e41ae89258 100644 --- a/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/namelist.atmosphere +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/namelist.atmosphere @@ -52,9 +52,11 @@ config_radtsw_interval = '00:15:00' config_bucket_update = 'none' config_physics_suite = 'hrrrv5' + num_soil_layers = 9 +/ +&physics_mp_tempo config_tempo_aerosolaware = .true. config_tempo_hailaware = .true. - num_soil_layers = 9 / &soundings config_sounding_interval = 'none' From 2bc03b5eaa1a0488346e6f3c01f50e75a53e064c Mon Sep 17 00:00:00 2001 From: dustinswales Date: Tue, 3 Mar 2026 18:15:57 -0700 Subject: [PATCH 72/78] Link tempo files to run directory --- .github/workflows/run_mpas_hrrr.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index c8de439295..c86f1c983c 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -150,6 +150,7 @@ jobs: ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 . + ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . @@ -175,6 +176,7 @@ jobs: ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 . + ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . From 5e20ec7f51f9baee4ede6d3c51d540b8a0f505d9 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Tue, 3 Mar 2026 18:55:46 -0700 Subject: [PATCH 73/78] Link tempo files to run directory --- .github/workflows/run_mpas_hrrr.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index c86f1c983c..9920cfa344 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -134,6 +134,14 @@ jobs: cd ${MPAS_ROOT} ./testing_and_setup/ufs-community/data/get_data.sh + - name: Download TEMPO MP tables + run: | + cd ${runner_ROOT} && mkdir tempo && cd tempo + wget -q -e robots=off -nH --cut-dirs N -nc -r -lX -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ + https://gsl.noaa.gov/thredds/catalog/${mpdata_dir}/catalog.html + mv thredds/fileServer/${mpdata_dir}/* . + rm -rf thredds + ########################################################################################## # Step 4a: Configure MPAS baseline runs ########################################################################################## From bf0115fec2df1622f44fa95cea769d0def99c389 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 4 Mar 2026 07:15:03 -0700 Subject: [PATCH 74/78] Update CI --- .github/workflows/run_mpas_hrrr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 9920cfa344..2fbeee40b5 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -138,8 +138,8 @@ jobs: run: | cd ${runner_ROOT} && mkdir tempo && cd tempo wget -q -e robots=off -nH --cut-dirs N -nc -r -lX -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ - https://gsl.noaa.gov/thredds/catalog/${mpdata_dir}/catalog.html - mv thredds/fileServer/${mpdata_dir}/* . + https://gsl.noaa.gov/thredds/catalog/retro/jensen/catalog.html + mv thredds/fileServer/retro/jensen/* . rm -rf thredds ########################################################################################## From 5fe7be68c774d7b32d234db24d98cc2c036f7eb3 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 4 Mar 2026 07:40:31 -0700 Subject: [PATCH 75/78] Update CI --- .github/workflows/run_mpas_hrrr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 2fbeee40b5..c43c05af1f 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -158,7 +158,7 @@ jobs: ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . @@ -184,7 +184,7 @@ jobs: ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . From a9ceb811f4529a8430754f1d088c825a6c04dfaf Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 4 Mar 2026 08:58:23 -0700 Subject: [PATCH 76/78] Some cleanup --- .github/workflows/run_mpas_hrrr.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index c43c05af1f..2d166f9538 100644 --- a/.github/workflows/run_mpas_hrrr.yml +++ b/.github/workflows/run_mpas_hrrr.yml @@ -134,14 +134,6 @@ jobs: cd ${MPAS_ROOT} ./testing_and_setup/ufs-community/data/get_data.sh - - name: Download TEMPO MP tables - run: | - cd ${runner_ROOT} && mkdir tempo && cd tempo - wget -q -e robots=off -nH --cut-dirs N -nc -r -lX -A '*' -R 'catalog*' -I /thredds/fileServer/,/thredds/catalog/ \ - https://gsl.noaa.gov/thredds/catalog/retro/jensen/catalog.html - mv thredds/fileServer/retro/jensen/* . - rm -rf thredds - ########################################################################################## # Step 4a: Configure MPAS baseline runs ########################################################################################## @@ -153,14 +145,14 @@ jobs: ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${mpas_bl_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${mpas_bl_ROOT}/atmosphere_model . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.init.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 . - ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . + ln -sf ${mpas_bl_ROOT}/atmosphere_model . - name: Link surface files to run directory (baselines) if: ${{matrix.ic_source}} == 'gfs' @@ -179,14 +171,14 @@ jobs: ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*.DBL . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_wrf/files/*DATA . ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . - ln -sf ${MPAS_ROOT}/atmosphere_model . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.init.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.ugwp_oro_data.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/mpas.lbc.nc . ln -sf ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/graph.info.part.2 . - ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . ln -sf ${MPAS_ROOT}/${physics_tables}/tempo/* . ln -sf ${MPAS_ROOT}/${physics_tables}/ugw/* . + ln -sf ${MPAS_ROOT}/atmosphere_model . - name: Link surface files to run directory (feature) if: ${{matrix.ic_source}} == 'gfs' From 77d1b3aeb89d923999c7c6540ea462c7cdca9cad Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 4 Mar 2026 08:59:47 -0700 Subject: [PATCH 77/78] Use 2.14 (v3) TEMPO tables --- testing_and_setup/ufs-community/data/get_data.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing_and_setup/ufs-community/data/get_data.sh b/testing_and_setup/ufs-community/data/get_data.sh index a79e805597..061745268d 100755 --- a/testing_and_setup/ufs-community/data/get_data.sh +++ b/testing_and_setup/ufs-community/data/get_data.sh @@ -48,7 +48,7 @@ BASEDIR=$MYDIR/../../.. cd $BASEDIR/testing_and_setup/ufs-community/data/ # Get TEMPO data -wget ${verbose} https://github.com/ufs-community/MPAS-Model/releases/download/MPAS-v8.3.1-2.13/tempo_data.tar +wget ${verbose} https://github.com/ufs-community/MPAS-Model/releases/download/MPAS-v8.3.1-2.14/tempo_data.tar mkdir -p tables/tempo/ mv tempo_data.tar tables/tempo/ cd tables/tempo From 19a85d8c2d4636e03c2a885947236a3206393318 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 4 Mar 2026 09:27:08 -0700 Subject: [PATCH 78/78] Revert trigger for image build to on push to gsl/dev only --- .github/workflows/bld_mpas_images.yaml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml index f7c458c32d..75c33ac538 100644 --- a/.github/workflows/bld_mpas_images.yaml +++ b/.github/workflows/bld_mpas_images.yaml @@ -2,13 +2,10 @@ name: MPAS-A Base Images Build run-name: CI Image Build for MPAS-A on: -# push: - pull_request: - workflow_dispatch: push: -# branches: -# # Only build containers when pushing to main -# - "main" + branches: + # Only build containers when pushing to gsl/develop + - "gsl/develop" jobs: docker: