diff --git a/.github/workflows/bld_mpas_images.yaml b/.github/workflows/bld_mpas_images.yaml new file mode 100644 index 0000000000..75c33ac538 --- /dev/null +++ b/.github/workflows/bld_mpas_images.yaml @@ -0,0 +1,76 @@ +name: MPAS-A Base Images Build +run-name: CI Image Build for MPAS-A + +on: + push: + branches: + # Only build containers when pushing to gsl/develop + - "gsl/develop" + +jobs: + docker: + #if: github.repository == 'ufs-community/MPAS-Model' + strategy: + fail-fast: false # Disable fail-fast + matrix: + 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: 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/.github/workflows/run_mpas.yml b/.github/workflows/run_mpas.yml index 0bf236fe7f..79b84fdc6a 100644 --- a/.github/workflows/run_mpas.yml +++ b/.github/workflows/run_mpas.yml @@ -1,28 +1,26 @@ 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. # -# 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. # - 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. # - 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/AndersJensen-NOAA/mpas_testcase.git +# - List of physics configuration to test. See https://github.com/barlage/mpas_testcase.git # - Baseline codebase repository. # - Baseline codebase repository branch. # @@ -37,21 +35,31 @@ 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] branch: [gsl/develop, v8.3.0] - build-type: [Release, Debug] + build-type: [Debug, Release] exclude: - repo: MPAS-Dev branch: gsl/develop - repo: ufs-community branch: v8.3.0 + 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 + container: + image: ${{ matrix.image }} # defaults: run: @@ -59,149 +67,41 @@ jobs: # Environmental variables 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 - 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 - 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 + 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: ########################################################################################## - # Step 0: Build Software Stack needed for MPAS on GitHub server. + # Step 1: Setup ########################################################################################## - - name: Install NetCDF library - 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' + - name: Setup MPI (GNU) + if: matrix.f-compiler == 'gfortran' 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 + echo "CC=mpicc" >> $GITHUB_ENV + echo "CXX=mpicxx" >> $GITHUB_ENV + echo "FC=mpif90" >> $GITHUB_ENV - - name: Add (OMPI) to Paths + - name: Setup MPI (Intel OneAPI) + if: matrix.f-compiler == 'ifx' 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. + 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 + echo "MPICC=/opt/intel/oneapi/mpi/latest/bin/mpiicx" >> $GITHUB_ENV + + - name: Setup PnetCDF 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 - ########################################################################################## - name: Configuration for MPAS-Dev (baseline) tests. if: contains(matrix.repo, 'MPAS-Dev') run: | @@ -210,38 +110,18 @@ jobs: - name: Configuration for ufs-community (baseline) tests. if: contains(matrix.repo, 'ufs-community') run: | - echo "nml_suffix=gsl" >> $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} - echo ${case_base} + echo "nml_suffix=gsl" >> $GITHUB_ENV ########################################################################################## - # 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 ${{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.bld_target}} CORE=atmosphere DEBUG=true - name: Checkout and build MPAS standalone for baseline generation (Release) if: contains(matrix.build-type, 'Release') @@ -249,149 +129,111 @@ 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.bld_target}} CORE=atmosphere + ########################################################################################## + # Step 2b: Clone MPAS and build (feature branch) + ########################################################################################## - name: Checkout MPAS codebase for testing. uses: actions/checkout@v3 - 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) if: contains(matrix.build-type, 'Debug') run: | - cd ${mpas_rt_ROOT}/MPAS-Model - make gfortran CORE=atmosphere DEBUG=true + cd ${MPAS_ROOT} + make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - name: Build MPAS standalone for testing (Release) if: contains(matrix.build-type, 'Release') run: | - cd ${mpas_rt_ROOT}/MPAS-Model - make gfortran CORE=atmosphere + 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_run_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 ${mpas_run_ROOT} - git clone --recursive --branch main https://github.com/AndersJensen-NOAA/mpas_testcase.git - - - name: Cache Thompson MP tables - id: cache-thompson-data - uses: actions/cache@v4 - with: - path: /home/runner/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: /home/runner/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 ########################################################################################## - 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 ${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_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 ${mpas_run_ROOT}/run_data/${{steps.set_vars.outputs.sst_file}} mpas.sfc_update.nc + ln -sf ${mpas_bl_ROOT}/atmosphere_model . + 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. - 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 ${MPAS_ROOT}/${mpas_ics}/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 - cp ${runner_ROOT}/thompson/* . + cd ${runner_ROOT}/run_bl + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/data/tables/thompson/* . ########################################################################################## # 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}/${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 ${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 . + 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. - 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 ${MPAS_ROOT}/${mpas_ics}/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 - cp ${runner_ROOT}/thompson/* . + cd ${runner_ROOT}/run_rt + cp ${MPAS_ROOT}/testing_and_setup/ufs-community/data/tables/thompson/* . ########################################################################################## # 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 ########################################################################################## @@ -409,8 +251,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. @@ -418,20 +260,20 @@ 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 ${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 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}} + 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}} diff --git a/.github/workflows/run_mpas_hrrr.yml b/.github/workflows/run_mpas_hrrr.yml index 9059d46676..2d166f9538 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: [push, pull_request, workflow_dispatch] +on: [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. @@ -22,10 +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/AndersJensen-NOAA/mpas_testcase.git -# - Baseline codebase repository. -# - Baseline codebase repository branch. -# # Tests: # Baseline Codebase Repository:Branch Physics IC source season build-type # 1/4) ufs-community:gsl/develop hrrrv5 gfs winter Release/Debug @@ -35,17 +29,27 @@ on: [push, pull_request, workflow_dispatch] ############################################################################################# jobs: run_mpas_hrrr: - # runs-on: ubuntu-22.04 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 + 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 }} # defaults: run: @@ -53,344 +57,150 @@ jobs: # Environmental variables env: - physics: hrrrv5 - repo: ufs-community - branch: gsl/develop - 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 - 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 - + 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: Build Software Stack needed for MPAS on GitHub server. + # Step 1: Setup ########################################################################################## - - name: Install NetCDF library - 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 + - name: Setup MPI (GNU) + if: matrix.f-compiler == 'gfortran' run: | - echo "LD_LIBRARY_PATH=${AUTOTOOLS}/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "PATH=${AUTOTOOLS}/bin:$PATH" >> $GITHUB_ENV + echo "CC=mpicc" >> $GITHUB_ENV + echo "CXX=mpicxx" >> $GITHUB_ENV + echo "FC=mpif90" >> $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. + - name: Setup PnetCDF run: | - echo "PNETCDF=${PNETCDF}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PNETCDF}/lib" >> $GITHUB_ENV - echo "PATH=$PATH:${PNETCDF}/bin" >> $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}} + echo "PNETCDF=/opt/pnetcdf" >> $GITHUB_ENV ########################################################################################## - # 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 - 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) if: contains(matrix.build-type, 'Debug') run: | - cd ${mpas_rt_ROOT}/MPAS-Model - make gfortran CORE=atmosphere DEBUG=true + cd ${MPAS_ROOT} + make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true - name: Build MPAS standalone for testing (Release) if: contains(matrix.build-type, 'Release') run: | - cd ${mpas_rt_ROOT}/MPAS-Model - make gfortran CORE=atmosphere + 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_run_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 ${mpas_run_ROOT} - git clone --recursive --branch main https://github.com/AndersJensen-NOAA/mpas_testcase.git - - - 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 - - - name: Cache UGWD data - id: cache-ugw-data - uses: actions/cache@v4 - with: - path: /home/runner/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 ########################################################################################## - 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 ${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_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_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}/tempo/* . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . - 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 + 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}/${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' 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 ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/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 - ln -sf ${runner_ROOT}/tempo/* . - ln -sf ${mpas_rt_ROOT}/MPAS-Model/src/core_atmosphere/physics/physics_noaa/TEMPO/tables/ccn_activate.bin . - 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} && mkdir run_rt && cd run_rt + 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 . + ln -sf ${MPAS_ROOT}/src/core_atmosphere/physics/physics_noahmp/parameters/NoahmpTable.TBL . + 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}/${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' 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 ${MPAS_ROOT}/${mpas_ics}.${{matrix.ic_source}}.${{matrix.season}}/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 ########################################################################################## @@ -407,8 +217,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. @@ -416,20 +226,20 @@ 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 ${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 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}} + 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}} 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/docker/Dockerfile-add-netcdf b/docker/Dockerfile-add-netcdf new file mode 100644 index 0000000000..263009edf6 --- /dev/null +++ b/docker/Dockerfile-add-netcdf @@ -0,0 +1,34 @@ +# +# 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 \ + 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..d0116c4b66 --- /dev/null +++ b/docker/Dockerfile-add-pnetcdf @@ -0,0 +1,35 @@ +# +# Install Parallel NetCDF Fortran and its dependencies +# + +ARG TOOLCHAIN +FROM add-netcdf:$TOOLCHAIN + +ARG PNFVERSION +ENV PNFVERSION=$PNFVERSION + +# 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..a8c71342c2 --- /dev/null +++ b/docker/Dockerfile-add-python @@ -0,0 +1,26 @@ +# +# 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 \ + 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..1b30550afe --- /dev/null +++ b/docker/Dockerfile-oneapi-minimal @@ -0,0 +1,51 @@ +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 +ENV MPICC /opt/intel/oneapi/mpi/latest/bin/mpiicx \ No newline at end of file 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..2e54c86387 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.gfs.winter/namelist.atmosphere @@ -0,0 +1,62 @@ +&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' + num_soil_layers = 9 +/ +&physics_mp_tempo + config_tempo_aerosolaware = .true. + config_tempo_hailaware = .true. +/ +&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..4858c5213f --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.summer/namelist.atmosphere @@ -0,0 +1,63 @@ +&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' + num_soil_layers = 9 +/ +&physics_mp_tempo + config_tempo_aerosolaware = .true. + config_tempo_hailaware = .true. +/ +&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..e41ae89258 --- /dev/null +++ b/testing_and_setup/ufs-community/cases/ufscommunity.hrrrv5.rap.winter/namelist.atmosphere @@ -0,0 +1,63 @@ +&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' + num_soil_layers = 9 +/ +&physics_mp_tempo + config_tempo_aerosolaware = .true. + config_tempo_hailaware = .true. +/ +&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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 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..061745268d --- /dev/null +++ b/testing_and_setup/ufs-community/data/get_data.sh @@ -0,0 +1,84 @@ +#!/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 $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.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/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 +tar -xvf thompson_data.tar +rm thompson_data.tar +cd ../../ + +# Get UGW data +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 +tar -xvf ugw_data.tar +rm ugw_data.tar +cd ../../ + +# Get MPAS case data +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 +tar -xvf mpas_data.tar +rm mpas_data.tar +cd ../