diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index af627a375..74b981bf0 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -9,7 +9,7 @@ defaults: shell: bash -leo pipefail {0} env: - cache_key: gcc2 # The number (#) following the cache_key "gcc" is to flush Action cache. + cache_key: gcc3 # The number (#) following the cache_key "gcc" is to flush Action cache. CC: gcc-10 FC: gfortran-10 CXX: g++-10 @@ -60,6 +60,7 @@ jobs: sudo apt install cmake spack external find spack add mpich@3.4.2 + spack add doxygen spack concretize spack install -v --fail-fast --dirty spack clean --all @@ -91,6 +92,6 @@ jobs: export FC=mpif90 cd UPP mkdir -p build && cd build - cmake -DCMAKE_INSTALL_PREFIX=../install .. + cmake -DENABLE_DOCS=ON -DCMAKE_INSTALL_PREFIX=../install .. make -j2 VERBOSE=1 make install diff --git a/.github/workflows/intel.yml b/.github/workflows/intel.yml index 9819136de..ad3f5140b 100644 --- a/.github/workflows/intel.yml +++ b/.github/workflows/intel.yml @@ -59,7 +59,7 @@ jobs: sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list sudo apt-get update - sudo apt-get install intel-oneapi-dev-utilities intel-oneapi-mpi-devel intel-oneapi-openmp intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic + sudo apt-get install intel-oneapi-dev-utilities intel-oneapi-mpi-devel intel-oneapi-openmp intel-oneapi-compiler-fortran-2023.2.1 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.2.1 echo "source /opt/intel/oneapi/setvars.sh" >> ~/.bash_profile # Install dependencies using Spack diff --git a/.gitignore b/.gitignore index c9d3f6e12..8f7abb420 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,7 @@ # USE CAUTION WHEN ADDING WILDCARDS, as some builds use different filename # # conventions than others # ############################################################################## -build*/ +build/*/ install*/ *.[aox] diff --git a/.readthedocs.yml b/.readthedocs.yml index 87283cf68..817d1e9ef 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -11,7 +11,7 @@ build: # Build documentation in the docs/ directory with Sphinx sphinx: - configuration: docs/conf.py + configuration: doc/UserGuide/conf.py # Build documentation with MkDocs #mkdocs: @@ -22,6 +22,5 @@ formats: all # Optionally set the version of Python and requirements required to build your docs python: -# version: 3.7 install: - - requirements: docs/requirements.txt + - requirements: doc/UserGuide/requirements.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 5874d98ac..480dd40c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") # Handle user options. option(OPENMP "use OpenMP threading" ON) option(BUILD_POSTEXEC "Build NCEPpost executable" ON) +option(BUILD_WITH_NEMSIO "Build NCEPpost with nemsio library" ON) option(BUILD_WITH_WRFIO "Build NCEPpost with WRF-IO library" OFF) option(BUILD_WITH_IFI "Build NCEPpost with In-Flight Icing (IFI) library if present" OFF) option(REQUIRE_IFI "Abort if libIFI is not found ; enables BUILD_WITH_IFI=ON" OFF) @@ -84,9 +85,10 @@ else() endif() if(BUILD_POSTEXEC) - find_package(nemsio REQUIRED) - find_package(sfcio REQUIRED) - find_package(sigio REQUIRED) + if(BUILD_WITH_NEMSIO) + find_package(nemsio REQUIRED) + find_package(sigio REQUIRED) + endif() find_package(sp REQUIRED) find_package(w3emc REQUIRED) if(BUILD_WITH_WRFIO) @@ -116,7 +118,7 @@ add_subdirectory(parm) # If desired, build the doxygen docs. if(ENABLE_DOCS) find_package(Doxygen REQUIRED) - add_subdirectory(docs) + add_subdirectory(doc) endif() ### Package config diff --git a/README.md b/README.md index 004fd1db6..291765289 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# Unified Post-Processing (UPP) +# Unified Post Processor (UPP) The Unified Post Processor (UPP) software package is a software package designed to generate useful products from raw model @@ -7,11 +7,11 @@ output. The UPP is currently used in operations with the Global Forecast System (GFS), GFS Ensemble Forecast System (GEFS), North American -Mesoscale (NAM), Rapid Refresh (RAP), High Resolution Rapid Refresh +Mesoscale (NAM), Rapid Refresh (RAP), High-Resolution Rapid Refresh (HRRR), Short Range Ensemble Forecast (SREF), and Hurricane WRF (HWRF) -applications. It is also used in the Unified Forecasting System (UFS), -including the Rapid Refresh Forecast System (RRFS), Hurricane Application -Forecasting System (HAFS), and the Medium Range Weather (MRW) and Short +applications. It is also used in the Unified Forecast System (UFS), +including the Rapid Refresh Forecast System (RRFS), Hurricane Analysis and +Forecast System (HAFS), and the Medium-Range Weather (MRW) and Short- Range Weather (SRW) Applications. The UPP provides the capability to compute a variety of diagnostic @@ -19,15 +19,14 @@ fields and interpolate to pressure levels or other vertical coordinates. UPP also incorporates the Joint Center for Satellite Data Assimilation -(JCSDA) Community Radiative Transfer Model (CRTM) to compute model -derived brightness temperature (TB) for various instruments and +(JCSDA) Community Radiative Transfer Model (CRTM) to compute model-derived brightness temperature (TB) for various instruments and channels. This additional feature enables the generation of a number of simulated satellite products including GOES products. Output from the UPP is in National Weather Service (NWS) and World Meteorological Organization (WMO) GRIB2 format and can be used -directly by visualization, plotting, or verification packages, or for -further downstream post-processing, e.g. statistical post-processing +directly by visualization, plotting, or verification packages or for +further downstream post-processing, e.g., statistical post-processing techniques. Examples of UPP products include: @@ -48,26 +47,24 @@ Examples of UPP products include: Support for the UFS UPP is provided through [GitHub Discussions](https://github.com/NOAA-EMC/UPP/discussions). ## Documentation -User Guide for latest public release: https://upp.readthedocs.io/en/latest/. +User Guide for latest standalone public release: https://upp.readthedocs.io/en/latest/. Technical code-level documentation: https://noaa-emc.github.io/UPP/. ## Developer Information -Please see review the [wiki](https://github.com/NOAA-EMC/UPP/wiki) +Please review the [wiki](https://github.com/NOAA-EMC/UPP/wiki) ## Authors NCEP/EMC Developers -Code Managers: Wen Meng, Huiya Chuang, Kate Fossell +Code Managers: Wen Meng, Huiya Chuang, Fernando Andrade-Maldonado ## Prerequisites The UPP requires certain NCEPLIBS packages to be installed via the -HPC-Stack project. For instructions on installing these packages as a -bundle via HPC-Stack, see: https://hpc-stack.readthedocs.io/en/latest/. -Users may instead install packages via spack-stack. For instructions, -see: https://spack-stack.readthedocs.io/en/latest/. +spack-stack project. For instructions on installing these packages as a +bundle via spack-stack, see: https://spack-stack.readthedocs.io/en/latest/. The `UPP/modulefiles` directory indicates which package versions are used and supported on Level 1 systems. @@ -87,7 +84,6 @@ BUILD_POSTEXEC): - [NCEPLIBS-sigio](https://github.com/NOAA-EMC/NCEPLIBS-sigio) - [NCEPLIBS-sfcio](https://github.com/NOAA-EMC/NCEPLIBS-sfcio) - [NCEPLIBS-nemsio](https://github.com/NOAA-EMC/NCEPLIBS-nemsio) -- [NCEPLIBS-gfsio](https://github.com/NOAA-EMC/NCEPLIBS-gfsio) The [NCEPLIBS-wrf_io](https://github.com/NOAA-EMC/NCEPLIBS-wrf_io) library is required to build with NCEPpost with WRF-IO library (cmake @@ -110,7 +106,7 @@ Builds include: - Inline post (UPP library): Currently only supported for the GFS, RRFS, HAFS, and the UFS-MRW Application. -- Offline post (UPP executable): Supported for Regional applications +- Offline post (UPP executable): Supported for regional applications including SRW, RRFS, HAFS, and standalone applications of UPP. diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile index 8b610a4ee..d4ca030c9 100644 --- a/ci/Jenkinsfile +++ b/ci/Jenkinsfile @@ -1,120 +1,193 @@ +def formatComment(machine) { + script { + def buildResult = currentBuild.resultIsBetterOrEqualTo("SUCCESS") ? "PASSED" : "FAILED" + def commentMessage = "${machine} UPP Regression Tests ${buildResult}" + if (fileExists('ci/changed_results.txt')) { + echo 'changed_results.txt file found' + sh "cat ci/changed_results.txt" + def changedResults = readFile(file: 'ci/changed_results.txt') + def failMessage = commentMessage + "\n\n" + changedResults + def formattedMessage = failMessage.replaceAll("\n", "\\\\n") + postGitHubComment(formattedMessage) + sh "rm -rf ci/changed_results.txt" + } else { + echo 'changed_results.txt file not found' + postGitHubComment(commentMessage) + } + } +} + + +def postGitHubComment(commentMessage) { + script { + withCredentials([string(credentialsId: 'GithubJenkinsNew', variable: 'ACCESS_TOKEN')]) { + def apiUrl = "https://api.github.com/repos/NOAA-EMC/UPP/issues/${env.CHANGE_ID}/comments" + def curlCommand = "curl -s -H \"Authorization: token " + ACCESS_TOKEN + "\" \\\n" + + "-X POST -d '{\"body\": \"" + commentMessage + "\"}' \\\n" + + "\"" + apiUrl + "\"" + + def response = sh(script: curlCommand, returnStatus: true) + if (response == 0) { + echo "Comment added successfully to PR #${env.CHANGE_ID}" + } else { + error "Failed to add comment to PR #${env.CHANGE_ID}" + } + } + } +} + + pipeline { - agent none - stages { - stage('UPP Regression Tests') { - agent { - label 'built-in' - } - steps { - script { - for (label in pullRequest.labels) { - if ((label.matches("orion"))) { - env.CHOICE_NODE='orion' - } - else if ((label.matches("hera"))) { - env.CHOICE_NODE='hera' - } - else if ((label.matches("hercules"))) { - env.CHOICE_NODE='hercules' - } - else if ((label.matches("jet"))) { - env.CHOICE_NODE='jet' - } - else { - env.CHOICE_NODE='none' - } - } -// Why do I need another if..block, because it just works this way. + agent none + stages { + stage('UPP Regression Tests') { + agent { + label 'built-in' + } + steps { + script { + for (label in pullRequest.labels) { + if ((label.matches("orion"))) { + env.CHOICE_NODE='orion' + } + else if ((label.matches("hera"))) { + env.CHOICE_NODE='hera' + } + else if ((label.matches("hercules"))) { + env.CHOICE_NODE='hercules' + } + else if ((label.matches("jet"))) { + env.CHOICE_NODE='jet' + } + else { + env.CHOICE_NODE='none' + } + } + // Why do I need another if..block, because it just works this way. + if (CHOICE_NODE == 'orion') { + echo "Starting up orion ${CHOICE_NODE}...this might take 5-10 minutes...please be patient." + } + else if (CHOICE_NODE == 'jet') { + echo "Starting up jet ${CHOICE_NODE}...this might take 5-10 minutes...please be patient." + } + else if (CHOICE_NODE == 'hercules') { + echo "Starting up hera ${CHOICE_NODE}...this might take 5-10 minutes...please be patient." + } + else if (CHOICE_NODE == 'hera') { + echo "Starting up hera ${CHOICE_NODE}...this might take 5-10 minutes...please be patient." + } + else { + echo "${CHOICE_NODE} is NOT a platform, moving on..." + } + } + } + } + stage('Run UPP RTs on Orion') { + agent { + label "orion" + } + environment { + ACCNR = 'epic' + NODE_PATH = '/work/noaa/epic/UPP/jenkins-ci/orion' + } + steps { + catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { + cleanWs() + checkout scm + sh ''' + echo $(pwd) + cd ci/ + ./rt.sh -a ${ACCNR} -r `pwd`/rundir -t `pwd`/../ + ''' + } + } + post { + always { + script { + formatComment("Orion") + } + } + } + } + stage('Run UPP RTs on Hera') { + agent { + label "hera" + } + environment { + ACCNR = 'epic' + NODE_PATH = '/scratch2/NAGAPE/epic/UPP/jenkins-ci' + } + steps { + catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { + cleanWs() + checkout scm + sh ''' + echo $(pwd) + cd ci/ + ./rt.sh -a ${ACCNR} -r `pwd`/rundir -t `pwd`/../ + ''' + } + } + post { + always { + script { + formatComment("Hera") + } + } + } + } + stage('Run UPP RTs on Hercules') { + agent { + label "hercules" + } + environment { + ACCNR = 'epic' + NODE_PATH = '/work/noaa/epic/UPP/jenkins-ci/hercules' + } + steps { + catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { + cleanWs() + checkout scm + sh ''' + echo $(pwd) + cd ci/ + ./rt.sh -a ${ACCNR} -r `pwd`/rundir -t `pwd`/../ + ''' + } + } + post { + always { + script { + formatComment("Hercules") + } + } + } + } + // TO BE ADDED... + // stage('Run UPP RTs on Jet') { + // agent { + // label "jet" + // } + // environment { + // ACCNR = 'hfv3gfs' + // NODE_PATH = '/mnt/lfs4/HFIP/hfv3gfs/role.epic/' + // } + // steps { + // catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { + // cleanWs() + // checkout scm + // sh ''' - if (CHOICE_NODE == 'orion') { - echo "Starting up orion ${CHOICE_NODE}...this might take 5-10 minutes...please be patient." - } - else if (CHOICE_NODE == 'jet') { - echo "Starting up jet ${CHOICE_NODE}...this might take 5-10 minutes...please be patient." - } - else if (CHOICE_NODE == 'hercules') { - echo "Starting up hera ${CHOICE_NODE}...this might take 5-10 minutes...please be patient." - } - else if (CHOICE_NODE == 'hera') { - echo "Starting up hera ${CHOICE_NODE}...this might take 5-10 minutes...please be patient." - } - else { - echo "${CHOICE_NODE} is NOT a platform, moving on..." - } - } - } - } - stage('Run UPP RTs on Hera') { - agent { - label "hera" - } - environment { - ACCNR = 'epic' - NODE_PATH = '/scratch2/NAGAPE/epic/UPP/jenkins-ci' - } - steps { - - cleanWs() - checkout scm - sh ''' - echo $(pwd) - cd ci/ - ./rt.sh -a ${ACCNR} -r `pwd`/rundir -t `pwd`/../ - ''' - } - } - stage('Run UPP RTs on Orion') { - agent { - label "orion" - } - environment { - ACCNR = 'epic' - NODE_PATH = '/work/noaa/epic/UPP/jenkins-ci/orion' - } - steps { - - cleanWs() - checkout scm - sh ''' - echo $(pwd) - cd ci/ - ./rt.sh -a ${ACCNR} -r `pwd`/rundir -t `pwd`/../ - ''' - } - } - stage('Run UPP RTs on Hercules') { - agent { - label "hercules" - } - environment { - ACCNR = 'epic' - NODE_PATH = '/work/noaa/epic/UPP/jenkins-ci/hercules' - } - steps { - - cleanWs() - checkout scm - sh ''' - - ''' - } - } - stage('Run UPP RTs on Jet') { - agent { - label "jet" - } - environment { - ACCNR = 'hfv3gfs' - NODE_PATH = '/mnt/lfs4/HFIP/hfv3gfs/role.epic/' - } - steps { - - cleanWs() - checkout scm - sh ''' - - ''' - } - } - } + // ''' + // } + // } + // post { + // always { + // script { + // formatComment("Jet") + // } + // } + // } + // } + } } diff --git a/ci/rt.sh b/ci/rt.sh index 7bce25424..57cea7942 100755 --- a/ci/rt.sh +++ b/ci/rt.sh @@ -65,26 +65,27 @@ if [ $mac2 = hf ]; then # for HERA export machine=HERA export homedir=${homedir:-"/scratch2/NAGAPE/epic/UPP/test_suite"} export rundir=${rundir:-"/scratch1/NCEPDEV/stmp2/${USER}"} - module use /scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.0/envs/unified-env-noavx512/install/modulefiles/Core + module use /scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.6.0/envs/unified-env-rocky8/install/modulefiles/Core module load stack-intel/2021.5.0 module load stack-intel-oneapi-mpi/2021.5.1 - module load prod_util/1.2.2 + module load prod_util/2.1.1 elif [ $mac = O ] ; then export machine=ORION export homedir=${homedir:-"/work/noaa/epic/UPP"} export rundir=${rundir:-"/work2/noaa/stmp/$USER"} - module use /work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core + module use /work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.6.0/envs/unified-env/install/modulefiles/Core module load stack-intel/2022.0.2 module load stack-intel-oneapi-mpi/2021.5.1 - module load prod-util/1.2.2 + module load prod_util/2.1.1 elif [ $mac3 = herc ] ; then export machine=HERCULES export homedir=${homedir:-"/work/noaa/epic/UPP"} export rundir=${rundir:-"/work2/noaa/stmp/$USER"} - module use /work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core + module use /work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.6.0/envs/unified-env/install/modulefiles/Core module load stack-intel/2021.9.0 module load stack-intel-oneapi-mpi/2021.9.0 - module load prod-util/1.2.2 + module load prod_util/2.1.1 + module load stack-python/3.10.13 fi #set working directory @@ -236,12 +237,20 @@ for job_id in $jobid_list; do done python ${test_v}/ci/rt-status.py +test_results=$? # Cleanup rt log cd ${test_v}/ci echo "rundir: ${rundir}" > rt.log.${machine}.temp cat rt.log.${machine} | grep "test:" >> rt.log.${machine}.temp cat rt.log.${machine} | grep "baseline" >> rt.log.${machine}.temp +python ${test_v}/ci/rt-status.py >> rt.log.${machine}.temp cat rt.log.${machine}.temp > rt.log.${machine} rm rt.log.${machine}.temp mv rt.log.${machine} ${test_v}/tests/logs + +# should indicate failure to Jenkins +if [ $test_results -ne 0 ]; then + python ${test_v}/ci/rt-status.py > changed_results.txt + exit 1 +fi diff --git a/ci/spack.yaml b/ci/spack.yaml index ddfcfe83d..8070074bd 100644 --- a/ci/spack.yaml +++ b/ci/spack.yaml @@ -6,19 +6,19 @@ spack: - intel - gcc@10:10 specs: - - netcdf-c@4.7.4 - - netcdf-fortran@4.5.3 + - netcdf-c@4.9.2 + - netcdf-fortran@4.6.1 - bacio@2.4.1 - - w3emc@2.9.2 + - w3emc@2.10.0 - g2@3.4.5 - - g2tmpl@1.10.0 - - sp@2.3.3 - - ip@3.3.3 + - g2tmpl@1.10.2 + - sp@2.5.0 + - ip@4.3.0 - sigio@2.3.2 - sfcio@1.4.1 - nemsio@2.5.4 - wrf-io@1.2.0 - - crtm@2.3.0 + - crtm@2.4.0.1 view: true concretizer: unify: true diff --git a/docs/2D-decomp.md b/doc/2D-decomp.md similarity index 100% rename from docs/2D-decomp.md rename to doc/2D-decomp.md diff --git a/docs/CMakeLists.txt b/doc/CMakeLists.txt similarity index 94% rename from docs/CMakeLists.txt rename to doc/CMakeLists.txt index 633bbbd0f..c6774887e 100644 --- a/docs/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -7,7 +7,7 @@ set(abs_top_srcdir "${CMAKE_SOURCE_DIR}") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) # Build documentation with target all. -add_custom_target(doc ALL +add_custom_target(upp_doc ALL ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generating API Documentation with Doxygen" VERBATIM) diff --git a/docs/Doxyfile.in b/doc/Doxyfile.in similarity index 99% rename from docs/Doxyfile.in rename to doc/Doxyfile.in index e139a1142..c0609df47 100644 --- a/docs/Doxyfile.in +++ b/doc/Doxyfile.in @@ -846,8 +846,8 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = @abs_top_srcdir@/docs/user_guide.md \ - = @abs_top_srcdir@/docs/2D-decomp.md \ +INPUT = @abs_top_srcdir@/doc/user_guide.md \ + = @abs_top_srcdir@/doc/2D-decomp.md \ @abs_top_srcdir@/sorc/ncep_post.fd \ @config_srcdir@ @@ -1007,7 +1007,7 @@ FILTER_SOURCE_PATTERNS = # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. -USE_MDFILE_AS_MAINPAGE = @abs_top_srcdir@/docs/sp_user_guide.md +USE_MDFILE_AS_MAINPAGE = @abs_top_srcdir@/doc/user_guide.md # By default, all characters from position 72 are to be considered as comment. # This prevents Doxygen from recognizing certain variables as undocumented diff --git a/docs/Release_Notes.ncep_post.v7.0.0 b/doc/Release_Notes.ncep_post.v7.0.0 similarity index 100% rename from docs/Release_Notes.ncep_post.v7.0.0 rename to doc/Release_Notes.ncep_post.v7.0.0 diff --git a/docs/Acknowledgments.rst b/doc/UserGuide/BackgroundInfo/Acknowledgments.rst similarity index 82% rename from docs/Acknowledgments.rst rename to doc/UserGuide/BackgroundInfo/Acknowledgments.rst index 5fa482965..770b58074 100644 --- a/docs/Acknowledgments.rst +++ b/doc/UserGuide/BackgroundInfo/Acknowledgments.rst @@ -2,20 +2,20 @@ Acknowledgments *************** -The adaptation of the original WRF Post Processor package and Users Guide (by Mike Baldwin of +The adaptation of the original WRF Post Processor package and User's Guide (by Mike Baldwin of NSSL/CIMMS and Hui-Ya Chuang of NCEP/EMC) was done by Lígia Bernardet (NOAA/ESRL/DTC) in collaboration with Dusan Jovic (NCEP/EMC), Robert Rozumalski (COMET), Wesley Ebisuzaki (NWS/HQTR), and Louisa Nance (NCAR/RAL/DTC). Upgrades to WRF Post Processor versions 2.2 and higher were performed by Hui-Ya Chuang, Dusan Jovic, and Mathew Pyle (NCEP/EMC). Transitioning of the documentation from the WRF Post Processor to the Unified Post Processor was performed by Nicole McKee (NCEP/EMC), Hui-Ya Chuang (NCEP/EMC), and Jamie Wolff (NCAR/RAL/DTC). Implementation of the Community Unified Post Processor was performed by -Tricia Slovacek, Kate Fossell, and Tracy Hertneky (NCAR/RAL/DTC). +Tricia Slovacek, Kate Fossell, and Tracy Hertneky (NCAR/RAL/DTC). Currently, community user support is provided by the Earth Prediction Innovation Center (EPIC) UPP team. **Acknowledging the UPP Team:** If significant help was provided via the UPP helpdesk for work resulting in a publication, please -acknowledge the Earth Prediction Innovation Center UPP Team. +acknowledge the EPIC UPP team. For referencing this document please use: -UPP Users Guide V11.0.0, 24 pp. +UPP User's Guide V11.0.0, 24 pp. diff --git a/docs/CodeOverview.rst b/doc/UserGuide/BackgroundInfo/CodeOverview.rst similarity index 87% rename from docs/CodeOverview.rst rename to doc/UserGuide/BackgroundInfo/CodeOverview.rst index 69c2b1b1e..57051c6bd 100644 --- a/docs/CodeOverview.rst +++ b/doc/UserGuide/BackgroundInfo/CodeOverview.rst @@ -23,20 +23,20 @@ and generates output in :term:`GRIB2` format. It uses :term:`MPI` parallel code products like those used operationally on the same operational grids. Examples of UPP products include: - T, Z, humidity, wind, cloud water, cloud ice, rain, and snow on pressure levels - - SLP, shelter level T, humidity, and wind fields + - SLP, shelter-level T, humidity, and wind fields - Precipitation-related fields - PBL-related fields - Severe weather products (e.g. CAPE, Vorticity, Wind shear) - Radiative/Surface fluxes - - Cloud related fields + - Cloud-related fields - Aviation products - Radar reflectivity products - Satellite look-alike products -A full list of fields that can be generated by the UPP is provided in :doc:`UPP_GRIB2_Table_byID`. +A full list of fields that can be generated by the UPP is provided in :doc:`../tables/UPP_GRIB2_Table_byID`. As of v11.0.0, the UPP has 2D decomposition capabilities and is also backwards compatible for 1D decomposition. -The functionality demonstrates run-time improvements, especially for larger domains. Support for this +The functionality demonstrates runtime improvements, especially for larger domains. Support for this feature is available for standalone UPP applications. Support for the community UPP is provided through `GitHub Discussions `__. @@ -48,7 +48,7 @@ Transfer Model (:term:`CRTM`) to compute model-derived brightness temperature (T channels. This additional feature enables the generation of simulated satellite products such as: - * Geostationary Operational Environmental Satellite (GOES) + * Geostationary Operational Environmental Satellites (GOES) * Advanced Microwave Scanning Radiometer (AMSRE) * Special Sensor Microwave Imager/Sounder (SSMIS) @@ -77,24 +77,22 @@ The main UPP repository is named ``UPP``; it is available on GitHub at https://g Under the main **UPP** directory reside the following relevant subdirectories (the * indicates a directory that exists only after the build is complete): - | **exec***: Contains the :bolditalic:`upp.x` executable after successful compilation + | **exec***: Contains the ``upp.x`` executable after successful compilation - | **modulefiles**: Contains modulefiles for specific platforms and compilers for building on - pre-configured machines. + | **modulefiles**: Contains modulefiles for specific platforms and compilers for building on preconfigured machines. - | **parm**: Contains parameter files, which can be modified by the user to control how the post - processing is performed. + | **parm**: Contains parameter files, which can be modified by the user to control how the post processing is performed. | **scripts**: Contains a sample run script to process fv3 history files. - | - **run_upp**: Script that runs the stand-alone UPP package (:bolditalic:`upp.x`) + | - ``run_upp``: Script that runs the standalone UPP package (``upp.x``) | **sorc**: Contains source code for: - | - **ncep_post.fd**: Source code for the UPP + | - ``ncep_post.fd``: Source code for the UPP | **tests**: Contains the scripts used to install UPP - | - **compile_upp.sh**: UPP build script - | - **build***: Contains the UPP build - | - **install***: Contains the installed executable (bin/upp.x), modules, and libraries + | - ``compile_upp.sh``: UPP build script + | - ``build*``: Contains the UPP build + | - ``install*``: Contains the installed executable (``bin/upp.x``), modules and libraries When the ``develop`` branch of the UPP repository is cloned, the basic directory structure follows the example below. Some files and directories have been removed for brevity. diff --git a/docs/Introduction.rst b/doc/UserGuide/BackgroundInfo/Introduction.rst similarity index 91% rename from docs/Introduction.rst rename to doc/UserGuide/BackgroundInfo/Introduction.rst index 9844c8453..4ee8a576a 100644 --- a/docs/Introduction.rst +++ b/doc/UserGuide/BackgroundInfo/Introduction.rst @@ -13,7 +13,7 @@ Analysis and Forecast System (HAFS), and the Medium-Range Weather (:term:`MRW`) Applications. This software package can be run inline---built as a library to be used by the model---and offline---built -stand-alone and run separately from the model. This documentation largely details the offline +standalone and run separately from the model. This documentation primarily details the offline procedures. ===================== diff --git a/doc/UserGuide/BackgroundInfo/index.rst b/doc/UserGuide/BackgroundInfo/index.rst new file mode 100644 index 000000000..8e3c9ca1b --- /dev/null +++ b/doc/UserGuide/BackgroundInfo/index.rst @@ -0,0 +1,10 @@ +Background Information +========================= + +.. toctree:: + :maxdepth: 3 + + + Introduction + CodeOverview + Acknowledgments diff --git a/doc/UserGuide/BuildingRunningTesting/BuildingUPP.rst b/doc/UserGuide/BuildingRunningTesting/BuildingUPP.rst new file mode 100644 index 000000000..ca11fa689 --- /dev/null +++ b/doc/UserGuide/BuildingRunningTesting/BuildingUPP.rst @@ -0,0 +1,111 @@ +.. role:: underline + :class: underline +.. role:: bolditalic + :class: bolditalic + +.. _building-upp: + +************************* +Building UPP Stand-Alone +************************* + +The UPP uses a CMake-based build system to integrate all the required components for building the UPP. +Once built, the UPP can be run standalone (outside the :term:`UFS` Applications) to post-process model output. + +===================== +Software Requirements +===================== + +The UPP is tested on a variety of research platforms, including NOAA HPC systems (e.g., Hera, Orion). These supported platforms are preconfigured for building and running the UPP and already +have the required libraries available via `spack-stack `__ in a centralized +location. The :term:`spack-stack` is a :term:`Spack`-based method for installing UFS prerequisite software libraries. + +Users working on unsupported platforms will need to install spack-stack on their system and can do so following +the instructions in the :doc:`spack-stack User's Guide `. + +.. note:: + + Users can install :term:`HPC-Stack` instead of spack-spack by following the instructions in the :doc:`HPC-Stack User's Guide `. However, support for HPC-Stack is being deprecated, and limited assistance is available for use of HPC-Stack with the UPP. + +---------------- +Common Modules +---------------- + +As of February 1, 2024, the UPP uses the following `common modules `__ from spack-stack: + +.. code-block:: console + + cmake 3.16.1+ + hdf5/1.14.0 + netcdf-c 4.9.2 + netcdf-fortran 4.6.1 + jasper 2.0.32 + libpng 1.6.37 / png 1.6.35 + zlib 1.2.13 + g2 3.4.5 + g2tmpl 1.10.2 + parallelio 2.5.10 + bacio 2.4.1 + ip 4.3.0 + sp 2.5.0 + crtm 2.4.0.1 + w3emc 2.10.0 + nemsio 2.5.4 + sigio 2.3.2 + sfcio 1.4.1 + wrf_io 1.2.0 + +Individual machines may subsequently load slightly different versions. The most updated list of modules for a given machine can be viewed `in each machine's modulefile `__. +Users on non-Tier-1 systems should look at the modulefile for the system +whose architecture most closely resembles their own system's architecture to determine which modules they may need. + +============================ +Obtaining and Installing UPP +============================ + +Building and running UPP v11.0.0 has been tested and is supported on the following pre-configured platforms. + ++---------------+----------------------+ +| System | Compiler and Version | ++===============+======================+ +| NOAA Hera | Intel 18.0.5.274 | ++---------------+----------------------+ +| NOAA Orion | Intel 2018.4 | ++---------------+----------------------+ + +To install the UPP, navigate to the directory where you want to install UPP and clone the repository. + +.. code-block:: console + + git clone -b branch-or-tag-name https://github.com/NOAA-EMC/UPP + +where, ``branch-or-tag-name`` is the release branch or tag you wish to clone (e.g., ``upp_v11.0.0``). (Leaving off the ``-b`` argument will clone all branches of the repository.) + +Move to the directory with the build script and build the UPP. + +.. code-block:: console + + cd UPP/tests + + ./compile_upp.sh + +.. note:: + To build in debug mode, you can add ``-DCMAKE_BUILD_TYPE=Debug`` to the ``cmake_opts`` parameter in the ``compile_upp.sh`` script. + This removes compiler optimization flags and adds ``-g`` to the Fortran compilation. You can also use + ``-DCMAKE_BUILD_TYPE=RELWITHDEBINFO``, which gives the ``-g``, but keeps the ``-O2`` optimization + for the Fortran compilation. + +Move back to the top-level UPP directory and create a directory where the CRTM fix files will be unpacked. Download the fix files from the GitHub `release page +`__ or use the ``wget`` command. Unpack the tar file. + +.. code-block:: console + + cd ../ + mkdir crtm && cd crtm + wget https://github.com/NOAA-EMC/UPP/releases/download/upp_v11.0.0/fix.tar.gz + tar -xzf fix.tar.gz + +.. note:: + To make a clean build, simply remove both the ``tests/build`` and ``tests/install`` directories and the + ``exec/upp.x`` executable and then rerun the ``compile_upp.sh`` script. This is recommended if a mistake is made during the installation process. + diff --git a/doc/UserGuide/BuildingRunningTesting/InputsOutputs.rst b/doc/UserGuide/BuildingRunningTesting/InputsOutputs.rst new file mode 100644 index 000000000..67a50c936 --- /dev/null +++ b/doc/UserGuide/BuildingRunningTesting/InputsOutputs.rst @@ -0,0 +1,175 @@ +.. role:: underline + :class: underline +.. role:: bolditalic + :class: bolditalic + +.. _input-output: + +*********************** +UPP Inputs and Outputs +*********************** + +This section describes the input files used to run the UPP and the resulting output files. + +.. _input-files: + +=========== +Input Files +=========== + +The UPP requires the following input files: + - The model forecast file + - The ``itag`` namelist file + - The :term:`GRIB2` control file (e.g., ``postxconfig-NT.txt``) + - Additional data files (e.g., lookup tables, coefficient files for satellites) + +.. _model-forecast: + +-------------- +Model Forecast +-------------- + +The UPP ingests FV3 :term:`write component` files in parallel :term:`netCDF` format. + +The table below is a list of the unified model variables available from the :term:`FV3` model core. Whether a +specific variable is able to be read by the UPP relies on dependencies such as physics options and choice of model. +This table does not include variables that are diagnosed when running the UPP. + +UFS Unified Model Variables + - :doc:`../tables/UFS_unified_variables_table` + +.. _itag: + +---- +ITAG +---- + +The file called ``itag`` is a text file that contains the fortran namelist ``&model_inputs`` as +well as the 2D decomposition specification in ``&nampgb``. It is read in by the ``upp.x`` executable +from standard input (stdin -- unit 5) and is generated automatically within the UFS application workflow or standalone run +script based on user-defined options. It should not be necessary to edit this file. For description purposes, +the namelists ``&model_inputs`` and ``&nampgb`` (in the ``itag`` file) contain the following lines for FV3: + +:bolditalic:`&model_inputs` + +#. ``fileName``: Name of the FV3 (pressure level) output file to be post-processed. + +#. ``IOFORM``: Format of FV3 model output (netcdfpara). + +#. ``grib``: Format of UPP output (grib2) + +#. ``DateStr``: Forecast valid time (not model start time) in YYYY-MM-DD_HH:00:00 format (the forecast time + desired to be post-processed). + +#. ``MODELNAME``: Model used (GFS, FV3R --- regional FV3, also known as the :term:`LAM`). + +#. ``fileNameFlux``: Name of the FV3 (surface) output file to be post-processed. + +#. ``fileNameFlat``: Name of configuration file (``postxconfig-NT.txt``) + +:bolditalic:`&nampgb` + +#. ``numx``: Number of subdomains in the x-direction used for 2D decomposition. + +.. _control-file: + +------------ +Control File +------------ + +The user interacts with the UPP through the control file to define what fields and levels to output. It +is composed of a header and a body. The header specifies the output file information. The body includes which fields and levels to process. + +A default control file, ``postxconfig-NT.txt``, is provided and read by the UPP. Users who wish to customize the control file to add or remove fields and/or levels may do so by modifying ``postcntrl.xml`` and then remaking the text file as described in the later section: :ref:`create_txt_file`. + +.. Note:: + The control file names ``postxconfig-NT.txt`` and ``postcntrl.xml`` are generic names and are different depending on the application used. Control files for various operational models are located in the ``UPP/parm`` directory. + +.. _control-output: + +Selecting Which Variables the UPP Outputs +------------------------------------------- + +To output a field, the body of the control file needs to contain an entry for the appropriate variable. +If an entry for a particular field is not yet available in the control file, it may be added to the +control file with the appropriate entries for that field. For variables found on vertical levels (e.g., isobaric or height levels), the desired levels to be output must be listed (see next section: +:ref:`control_levels`). A list of available GRIB2 fields that can be output by UPP can be found in the +table :doc:`../tables/UPP_GRIB2_Table_byID`. Please note that some fields are dependent on model, physics, and other fields. + +.. _control_levels: + +Controlling which levels the UPP outputs +---------------------------------------- + +The ```` tag in the ``postcntrl.xml`` file is used to list the desired levels for output. The following +levels are currently available for output: + +- For isobaric output, 46 levels are possible, from 2 to 1000 hPa (*2, 5, 7, 10, 20, 30, 50, 70 mb and + then every 25 mb from 75 to 1000 mb*). The complete list of levels is specified in + ``sorc/ncep_post.fd/CTLBLK.f``. + + - Modify specification of variable ``LSMDEF`` to change the number of pressure levels: LSMDEF=47 + - Modify specification of ``SPLDEF`` array to change the values of pressure levels: + (/200.,500.,700.,1000.,2000.,3000.,5000.,7000.,7500.,10000.,12500.,15000.,17500.,20000., …/) + +- For model-level output, all model levels are possible, from the highest to the lowest. +- When using the Noah LSM, the soil layers are 0-10 cm, 10-40 cm, 40-100 cm, and 100-200 cm. +- When using the RUC LSM, the soil levels are 0 cm, 1 cm, 4 cm, 10 cm, 30 cm, 60 cm, 100 cm, 160 cm, + and 300 cm. (For the old RUC LSM, there are only 6 layers, and if using this, you will need to change + ``NSOIL`` for “RUC LSM” from 9 to 6 in the ``sorc/ncep_post.fd/WRFPOST.f`` routine.) +- When using Pliem-Xiu LSM, there are two layers: 0-1 cm, 1-100 cm +- For low, mid, and high cloud layers, the layers are :math:`\geq`\ 642 hPa, :math:`\geq`\ 350 hPa, and + <350 hPa, respectively. +- For PBL layer averages, the levels correspond to 6 layers with a thickness of 30 hPa each. +- For flight level, the levels are 30 m, 50 m, 80 m, 100 m, 305 m, 457 m, 610 m, 914 m, 1524 m, 1829 m, + 2134 m, 2743 m, 3658 m, 4572 m, 6000 m, 7010 m. +- For AGL radar reflectivity, the levels are 4000 and 1000 m. +- For surface or shelter-level output, the ```` is not necessary. + +.. _create_txt_file: + +Creating the Flat Text File +--------------------------- + +If the control file requires any modifications, a preprocessing step will be required by the user to +convert the modified XML file ``parm/postcntrl.xml`` to a flat text file +``parm/postxconfig-NT.txt``. The user will first need to edit the ``postcntrl.xml`` +file to declare which fields are to be output from the UPP. + +In order to ensure that the user-edited XML files are error free, XML stylesheets +(``parm/EMC_POST_CTRL_Schema.xsd`` and ``EMC_POST_Avblflds_Schema.xsd``) can +be used to validate both the ``postcntrl.xml`` and ``post_avblflds.xml`` files, +respectively. Confirmation of validation will be given (e.g., ``postcntrl.xml`` validates) or otherwise +return errors if it does not match the schema. This step is optional, but acts as a safeguard to avoid +run-time failures with the UPP. To run the validation: + +.. code-block:: console + + xmllint --noout --schema EMC_POST_CTRL_Schema.xsd postcntrl.xml + xmllint --noout --schema EMC_POST_Avblflds_Schema.xsd post_avblflds.xml + +Once the XMLs are validated, the user will need to generate the flat file. The command below will run the +Perl program ``parm/PostXMLPreprocessor.pl`` to generate the post flat file: + +.. code-block:: console + + /usr/bin/perl PostXMLPreprocessor.pl your_user_defined_xml post_avblflds.xml your_user_defined_flat + +where ``your_user_defined_xml`` is your modified XML and ``your_user_defined_flat`` is the output text file. + +.. _output-files: + +============ +Output Files +============ + +Upon a successful run, ``upp.x`` will generate GRIB2 output files in the post processor +working directory. These files will include all fields that were requested in the control file. + +When running UPP standalone, the following GRIB2 output files will be generated: + + | **GFS Model**: ``GFSPRS.HHH`` + | **LAM (Limited Area Model)**: ``NATLEV.HHH`` and ``PRSLEV.HHH`` + +When executed with the provided run script, UPP provides log files in the post-processor working directory named +``upp.fHHH.out``, where ``HHH`` is the forecast hour. These log files may be consulted for further runtime information in the event of an error. diff --git a/doc/UserGuide/BuildingRunningTesting/RunningUPP.rst b/doc/UserGuide/BuildingRunningTesting/RunningUPP.rst new file mode 100644 index 000000000..f72df10be --- /dev/null +++ b/doc/UserGuide/BuildingRunningTesting/RunningUPP.rst @@ -0,0 +1,127 @@ +.. role:: underline + :class: underline +.. role:: bolditalic + :class: bolditalic + +.. _running-upp: + +*********************** +Running UPP Stand-Alone +*********************** + +A script (``run_upp``) for running the UPP package is included in the ``/scripts`` directory. + +:underline:`Before running the script, perform the following instructions:` + +1. ``cd`` to your ``DOMAINPATH`` directory. This is the top working directory for the forecast run. + +2. Make a directory to put the UPP results in. + + .. code-block:: console + + mkdir postprd + +3. Make a directory for staging a copy of the desired control file. + + .. code-block:: console + + mkdir parm + +4. Optional: If desired, edit the control XML file(s) in ``/UPP/parm`` to reflect the fields + and levels you want UPP to output. It is recommended that you make copies of the original + beforehand. + + | **GFS XMLs**: ``postcntrl_gfs_f00.xml`` (0-hour lead time) and + ``postcntrl_gfs.xml`` (all other lead times) + | **LAM (Limited Area Model) XML**: ``fv3lam.xml`` + + Remake the flat text file(s) following the steps in the "Control File: Creating the Flat Text File" + section. + +5. Copy the flat text file(s) to the ``/parm`` directory in your ``DOMAINPATH``. These are the files + that UPP reads directly. + + | **GFS text files**: ``postxconfig-NT-GFS-F00.txt`` (0-hour lead time) and + ``postxconfig-NT-GFS.txt`` (all other lead times). + | **LAM text file**: ``postxconfig-NT-fv3lam.txt`` + +6. Copy the ``/scripts/run_upp`` script to the ``/postprd`` directory. + +7. Edit the run script as outlined in the :ref:`"Run Script Overview" ` section below. Once these directories are set + up and the edits outlined below are complete, the script can be run interactively from the + ``/postprd`` directory by simply typing the script name on the command line. + +.. _run-script-overview: + +=================== +Run Script Overview +=================== + +.. note:: + It is recommended that the user refer to the ``run_upp`` script while reading this overview. All user-modified variables are contained at the top of the ``run_upp`` script in the user-edit section, along with a brief description. Descriptions below follow the ``run_upp`` script. + +1. Set up basic path variables: + + * ``TOP_DIR``: Top level directory for building and running UPP + * ``DOMAINPATH``: Working directory for this run + * ``UPP_HOME``: Location of the **UPP** directory + * ``POSTEXEC``: Location of the **UPP** executable + * ``modelDataPath``: Location of the model output data files to be processed by the UPP + * ``txtCntrlFile``: Name and location of the flat text file that lists desired fields for output. + + .. note:: + For FV3, the scripts are configured such that UPP expects the flat text file to be in ``/parm``, + and the postprocessor working directory to be called ``/postprd``, all under ``DOMAINPATH``. + This setup is for user convenience to have a script ready to run; paths may be modified, but be + sure to check the run script to make sure settings are correct. + +2. Specify dynamical core being run: + + * ``model``: Which model is used? ("GFS" or "LAM" - Limited Area Model) + +3. Specify the format for the input model files and output UPP files: + + * ``inFormat``: Format of the model data ("netcdfpara") + * ``outFormat``: Format of output from UPP ("grib2") + +4. Specify the forecast cycles to be post-processed: + + * ``startdate``: Forecast start date (YYYYMMDDHH) + * ``fhr``: First forecast hour to be post-processed + * ``lastfhr``: Last forecast hour to be post-processed + * ``incrementhr``: Increment (in hours) between forecast files + + .. attention:: + + Do not set ``incrementhr`` to 0 or the script will loop continuously! + +5. Set/uncomment the run command for your system (e.g., ``mpirun``). + + * ``RUN_COMMAND``: System run commands + + | - The default execution command in the distributed scripts is for a single processor: + | ``./upp.x > upp.${fhr}.out 2>&1`` + + | - To run UPP using :term:`MPI` (dmpar compilation), the command line should be: + | >> LINUX-MPI systems: ``mpirun -np N upp.x > outpost 2>&1`` + | (Note: On some systems a host file also needs to be specified: + ``-machinefile "host"``) + | >> IBM: ``mpirun.lsf upp.x < itag > outpost`` + | >> SGI MPT: ``mpiexec_mpt upp.x < itag > outpost`` + +6. Set the value for ``numx``. + + * ``numx``: The number of subdomains in the x-direction used for decomposition. + + | - For 1D decomposition, set numx=1 (default) + | - For 2D decomposition, set numx>1 + +7. Set naming convention for prefix and extension of output file name. + + * ``comsp`` is the initial string of the output file name. By default, it is not set, and the prefix of the output file will be the string set in the ``postcntrl.xml`` file ``DATSET`` parameter. If set, it will concatenate the setting to the front of the string specified in the XML file ``DATSET`` parameter. + * ``tmmark`` is used for the file extension (in ``run_upp``, ``tmmark=tm00``; if not set, it is set to ``.GrbF``) + +Upon a successful run, UPP will generate output files for each forecast hour in the ``/postprd`` directory. + +When executed with the provided run script, UPP provides log files in the post-processor working directory named +``upp.fHHH.out``, where ``HHH`` is the forecast hour. These log files may be consulted for further runtime information in the event of an error. diff --git a/doc/UserGuide/BuildingRunningTesting/TestingUPP.rst b/doc/UserGuide/BuildingRunningTesting/TestingUPP.rst new file mode 100644 index 000000000..1014f26fc --- /dev/null +++ b/doc/UserGuide/BuildingRunningTesting/TestingUPP.rst @@ -0,0 +1,53 @@ +.. role:: underline + :class: underline +.. role:: bolditalic + :class: bolditalic + +.. _testing-upp: + +***************** +Testing the UPP +***************** + +Running UPP Regression Tests +============================= + +To run the full regression test (RT) suite in preparation for opening a pull request (PR): + + #. Navigate to the local clone of your UPP fork containing the changes you would like to introduce, and run the included RT script within ``/ci`` + + .. code-block:: console + + cd /path/to/UPP/ci + nohup ./rt.sh -a -r $PWD/rundir -t $PWD/../ & + + where ``my_account`` is the name of an account where you have permissions to run jobs. The terminal will print a message like: + + .. code-block:: console + + nohup: ignoring input and appending output to ‘nohup.out’ + + The user can continue to issue commands in the Terminal while the RTs run in the background. + + .. note:: + + The time it takes for tests to run is queue-dependent. RTs can take as little as half an hour to run, but on machines with long queue times, it can take several hours to complete the full set of tests. + + #. Check ``rt.log./nohup.out`` for a short summary of any changes in results. The tests are finished when there are 16 timestamps and a final results summary (e.g., "No changes in test results detected."). + + * The ``/work`` directory generated in ``UPP/ci`` contains ``out.post.`` files, which list output from each test, including any unexpected errors during runtime. + * The ``/rundir`` directory generated within ``UPP/ci`` will include test case results, and ``.diff`` files located within each test's directory will outline changes in fields with the current baselines. + * Confirm expected changes within the run directory ``.diff`` files if any are present. + + * Changes in the ``rap_pe_test`` case only consisting of field 708 Convective Cloud Layer may be ignored; this is a known bug and will always be present within the ``WRFPRS.diff`` file. + +Additional Configuration +========================= +For repeated regression test runs, users can edit the ``rt.sh`` file and disable the specified test cases by changing their respective values to “no.” Users can disable the build step as well with the same value for the build variable above the tests. Please be sure to enable all test cases and build settings and conduct a full RT run in preparation for a pull request so that code managers (CMs) can confirm all changes in results are expected and consistent with the developer's results. + +``rt.sh`` will allow for changing the configuration of the regression tests if users desire to do so with the following available options: + +* ``w`` -- specify the work directory for test case job output +* ``r`` -- specify the run directory containing baselines and ``.diff`` files for comparison of changes in results + +The following are legacy options for when ``rt.sh`` was not included within the UPP repository and may be ignored by developers: ``-b``, ``-u``, ``-c``, ``-t``. \ No newline at end of file diff --git a/doc/UserGuide/BuildingRunningTesting/index.rst b/doc/UserGuide/BuildingRunningTesting/index.rst new file mode 100644 index 000000000..02599d803 --- /dev/null +++ b/doc/UserGuide/BuildingRunningTesting/index.rst @@ -0,0 +1,10 @@ +Building, Running, and Testing the UPP +============================================ + +.. toctree:: + :maxdepth: 3 + + InputsOutputs + BuildingUPP + RunningUPP + TestingUPP diff --git a/docs/AddNewVariable.rst b/doc/UserGuide/CustomizingTheUPP/AddNewVariable.rst similarity index 90% rename from docs/AddNewVariable.rst rename to doc/UserGuide/CustomizingTheUPP/AddNewVariable.rst index 81b1c1147..32837b9ca 100644 --- a/docs/AddNewVariable.rst +++ b/doc/UserGuide/CustomizingTheUPP/AddNewVariable.rst @@ -1,3 +1,5 @@ +.. _add-new-var: + ********************* Adding a New Variable ********************* @@ -7,18 +9,14 @@ Please keep in mind that it may not be an exhaustive step-by-step process depend While we can provide general assistance for adding a new variable, users should be aware that this requires good knowledge of Fortran and a thorough understanding of the code. -NOAA UPP developers who wish to add new variables to the UPP should follow the following procedures: +NOAA UPP developers who wish to add new variables to the UPP will need to: -1. Read and follow procedures on the `UPP wiki page `_ - on how to contribute your code changes to the UPP main development branch. Doing so will ensure your changes are merged +1. Read and follow procedures on the `UPP wiki page `__ on how to contribute your code changes to the UPP main development branch. Doing so will ensure your changes are merged to the UPP development branch quickly. -2. Submit your pull request with small incremental changes. Advantages of doing this include avoiding - conflicts with other UPP developers in terms of using the UPP internal index and variables. +2. Submit your pull request with small incremental changes. Advantages of doing this include avoiding conflicts with other UPP developers in terms of using the UPP internal index and variables. -3. Please do not modify existing algorithms without coordinating with UPP code managers (Wen Meng and - Hui-Ya Chuang). UPP supports many NOAA operational models, and we can not change operational products - without coordination and advanced notice. +3. Please do not modify existing algorithms without coordinating with UPP code managers (Wen Meng and Hui-Ya Chuang). UPP supports many NOAA operational models, and we cannot change operational products without coordination and advanced notice. We encourage non-NOAA UPP developers to contact EPIC via `GitHub Discussions `_ to make them aware of modifications you @@ -36,8 +34,8 @@ The following steps outline the process for adding a new variable. This descript example in :numref:`Section %s ` below. #. Check whether your new variable has been defined in the file ``parm/post_avblflds.xml`` in your UPP working - directory. This file defines all available GRIB2 fields in the UPP. Users may also check the table showing - :doc:`UPP_GRIB2_Table_byID`. + directory. This file defines all available :term:`GRIB2` fields in the UPP. Users may also check the table showing + :doc:`../tables/UPP_GRIB2_Table_byID`. A. If NO (not available in ``post_avblflds.xml``), check whether your new variable has been defined in the `NCEP Grib2 Table `__ @@ -59,16 +57,14 @@ example in :numref:`Section %s ` below. working directory. d. Non-NOAA users should coordinate through EPIC for the above three steps. Users may post a - `GitHub Discussions `__ + `GitHub Discussions `__ topic and tag @FernandoAndrade-NOAA and @gspetro-NOAA for directions in steps a-c. - e. Add a new entry in ``post_avblflds.xml`` with your new variable; then follow step B), then step 2) - and beyond. You should assign a new UPP ID for your new variable. + e. Add a new entry in ``post_avblflds.xml`` with your new variable; then follow step B below, then step 2 and beyond. You should assign a new UPP ID for your new variable. \ii. If YES (variable is available in the NCEP Grib2 Table): - a. Add a new entry in ``post_avblflds.xml`` with your new variable, then follow step B), then step 2) - and beyond. You should assign a new UPP ID for your new variable. + a. Add a new entry in ``post_avblflds.xml`` with your new variable, then follow step B below, then step 2 and beyond. You should assign a new UPP ID for your new variable. B. If YES (variable is in ``post_avblflds.xml``), then your new variable is already available in the UPP. Follow steps i) and ii), make a test UPP run, and then look for your new variable in your output. @@ -82,8 +78,7 @@ example in :numref:`Section %s ` below. /usr/bin/perl PostXMLPreprocessor.pl your_user_defined_xml post_avblflds.xml your_user_defined_flat - This flat file (instead of the xml file) is read in by the UPP because it is much faster to read a text file - than an xml file. + This flat file (instead of the xml file) is read in by the UPP because it is much faster to read a text file than an XML file. #. Allocate and initialize the field in ``sorc/ncep_post.fd/ALLOCATE_ALL.f``. @@ -118,9 +113,7 @@ example in :numref:`Section %s ` below. Example Procedure: Steps for adding a new variable ‘TG3’ =========================================================== -This example adds TG3 to the UPP. TG3 is the averaged climatology of surface temperature, -which the land surface models (LSMs) use to specify bottom soil temperature, where the -depth of the bottom is LSM dependent. For this example, a depth of 500cm is used. +This example adds TG3 to the UPP. TG3 is the averaged climatology of surface temperature, which the land surface models (LSMs) use to specify bottom soil temperature, where the depth of the bottom is LSM-dependent. For this example, a depth of 500cm is used. - This example illustrates adding a new variable from GFS output that will be read into UPP and directly output into the Grib2 output files (i.e., no additional computations/calculations @@ -234,9 +227,10 @@ depth of the bottom is LSM dependent. For this example, a depth of 500cm is used 2. Allocate and initialize the new variable in ``ALLOCATE_ALL.f`` using an example from the file. Note that the variables are defined based on the parallel processing capability of the UPP. + User Procedure - - Allocate in the *VRBLS2D* GFS section of ``ALLOCATE_ALL.f`` as: + - TG3 is a 2-dimensional field, so allocate it in the :bolditalic:`VRBLS2D` GFS section of ``ALLOCATE_ALL.f`` as: :: @@ -248,11 +242,11 @@ depth of the bottom is LSM dependent. For this example, a depth of 500cm is used tg3(i,j)=spval -3. De-allocate the variable to give the resources back in ``DEALLOCATE.f``. +3. Deallocate the variable to give the resources back in ``DEALLOCATE.f``. Updating this routine returns your resources to the system. User procedure - - Add in *VRBLS2D* GFS section of ``DEALLOCATE.f`` as: + - Add in :bolditalic:`VRBLS2D` GFS section of ``DEALLOCATE.f`` as: :: @@ -279,8 +273,7 @@ depth of the bottom is LSM dependent. For this example, a depth of 500cm is used tg3 - - Read in the new variable in the section for reading the 2D netCDF file using another 2D variable - as an example, such as ``hpbl``. Add as: + - Read in the new variable in the section for reading the 2D netCDF file. Look at other 2D variables, such as ``hpbl``, for an example. Add as: :: @@ -335,7 +328,7 @@ depth of the bottom is LSM dependent. For this example, a depth of 500cm is used 7. Build or rebuild the code for changes to take effect before running your UPP run script. - User procedure for building on pre-configured machines: + User procedure for building on preconfigured machines: :: diff --git a/docs/Regridding.rst b/doc/UserGuide/CustomizingTheUPP/Regridding.rst similarity index 85% rename from docs/Regridding.rst rename to doc/UserGuide/CustomizingTheUPP/Regridding.rst index 44a0c1328..088ed7b38 100644 --- a/docs/Regridding.rst +++ b/doc/UserGuide/CustomizingTheUPP/Regridding.rst @@ -1,14 +1,14 @@ +.. _regridding: + ********** Regridding ********** -Users who wish to interpolate their UPP output to a different grid may do so with the *wgrib2* -utility. The general format for re-gridding to various common projections are outlined in the following -examples. +Users who wish to interpolate their UPP output to a different grid may do so with the *wgrib2* utility. The general format for regridding to various common projections are outlined in the following examples. *Wgrib2* is a versatile program that has the ability to convert grib2 files from one grid to another -for various user-defined grids as well as pre-defined :term:`NCEP` grids. Complete documentation with examples -of re-gridding for all available grid definitions can be found at: http://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/new_grid.html +for various user-defined grids as well as predefined :term:`NCEP` grids. Complete documentation with examples +of regridding for all available grid definitions can be found at: https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/new_grid.html .. _Examples-of-wgrib2: @@ -53,13 +53,13 @@ Examples of wgrib2 +----------+-----------------------------------------------------------------+ | nx | Total number of grid points along x | +----------+-----------------------------------------------------------------+ -| dx | Grid cell size in meters in x direction | +| dx | Grid cell size in meters in x-direction | +----------+-----------------------------------------------------------------+ | lat0 | Latitude of the first grid point in degrees | +----------+-----------------------------------------------------------------+ | ny | Total number of grid points along y | +----------+-----------------------------------------------------------------+ -| dy | Grid cell size in meters in y direction | +| dy | Grid cell size in meters in y-direction | +----------+-----------------------------------------------------------------+ **Example 3: Polar Stereographic Grid** @@ -81,13 +81,13 @@ OR +----------+-----------------------------------------------------------+ | nx | Total number of grid points along x | +----------+-----------------------------------------------------------+ -| dx | Grid cell distance in meters in x direction at lad | +| dx | Grid cell distance in meters in x-direction at *lad* | +----------+-----------------------------------------------------------+ | lat0 | Latitude of the first grid point in degrees | +----------+-----------------------------------------------------------+ | ny | Total number of grid points along y | +----------+-----------------------------------------------------------+ -| dy | Grid cell distance in meters in y direction at lad | +| dy | Grid cell distance in meters in y-direction at *lad* | +----------+-----------------------------------------------------------+ **Winds** @@ -97,7 +97,7 @@ OR +----------+----------------------------------------------+ | Variable | Description | +==========+==============================================+ -| grid | U-wind goes from grid (i,J) to (i+1,j) | +| grid | U-wind goes from grid (i,j) to (i+1,j) | +----------+----------------------------------------------+ | earth | U-wind goes eastward, V-wind goes northward | +----------+----------------------------------------------+ @@ -124,6 +124,5 @@ the variable. -new_grid "latlon 0:1440:0.25 90:721:-0.25" outfile .. note:: - *wgrib2* is not distributed as part of the :term:`UFS`, but it can be installed via - :term:`HPC-Stack` or :term:`spack-stack` along with other UFS prerequisite software. - Users may also download and install it directly from http://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/. + *wgrib2* is not distributed as part of the :term:`UFS`, but it can be installed via :term:`spack-stack` or :term:`HPC-Stack` along with other UFS prerequisite software. + Users may also download and install it directly from https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/. diff --git a/doc/UserGuide/CustomizingTheUPP/index.rst b/doc/UserGuide/CustomizingTheUPP/index.rst new file mode 100644 index 000000000..eb7f24bb0 --- /dev/null +++ b/doc/UserGuide/CustomizingTheUPP/index.rst @@ -0,0 +1,9 @@ +Customizing the UPP +=========================== + +.. toctree:: + :maxdepth: 3 + + AddNewVariable + Regridding + diff --git a/doc/UserGuide/Makefile b/doc/UserGuide/Makefile new file mode 100644 index 000000000..d3987c6e8 --- /dev/null +++ b/doc/UserGuide/Makefile @@ -0,0 +1,28 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = -a -n #-W +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = build +LINKCHECKDIR = $(BUILDDIR)/linkcheck + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile linkcheck + +doc: + make clean + $(MAKE) linkcheck + $(MAKE) html + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(SPHINXOPTS) $(SOURCEDIR) $(LINKCHECKDIR) + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) -w $(BUILDDIR)/warnings.log \ No newline at end of file diff --git a/doc/UserGuide/Reference/FAQ.rst b/doc/UserGuide/Reference/FAQ.rst new file mode 100644 index 000000000..84961d6cb --- /dev/null +++ b/doc/UserGuide/Reference/FAQ.rst @@ -0,0 +1,105 @@ +.. _FAQ: + +****************************** +Frequently Asked Questions +****************************** + +* :ref:`Is UPP compatible with NetCDF4? ` +* :ref:`How do I compile on another platform/compiler? ` +* :ref:`How can I output satellite fields with the Unified Post Processor (UPP)? ` +* :ref:`How do I add a new variable to UPP output? ` +* :ref:`Why is the variable I requested not present in the UPP output? ` +* :ref:`If the UPP fails, how do I troubleshoot the problem? ` +* :ref:`How do I regrid UPP output to another domain or projection? ` +* :ref:`I am running UPP in parallel, but it fails. ` +* :ref:`My FV3GFS unipost output is on a Gaussian grid. How can I process it to another grid such as a lat-lon grid or other user-defined grid? ` +* :ref:`What does this warning mean in my compile.log? ` ``libnemsio.a(nemsio_module_mpi.o): In function '__nemsio_module_mpi_MOD_readmpi4': nemsio_module_mpi.f90:(.text+0x1088): undefined reference to 'mpi_type_create_indexed_block_'`` +* :ref:`Why do I see ** FATAL ERROR: Statistical processing bad n=0 ** when using the wgrib2 utility on my UPP output? ` + + +.. _netcdf4: + +Is UPP compatible with NetCDF4? +================================= + +The UPP is compatible with NetCDF4 when used on UFS model output. + +.. _compile-other-platforms: + +How do I compile on another platform/compiler? +================================================ + +We are not able to support all platform and compiler combinations out there but will try to help with specific issues when able. Users may request support on the UPP `GitHub Discussions `__ page. We always welcome and are grateful for user-contributed configurations. + +.. _satellite-fields: + +How can I output satellite fields with the Unified Post Processor (UPP)? +========================================================================== + +Currently, the standalone release of the UPP can be utilized to output satellite fields if desired. The UPP documentation :ref:`lists the grib2 fields `, including satellite fields, produced by the UPP. After selecting which fields to output, the user must :ref:`adjust the control file ` according to the instructions in the UPP documentation to output the desired fields. When outputting satellite products, users should note that not all physics options are supported for outputting satellite products. Additionally, for regional runs, users must ensure that the satellite field of view overlaps some part of their domain. + +Most UFS application releases do not currently support this capability, although it is available in the Short-Range Weather (SRW) Application. `This SRW App pull request (PR) `__ added the option for users to output satellite fields using the SRW App. The capability is documented in the :ref:`SRW App User’s Guide `. + +.. _new-variable: + +How do I add a new variable to UPP output? +============================================ + +If the desired variable is already available in the UPP code, then the user can simply add that variable to the ``postcntrl.xml`` file and :ref:`remake the postxconfig-NT.txt file ` that the UPP reads. Please note that some variables may be dependent on the model and/or physics used. + +If the desired variable is not already available in the UPP code, it can be added following the instructions for :ref:`adding a new variable ` in the UPP User’s Guide. + +.. _var-not-present: + +Why is the variable I requested not present in the UPP output? +================================================================ + +There are a few possible reasons why a requested variable might not appear in the UPP output: + +#. The variable may be dependent on the model. +#. Certain variables are dependent on the model configuration. For example, if a variable depends on a particular physics suite, it may not appear in the output when a different physics suite is used. +#. The requested variable may depend on output from a different field that was not included in the model output. + +.. _troubleshooting: + +If the UPP fails, how do I troubleshoot the problem? +====================================================== + +If the user suspects that the UPP failed (e.g., no UPP output was produced or console output includes an error message like ``mv: cannot stat `GFSPRS.GrbF00`: No such file or directory``), the best way to diagnose the issue is to consult the UPP runtime log file for errors. When using the standalone UPP with the ``run_upp`` script, this log file will be located in the ``postprd`` directory under the name ``upp.fHHH.out``, where ``HHH`` refers to the 3-digit forecast hour being processed. When the UPP is used with the SRW App, the UPP log files can be found in the experiment directory under ``log/run_post_fHHH.log``. + +.. _regridding-faq: + +How do I regrid UPP output to another domain or projection? +============================================================= + +UPP output is in standard grib2 format and can be interpolated to another grid using the third-party utility `wgrib2 `__. Some basic examples can also be found in :numref:`Section %s `. + +.. _upp-parallel: + +I am running UPP in parallel, but it fails. +================================================================== + +This may be a memory issue; try increasing the number of CPUs or spreading them out across nodes (e.g., increase ``ptiles``). We also know of one version of MPI (mpich v3.0.4) that does not work with UPP. A work-around was found by modifying the ``UPP/sorc/ncep_post.fd/WRFPOST.f`` routine to change all ``unit 5`` references (which is standard I/O) to ``unit 4`` instead. + +.. _process-grid: + +My FV3GFS unipost output is on a Gaussian grid. How can I process it to another grid such as a lat-lon grid or other user-defined grid? +============================================================================================================================================= + +For regridding grib2 unipost output, the wgrib2 utility can be used. See `complete documentation on grid specification with examples of regridding for all available grid definitions `__. The :ref:`Regridding section ` of this UPP User’s Guide also gives examples (including an example from operations) of using wgrib2 to interpolate to various common grids. + +.. _nemsio-error: + +What does this warning mean in my compile.log? ``libnemsio.a(nemsio_module_mpi.o): In function '__nemsio_module_mpi_MOD_readmpi4': nemsio_module_mpi.f90:(.text+0x1088): undefined reference to 'mpi_type_create_indexed_block_'`` +==================================================================================================================================================================================================================================== + +This warning appears for some platforms/compilers because a call in the *nemsio* library is never used or referenced for a serial build. This is just a warning and should not hinder a successful build of UPP or negatively impact your UPP run. + +.. _wgrib2-error: + +Why do I see ``** FATAL ERROR: Statistical processing bad n=0 **`` when using the wgrib2 utility on my UPP output? +===================================================================================================================== + +This error message is displayed when using more recent versions of the wgrib2 utility on files for forecast hour zero that contain accumulated or time-averaged fields. This is due to the newer versions of wgrib2 no longer allowing the ``n`` parameter to be zero or empty. + +Users should consider using a separate control file (e.g., ``postcntrl_gfs_f00.xml``) for forecast hour zero that does not include accumulated or time-averaged fields, since they are zero anyway. Users can also continue to use an older version of *wgrib2*; v2.0.4 is the latest known version that does not result in this error. \ No newline at end of file diff --git a/docs/Glossary.rst b/doc/UserGuide/Reference/Glossary.rst similarity index 81% rename from docs/Glossary.rst rename to doc/UserGuide/Reference/Glossary.rst index 8fb469d8a..1c86e92df 100644 --- a/docs/Glossary.rst +++ b/doc/UserGuide/Reference/Glossary.rst @@ -10,7 +10,7 @@ Glossary Convective Available Potential Energy. CCPP - The `Common Community Physics Package `_ is a forecast-model agnostic, vetted collection of code containing atmospheric physical parameterizations and suites of parameterizations for use in Numerical Weather Prediction (NWP) along with a framework that connects the physics to the host forecast model. + The `Common Community Physics Package `_ is a forecast-model agnostic, vetted collection of code containing atmospheric physical parameterizations and suites of parameterizations for use in Numerical Weather Prediction (:term:`NWP`) along with a framework that connects the physics to the host forecast model. CIN Convective Inhibition. @@ -19,7 +19,7 @@ Glossary The `Community Radiative Transfer Model `__ (CRTM) is a fast and accurate radiative transfer model developed at the `Joint Center for Satellite Data Assimilation `__ (JCSDA) in the United States. It is a sensor-based radiative transfer model and supports more than 100 sensors, including sensors on most meteorological satellites and some from other remote sensing satellites. Component - A software element that has a clear function and interface. In Earth system models, components are often single portions of the Earth system (e.g. atmosphere, ocean, or land surface) that are assembled to form a whole. + A software element that has a clear function and interface. In Earth system models, components are often single portions of the Earth system (e.g., atmosphere, ocean, or land surface) that are assembled to form a whole. Component Repository A :term:`repository` that contains, at a minimum, source code for a single component. @@ -58,7 +58,7 @@ Glossary Fluid Dynamics Laboratory `__ (GFDL), it is a scalable and flexible dycore capable of both hydrostatic and non-hydrostatic atmospheric simulations. It is the dycore used in the UFS Weather Model. GFS - `Global Forecast System `_. The GFS is a National Centers for Environmental Prediction (:term:`NCEP`) weather forecast model that generates data for dozens of atmospheric and land-soil variables, including temperatures, winds, precipitation, soil moisture, and atmospheric ozone concentration. The system couples four separate models (atmosphere, ocean, land/soil, and sea ice) that work together to accurately depict weather conditions. + The `Global Forecast System `__. The GFS is a National Centers for Environmental Prediction (:term:`NCEP`) weather forecast model that generates data for dozens of atmospheric and land-soil variables, including temperatures, winds, precipitation, soil moisture, and atmospheric ozone concentration. The system couples four separate models (atmosphere, ocean, land/soil, and sea ice) that work together to accurately depict weather conditions. GRIB2 The second version of the World Meterological Organization's (WMO) standard for distributing gridded data. @@ -67,10 +67,10 @@ Glossary `Gridpoint Statistical Interpolation `__ (GSI) is a variational data assimilation system, designed to be flexible, state-of-art, and run efficiently on various parallel computing platforms. It supports :term:`RRFS` features. GSI code is publicly available `on GitHub `__, and fix file data is publicly available `here `__. HPC-Stack - The `HPC-Stack `__ is a repository that provides a unified, shell script-based build system for building the software stack required for numerical weather prediction (NWP) tools such as the `Unified Forecast System (UFS) `__ and the `Joint Effort for Data assimilation Integration (JEDI) `__ framework. View the HPC-Stack documentation `here `__. + `HPC-Stack `__ is a repository that provides a unified, shell script-based build system for building the software stack required for numerical weather prediction (NWP) tools such as the `Unified Forecast System (UFS) `__ and the `Joint Effort for Data assimilation Integration (JEDI) `__ framework. It is being phased out in favor of :term:`spack-stack`. `HPC-Stack documentation `__ is available, but the repository and documentation is rarely updated since it is being deprecated. HRRR - `High Resolution Rapid Refresh `__. The HRRR is a NOAA real-time 3-km resolution, hourly updated, cloud-resolving, convection-allowing atmospheric model initialized by 3km grids with 3km radar assimilation. Radar data is assimilated in the HRRR every 15 min over a 1-h period adding further detail to that provided by the hourly data assimilation from the 13km radar-enhanced Rapid Refresh. + `High Resolution Rapid Refresh `__. The HRRR is a NOAA real-time 3-km resolution, hourly updated, cloud-resolving, convection-allowing atmospheric model initialized by 3-km grids with 3-km radar assimilation. Radar data is assimilated in the HRRR every 15 min over a 1-hour period adding further detail to that provided by the hourly data assimilation from the 13-km radar-enhanced Rapid Refresh. JCSDA Joint Center for Data Satellite Assimilation @@ -115,7 +115,7 @@ Glossary The `National Weather Service `__ (NWS) is an agency of the United States government that is tasked with providing weather forecasts, warnings of hazardous weather, and other weather-related products to organizations and the public for the purposes of protection, safety, and general information. It is a part of the National Oceanic and Atmospheric Administration (NOAA) branch of the Department of Commerce. offline UPP - Refers to cases where UPP is built stand-alone and run separately from the model. + Refers to cases where UPP is built standalone and run separately from the model. RAP `Rapid Refresh `__. The continental-scale NOAA hourly-updated assimilation/modeling system operational at :term:`NCEP`. RAP covers North America and is comprised primarily of a numerical forecast model and an analysis/assimilation system to initialize that model. RAP is complemented by the higher-resolution 3km High-Resolution Rapid Refresh (:term:`HRRR`) model. @@ -137,7 +137,7 @@ Glossary `Spack `__ is a package management tool designed to support multiple versions and configurations of software on a wide variety of platforms and environments. It was designed for large supercomputing centers, where many users and application teams share common installations of software on clusters with exotic architectures. spack-stack - The `spack-stack `__ is a collaborative effort between the NOAA Environmental Modeling Center (EMC), the UCAR Joint Center for Satellite Data Assimilation (JCSDA), and the Earth Prediction Innovation Center (EPIC). *spack-stack* is a repository that provides a :term:`Spack`-based method for building the software stack required for numerical weather prediction (NWP) tools such as the `Unified Forecast System (UFS) `__ and the `Joint Effort for Data assimilation Integration (JEDI) `__ framework. *spack-stack* uses the Spack package manager along with custom Spack configuration files and Python scripts to simplify installation of the libraries required to run various applications. The *spack-stack* can be installed on a range of platforms and comes pre-configured for many systems. Users can install the necessary packages for a particular application and later add the missing packages for another application without having to rebuild the entire stack. + The `spack-stack `__ is a collaborative effort between the NOAA Environmental Modeling Center (:term:`EMC`), the UCAR Joint Center for Satellite Data Assimilation (:term:`JCSDA`), and the Earth Prediction Innovation Center (:term:`EPIC`). *spack-stack* is a repository that provides a :term:`Spack`-based method for building the software stack required for numerical weather prediction (NWP) tools such as the `Unified Forecast System (UFS) `__ and the `Joint Effort for Data assimilation Integration (JEDI) `__ framework. *spack-stack* uses the Spack package manager along with custom Spack configuration files and Python scripts to simplify installation of the libraries required to run various applications. The *spack-stack* can be installed on a range of platforms and comes pre-configured for many systems. Users can install the necessary packages for a particular application and later add the missing packages for another application without having to rebuild the entire stack. UFS The Unified Forecast System is a community-based, coupled, comprehensive Earth modeling diff --git a/doc/UserGuide/Reference/index.rst b/doc/UserGuide/Reference/index.rst new file mode 100644 index 000000000..af294c82e --- /dev/null +++ b/doc/UserGuide/Reference/index.rst @@ -0,0 +1,8 @@ +Reference +============ + +.. toctree:: + :maxdepth: 3 + + FAQ + Glossary diff --git a/docs/_static/custom.css b/doc/UserGuide/_static/custom.css similarity index 100% rename from docs/_static/custom.css rename to doc/UserGuide/_static/custom.css diff --git a/docs/_static/theme_overrides.css b/doc/UserGuide/_static/theme_overrides.css similarity index 100% rename from docs/_static/theme_overrides.css rename to doc/UserGuide/_static/theme_overrides.css diff --git a/docs/conf.py b/doc/UserGuide/conf.py similarity index 62% rename from docs/conf.py rename to doc/UserGuide/conf.py index d32246789..e0524f2a0 100644 --- a/docs/conf.py +++ b/doc/UserGuide/conf.py @@ -10,9 +10,9 @@ # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # -# import os -# import sys -# sys.path.insert(0, os.path.abspath('.')) +import os +import sys +sys.path.insert(0, os.path.abspath('.')) # -- Project information ----------------------------------------------------- @@ -32,7 +32,8 @@ # ones. extensions = [ 'sphinx_rtd_theme', - 'sphinx.ext.autosectionlabel' + 'sphinx.ext.autosectionlabel', + 'sphinx.ext.intersphinx', ] autosectionlabel_prefix_document = True autosectionlabel_maxdepth = 4 @@ -52,6 +53,19 @@ # The master toctree document. master_doc = 'index' +# -- Linkcheck options ------------------------------------------------- + +# Avoid a 403 Forbidden error when accessing certain links (e.g., noaa.gov) +# Can be found using navigator.userAgent inside a browser console. +user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36" + +# Ignore working links that cause a linkcheck 403 error. +linkcheck_ignore = [] + +linkcheck_allowed_redirects = {r"https://github.com/JCSDA/crtm/wiki/.*/.*": + r"https://raw.githubusercontent.com/wiki/JCSDA/crtm/.*/.*", + } + # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for @@ -59,9 +73,13 @@ # html_theme = 'sphinx_rtd_theme' html_theme_path = ["_themes", ] +html_logo = 'https://github.com/ufs-community/ufs/wiki/images/ufs.png' # html_theme_options = {} -html_theme_options = {"body_max_width": "none"} +html_theme_options = { + "body_max_width": "none", + "navigation_depth": 6, + } # html_sidebar_options = {} html_sidebars = { '**': ['globaltoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'] } @@ -76,3 +94,15 @@ def setup(app): app.add_css_file('custom.css') # may also be an URL app.add_css_file('theme_overrides.css') # may also be an URL + +# -- Extension configuration ------------------------------------------------- + +# -- Options for intersphinx extension --------------------------------------- + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = { + 'hpc-stack': ('https://hpc-stack-epic.readthedocs.io/en/develop/', None), + 'spack-stack': ('https://spack-stack.readthedocs.io/en/develop/', None), + 'ufs-wm': ('https://ufs-weather-model.readthedocs.io/en/develop/', None), + 'srw': ('https://ufs-srweather-app.readthedocs.io/en/develop', None), +} diff --git a/doc/UserGuide/index.rst b/doc/UserGuide/index.rst new file mode 100644 index 000000000..f21371917 --- /dev/null +++ b/doc/UserGuide/index.rst @@ -0,0 +1,11 @@ +Welcome to the UPP User's Guide +=============================== + +.. toctree:: + :maxdepth: 3 + :numbered: + + BackgroundInfo/index + BuildingRunningTesting/index + CustomizingTheUPP/index + Reference/index diff --git a/docs/requirements.txt b/doc/UserGuide/requirements.in similarity index 73% rename from docs/requirements.txt rename to doc/UserGuide/requirements.in index 7be32f526..26c778f4a 100644 --- a/docs/requirements.txt +++ b/doc/UserGuide/requirements.in @@ -1,3 +1,3 @@ -sphinxcontrib-bibtex +sphinx>=6.0.0 sphinx_rtd_theme -docutils==0.16 \ No newline at end of file +sphinxcontrib-bibtex diff --git a/doc/UserGuide/requirements.txt b/doc/UserGuide/requirements.txt new file mode 100644 index 000000000..3888acb01 --- /dev/null +++ b/doc/UserGuide/requirements.txt @@ -0,0 +1,82 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# pip-compile requirements.in +# +alabaster==0.7.16 + # via sphinx +babel==2.14.0 + # via sphinx +certifi==2024.2.2 + # via requests +charset-normalizer==3.3.2 + # via requests +docutils==0.20.1 + # via + # pybtex-docutils + # sphinx + # sphinx-rtd-theme + # sphinxcontrib-bibtex +idna==3.7 + # via requests +imagesize==1.4.1 + # via sphinx +importlib-metadata==7.0.1 + # via + # sphinx + # sphinxcontrib-bibtex +jinja2==3.1.3 + # via sphinx +latexcodec==2.0.1 + # via pybtex +markupsafe==2.1.5 + # via jinja2 +packaging==23.2 + # via sphinx +pybtex==0.24.0 + # via + # pybtex-docutils + # sphinxcontrib-bibtex +pybtex-docutils==1.0.3 + # via sphinxcontrib-bibtex +pygments==2.17.2 + # via sphinx +pyyaml==6.0.1 + # via pybtex +requests==2.31.0 + # via sphinx +six==1.16.0 + # via + # latexcodec + # pybtex +snowballstemmer==2.2.0 + # via sphinx +sphinx==7.2.6 + # via + # -r requirements.in + # sphinx-rtd-theme + # sphinxcontrib-bibtex + # sphinxcontrib-jquery +sphinx-rtd-theme==2.0.0 + # via -r requirements.in +sphinxcontrib-applehelp==1.0.8 + # via sphinx +sphinxcontrib-bibtex==2.6.2 + # via -r requirements.in +sphinxcontrib-devhelp==1.0.6 + # via sphinx +sphinxcontrib-htmlhelp==2.0.5 + # via sphinx +sphinxcontrib-jquery==4.1 + # via sphinx-rtd-theme +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==1.0.7 + # via sphinx +sphinxcontrib-serializinghtml==1.1.10 + # via sphinx +urllib3==2.2.1 + # via requests +zipp==3.17.0 + # via importlib-metadata diff --git a/docs/UFS_unified_variables_table.csv b/doc/UserGuide/tables/UFS_unified_variables_table.csv similarity index 96% rename from docs/UFS_unified_variables_table.csv rename to doc/UserGuide/tables/UFS_unified_variables_table.csv index b559bb8ea..1f835ae7e 100644 --- a/docs/UFS_unified_variables_table.csv +++ b/doc/UserGuide/tables/UFS_unified_variables_table.csv @@ -1,221 +1,226 @@ -Field Description,Model Variable NetCDF Name,UPP Internal Name,Dimensions,dyn (atm) or phy (sfc),Notes -U-component of wind,ugrd,uh,3d,dyn, -V-component of wind,vgrd,vh,3d,dyn, -Specific humidity,spfh,q,3d,dyn, -Temperature,tmp,t,3d,dyn, -Ozone mixing ratio,o3mr,o3,3d,dyn, -Geometric vertical velocity,dzdt,wh,3d,dyn, -Cloud water mixing ratio,clwmr,qqw,3d,dyn, -Layer thickness in pressure on hybrid levels,dpres,dpres,3d,dyn, -Layer thickness in height,delz,na,3d,dyn, -Ice mixing ratio,icmr,qqi,3d,dyn, -Rain mixing ratio,rwmr,qqr,3d,dyn, -Snow mixing ratio,snmr,qqs,3d,dyn, -Graupel mixing ratio,grle,qqg,3d,dyn, -Instantaneous 3d cloud fraction,cld_amt,cfr,3d,dyn,imp_physics = 11 -Instantaneous 3d cloud fraction,cldfra,cfr,3d,phy,imp_physics ≠ 11 -Instantaneous 3d cloud fraction from boundary layer scheme,cldfra_bl,cfr,3d,phy,imp_physics ≠ 11 -Thompson scheme cloud ice effective radius,cieffr,effri,3d,phy -Thompson scheme cloud water effective radius,cleffr,effrl,3d,phy -Thompson scheme snow effective radius,cseffr,effrs,3d,phy -Max hourly updraft velocity,upvvelmax,w_up_max,2d,dyn,regional FV3 -Max hourly downdraft velocity,dnvvelmax,w_dn_max,2d,dyn,regional FV3 -Max hourly updraft helicity,uhmax25,up_heli_max,2d,dyn,regional FV3 -Min hourly updraft helicity,uhmin25,up_heli_min,2d,dyn,regional FV3 -Max hourly 0-3km updraft helicity,uhmax03,up_heli_max03,2d,dyn,regional FV3 -Min hourly 0-3km updraft helicity,uhmin03,up_heli_min03,2d,dyn,regional FV3 -Max 0-1km relative vorticity max,maxvort01,rel_vort_max01,2d,dyn,regional FV3 -Max 0-2km relative vorticity max,maxvort02,rel_vort_max,2d,dyn,regional FV3 -Max hybrid level 1 relative vorticity max,maxvorthy1,rel_vort_maxhy1,2d,dyn,regional FV3 -Biomass burning emissions,ebb_smoke_hr,ebb,2d,phy,regional FV3 -Hourly wildfire potential,hwp,hwp,2d,phy,regional FV3 -Lightning threat index 1,ltg1_max,ltg1_max,2d,phy,regional FV3 -Lightning threat index 2,ltg2_max,ltg2_max,2d,phy,regional FV3 -Lightning threat index 3,ltg3_max,ltg3_max,2d,phy,regional FV3 -Surface pressure,pressfc,"pint(:,:,LM+1)",2d,dyn,regional FV3 -Surface height,hgtsfc,"zint(:,:,LM+1)",2d,dyn,regional FV3 -Smoke,smoke,smoke,3d,dyn,regional FV3 -FV3 dust,fv3dust,fv3dust,3d,dyn,regional FV3 -Coarse particulate matter,coarsepm,coarsepm,3d,dyn,regional FV3 -Unified extinction ext550/Aerosol optical depth,ext550,ext550,3d,phy,regional FV3 -Reflectivity,refl_10cm,REF_10CM,3d,phy, -Turbulence kinetic energy,qke,q2,3d,phy, -Ice-friendly aerosol number concentration,nifa,qqnwfa,3d,phy, -Water-friendly aerosol number concentration,nwfa,qqnwfa,3d,phy, -Land mask,land,sm,2d,phy, -Sea ice mask,icec,sice,2d,phy, -PBL height,hpbl,pblh,2d,phy, -Frictional velocity,fricv,ustar,2d,phy, -Roughness length,sfcr,z0,2d,phy, -Surface exchange coefficient,sfexc,SFCEXC,2d,phy, -Accumulated snowfall,tsnowp,SNOW_ACM,2d,phy -Snowfall bucket,tsnowpb,SNOW_BKT,2d,phy -Accumulated graupel/sleet,frozr,acgraup,2d,phy, -Graupel/sleet bucket,frozrb,graup_bucket,2d,phy, -Accumulated freezing rain,frzr,acfrain,2d,phy, -Freezing rain bucket,frzrb,frzrn_bucket,2d,phy, -Time step snow (in m),snow,snownc,2d,phy, -Time step graupel (in m),graupel,graupelnc,2d,phy, -Aerodynamic conductance,acond,acond,2d,phy, -Mid day avg albedo,albdo_ave,avgalbedo,2d,phy, -Surface potential temperature,tmpsfc,ths,2d,phy, -Foundation temperature,tref,fdnsst,2d,phy, -Convective precip in m per physics time step,cpratb_ave,avgcprate,2d,phy, -Convective precip - coninuous bucket,cprat_ave,avgcprate_cont,2d,phy, -Average precip rate in m per physics time step,prateb_ave,avgprec,2d,phy, -Average precip rate - continuous bucket,prate_ave,avgprec_cont,2d,phy, -Precip rate,tprcp,prec,2d,phy, -Convective precip rate,cnvprcp,cprate,2d,phy, -Max hourly surface precip rate,pratemax,prate_max,2d,phy, -Max hourly 1 km agl reflectivity,refdmax,refd_max,2d,phy, -Max hourly -10C reflectivity,refdmax263k,refdm10c_max,2d,phy, -Max hourly u comp of 10m agl wind,u10max,u10max,2d,phy, -Max hourly v comp of 10m agl wind,v10max,v10max,2d,phy, -Max hourly 10m agl wind speed,spd10max,wspd10max,2d,phy, -Instantaneous snow water equivalent,weasd,sno,2d,phy, -Average snow cover,snowc_ave,snoavg,2d,phy, -Snow depth in mm,snod,si,2d,phy, -2m temperature,tmp2m,tshltr,2d,phy, -2m specific humidity,spfh2m,qshltr,2d,phy, -Time-averaged column cloud fraction,tcdc_aveclm,avgtcdc,2d,phy, -Maximum snow albedo,snoalb,mxsnal,2d,phy, -Land fraction,lfrac,landfrac,2d,phy, -Average high cloud fraction,tcdc_avehcl,avgcfrach,2d,phy, -Average low cloud fraction,tcdc_avelcl,avgcfracl,2d,phy, -Average mid cloud fraction,tcdc_avemcl,avgcfracm,2d,phy, -Instantaneous convective cloud fraction,tcdccnvcl,cnvcfr,2d,phy, -Slope type,sltyp,islope,2d,phy, -Plant canopy sfc water in m,cnwat,cmc,2d,phy, -Frozen precip fraction,cpofp,sr,2d,phy, -Sea ice skin temperature,tisfc,ti,2d,phy, -Vegetation fraction,veg,vegfrc,2d,phy, -Liquid volumetric soil moisture,soill1/.../soill4,sh2o,2d,phy,all soil levels read into 3d array -Volumetric soil moisture,soilw1/.../soilw9,smc,2d,phy,"all soil levels read into 3d array, L5-9 RUC only" -Soil temperature,soilt1/.../soilt9,stc,2d,phy,"all soil levels read into 3d array, L5-9 RUC only" -Time averaged incoming surface longwave,dlwrf_ave,alwin,2d,phy, -Instantaneous incoming surface longwave,dlwrf,rlwin,2d,phy, -Time averaged outgoing surface longwave,ulwrf_ave,alwout,2d,phy, -Instataneous outgoing surface longwave,ulwrf,radot,2d,phy, -Time average outgoing model top longwave,ulwrf_avetoa,alwtoa,2d,phy, -Instantaneous outgoing model top longwave,ulwrf_toa,rlwtoa,2d,phy, -Time averaged incoming surface shortwave,dswrf_ave,aswin,2d,phy, -Instantaneous incoming surface shortwave,dswrf,rswin,2d,phy, -Time averaged incoming sfc uv-b,duvb_ave,auvbin,2d,phy, -Time averaged incoming sfc clear sky uv-b,cduvb_ave,auvbinc,2d,phy, -Time averaged outgoing sfc shortwave,uswrf_ave,aswout,2d,phy, -Inst outgoing sfc shortwave,uswrf,rswout,2d,phy, -Time averaged model top incoming shortwave,dswrf_avetoa,aswintoa,2d,phy, -Time averaged model top outgoing shortwave,uswrf_avetoa,aswtoa,2d,phy, -Time averaged surface sensible heat flux,shtfl_ave,sfcshx,2d,phy, -Inst surface sensible heat flux,shtfl,twbs,2d,phy, -Time averaged surface latent heat flux,lhtfl_ave,sfclhx,2d,phy, -Inst surface latent heat flux,lhtfl,qwbs,2d,phy, -Time averaged ground heat flux,gflux_ave,subshx,2d,phy, -Instantaneous ground heat flux,gflux,grnflx,2d,phy, -Time averaged zonal momentum flux,uflx_ave,sfcux,2d,phy, -Time averaged meridional momentum flux,vflx_ave,sfcvx,2d,phy, -Instantaneous zonal momentum flux,uflx,sfcuxi,2d,phy, -Instantaneous meridional momentum flux,vflx,sfcvxi,2d,phy, -Time averaged zonal gravity wave stress,u-gwd_ave,gtaux,2d,phy, -Time averaged meridional gravity wave stress,v-gwd_ave,gtauy,2d,phy, -Time averaged accumulated potential evaporation,pevpr_ave,avgpotevp,2d,phy, -Instantaneous potential evaporation,pevpr,potevp,2d,phy, -10 m u-wind component,ugrd10m,u10,2d,phy, -10 m v-wind component,vgrd10m,v10,2d,phy, -Vegetation type,vtype,ivgtyp,2d,phy, -Soil type,sotyp,isltyp,2d,phy, -Soil moisture availability,wetness,smstav,2d,phy,not GFS -Accumulated snow depth over land,snacc_land,for computing *sndepac*,2d,phy, -Accumulated snow depth over ice,snacc_ice,for computing *sndepac*,2d,phy, -Instantaneous convective cloud top pressure,prescnvclt,ptop,2d,phy, -Instantaneous convective cloud bottom pressure,prescnvclb,pbot,2d,phy, -Time averaged low cloud top pressure,pres_avelct,ptopl,2d,phy, -Time averaged low cloud bottom pressure,pres_avelcb,pbotl,2d,phy, -Time averaged low cloud top temperature,tmp_avelct,Ttopl,2d,phy, -Time averaged middle cloud top pressure,pres_avemct,ptopm,2d,phy, -Time averaged middle cloud bottom pressure,pres_avemcb,pbotm,2d,phy, -Time averaged middle cloud top temperature,tmp_avemct,Ttopm,2d,phy, -Time averaged high cloud top pressure,pres_avehct,ptoph,2d,phy, -Time averaged high cloud bottom pressure,pres_avehcb,pboth,2d,phy, -Time averaged high cloud top temperature,tmp_avehct,Ttoph,2d,phy, -Boundary layer cloud cover,tcdc_avebndcl,pblcfr,2d,phy, -Cloud work function,cwork_aveclm,cldwork,2d,phy, -Accumulated total (base+surface) runoff,watr_acc,runoff,2d,phy, -Total water storage in aquifer,wa_acc,twa,2d,phy, -Accumulated evaporation of intercepted water,ecan_acc,tecan,2d,phy, -Accumulated plant transpiration,etran_acc,tetran,2d,phy, -Accumulated soil surface evaporation,edir_acc,tedir,2d,phy, -Shelter max temperature,t02max,maxtshltr,2d,phy,not GFS -Shelter max temperature,tmax_max2m,maxtshltr,2d,phy,GFS only -Shelter min temperature,t02min,mintshltr,2d,phy,not GFS -Shelter min temperature,tmin_min2m,mintshltr,2d,phy,GFS only -Shelter max rh,rh02max,maxrhshltr,2d,phy, -Shelter min rh,rh02min,minrhshltr,2d,phy, -Shelter max specific humidity,spfhmax_max2m,maxqshltr,2d,phy, -Shelter min specific humidity,spfhmin_min2m,minqshltr,2d,phy, -Ice thickness,icetk,dzice,2d,phy, -Wilting point,wilt,smcwlt,2d,phy, -Sunshine duration,sunsd_acc,suntime,2d,phy, -Field capacity,fldcp,fieldcapa,2d,phy, -Time averaged surface visible beam downward solar flux,vbdsf_ave,avisbeamswin,2d,phy, -Time averaged surface visible diffuse downward solar flux,vddsf_ave,avisdiffswin,2d,phy, -Time averaged surface near ir beam downward solar flux,nbdsf_ave,airbeamswin,2d,phy, -Time averaged surface near ir diffuse downward solar flux,nddsf_ave,airdiffswin,2d,phy, -Time averaged surface clear sky outgoing lw,csulf,alwoutc,2d,phy, -Time averaged toa clear sky outgoing lw,csulftoa,alwtoac,2d,phy, -Time averaged surface clear sky outgoing sw,csusf,aswoutc,2d,phy, -Time averaged toa clear sky outgoing sw,csusftoa,aswtoac,2d,phy, -Time averaged surface clear sky incoming lw,csdlf,alwinc,2d,phy, -Time averaged surface clear sky incoming sw,csdsf,aswinc,2d,phy, -Storm runoff,ssrun_acc,SSROFF,2d,phy, -Direct soil evaporation,evbs_ave,avgedir,2d,phy, -Canopy water evaporation,evcw_ave,avgecan,2d,phy, -Averaged precipitation advected heat flux,pah_ave,paha,2d,phy, -Instantaneous precipitation advected heat flux,pahi,pahi,2d,phy, -Plant transpiration,trans_ave,avgetrans,2d,phy, -Snow sublimation,sbsno_ave,avgesnow,2d,phy, -Total soil moisture,soilm,smstot,2d,phy,not GFS -Snow phase change heat flux,snohf,snopcx,2d,phy, -Precipitable water,pwat,pwat,2d,phy, -Average ozone concentration,o3_ave,avgozcon,3d,dyn,aqf_on=True -Average particulate matter (fine),pm25_ave,avgpmtf,3d,dyn,aqf_on=True -Aerosol optical depth,aod,aqm_aod550,2d,phy,aqf_on=True -Instantaneous aod550 optical depth,aod550,aod550,2d,phy,rdaod = True -Instantaneous aod550 optical depth (dust),du_aod550,du_aod550,2d,phy,rdaod = True -Instantaneous aod550 optical depth (seasalt),ss_aod550,ss_aod550,2d,phy,rdaod = True -Instantaneous aod550 optical depth (sulfates),su_aod550,su_aod550,2d,phy,rdaod = True -Instantaneous aod550 optical depth (organic carbon),oc_aod550,oc_aod550,2d,phy,rdaod = True -Instantaneous aod550 optical depth (black carbon),bc_aod550,bc_aod550,2d,phy,rdaod = True -Dust (1-5),dust1/.../dust5,dust,3d,dyn,GOCART - all requested read into 4d array -Sea salt (1-5),seas1/.../seas5,salt,3d,dyn,GOCART - all requested read into 4d array -Black carbon,bc1/bc2,soot,3d,dyn,GOCART - all requested read into 4d array -Organic carbon,oc1/oc2,waso,3d,dyn,GOCART - all requested read into 4d array -Sulfate,sulf,suso,3d,dyn,gocart_on=True or gccpp_on=True -Sulfate,so4,suso,3d,dyn,nasa_on=True -Nitrate,no3an1/no3an2/no3an3,no3,3d,dyn,GOCART - all requested read into 4d array -NH4,nh4a,nh4,3d,dyn,GOCART -Particulate matter (PP25),pp25,pp25,3d,dyn,gocart_on=True -Particulate matter (PM25),pm25,pp25,3d,dyn,nasa_on=True -Particulate matter (PP10),pp10,pp10,3d,dyn,gocart_on=True -Particulate matter (PM10),pm10,pp10,3d,dyn,nasa_on=True -Dust emission fluxes (1-5),duem001/.../duem005,duem,2d,phy, all requested read into 3d array -Dust sedimentation fluxes (1-5),dust1sd/.../dust5sd,dusd,2d, phy, all requested read into 3d array -Dust dry deposition fluxes (1-5),dust1dp/.../dust5dp,dupd,2d,phy, all requested read into 3d array -Dust wet deposition fluxes (1-5),dust1wtl/.../dust5wtl,duwt,2d,phy, all requested read into 3d array -Dust scavenging fluxes (1-5),dust1wtc/.../dust5wtc,dusv,2d,phy, all requested read into 3d array -Seasalt emission fluxes (1-5),ssem001/.../ssem005,ssem,2d,phy, all requested read into 3d array -Seasalt **emission/sedimentation** fluxes (1-5),seas1sd/.../seas5sd,sssd,2d,phy, all requested read into 3d array -Seasalt dry deposition fluxes (1-5),seas1dp/.../seas5dp,ssdp,2d,phy,all requested read into 3d array -Seasalt wet deposition fluxes (1-5),seas1wtl/.../seas5wtl,sswt,2d,phy,all requested read into 3d array -Seasalt scavenging fluxes (1-5),seas1wtc/.../seas5wtc,sssv,2d,phy,all requested read into 3d array -Black carbon emission fluxes,bceman/bcembb,bcem,2d,phy,all requested read into 3d array -Black carbon sedimentation fluxes,bc1sd/bc2sd,bcsd,2d,phy,all requested read into 3d array -Black carbon dry deposition fluxes,bc1dp/bc2dp,bcdp,2d,phy,all requested read into 3d array -Black carbon large wet deposition fluxes,bc1wtl/bc2wtl,bcwt,2d,phy,all requested read into 3d array -Black carbon convective wet deposition fluxes,bc1wtc/bc2wtc,bcsv,2d,phy,all requested read into 3d array -Organic carbon emission fluxes,oceman/ocembb,ocem,2d,phy,all requested read into 3d array -Organic carbon sedimentation fluxes,oc1sd/oc2sd,ocsd,2d,phy,all requested read into 3d array -Organic carbon dry deposition fluxes,oc1dp/oc2dp,ocdp,2d,phy,all requested read into 3d array -Organic carbon large wet deposition fluxes,oc1wtl/oc2wtl,ocwt,2d,phy,all requested read into 3d array -Organic carbon convective wet deposition fluxes,oc1wtc/oc2wtc,ocsv,2d,phy,all requested read into 3d array -Mie-based aerosol optical depth,maod,maod,2d,phy, +Field Description,Model Variable NetCDF Name,UPP Internal Name,Dimensions,dyn (atm) or phy (sfc),Notes +U-component of wind,ugrd,uh,3d,dyn, +V-component of wind,vgrd,vh,3d,dyn, +Specific humidity,spfh,q,3d,dyn, +Temperature,tmp,t,3d,dyn, +Ozone mixing ratio,o3mr,o3,3d,dyn, +Geometric vertical velocity,dzdt,wh,3d,dyn, +Cloud water mixing ratio,clwmr,qqw,3d,dyn, +Layer thickness in pressure on hybrid levels,dpres,dpres,3d,dyn, +Layer thickness in height,delz,na,3d,dyn, +Ice mixing ratio,icmr,qqi,3d,dyn, +Rain mixing ratio,rwmr,qqr,3d,dyn, +Snow mixing ratio,snmr,qqs,3d,dyn, +Graupel mixing ratio,grle,qqg,3d,dyn, +Hail mixing ratio,qqh,qqh,3d,dyn, +Instantaneous 3d cloud fraction,cld_amt,cfr,3d,dyn,imp_physics = 11 +Instantaneous 3d cloud fraction,cldfra,cfr,3d,phy,imp_physics ≠ 11 +Instantaneous 3d cloud fraction from boundary layer scheme,cldfra_bl,cfr,3d,phy,imp_physics ≠ 11 +Thompson scheme cloud ice effective radius,cieffr,effri,3d,phy +Thompson scheme cloud water effective radius,cleffr,effrl,3d,phy +Thompson scheme snow effective radius,cseffr,effrs,3d,phy +Max hourly updraft velocity,upvvelmax,w_up_max,2d,dyn,regional FV3 +Max hourly downdraft velocity,dnvvelmax,w_dn_max,2d,dyn,regional FV3 +Max hourly updraft helicity,uhmax25,up_heli_max,2d,dyn,regional FV3 +Min hourly updraft helicity,uhmin25,up_heli_min,2d,dyn,regional FV3 +Max hourly 0-3km updraft helicity,uhmax03,up_heli_max03,2d,dyn,regional FV3 +Min hourly 0-3km updraft helicity,uhmin03,up_heli_min03,2d,dyn,regional FV3 +Max 0-1km relative vorticity max,maxvort01,rel_vort_max01,2d,dyn,regional FV3 +Max 0-2km relative vorticity max,maxvort02,rel_vort_max,2d,dyn,regional FV3 +Max hybrid level 1 relative vorticity max,maxvorthy1,rel_vort_maxhy1,2d,dyn,regional FV3 +HAILCAST maximum hail diameter (mm) since last output,hailcast_dhail,hail_maxhailcast,2d,dyn,regional FV3 +Biomass burning emissions,ebb_smoke_hr,ebb,2d,phy,regional FV3 +Hourly wildfire potential,hwp,hwp,2d,phy,regional FV3 +Lightning threat index 1,ltg1_max,ltg1_max,2d,phy,regional FV3 +Lightning threat index 2,ltg2_max,ltg2_max,2d,phy,regional FV3 +Lightning threat index 3,ltg3_max,ltg3_max,2d,phy,regional FV3 +Surface pressure,pressfc,"pint(:,:,LM+1)",2d,dyn,regional FV3 +Surface height,hgtsfc,"zint(:,:,LM+1)",2d,dyn,regional FV3 +Smoke,smoke,smoke,3d,dyn,regional FV3 +FV3 dust,fv3dust,fv3dust,3d,dyn,regional FV3 +Coarse particulate matter,coarsepm,coarsepm,3d,dyn,regional FV3 +Unified extinction ext550/Aerosol optical depth,ext550,ext550,3d,phy,regional FV3 +Cloud ice number concentration,qqni,qqni,3d,dyn,regional FV3 +Cloud water number concentration,qqnw,qqnw,3d,dyn,regional FV3 +Rain number concentration,qqnr,qqnr,3d,dyn,regional FV3 +Reflectivity,refl_10cm,REF_10CM,3d,phy, +Turbulence kinetic energy,qke,q2,3d,phy, +Ice-friendly aerosol number concentration,nifa,qqnifa,3d,phy, +Water-friendly aerosol number concentration,nwfa,qqnwfa,3d,phy, +Land mask,land,sm,2d,phy, +Sea ice mask,icec,sice,2d,phy, +PBL height,hpbl,pblh,2d,phy, +Frictional velocity,fricv,ustar,2d,phy, +Roughness length,sfcr,z0,2d,phy, +Surface exchange coefficient,sfexc,SFCEXC,2d,phy, +Accumulated snowfall,tsnowp,SNOW_ACM,2d,phy +Snowfall bucket,tsnowpb,SNOW_BKT,2d,phy +Accumulated graupel/sleet,frozr,acgraup,2d,phy, +Graupel/sleet bucket,frozrb,graup_bucket,2d,phy, +Accumulated freezing rain,frzr,acfrain,2d,phy, +Freezing rain bucket,frzrb,frzrn_bucket,2d,phy, +Time step snow (in m),snow,snownc,2d,phy, +Time step graupel (in m),graupel,graupelnc,2d,phy, +Aerodynamic conductance,acond,acond,2d,phy, +Mid day avg albedo,albdo_ave,avgalbedo,2d,phy, +Surface potential temperature,tmpsfc,ths,2d,phy, +Foundation temperature,tref,fdnsst,2d,phy, +Convective precip in m per physics time step,cpratb_ave,avgcprate,2d,phy, +Convective precip - coninuous bucket,cprat_ave,avgcprate_cont,2d,phy, +Average precip rate in m per physics time step,prateb_ave,avgprec,2d,phy, +Average precip rate - continuous bucket,prate_ave,avgprec_cont,2d,phy, +Precip rate,tprcp,prec,2d,phy, +Convective precip rate,cnvprcp,cprate,2d,phy, +Max hourly surface precip rate,pratemax,prate_max,2d,phy, +Max hourly 1 km agl reflectivity,refdmax,refd_max,2d,phy, +Max hourly -10C reflectivity,refdmax263k,refdm10c_max,2d,phy, +Max hourly u comp of 10m agl wind,u10max,u10max,2d,phy, +Max hourly v comp of 10m agl wind,v10max,v10max,2d,phy, +Max hourly 10m agl wind speed,spd10max,wspd10max,2d,phy, +Instantaneous snow water equivalent,weasd,sno,2d,phy, +Average snow cover,snowc_ave,snoavg,2d,phy, +Snow depth in mm,snod,si,2d,phy, +2m temperature,tmp2m,tshltr,2d,phy, +2m specific humidity,spfh2m,qshltr,2d,phy, +Time-averaged column cloud fraction,tcdc_aveclm,avgtcdc,2d,phy, +Maximum snow albedo,snoalb,mxsnal,2d,phy, +Land fraction,lfrac,landfrac,2d,phy, +Average high cloud fraction,tcdc_avehcl,avgcfrach,2d,phy, +Average low cloud fraction,tcdc_avelcl,avgcfracl,2d,phy, +Average mid cloud fraction,tcdc_avemcl,avgcfracm,2d,phy, +Instantaneous convective cloud fraction,tcdccnvcl,cnvcfr,2d,phy, +Slope type,sltyp,islope,2d,phy, +Plant canopy sfc water in m,cnwat,cmc,2d,phy, +Frozen precip fraction,cpofp,sr,2d,phy, +Sea ice skin temperature,tisfc,ti,2d,phy, +Vegetation fraction,veg,vegfrc,2d,phy, +Liquid volumetric soil moisture,soill1/.../soill9,sh2o,2d,phy,all soil levels read into 3d array +Volumetric soil moisture,soilw1/.../soilw9,smc,2d,phy,"all soil levels read into 3d array, L5-9 RUC only" +Soil temperature,soilt1/.../soilt9,stc,2d,phy,"all soil levels read into 3d array, L5-9 RUC only" +Time averaged incoming surface longwave,dlwrf_ave,alwin,2d,phy, +Instantaneous incoming surface longwave,dlwrf,rlwin,2d,phy, +Time averaged outgoing surface longwave,ulwrf_ave,alwout,2d,phy, +Instataneous outgoing surface longwave,ulwrf,radot,2d,phy, +Time average outgoing model top longwave,ulwrf_avetoa,alwtoa,2d,phy, +Instantaneous outgoing model top longwave,ulwrf_toa,rlwtoa,2d,phy, +Time averaged incoming surface shortwave,dswrf_ave,aswin,2d,phy, +Instantaneous incoming surface shortwave,dswrf,rswin,2d,phy, +Time averaged incoming sfc uv-b,duvb_ave,auvbin,2d,phy, +Time averaged incoming sfc clear sky uv-b,cduvb_ave,auvbinc,2d,phy, +Time averaged outgoing sfc shortwave,uswrf_ave,aswout,2d,phy, +Inst outgoing sfc shortwave,uswrf,rswout,2d,phy, +Time averaged model top incoming shortwave,dswrf_avetoa,aswintoa,2d,phy, +Time averaged model top outgoing shortwave,uswrf_avetoa,aswtoa,2d,phy, +Time averaged surface sensible heat flux,shtfl_ave,sfcshx,2d,phy, +Inst surface sensible heat flux,shtfl,twbs,2d,phy, +Time averaged surface latent heat flux,lhtfl_ave,sfclhx,2d,phy, +Inst surface latent heat flux,lhtfl,qwbs,2d,phy, +Time averaged ground heat flux,gflux_ave,subshx,2d,phy, +Instantaneous ground heat flux,gflux,grnflx,2d,phy, +Time averaged zonal momentum flux,uflx_ave,sfcux,2d,phy, +Time averaged meridional momentum flux,vflx_ave,sfcvx,2d,phy, +Instantaneous zonal momentum flux,uflx,sfcuxi,2d,phy, +Instantaneous meridional momentum flux,vflx,sfcvxi,2d,phy, +Time averaged zonal gravity wave stress,u-gwd_ave,gtaux,2d,phy, +Time averaged meridional gravity wave stress,v-gwd_ave,gtauy,2d,phy, +Time averaged accumulated potential evaporation,pevpr_ave,avgpotevp,2d,phy, +Instantaneous potential evaporation,pevpr,potevp,2d,phy, +10 m u-wind component,ugrd10m,u10,2d,phy, +10 m v-wind component,vgrd10m,v10,2d,phy, +Vegetation type,vtype,ivgtyp,2d,phy, +Soil type,sotyp,isltyp,2d,phy, +Soil moisture availability,wetness,smstav,2d,phy,not GFS +Accumulated snow depth over land,snacc_land,for computing *sndepac*,2d,phy, +Accumulated snow depth over ice,snacc_ice,for computing *sndepac*,2d,phy, +Instantaneous convective cloud top pressure,prescnvclt,ptop,2d,phy, +Instantaneous convective cloud bottom pressure,prescnvclb,pbot,2d,phy, +Time averaged low cloud top pressure,pres_avelct,ptopl,2d,phy, +Time averaged low cloud bottom pressure,pres_avelcb,pbotl,2d,phy, +Time averaged low cloud top temperature,tmp_avelct,Ttopl,2d,phy, +Time averaged middle cloud top pressure,pres_avemct,ptopm,2d,phy, +Time averaged middle cloud bottom pressure,pres_avemcb,pbotm,2d,phy, +Time averaged middle cloud top temperature,tmp_avemct,Ttopm,2d,phy, +Time averaged high cloud top pressure,pres_avehct,ptoph,2d,phy, +Time averaged high cloud bottom pressure,pres_avehcb,pboth,2d,phy, +Time averaged high cloud top temperature,tmp_avehct,Ttoph,2d,phy, +Boundary layer cloud cover,tcdc_avebndcl,pblcfr,2d,phy, +Cloud work function,cwork_aveclm,cldwork,2d,phy, +Accumulated total (base+surface) runoff,watr_acc,runoff,2d,phy, +Total water storage in aquifer,wa_acc,twa,2d,phy, +Accumulated evaporation of intercepted water,ecan_acc,tecan,2d,phy, +Accumulated plant transpiration,etran_acc,tetran,2d,phy, +Accumulated soil surface evaporation,edir_acc,tedir,2d,phy, +Shelter max temperature,t02max,maxtshltr,2d,phy,not GFS +Shelter max temperature,tmax_max2m,maxtshltr,2d,phy,GFS only +Shelter min temperature,t02min,mintshltr,2d,phy,not GFS +Shelter min temperature,tmin_min2m,mintshltr,2d,phy,GFS only +Shelter max rh,rh02max,maxrhshltr,2d,phy, +Shelter min rh,rh02min,minrhshltr,2d,phy, +Shelter max specific humidity,spfhmax_max2m,maxqshltr,2d,phy, +Shelter min specific humidity,spfhmin_min2m,minqshltr,2d,phy, +Ice thickness,icetk,dzice,2d,phy, +Wilting point,wilt,smcwlt,2d,phy, +Sunshine duration,sunsd_acc,suntime,2d,phy, +Field capacity,fldcp,fieldcapa,2d,phy, +Time averaged surface visible beam downward solar flux,vbdsf_ave,avisbeamswin,2d,phy, +Time averaged surface visible diffuse downward solar flux,vddsf_ave,avisdiffswin,2d,phy, +Time averaged surface near ir beam downward solar flux,nbdsf_ave,airbeamswin,2d,phy, +Time averaged surface near ir diffuse downward solar flux,nddsf_ave,airdiffswin,2d,phy, +Time averaged surface clear sky outgoing lw,csulf,alwoutc,2d,phy, +Time averaged toa clear sky outgoing lw,csulftoa,alwtoac,2d,phy, +Time averaged surface clear sky outgoing sw,csusf,aswoutc,2d,phy, +Time averaged toa clear sky outgoing sw,csusftoa,aswtoac,2d,phy, +Time averaged surface clear sky incoming lw,csdlf,alwinc,2d,phy, +Time averaged surface clear sky incoming sw,csdsf,aswinc,2d,phy, +Storm runoff,ssrun_acc,SSROFF,2d,phy, +Direct soil evaporation,evbs_ave,avgedir,2d,phy, +Canopy water evaporation,evcw_ave,avgecan,2d,phy, +Averaged precipitation advected heat flux,pah_ave,paha,2d,phy, +Instantaneous precipitation advected heat flux,pahi,pahi,2d,phy, +Plant transpiration,trans_ave,avgetrans,2d,phy, +Snow sublimation,sbsno_ave,avgesnow,2d,phy, +Total soil moisture,soilm,smstot,2d,phy,not GFS +Snow phase change heat flux,snohf,snopcx,2d,phy, +Precipitable water,pwat,pwat,2d,phy, +Average ozone concentration,o3_ave,avgozcon,3d,dyn,aqf_on=True +Average particulate matter (fine),pm25_ave,avgpmtf,3d,dyn,aqf_on=True +Aerosol optical depth,aod,aqm_aod550,2d,phy,aqf_on=True +Instantaneous aod550 optical depth,aod550,aod550,2d,phy,rdaod = True +Instantaneous aod550 optical depth (dust),du_aod550,du_aod550,2d,phy,rdaod = True +Instantaneous aod550 optical depth (seasalt),ss_aod550,ss_aod550,2d,phy,rdaod = True +Instantaneous aod550 optical depth (sulfates),su_aod550,su_aod550,2d,phy,rdaod = True +Instantaneous aod550 optical depth (organic carbon),oc_aod550,oc_aod550,2d,phy,rdaod = True +Instantaneous aod550 optical depth (black carbon),bc_aod550,bc_aod550,2d,phy,rdaod = True +Dust (1-5),dust1/.../dust5,dust,3d,dyn,GOCART - all requested read into 4d array +Sea salt (1-5),seas1/.../seas5,salt,3d,dyn,GOCART - all requested read into 4d array +Black carbon,bc1/bc2,soot,3d,dyn,GOCART - all requested read into 4d array +Organic carbon,oc1/oc2,waso,3d,dyn,GOCART - all requested read into 4d array +Sulfate,sulf,suso,3d,dyn,gocart_on=True or gccpp_on=True +Sulfate,so4,suso,3d,dyn,nasa_on=True +Nitrate,no3an1/no3an2/no3an3,no3,3d,dyn,GOCART - all requested read into 4d array +NH4,nh4a,nh4,3d,dyn,GOCART +Particulate matter (PP25),pp25,pp25,3d,dyn,gocart_on=True +Particulate matter (PM25),pm25,pp25,3d,dyn,nasa_on=True +Particulate matter (PP10),pp10,pp10,3d,dyn,gocart_on=True +Particulate matter (PM10),pm10,pp10,3d,dyn,nasa_on=True +Dust emission fluxes (1-5),duem001/.../duem005,duem,2d,phy, all requested read into 3d array +Dust sedimentation fluxes (1-5),dust1sd/.../dust5sd,dusd,2d, phy, all requested read into 3d array +Dust dry deposition fluxes (1-5),dust1dp/.../dust5dp,dupd,2d,phy, all requested read into 3d array +Dust wet deposition fluxes (1-5),dust1wtl/.../dust5wtl,duwt,2d,phy, all requested read into 3d array +Dust scavenging fluxes (1-5),dust1wtc/.../dust5wtc,dusv,2d,phy, all requested read into 3d array +Seasalt emission fluxes (1-5),ssem001/.../ssem005,ssem,2d,phy, all requested read into 3d array +Seasalt **emission/sedimentation** fluxes (1-5),seas1sd/.../seas5sd,sssd,2d,phy, all requested read into 3d array +Seasalt dry deposition fluxes (1-5),seas1dp/.../seas5dp,ssdp,2d,phy,all requested read into 3d array +Seasalt wet deposition fluxes (1-5),seas1wtl/.../seas5wtl,sswt,2d,phy,all requested read into 3d array +Seasalt scavenging fluxes (1-5),seas1wtc/.../seas5wtc,sssv,2d,phy,all requested read into 3d array +Black carbon emission fluxes,bceman/bcembb,bcem,2d,phy,all requested read into 3d array +Black carbon sedimentation fluxes,bc1sd/bc2sd,bcsd,2d,phy,all requested read into 3d array +Black carbon dry deposition fluxes,bc1dp/bc2dp,bcdp,2d,phy,all requested read into 3d array +Black carbon large wet deposition fluxes,bc1wtl/bc2wtl,bcwt,2d,phy,all requested read into 3d array +Black carbon convective wet deposition fluxes,bc1wtc/bc2wtc,bcsv,2d,phy,all requested read into 3d array +Organic carbon emission fluxes,oceman/ocembb,ocem,2d,phy,all requested read into 3d array +Organic carbon sedimentation fluxes,oc1sd/oc2sd,ocsd,2d,phy,all requested read into 3d array +Organic carbon dry deposition fluxes,oc1dp/oc2dp,ocdp,2d,phy,all requested read into 3d array +Organic carbon large wet deposition fluxes,oc1wtl/oc2wtl,ocwt,2d,phy,all requested read into 3d array +Organic carbon convective wet deposition fluxes,oc1wtc/oc2wtc,ocsv,2d,phy,all requested read into 3d array +Mie-based aerosol optical depth,maod,maod,2d,phy, diff --git a/docs/UFS_unified_variables_table.rst b/doc/UserGuide/tables/UFS_unified_variables_table.rst similarity index 100% rename from docs/UFS_unified_variables_table.rst rename to doc/UserGuide/tables/UFS_unified_variables_table.rst diff --git a/docs/UPP_GRIB2_Table_byID.csv b/doc/UserGuide/tables/UPP_GRIB2_Table_byID.csv similarity index 98% rename from docs/UPP_GRIB2_Table_byID.csv rename to doc/UserGuide/tables/UPP_GRIB2_Table_byID.csv index dd09e3d39..d3488c852 100644 --- a/docs/UPP_GRIB2_Table_byID.csv +++ b/doc/UserGuide/tables/UPP_GRIB2_Table_byID.csv @@ -34,7 +34,7 @@ Surface CAPE,CAPE_ON_SURFACE,CAPE,32 Accumulated convective precipitation,ACM_ACPCP_ON_SURFACE,ACPCP,33 Accumulated grid-scale precipitation,ACM_NCPCP_ON_SURFACE,NCPCP,34 Accumulated snowfall,ACM_WEASD_ON_SURFACE,WEASD,35 -Total soil moisture,SOILM_ON_DEPTH_BEL_LAND_SFC,SOILM,36 +Total soil moisture,SOILM_ON_DEPTH_BEL_LAND_SFC,SOILMOI,36 Low level cloud fraction,LCDC_ON_LOW_CLOUD_LYR,LCDC,37 Mid level cloud fraction,MCDC_ON_MID_CLOUD_LYR,MCDC,38 High level cloud fraction,HCDC_ON_HIGH_CLOUD_LYR,HCDC,39 @@ -167,7 +167,7 @@ Precipitation rate - instantaneous,INST_PRATE_ON_SURFACE,PRATE,167 Cloud top temperature,TMP_ON_CLOUD_TOP,TMP,168 Heat exchange coeff at surface,SFEXC_ON_SURFACE,SFEXC,169 Vegetation cover,VEG_ON_SURFACE,VEG,170 -Soil moisture availability,MSTAV_ON_DEPTH_BEL_LAND_SFC,MSTAV,171 +Soil moisture availability,RUC_MSTAV_ON_DEPTH_BEL_LAND_SFC,MSTAV,171 Fraction of frozen precipitation,CPOFP_ON_SURFACE,CPOFP,172 Maximum wind pressure level,PRES_ON_MAX_WIND,PRES,173 Maximum wind height,HGT_ON_MAX_WIND,HGT,174 @@ -471,12 +471,8 @@ GTG mountain wave turbulence (MWT) on model surface,MWTURB_ON_HYBRID_LVL,MWTURB, Horizontal extent of cumulonimbus (CB) %,CBHE_ON_ENTIRE_ATMOS,CBHE,473 Standard atmosphere reference height of base of cumulonimbus,ICAHT_ON_CB_BASE,ICAHT,474 Standard atmosphere reference height of top of cumulonimbus,ICAHT_ON_CB_TOP,ICAHT,475 -GTG eddy dissipation parameter (EDR) on standard atmospheric isobaric levels,EDPARM_GTG_ON_ICAO_STD_SFC,EDPARM,476 -GTG clean air turbulence (CAT) on standard atmospheric isobaric levels,CAT_GTG_ON_ICAO_STD_SFC,CATEDR,477 -GTG mountain wave turbulence (MWT) on standard atmospheric isobaric levels,MWTURB_GTG_ON_ICAO_STD_SFC,MWTURB,478 -Icing severity on standard atmospheric isobaric levels,ICESEV_ON_ICAO_STD_SFC,ICESEV,479 +G2G Convectively-induced turbulence (CIT) eddy dissipation rate (EDR) at specific altitude above mean sea level (for regional model),CIT_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL,CITEDR,477 GFIP in-flight icing severity on pressure surface,ICESEV_ON_ISOBARIC_SFC,ICESEV,480 -Total icing potential diagnostic on standard atmospheric isobaric surface,ICIP_ON_ICAO_STD_SFC,ICIP,481 Pressure at flight levels,PRES_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL,PRES,482 Simulated AMSR-E channel 9 brightness temperature,AMSRE9_ON_TOP_OF_ATMOS,AMSRE9,483 Simulated AMSR-E channel 10 brightness temperature,AMSRE10_ON_TOP_OF_ATMOS,AMSRE10,484 @@ -512,10 +508,6 @@ Direct evaporation from bare soil on surface,AVE_EVBS_ON_SURFACE,EVBS,514 Transpiration on surface,AVE_TRANS_ON_SURFACE,TRANS,515 Sublimation on surface,AVE_SBSNO_ON_SURFACE,SBSNO,516 Potential evaporation rate on surface,AVE_PEVPR_ON_SURFACE,PEVPR,517 -Height on standard atmospheric isobaric levels,HGT_ON_ICAO_STD_SFC,HGT,518 -Temperature on standard atmospheric isobaric levels,TMP_ON_ICAO_STD_SFC,TMP,519 -U-component wind on standard atmospheric isobaric levels,UGRD_ON_ICAO_STD_SFC,UGRD,520 -V-component wind on standard atmospheric isobaric levels,VGRD_ON_ICAO_STD_SFC,VGRD,521 Bucket total precipitation on surface,BUCKET1_APCP_ON_SURFACE,APCP,526 Bucket convective precipitation on surface,BUCKET1_ACPCP_ON_SURFACE,ACPCP,527 Bucket large scale precipitation on surface,BUCKET1_NCPCP_ON_SURFACE,NCPCP,528 @@ -709,12 +701,12 @@ Biomass burning emissions,BIOMASS_BURNING_EMISSIONS,AEMFLX,745 Accumulated graupel,ACM_GRAUPEL_ON_SURFACE,FROZR,746 Number concentration for cloud water drops on hybrid level,GSD_NCCD_ON_HYBRID_LVL,NCONCD,747 Radar reflectivity at 1km above ground,GSD_REFL_ON_SPEC_HGT_LVL_ABOVE_GRND_1km,REFD,748 -Relative humidity with respect to precipitable water,GSD_RH_WRT_PRECIP_WATER_ON_ENTIRE_ATMOS,RH_PWAT,749 +Relative humidity with respect to precipitable water,GSD_RH_WRT_PRECIP_WATER_ON_ENTIRE_ATMOS,RHPW,749 Water vapor mixing ratio on model surface,GSD_WV_MIXR_ON_HYBRID_LVL,MIXR,750 Virtual potential temperature on model surface,GSD_VPTMP_ON_HYBRID_LVL,VPTMP,751 -Number concentration for ice particles on hybrid level,GSD_NCIP_ON_HYBRID_LVL,NCIP,752 +Number concentration for ice particles on hybrid level,GSD_NCIP_ON_HYBRID_LVL,NCCICE,752 GSD pressure on level of 0 deg (C) isotherm,GSD_PRES_ON_0C_ISOTHERM,PRES,753 -Number concentration of rain drops on model surface,GSD_NCRAIN_ON_HYBRID_LVL,NCRAIN,754 +Number concentration of rain drops on model surface,GSD_NCRAIN_ON_HYBRID_LVL,SPNCR,754 Hourly Wildfire Potential on surface,HWP_ON_SURFACE,FWINX,755 GSD pressure on highest tropospheric freezing level,GSD_PRES_ON_HGHST_TROP_FRZ_LVL,PRES,756 GSD radar reflectivity at 4km above ground,GSD_REFL_ON_SPEC_HGT_LVL_ABOVE_GRND_4km,REFD,757 @@ -802,7 +794,7 @@ Effective storm relative helicity,EFF_HLCY_ON_SPEC_HGT_LVL_ABOVE_GRND,EFHL,953 Downdraft CAPE,DOWNWARD_CAPE,DCAPE,954 Dendritic layer depth,DENDRITIC_LAYER_DEPTH,LAYTH,955 Enhanced stretching potential,ENHANCED_STRETCHING_POTENTIAL,ESP,956 -Critical angle,CRITICAL_ANGLE,DCAPE,957 +Critical angle,CRITICAL_ANGLE,CANGLE,957 Simulated GOES R band 7 brightness temperature,SBTAGR7_ON_TOP_OF_ATMOS,SBTAGR7,958 Simulated GOES R band 8 brightness temperature,SBTAGR8_ON_TOP_OF_ATMOS,SBTAGR8,959 Simulated GOES R band 9 brightness temperature,SBTAGR9_ON_TOP_OF_ATMOS,SBTAGR9,960 diff --git a/docs/UPP_GRIB2_Table_byID.rst b/doc/UserGuide/tables/UPP_GRIB2_Table_byID.rst similarity index 94% rename from docs/UPP_GRIB2_Table_byID.rst rename to doc/UserGuide/tables/UPP_GRIB2_Table_byID.rst index 65f2e40f2..3f5f1be3f 100644 --- a/docs/UPP_GRIB2_Table_byID.rst +++ b/doc/UserGuide/tables/UPP_GRIB2_Table_byID.rst @@ -1,5 +1,7 @@ :orphan: +.. _grib2-fields-by-id: + ******************************** GRIB2 Fields Produced by UPP ******************************** diff --git a/docs/module-load-make-howto.txt b/doc/module-load-make-howto.txt similarity index 100% rename from docs/module-load-make-howto.txt rename to doc/module-load-make-howto.txt diff --git a/docs/user_guide.md b/doc/user_guide.md similarity index 100% rename from docs/user_guide.md rename to doc/user_guide.md diff --git a/docs/InputsOutputs.rst b/docs/InputsOutputs.rst deleted file mode 100644 index eed194926..000000000 --- a/docs/InputsOutputs.rst +++ /dev/null @@ -1,169 +0,0 @@ -.. role:: underline - :class: underline -.. role:: bolditalic - :class: bolditalic - -****************** -Inputs and Outputs -****************** - -This section describes the input files used when running the UPP and the resulting output files. - -=========== -Input files -=========== - -The UPP requires the following input files: - - The model forecast file - - The :bolditalic:`itag` namelist file - - The :term:`GRIB2` control file - - Additional data files (e.g. lookup tables, coefficient files for satellites) - --------------- -Model Forecast --------------- - -The UPP ingests FV3 :term:`write component` files in parallel :term:`netCDF` format. - -The table below is a list of the unified model variables available from the :term:`FV3` model core. Whether a -specific variable is able to be read by UPP relies on dependencies such as physics options and model. -This table does not include variables that are diagnosed when running the UPP. - -UFS Unified Model Variables - - :doc:`UFS_unified_variables_table` - ----- -ITAG ----- - -The file called :bolditalic:`itag` is a text file that contains the fortran namelist ``&model_inputs`` as -well as the 2D decomposition specification in ``&nampgb``. It is read in by the :bolditalic:`upp.x` executable -from stdin (unit 5) and is generated automatically within the UFS application workflow or stand-alone run -script based on user-defined options. It should not be necessary to edit this. For description purposes, -the namelists ``&model_inputs`` and ``&nampgb`` (:bolditalic:`itag` file) contain the following lines for FV3: - -:bolditalic:`&model_inputs` - -#. fileName: Name of the FV3 (pressure level) output file to be post-processed. - -#. IOFORM: Format of FV3 model output (netcdfpara). - -#. grib: Format of UPP output (grib2) - -#. DateStr: Forecast valid time (not model start time) in YYYY-MM-DD_HH:00:00 format (the forecast time - desired to be post-processed). - -#. MODELNAME: Model used (GFS, FV3R - regional FV3 also known as the LAM - Limited Area Model). - -#. fileNameFlux: Name of the FV3 (surface) output file to be post-processed. - -#. fileNameFlat: Name of configuration file (postxconfig-NT.txt) - -:bolditalic:`&nampgb` - -#. numx: Number of subdomains in the x-direction used for 2D decomposition. - ------------- -Control File ------------- - -The user interacts with the UPP through the control file to define what fields and levels to output. It -is composed of a header and a body. The header specifies the output file information. The body includes -which fields and levels to process. - -A default control file, :bolditalic:`postxconfig-NT.txt`, is provided and read by the UPP. For users -wishing to customize the control file to add or remove fields and/or levels, they may do so by -modifying the :bolditalic:`postcntrl.xml` and then remaking the text file as described in the later section -:ref:`create_txt_file`. - -.. Note:: - The control file names :bolditalic:`postxconfig-NT.txt` and :bolditalic:`postcntrl.xml` are generic - names and are different depending on the application used. Control files for various operational - models are located in the :bolditalic:`UPP/parm` directory. - -Controlling which variables the UPP outputs -------------------------------------------- - -To output a field, the body of the control file needs to contain an entry for the appropriate variable. -If an entry for a particular field is not yet available in the control file, it may be added to the -control file with the appropriate entries for that field. For variables found on vertical levels (e.g. -isobaric or height levels), the desired levels to be output must be listed (see next section: -:ref:`control_levels`). A list of available GRIB2 fields that can be output by UPP can be found in the -table :doc:`UPP_GRIB2_Table_byID`. Please note that some fields are dependent on model, physics, and other fields. - -.. _control_levels: - -Controlling which levels the UPP outputs ----------------------------------------- - -The tag in the postcntrl.xml file is used to list the desired levels for output. The following -levels are currently available for output: - -- For isobaric output, 46 levels are possible, from 2 to 1000 hPa (*2, 5, 7, 10, 20, 30, 50, 70 mb and - then every 25 mb from 75 to 1000 mb*). The complete list of levels is specified in - :bolditalic:`sorc/ncep_post.fd/CTLBLK.f`. - - - Modify specification of variable ``LSMDEF`` to change the number of pressure levels: LSMDEF=47 - - Modify specification of ``SPLDEF`` array to change the values of pressure levels: - (/200.,500.,700.,1000.,2000.,3000.,5000.,7000.,7500.,10000.,12500.,15000.,17500.,20000., …/) - -- For model-level output, all model levels are possible, from the highest to the lowest. -- When using the Noah LSM, the soil layers are 0-10 cm, 10-40 cm, 40-100 cm, and 100-200 cm. -- When using the RUC LSM, the soil levels are 0 cm, 1 cm, 4 cm, 10 cm, 30 cm, 60 cm, 100 cm, 160 cm, - and 300 cm. (For the old RUC LSM, there are only 6 layers, and if using this, you will need to change - ``NSOIL`` for “RUC LSM” from 9 to 6 in the :bolditalic:`sorc/ncep_post.fd/WRFPOST.f` routine.) -- When using Pliem-Xiu LSM, there are two layers: 0-1 cm, 1-100 cm -- For low, mid, and high cloud layers, the layers are :math:`\geq`\ 642 hPa, :math:`\geq`\ 350 hPa, and - <350 hPa, respectively. -- For PBL layer averages, the levels correspond to 6 layers with a thickness of 30 hPa each. -- For flight level, the levels are 30 m, 50 m, 80 m, 100 m, 305 m, 457 m, 610 m, 914 m, 1524 m, 1829 m, - 2134 m, 2743 m, 3658 m, 4572 m, 6000 m, 7010 m. -- For AGL radar reflectivity, the levels are 4000 and 1000 m. -- For surface or shelter-level output, the is not necessary. - -.. _create_txt_file: - -Creating the Flat Text File ---------------------------- - -If the control file requires any modifications, a preprocessing step will be required by the user to -convert the modified xml file :bolditalic:`parm/postcntrl.xml` to a flat text file -:bolditalic:`parm/postxconfig-NT.txt`. The user will first need to edit the :bolditalic:`postcntrl.xml` -file to declare which fields are to be output from the UPP. - -In order to ensure that the user-edited xml files are error free, XML stylesheets -(:bolditalic:`parm/EMC\_POST\_CTRL\_Schema.xsd` and :bolditalic:`EMC\_POST\_Avblflds\_Schema.xsd`) can -be used to validate both the :bolditalic:`postcntrl.xml` and :bolditalic:`post\_avblflds.xml` files, -respectively. Confirmation of validation will be given (e.g., :bolditalic:`postcntrl.xml` validates) or otherwise -return errors if it does not match the schema. This step is optional, but acts as a safeguard to avoid -run-time failures with the UPP. To run the validation: - -.. code-block:: console - - xmllint --noout --schema EMC_POST_CTRL_Schema.xsd postcntrl.xml - xmllint --noout --schema EMC_POST_Avblflds_Schema.xsd post_avblflds.xml - -Once the xmls are validated, the user will need to generate the flat file. The below command will run the -Perl program :bolditalic:`parm/PostXMLPreprocessor.pl` to generate the post flat file: - -.. code-block:: console - - /usr/bin/perl PostXMLPreprocessor.pl your_user_defined_xml post_avblflds.xml your_user_defined_flat - -where *your_user_defined_xml* is your modified xml and *your_user_defined_flat* is the output text file. - -============ -Output Files -============ - -Upon a successful run, :bolditalic:`upp.x` will generate GRIB2 output files in the post-processor -working directory. These files will include all fields that were requested in the control file. - -When running UPP stand-alone, the following GRIB2 output files will be generated: - - | **GFS Model**: GFSPRS.HHH - | **LAM (Limited Area Model)**: NATLEV.HHH and PRSLEV.HHH - -When executed with the provided run script, UPP provides log files in the post-processor working directory named -:bolditalic:`upp.fHHH.out`, where :bolditalic:`HHH` is the forecast hour. These log files may be consulted for further -run-time information in the event of an error. diff --git a/docs/Installation.rst b/docs/Installation.rst deleted file mode 100644 index 575d58526..000000000 --- a/docs/Installation.rst +++ /dev/null @@ -1,117 +0,0 @@ -.. role:: underline - :class: underline -.. role:: bolditalic - :class: bolditalic - -******************** -Building Stand-Alone -******************** - -The UPP uses a CMake-based build system to integrate all the required components for building the UPP. -Once built, the UPP can be run stand-alone (outside the UFS Applications) to post-process model output. - -===================== -Software Requirements -===================== - -The UPP is tested on a variety of research platforms, including NOAA HPC systems (e.g., Hera, Orion) and -the NCAR HPC Cheyenne. These supported platforms are pre-configured for building and running the UPP and already -have the required libraries available via `HPC-Stack `__ in a centralized -location. The :term:`HPC-Stack` is a script-based build system that builds the software stack required by UFS components. - -Users working on unsupported platforms will need to install the HPC-Stack on their system and can do so following -the instructions in the `HPC-Stack User's Guide `__. - -.. note:: - - UFS applications are gradually shifting to :term:`spack-stack`, which is a :term:`Spack`-based method for installing the same UFS prerequisite software libraries installed by HPC-Stack. The spack-stack is currently used on NOAA Cloud platforms and in containerized UFS applications, while HPC-Stack is still used on other Level 1 systems and is the software stack validated by the UFS Weather Model. Users are encouraged to check out `spack-stack `__ to prepare for the upcoming shift in support from HPC-Stack to spack-stack. Users can install spack-spack instead of HPC-Stack by following the instructions in the `spack-stack User's Guide `. - ----------------- -Common Modules ----------------- - -As of June 14, 2023, the UPP uses the following common modules from HPC-Stack: - -.. code-block:: console - - cmake 3.16.1+ - hdf5/1.10.6 - netcdf 4.7.4 - jasper 2.0.22+ - libpng 1.6.37 / png 1.6.35 - zlib 1.2.11 - g2 3.4.1+ - g2tmpl 1.10.0+ - bacio 2.4.1 - ip 3.3.3 - sp 2.3.3 - crtm 2.3.0 - w3emc 2.9.2 - nemsio 2.5.2+ - sigio 2.3.2 - sfcio 1.4.1 - wrf_io 1.1.1+ - - -The most updated list of modules can be viewed in each machine's modulefile -`here `__. -Users on a non-Tier-1 system should look at the modulefile for the system -whose architecture most closely resembles their own system's architecture. - -============================ -Obtaining and Installing UPP -============================ - -Building and running UPP v11.0.0 has been tested and is supported on the following pre-configured platforms. - -+---------------+----------------------+ -| System | Compiler and Version | -+===============+======================+ -| NCAR Cheyenne | Intel 2021.2 | -| +----------------------+ -| | GNU 10.1.0 | -+---------------+----------------------+ -| NOAA Hera | Intel 18.0.5.274 | -+---------------+----------------------+ -| NOAA Orion | Intel 2018.4 | -+---------------+----------------------+ - -To install the UPP, navigate to the directory where you want to install UPP and clone the repository. - -.. code-block:: console - - git clone -b branch-or-tag-name https://github.com/NOAA-EMC/UPP - -where, ``branch-or-tag-name`` is the release branch or tag you wish to clone. (Leaving this off the ``-b`` argument will clone all branches of the repository.) - -Move to the directory with the build script and build the UPP. - -.. code-block:: console - - cd UPP/tests - - ./compile_upp.sh - -.. note:: - To build in debug mode, you can add ``-DCMAKE_BUILD_TYPE=Debug`` to the *cmake_opts* - parameter in the :bolditalic:`compile_upp.sh` script. - This removes compiler optimization flags and adds ``-g`` to the fortran compilation. You can also use - ``-DCMAKE_BUILD_TYPE=RELWITHDEBINFO``, which gives the ``-g``, but keeps the ``-O2`` optimization - for the fortran compilation. - -Move back to the top level UPP directory and create a directory where the CRTM fix files will be unpacked. Download the fix files from the GitHub `release page -`__ or use the ``wget`` command. Unpack the -tar file. - -.. code-block:: console - - cd ../ - mkdir crtm && cd crtm - wget https://github.com/NOAA-EMC/UPP/releases/download/upp_v11.0.0/fix.tar.gz - tar -xzf fix.tar.gz - -.. note:: - To make a clean build, simply remove both the **tests/build** and **tests/install** directories and the - :bolditalic:`exec/upp.x` executable and then rerun the :bolditalic:`compile_upp.sh` script. This is - recommended if a mistake is made during the installation process. - diff --git a/docs/Running.rst b/docs/Running.rst deleted file mode 100644 index a0fa902b9..000000000 --- a/docs/Running.rst +++ /dev/null @@ -1,134 +0,0 @@ -.. role:: underline - :class: underline -.. role:: bolditalic - :class: bolditalic - -*********************** -Running UPP Stand-Alone -*********************** - -A script for running the UPP package is included in the :bolditalic:`/scripts` directory: - - - :bolditalic:`run_upp` - -:underline:`Before running the script, perform the following instructions:` - -1. :bolditalic:`cd` to your **DOMAINPATH** directory. This is the top working directory for the run. - -2. Make a directory to put the UPP results in. - - .. code-block:: console - - mkdir postprd - -3. Make a directory for staging a copy of the desired control file. - - .. code-block:: console - - mkdir parm - -4. Optional: If desired, edit the control **XML** file(s) in **/UPP/parm** to reflect the fields - and levels you want UPP to output. It is recommended that you make copies of the original - beforehand. - - | **GFS XMLs**: :bolditalic:`postcntrl_gfs_f00.xml` (0-hour lead time) and - :bolditalic:`postcntrl_gfs.xml` (all other lead times) - | **LAM (Limited Area Model) XML**: :bolditalic:`fv3lam.xml` - - Re-make the flat text file(s) following the steps in the "Control File: Creating the Flat Text File" - section. - -5. Copy the flat text file(s) to the **/parm** directory in your **DOMAINPATH**. These are the files - that UPP reads directly. - - | **GFS text files**: :bolditalic:`postxconfig-NT-GFS-F00.txt` (0-hour lead time) and - :bolditalic:`postxconfig-NT-GFS.txt` (all other lead times). - | **LAM text file**: :bolditalic:`postxconfig-NT-fv3lam.txt` - -6. Copy the :bolditalic:`/scripts/run_upp` script to the **/postprd** directory. - -7. Edit the run script as outlined in the :ref:`"Run Script Overview" ` section below. Once these directories are set - up and the edits outlined below are complete, the script can be run interactively from the - **/postprd** directory by simply typing the script name on the command line. - -.. _run-script-overview: - -=================== -Run Script Overview -=================== - -.. note:: - It is recommended that the user refer to the :bolditalic:`run_upp` script while reading this - overview. All user-modified variables are contained at the top of the :bolditalic:`run_upp` script - in the user-edit section, along with a brief description. Descriptions below follow the - :bolditalic:`run_upp` script. - -1. Set up basic path variables: - - | **TOP_DIR**: Top level directory for building and running UPP - | **DOMAINPATH**: Working directory for this run - | **UPP_HOME**: Location of the **UPP** directory - | **POSTEXEC**: Location of the **UPP** executable - | **modelDataPath**: Location of the model output data files to be processed by the UPP - | **txtCntrlFile**: Name and location of the flat text file that lists desired fields for - output. - - .. note:: - For FV3, the scripts are configured such that UPP expects the flat text file to be in **/parm**, - and the postprocessor working directory to be called **/postprd**, all under **DOMAINPATH**. - This setup is for user convenience to have a script ready to run; paths may be modified, but be - sure to check the run script to make sure settings are correct. - -2. Specify dynamical core being run: - - | **model**: Which model is used? ("GFS" or "LAM" - Limited Area Model) - -3. Specify the format for the input model files and output UPP files: - - | **inFormat**: Format of the model data ("netcdfpara") - | **outFormat**: Format of output from UPP ("grib2") - -4. Specify the forecast cycles to be post-processed: - - | **startdate**: Forecast start date (YYYYMMDDHH) - | **fhr**: First forecast hour to be post-processed - | **lastfhr**: Last forecast hour to be post-processed - | **incrementhr**: Increment (in hours) between forecast files - - .. attention:: - - Do not set :bolditalic:`incrementhr` to 0 or the script will loop continuously! - -5. Set/uncomment the run command for your system (e.g., mpirun). - - | **RUN_COMMAND**: System run commands - - | - The default execution command in the distributed scripts is for a single processor: - | ``./upp.x > upp.${fhr}.out 2>&1`` - - | - To run UPP using mpi (dmpar compilation), the command line should be: - | >> LINUX-MPI systems: ``mpirun -np N upp.x > outpost 2>&1`` - | (Note: On some systems a host file also needs to be specified: - ``-machinefile "host"``) - | >> IBM: ``mpirun.lsf upp.x < itag > outpost`` - | >> SGI MPT: ``mpiexec_mpt upp.x < itag > outpost`` - -6. Set the value for :bolditalic:`numx`. - - | **numx**: The number of subdomains in the x-direction used for decomposition. - - | - For 1D decomposition, set numx=1 (default) - | - For 2D decomposition, set numx>1 - -7. Set naming convention for prefix and extension of output file name - - **comsp** is the initial string of the output file name. By default, it is not set, and the prefix - of the output file will be the string set in the :bolditalic:`postcntrl.xml` file :bolditalic:`DATSET` parameter. If set, it will - concatenate the setting to the front of the string specified in the XML file :bolditalic:`DATSET` parameter. - - **tmmark** is used for the file extension (in :bolditalic:`run_upp`, ``tmmark=tm00``; if not set, - it is set to ``.GrbF``) - -Upon a successful run, UPP will generate output files for each forecast hour in the **/postprd** directory. - -When executed with the provided run script, UPP provides log files in the post-processor working directory named -:bolditalic:`upp.fHHH.out`, where :bolditalic:`HHH` is the forecast hour. These log files may be consulted for further -run-time information in the event of an error. diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index cfb655ab0..000000000 --- a/docs/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -Welcome to the UPP User's Guide -=============================== - -.. toctree:: - :maxdepth: 3 - :numbered: - - Introduction - CodeOverview - InputsOutputs - Installation - Running - Regridding - AddNewVariable - Glossary - Acknowledgments diff --git a/modulefiles/cheyenne b/modulefiles/cheyenne deleted file mode 100644 index f5a40a5bd..000000000 --- a/modulefiles/cheyenne +++ /dev/null @@ -1,39 +0,0 @@ -#%Module# - -proc ModulesHelp { } { -puts stderr "Loads modules required for building upp" -} -module-whatis "Loads UPP prerequisites on Cheyenne for Intel 2021.2" - -module purge - -module load cmake/3.18.2 -module load ncarenv/1.3 -module load intel/2021.2 -module load mpt/2.22 -module load ncarcompilers/0.5.0 -module unload netcdf - -module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-v1.2.0/modulefiles/stack -module load hpc/1.2.0 -module load hpc-intel/2021.2 -module load hpc-mpt/2.22 - -module load jasper/2.0.25 -module load zlib/1.2.11 -module load png/1.6.35 - -module load hdf5/1.10.6 -module load netcdf/4.7.4 - -module load bacio/2.4.1 -module load crtm/2.3.0 -module load g2/3.4.2 -module load g2tmpl/1.10.0 -module load ip/3.3.3 -module load nemsio/2.5.2 -module load sfcio/1.4.1 -module load sigio/2.3.2 -module load sp/2.3.3 -module load w3emc/2.9.2 -module load wrf_io/1.2.0 diff --git a/modulefiles/cheyenne_gnu b/modulefiles/cheyenne_gnu deleted file mode 100644 index d14c372e6..000000000 --- a/modulefiles/cheyenne_gnu +++ /dev/null @@ -1,40 +0,0 @@ -#%Module# - -proc ModulesHelp { } { -puts stderr "Loads modules required for building upp" -} -module-whatis "Loads UPP prerequisites on Cheyenne for Intel 2021.2" - -module purge - -module load cmake/3.18.2 -module load ncarenv/1.3 -module load gnu/10.1.0 -module load mpt/2.22 -module load ncarcompilers/0.5.0 -module load python/3.7.9 -module unload netcdf - -module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-v1.2.0/modulefiles/stack -module load hpc/1.2.0 -module load hpc-gnu/10.1.0 -module load hpc-mpt/2.22 - -module load jasper/2.0.25 -module load zlib/1.2.11 -module load png/1.6.35 - -module load hdf5/1.10.6 -module load netcdf/4.7.4 - -module load bacio/2.4.1 -module load crtm/2.3.0 -module load g2/3.4.2 -module load g2tmpl/1.10.0 -module load ip/3.3.3 -module load nemsio/2.5.2 -module load sfcio/1.4.1 -module load sigio/2.3.2 -module load sp/2.3.3 -module load w3emc/2.9.2 -module load wrf_io/1.2.0 diff --git a/modulefiles/gaea-c5.lua b/modulefiles/gaea-c5.lua deleted file mode 100644 index 09c7e6593..000000000 --- a/modulefiles/gaea-c5.lua +++ /dev/null @@ -1,58 +0,0 @@ -help([[ - This module loads libraries required for building and running UPP - on the NOAA RDHPC machine Gaea C5 using Intel-2023.1.0. -]]) - -whatis([===[Loads libraries needed for building the UPP on Gaea ]===]) - -load("PrgEnv-intel/8.3.3") -load("intel-classic/2023.1.0") -load("cray-mpich/8.1.25") -load("python/3.9.12") - -prepend_path("MODULEPATH", "/lustre/f2/dev/wpo/role.epic/contrib/spack-stack/c5/spack-stack-dev-20230717/envs/unified-env/install/modulefiles/Core") -prepend_path("MODULEPATH", "/lustre/f2/dev/wpo/role.epic/contrib/spack-stack/c5/modulefiles") - -stack_intel_ver=os.getenv("stack_intel_ver") or "2023.1.0" -load(pathJoin("stack-intel", stack_intel_ver)) - -stack_cray_mpich_ver=os.getenv("stack_cray_mpich_ver") or "8.1.25" -load(pathJoin("stack-cray-mpich", stack_cray_mpich_ver)) - -stack_python_ver=os.getenv("stack_python_ver") or "3.9.12" -load(pathJoin("stack-python", stack_python_ver)) - -local ufs_modules = { - {["jasper"] = "2.0.32"}, - {["zlib"] = "1.2.13"}, - {["libpng"] = "1.6.37"}, - {["hdf5"] = "1.14.0"}, - {["netcdf-c"] = "4.9.2"}, - {["netcdf-fortran"] = "4.6.0"}, - {["bacio"] = "2.4.1"}, - {["crtm"] = "2.4.0"}, - {["g2"] = "3.4.5"}, - {["g2tmpl"] = "1.10.2"}, - {["ip"] = "3.3.3"}, - {["nemsio"] = "2.5.4"}, - {["sfcio"] = "1.4.1"}, - {["sigio"] = "2.3.2"}, - {["sp"] = "2.3.3"}, - {["w3emc"] = "2.9.2"}, - {["wrf-io"] = "1.2.0"}, -} - -for i = 1, #ufs_modules do - for name, default_version in pairs(ufs_modules[i]) do - local env_version_name = string.gsub(name, "-", "_") .. "_ver" - load(pathJoin(name, os.getenv(env_version_name) or default_version)) - end -end - -unload("darshan-runtime") -unload("cray-libsci") - -setenv("CC","cc") -setenv("CXX","CC") -setenv("FC","ftn") -setenv("CMAKE_Platform","gaea_c5.intel") diff --git a/modulefiles/gaea.lua b/modulefiles/gaea.lua index 7a87da323..0e610cfd7 100644 --- a/modulefiles/gaea.lua +++ b/modulefiles/gaea.lua @@ -1,56 +1,34 @@ help([[ This module loads libraries required for building and running UPP - on the NOAA RDHPC machine Gaea using Intel-2022.0.2 + on the NOAA RDHPC machine Gaea C5 using Intel-2023.1.0. ]]) whatis([===[Loads libraries needed for building the UPP on Gaea ]===]) -load_any(pathJoin("cmake", os.getenv("cmake_ver") or "3.20.1"),"cmake") - -prepend_path("MODULEPATH","/lustre/f2/dev/role.epic/contrib/hpc-stack/intel-classic-2022.0.2/modulefiles/stack") -load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0")) - -load(pathJoin("intel-classic", os.getenv("intel_classic_ver") or "2022.0.2")) -load(pathJoin("cray-mpich", os.getenv("cray_mpich_ver") or "7.7.20")) -load(pathJoin("hpc-intel-classic", os.getenv("hpc_intel_classic_ver") or "2022.0.2")) -load(pathJoin("hpc-cray-mpich", os.getenv("hpc_cray_mpich_ver") or "7.7.20")) -load(pathJoin("libpng", os.getenv("libpng_ver") or "1.6.37")) - --- Needed at runtime: -load("alps") - -local ufs_modules = { - {["jasper"] = "2.0.25"}, - {["zlib"] = "1.2.11"}, - {["libpng"] = "1.6.37"}, - {["hdf5"] = "1.10.6"}, - {["netcdf"] = "4.7.4"}, - {["pio"] = "2.5.7"}, - {["esmf"] = "8.3.0b09"}, - {["fms"] = "2022.04"}, - {["bacio"] = "2.4.1"}, - {["crtm"] = "2.4.0"}, - {["g2"] = "3.4.5"}, - {["g2tmpl"] = "1.10.2"}, - {["ip"] = "3.3.3"}, - {["sp"] = "2.3.3"}, - {["w3emc"] = "2.9.2"}, - {["gftl-shared"] = "v1.5.0"}, - {["mapl"] = "2.22.0-esmf-8.3.0b09"}, - {["nemsio"] = "2.5.4"}, - {["sigio"] = "2.3.2"}, - {["sfcio"] = "1.4.1"}, - {["wrf_io"] = "1.2.0"}, -} - -for i = 1, #ufs_modules do - for name, default_version in pairs(ufs_modules[i]) do - local env_version_name = string.gsub(name, "-", "_") .. "_ver" - load(pathJoin(name, os.getenv(env_version_name) or default_version)) - end -end +load("PrgEnv-intel/8.3.3") +load("intel-classic/2023.1.0") +load("cray-mpich/8.1.25") +load("python/3.9.12") + +prepend_path("MODULEPATH", "/ncrc/proj/epic/spack-stack/spack-stack-1.6.0/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH", "/ncrc/proj/epic/spack-stack/modulefiles") + +stack_intel_ver=os.getenv("stack_intel_ver") or "2023.1.0" +load(pathJoin("stack-intel", stack_intel_ver)) + +stack_cray_mpich_ver=os.getenv("stack_cray_mpich_ver") or "8.1.25" +load(pathJoin("stack-cray-mpich", stack_cray_mpich_ver)) + +stack_python_ver=os.getenv("stack_python_ver") or "3.10.13" +load(pathJoin("stack-python", stack_python_ver)) + +load("upp_common") + +unload("darshan-runtime") +unload("cray-libsci") setenv("CC","cc") -setenv("FC","ftn") setenv("CXX","CC") +setenv("FC","ftn") + setenv("CMAKE_Platform","gaea.intel") diff --git a/modulefiles/hera.lua b/modulefiles/hera.lua index 5497ed5c8..2231ad1c1 100644 --- a/modulefiles/hera.lua +++ b/modulefiles/hera.lua @@ -3,7 +3,7 @@ Load environment to build UPP on hera ]]) -prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.0/envs/unified-env-rocky8/install/modulefiles/Core") +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.6.0/envs/unified-env-rocky8/install/modulefiles/Core") stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" load(pathJoin("stack-intel", stack_intel_ver)) diff --git a/modulefiles/hercules.lua b/modulefiles/hercules.lua old mode 100755 new mode 100644 index a3c7a170f..da1722e68 --- a/modulefiles/hercules.lua +++ b/modulefiles/hercules.lua @@ -3,7 +3,7 @@ Load environment to build UPP on hecules ]]) -prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.6.0/envs/unified-env/install/modulefiles/Core") stack_intel_ver=os.getenv("stack_intel_ver") or "2021.9.0" load(pathJoin("stack-intel", stack_intel_ver)) @@ -14,6 +14,9 @@ load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) cmake_ver=os.getenv("cmake_ver") or "3.23.1" load(pathJoin("cmake", cmake_ver)) +stack_python_ver=os.getenv("stack_python_ver") or "3.10.13" +load(pathJoin("stack-python", stack_python_ver)) + load("upp_common") setenv("CC","mpiicc") diff --git a/modulefiles/jet b/modulefiles/jet deleted file mode 100644 index eaa92db3f..000000000 --- a/modulefiles/jet +++ /dev/null @@ -1,37 +0,0 @@ -#%Module###################################################################### -# Wen Meng 01/2021, Set up config. with the hpc-stack NCEPLIBS. -############################################################################## - -proc ModulesHelp { } { -puts stderr "Loads modules required for building upp" -} -module-whatis "Loads UPP prerequisites on Jet" - -module load cmake/3.16.1 - -module use /lfs4/HFIP/hfv3gfs/nwprod/hpc-stack/libs/modulefiles/stack -module load hpc/1.1.0 -module load hpc-intel/18.0.5.274 -module load hpc-impi/2018.4.274 - -module load jasper/2.0.22 -module load zlib/1.2.11 -module load png/1.6.35 - -module load hdf5/1.10.6 -module load netcdf/4.7.4 - -module load bacio/2.4.1 -module load crtm/2.3.0 -module load g2/3.4.1 -module load g2tmpl/1.10.0 -module load ip/3.3.3 -module load nemsio/2.5.2 -module load sfcio/1.4.1 -module load sigio/2.3.2 -module load sp/2.3.3 -module load w3emc/2.9.2 -module load wrf_io/1.1.1 - -module use /lfs4/BMC/ifi/modulefiles -module try-load ifi/20230511-intel-18.0.5.274 diff --git a/modulefiles/jet.lua b/modulefiles/jet.lua new file mode 100644 index 000000000..a118c88aa --- /dev/null +++ b/modulefiles/jet.lua @@ -0,0 +1,22 @@ +help([[ +Load environment to build UPP on Jet +]]) + +prepend_path("MODULEPATH", "/mnt/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/spack-stack-1.6.0/envs/unified-env-rocky8/install/modulefiles/Core") + +stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" +load(pathJoin("stack-intel", stack_intel_ver)) + +stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1" +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) + +cmake_ver=os.getenv("cmake_ver") or "3.23.1" +load(pathJoin("cmake", cmake_ver)) + +load("upp_common") + +setenv("CC","mpiicc") +setenv("CXX","mpiicpc") +setenv("FC","mpiifort") + +whatis("Description: UPP build environment") diff --git a/modulefiles/orion.lua b/modulefiles/orion.lua index 4113b01fc..669c260d9 100644 --- a/modulefiles/orion.lua +++ b/modulefiles/orion.lua @@ -3,7 +3,7 @@ Load environment to build UPP on orion ]]) -prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.6.0/envs/unified-env/install/modulefiles/Core") stack_intel_ver=os.getenv("stack_intel_ver") or "2022.0.2" load(pathJoin("stack-intel", stack_intel_ver)) diff --git a/modulefiles/s4 b/modulefiles/s4 deleted file mode 100644 index f41835c42..000000000 --- a/modulefiles/s4 +++ /dev/null @@ -1,33 +0,0 @@ -#%Module###################################################################### -# David Huber 06/2021, Set up config. with the hpc-stack NCEPLIBS. -############################################################################## - -proc ModulesHelp { } { -puts stderr "Loads modules required for building upp" -} -module-whatis "Loads UPP prerequisites on S4" - -module load license_intel/S4 -module use /data/prod/hpc-stack/modulefiles/stack -module load hpc/1.1.0 -module load hpc-intel/18.0.4 -module load hpc-impi/18.0.4 - -module load jasper/2.0.22 -module load zlib/1.2.11 -module load png/1.6.35 - -module load hdf5/1.10.6 -module load netcdf/4.7.4 - -module load bacio/2.4.1 -module load crtm/2.3.0 -module load g2/3.4.1 -module load g2tmpl/1.10.0 -module load ip/3.3.3 -module load nemsio/2.5.2 -module load sfcio/1.4.1 -module load sigio/2.3.2 -module load sp/2.3.3 -module load w3emc/2.9.2 -module load wrf_io/1.1.1 diff --git a/modulefiles/s4.lua b/modulefiles/s4.lua new file mode 100644 index 000000000..58faca1ba --- /dev/null +++ b/modulefiles/s4.lua @@ -0,0 +1,25 @@ +-- --------------------------------------------------------------------------- +-- David Huber 06/2021, Set up config. with the hpc-stack NCEPLIBS. +-- Innocent Souopgui 11/2023, Update to use spack-stack +-- David Huber 1/24, Update to use spack-stack v1.6.0 +-- --------------------------------------------------------------------------- + + +prepend_path("MODULEPATH", "/data/prod/jedi/spack-stack/spack-stack-1.6.0/envs/unified-env/install/modulefiles/Core") + +local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" +local stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.0" +local cmake_ver=os.getenv("cmake_ver") or "3.23.1" + +load(pathJoin("stack-intel", stack_intel_ver)) +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) +load(pathJoin("cmake", cmake_ver)) + +load("upp_common") + +setenv("CC","mpiicc") +setenv("CXX","mpiicpc") +setenv("FC","mpiifort") + +whatis("Description: UPP build environment") + diff --git a/modulefiles/upp_common.lua b/modulefiles/upp_common.lua index 92eb093e2..c8e529e2f 100644 --- a/modulefiles/upp_common.lua +++ b/modulefiles/upp_common.lua @@ -8,18 +8,17 @@ local ufs_modules = { {["libpng"] = "1.6.37"}, {["hdf5"] = "1.14.0"}, {["netcdf-c"] = "4.9.2"}, - {["netcdf-fortran"] = "4.6.0"}, + {["netcdf-fortran"] = "4.6.1"}, {["parallelio"] = "2.5.10"}, {["bacio"] = "2.4.1"}, - {["crtm"] = "2.4.0"}, + {["crtm"] = "2.4.0.1"}, {["g2"] = "3.4.5"}, {["g2tmpl"] = "1.10.2"}, {["ip"] = "4.3.0"}, - {["sp"] = "2.3.3"}, + {["sp"] = "2.5.0"}, {["w3emc"] = "2.10.0"}, {["nemsio"] = "2.5.4"}, {["sigio"] = "2.3.2"}, - {["sfcio"] = "1.4.1"}, {["wrf-io"] = "1.2.0"}, } diff --git a/modulefiles/wcoss2.lua b/modulefiles/wcoss2.lua index ac3dc9dd8..eccb1d6df 100644 --- a/modulefiles/wcoss2.lua +++ b/modulefiles/wcoss2.lua @@ -28,7 +28,7 @@ g2tmpl_ver=os.getenv("g2tmpl_ver") or "1.10.2" bacio_ver=os.getenv("bacio_ver") or "2.4.1" ip_ver=os.getenv("ip_ver") or "3.3.3" sp_ver=os.getenv("sp_ver") or "2.3.3" -crtm_ver=os.getenv("crtm_ver") or "2.4.0" +crtm_ver=os.getenv("crtm_ver") or "2.4.0.1" w3emc_ver=os.getenv("w3emc_ver") or "2.9.2" load(pathJoin("g2", g2_ver)) load(pathJoin("g2tmpl", g2tmpl_ver)) @@ -40,11 +40,9 @@ load(pathJoin("w3emc", w3emc_ver)) nemsio_ver=os.getenv("nemsio_ver") or "2.5.2" sigio_ver=os.getenv("sigio_ver") or "2.3.2" -sfcio_ver=os.getenv("sfcio_ver") or "1.4.1" wrf_io_ver=os.getenv("wrf_io_ver") or "1.2.0" load(pathJoin("nemsio", nemsio_ver)) load(pathJoin("sigio", sigio_ver)) -load(pathJoin("sfcio", sfcio_ver)) load(pathJoin("wrf_io", wrf_io_ver)) setenv("CC","cc") diff --git a/modulefiles/wcoss2_a.lua b/modulefiles/wcoss2_a.lua index 7db60d245..ebedbdd30 100644 --- a/modulefiles/wcoss2_a.lua +++ b/modulefiles/wcoss2_a.lua @@ -1,73 +1,22 @@ help([[ -Load environment to build post on WCOSS2 Acorn +Load environment to build UPP on WCOSS2 Acorn ]]) -PrgEnv_intel_ver=os.getenv("PrgEnv_intel_ver") or "8.1.0" -load(pathJoin("PrgEnv-intel", PrgEnv_intel_ver)) +prepend_path("MODULEPATH", "/lfs/h1/emc/nceplibs/noscrub/spack-stack/spack-stack-1.6.0/envs/unified-env/install/modulefiles/Core") -intel_ver=os.getenv("intel_ver") or "19.1.3.304" -load(pathJoin("intel", intel_ver)) +stack_intel_ver=os.getenv("stack_intel_ver") or "2022.0.2.262" +load(pathJoin("stack-intel", stack_intel_ver)) -craype_ver=os.getenv("craype_ver") or "2.7.13" -load(pathJoin("craype", craype_ver)) +stack_cray_ver=os.getenv("stack_cray_ver") or "8.1.9" +load(pathJoin("stack-cray-mpich", stack_cray_ver)) -cray_mpich_ver=os.getenv("cray_mpich_ver") or "8.1.7" -load(pathJoin("cray-mpich", cray_mpich_ver)) - -cmake_ver=os.getenv("cmake_ver") or "3.20.2" +cmake_ver=os.getenv("cmake_ver") or "3.23.1" load(pathJoin("cmake", cmake_ver)) -prepend_path("MODULEPATH", "/lfs/h1/emc/nceplibs/noscrub/hpc-stack/libs/hpc-stack/modulefiles/stack") - -hpc_ver=os.getenv("hpc_ver") or "1.2.0" -hpc_intel_ver=os.getenv("hpc_intel_ver") or "19.1.3.304" -hpc_cray_mpich_ver=os.getenv("hpc_cray_mpich_ver") or "8.1.7" -load(pathJoin("hpc", hpc_ver)) -load(pathJoin("hpc-intel", hpc_intel_ver)) -load(pathJoin("hpc-cray-mpich", hpc_cray_mpich_ver)) - -hdf5_ver=os.getenv("hdf5_ver") or "1.10.6" -netcdf_ver=os.getenv("netcdf_ver") or "4.7.4" -load(pathJoin("hdf5", hdf5_ver)) -load(pathJoin("netcdf", netcdf_ver)) - -jasper_ver=os.getenv("jasper_ver") or "2.0.25" -libpng_ver=os.getenv("libpng_ver") or "1.6.37" -zlib_ver=os.getenv("zlib_ver") or "1.2.11" -load(pathJoin("jasper", jasper_ver)) -load(pathJoin("libpng", libpng_ver)) -load(pathJoin("zlib", zlib_ver)) - -g2_ver=os.getenv("g2_ver") or "3.4.5" -g2tmpl_ver=os.getenv("g2tmpl_ver") or "1.10.2" -bacio_ver=os.getenv("bacio_ver") or "2.4.1" -ip_ver=os.getenv("ip_ver") or "3.3.3" -sp_ver=os.getenv("sp_ver") or "2.3.3" -crtm_ver=os.getenv("crtm_ver") or "2.4.0" -w3emc_ver=os.getenv("w3emc_ver") or "2.9.2" -load(pathJoin("g2", g2_ver)) -load(pathJoin("g2tmpl", g2tmpl_ver)) -load(pathJoin("bacio", bacio_ver)) -load(pathJoin("ip", ip_ver)) -load(pathJoin("sp", sp_ver)) -load(pathJoin("crtm", crtm_ver)) -load(pathJoin("w3emc", w3emc_ver)) - -nemsio_ver=os.getenv("nemsio_ver") or "2.5.2" -sigio_ver=os.getenv("sigio_ver") or "2.3.2" -sfcio_ver=os.getenv("sfcio_ver") or "1.4.1" -wrf_io_ver=os.getenv("wrf_io_ver") or "1.2.0" -load(pathJoin("nemsio", nemsio_ver)) -load(pathJoin("sigio", sigio_ver)) -load(pathJoin("sfcio", sfcio_ver)) -load(pathJoin("wrf_io", wrf_io_ver)) +load("upp_common") setenv("CC","cc") setenv("CXX","CC") setenv("FC","ftn") - -prepend_path("MODULEPATH", "/lfs/h1/oar/esrl/noscrub/samuel.trahan/ifi/modulefiles") -load("ifi/20230511-intel-19.1.3.304") - -whatis("Description: post build environment") +whatis("Description: UPP build environment") diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index d0c19c95a..e4afeec3b 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -128,19 +128,10 @@ REFD_ON_HYBRID_LVL REFD - NCEP 1. 2. 4.0 - - BMIXL_ON_HYBRID_LVL - BMIXL - NCEP - 1. - 3.0 - - HGT_ON_ISOBARIC_SFC HGT @@ -197,14 +188,6 @@ 4.0 - - VVEL_ON_ISOBARIC_SFC - VVEL - 200. 500. 700. 1000. 2000. 3000. 5000. 7000. 7500. 10000. 12500. 15000. 17500. 20000. 22500. 25000. 27500. 30000. 32500. 35000. 37500. 40000. 42500. 45000. -47500. 50000. 52500. 55000. 57500. 60000. 62500. 65000. 67500. 70000. 72500. 75000. 77500. 80000. 82500. 85000. 87500. 90000. 92500. 95000. 97500. 100000. - 5.0 - - DZDT_ON_ISOBARIC_SFC DZDT @@ -356,20 +339,6 @@ 6.0 - - POT_ON_SPEC_HGT_LVL_ABOVE_GRND_10m - POT - 10. - 5.0 - - - - SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_10m - SPFH - 10. - 3.0 - - PRES_ON_SURFACE PRES @@ -400,6 +369,12 @@ 4.0 + + CISOILM_ON_DEPTH_BEL_LAND_SFC + CISOILM + 3.0 + + TSOIL_ON_DEPTH_BEL_LAND_SFC TSOIL @@ -433,7 +408,6 @@ CNWAT_ON_SURFACE CNWAT - NCEP 1.0 @@ -443,17 +417,9 @@ 4.0 - - SNOWC_ON_SURFACE - SNOWC - NCEP - 3.0 - - SFEXC_ON_SURFACE SFEXC - NCEP 3.0 @@ -476,13 +442,6 @@ 3.0 - - SNFALB_ON_SURFACE - SNFALB - NCEP - 3.0 - - MXSALB_ON_SURFACE MXSALB @@ -497,34 +456,6 @@ 3.0 - - RCS_ON_SURFACE - RCS - NCEP - 3.0 - - - - RCT_ON_SURFACE - RCT - NCEP - 5.0 - - - - RCQ_ON_SURFACE - RCQ - NCEP - 3.0 - - - - RCSOL_ON_SURFACE - RCSOL - NCEP - 3.0 - - SMREF_ON_SURFACE SMREF @@ -593,7 +524,6 @@ LFTX_ON_ISOBARIC_SFC_500-1000hpa LFTX - NCEP 50000. 100000. 3.0 @@ -602,7 +532,6 @@ 4LFTX_ON_SPEC_PRES_ABOVE_GRND 4LFTX - NCEP 18000. 0. 3.0 @@ -714,7 +643,6 @@ USTM_ON_SPEC_HGT_LVL_ABOVE_GRND USTM - NCEP 6000. 4.0 @@ -722,7 +650,6 @@ VSTM_ON_SPEC_HGT_LVL_ABOVE_GRND VSTM - NCEP 6000. 4.0 @@ -763,24 +690,12 @@ 6.0 - - ACM_NCPCP_ON_SURFACE - NCPCP - -4.0 - - CACM_APCP_ON_SURFACE APCP -4.0 - - CACM_NCPCP_ON_SURFACE - NCPCP - -4.0 - - ACM_SNOM_ON_SURFACE SNOM @@ -790,50 +705,31 @@ ACM_SSRUN_ON_SURFACE SSRUN - NCEP - 6.0 - - - - ACM_BGRUN_ON_SURFACE - BGRUN - NCEP - 6.0 - - - - ACM_WATR_ON_SURFACE - WATR 6.0 GSD_INST_CRAIN_ON_SURFACE CRAIN - NCEP 1.0 - + GSD_CSNOW_ON_SURFACE CSNOW - NCEP 1.0 - + GSD_CICEP_ON_SURFACE CICEP - NCEP 1.0 - + GSD_CFRZR_ON_SURFACE - CFRZR - NCEP 1.0 - + INST_PRATE_ON_SURFACE @@ -844,7 +740,6 @@ CPOFP_ON_SURFACE CPOFP - NCEP 4.0 @@ -912,13 +807,6 @@ 3.0 - - AVE_CDLYR_ON_ENTIRE_ATMOS - CDLYR - NCEP - 3.0 - - GSD_VIS_ON_SURFACE VIS @@ -940,63 +828,54 @@ INST_USWRF_ON_SURFACE USWRF - NCEP 4.0 INST_ULWRF_ON_SURFACE ULWRF - NCEP 4.0 AVE_DSWRF_ON_SURFACE DSWRF - NCEP 3.0 AVE_DLWRF_ON_SURFACE DLWRF - NCEP 3.0 AVE_USWRF_ON_SURFACE USWRF - NCEP 3.0 AVE_ULWRF_ON_SURFACE ULWRF - NCEP 3.0 AVE_USWRF_ON_TOP_OF_ATMOS USWRF - NCEP 3.0 AVE_ULWRF_ON_TOP_OF_ATMOS ULWRF - NCEP 3.0 INST_ULWRF_ON_TOP_OF_ATMOS ULWRF - NCEP 4.0 @@ -1009,13 +888,25 @@ INST_DSWRF_ON_SURFACE DSWRF - NCEP 4.0 INST_DLWRF_ON_SURFACE DLWRF + 4.0 + + + + INST_SWDDNI_ON_SURFACE + VBDSF + NCEP + 4.0 + + + + INST_SWDDIF_ON_SURFACE + VDDSF NCEP 4.0 @@ -1036,26 +927,12 @@ FRICV_ON_SURFACE FRICV - NCEP 4.0 CD_ON_SURFACE CD - NCEP - 3.0 - - - - UFLX_ON_SURFACE - UFLX - 3.0 - - - - VFLX_ON_SURFACE - VFLX 3.0 @@ -1075,7 +952,6 @@ AVE_SNOHF_ON_SURFACE SNOHF - NCEP 4.0 @@ -1085,16 +961,9 @@ 4.0 - - ACM_EVP_ON_SURFACE - EVP - 4.0 - - ACM_PEVAP_ON_SURFACE PEVAP - NCEP 4.0 @@ -1187,7 +1056,6 @@ VWSH_ON_TROPOPAUSE VWSH - NCEP 3.0 @@ -1227,7 +1095,21 @@ TMP 30. 50. 80. 100. 160. 320. 3.0 - + + + + SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT + SPFH + 80. + 5.0 + + + + PRES_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT + PRES + 80. + 3.0 + UGRD_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL @@ -1264,20 +1146,6 @@ 5.0 - - SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT - SPFH - 30. 50. 80. 100. 160. 320. - 5.0 - - - - PRES_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT - PRES - 30. 50. 80. 100. 160. 320. - 3.0 - - HGT_ON_0C_ISOTHERM HGT @@ -1392,14 +1260,6 @@ 4.0 - - VVEL_ON_SPEC_PRES_ABOVE_GRND - VVEL - 3000. 9000. 18000. - 0. 6000. 15000. - 5.0 - - PRES_ON_CLOUD_BASE PRES @@ -1463,53 +1323,20 @@ REFC_ON_ENTIRE_ATMOS REFC - NCEP 4.0 - - REFZR_ON_ENTIRE_ATMOS - REFZR - NCEP - -4.0 - - - - REFZI_ON_ENTIRE_ATMOS - REFZI - NCEP - -4.0 - - REFD_ON_SPEC_HGT_LVL_ABOVE_GRND REFD - NCEP 4000. 1000. 4.0 - - REFZR_ON_SPEC_HGT_LVL_ABOVE_GRND - REFZR - NCEP - 4000. 1000. - -4.0 - - - - REFZI_ON_SPEC_HGT_LVL_ABOVE_GRND - REFZI - NCEP - 4000. 1000. - -4.0 - - HPBL_ON_SURFACE HPBL - NCEP - 6.0 + 6.0 @@ -1534,7 +1361,6 @@ TCOLI_ON_ENTIRE_ATMOS TCOLI - NCEP 5.0 @@ -1611,14 +1437,12 @@ TCOLR_ON_ENTIRE_ATMOS TCOLR - NCEP 5.0 TCOLS_ON_ENTIRE_ATMOS TCOLS - NCEP 5.0 @@ -1679,47 +1503,12 @@ -3.0 - - ACM_LSPA_ON_SURFACE - LSPA - NCEP - 3.0 - - PRES_ON_TOP_OF_ATMOS PRES 3.0 - - SWHR_ON_ENTIRE_ATMOS - SWHR - NCEP - 5.0 - - - - LWHR_ON_ENTIRE_ATMOS - LWHR - NCEP - 5.0 - - - - TMP_ON_SIGMA_LVL_HPC - TMP - 4 - 9000. 8500. 8000. 7500. 7000. - -4.0 - - - - PBLREG_ON_SURFACE - PBLREG - 2.0 - - UGRD_ON_PLANETARY_BOUND_LYR UGRD @@ -1747,8 +1536,7 @@ RETOP_ON_ENTIRE_ATMOS_SINGLE_LYR RETOP - NCEP - 6.0 + 6.0 @@ -1859,7 +1647,6 @@ UPHL_ON_SPEC_HGT_LVL_ABOVE_GRND_2-5km UPHL - NCEP -3.0 @@ -1921,7 +1708,6 @@ REFD_ON_ISOTHERMAL REFD - NCEP isothermal 263. -4.0 @@ -2017,7 +1803,6 @@ HWP_ON_SURFACE - FWINX 5.0 @@ -2052,6 +1837,12 @@ 3.0 + + GSD_MAX_LTG_THREAT3_ON_ENTIRE_ATMOS + LTNG + 4.0 + + @@ -2107,13 +1898,6 @@ 4.0 - - VVEL_ON_ISOBARIC_SFC - VVEL - 25000. 50000. 70000. 85000. - 5.0 - - SPFH_ON_ISOBARIC_SFC SPFH @@ -2182,15 +1966,6 @@ 4.0 - - VVEL_ON_HYBRID_LVL - VVEL - 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. -25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. -49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. - 5.0 - - DZDT_ON_HYBRID_LVL DZDT @@ -2261,20 +2036,6 @@ 4.0 - - POT_ON_SPEC_HGT_LVL_ABOVE_GRND_10m - POT - 10. - 5.0 - - - - SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_10m - SPFH - 10. - 3.0 - - PRES_ON_SURFACE PRES @@ -2305,6 +2066,24 @@ 4.0 + + VIL_ON_ENTIRE_ATMOS + VIL + 7.0 + + + + GSD_VIL_ON_ENTIRE_ATMOS + VIL + 7.0 + + + + RETOP_ON_ENTIRE_ATMOS_SINGLE_LYR + RETOP + 6.0 + + MAX_MAXUVV_ON_ISOBARIC_SFC_100-1000hpa MAXUVV @@ -2400,7 +2179,6 @@ REFD_ON_ISOTHERMAL REFD - NCEP isothermal 263. -4.0 @@ -2431,6 +2209,12 @@ -2.0 + + CISOILM_ON_DEPTH_BEL_LAND_SFC + CISOILM + 3.0 + + TSOIL_ON_DEPTH_BEL_LAND_SFC TSOIL @@ -2464,7 +2248,6 @@ SFEXC_ON_SURFACE SFEXC - NCEP 3.0 @@ -2489,7 +2272,6 @@ CNWAT_ON_SURFACE CNWAT - NCEP 1.0 @@ -2502,7 +2284,6 @@ 4LFTX_ON_SPEC_PRES_ABOVE_GRND 4LFTX - NCEP 18000. 0. 3.0 @@ -2520,24 +2301,12 @@ -4.0 - - ACM_NCPCP_ON_SURFACE - NCPCP - -4.0 - - CACM_APCP_ON_SURFACE APCP -4.0 - - CACM_NCPCP_ON_SURFACE - NCPCP - -4.0 - - ACM_SNOWFALL_ON_SURFACE TSNOWP @@ -2553,44 +2322,38 @@ ACM_SSRUN_ON_SURFACE SSRUN - NCEP - 4.0 + 6.0 - ACM_BGRUN_ON_SURFACE - BGRUN - NCEP + ACM_SNOM_ON_SURFACE + SNOM 4.0 GSD_INST_CRAIN_ON_SURFACE CRAIN - NCEP - 1.0 + 1.0 GSD_CSNOW_ON_SURFACE CSNOW - NCEP 1.0 - + GSD_CICEP_ON_SURFACE CICEP - NCEP 1.0 - + GSD_CFRZR_ON_SURFACE CFRZR - NCEP 1.0 - + INST_PRATE_ON_SURFACE @@ -2601,7 +2364,6 @@ CPOFP_ON_SURFACE CPOFP - NCEP 4.0 @@ -2677,16 +2439,6 @@ 3.0 - - GSD_NCWFA_ON_HYBRID_LVL - PMTF - NCEP - 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. -25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. -49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. - 3.0 - - GSD_NCRAIN_ON_HYBRID_LVL SPNCR @@ -2697,17 +2449,15 @@ - GSD_NCIFA_ON_HYBRID_LVL - PMTC - NCEP - 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. -25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. + SMOKE_ON_HYBRID_LVL + 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. +25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. - 3.0 + 6.0 - SMOKE_ON_HYBRID_LVL + DUST_ON_HYBRID_LVL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. @@ -2715,7 +2465,7 @@ - DUST_ON_HYBRID_LVL + COARSEPM_ON_HYBRID_LVL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. @@ -2758,79 +2508,76 @@ 3.0 - - AVE_CDLYR_ON_ENTIRE_ATMOS - CDLYR - NCEP - 3.0 - - INST_USWRF_ON_SURFACE USWRF - NCEP 4.0 INST_ULWRF_ON_SURFACE ULWRF - NCEP 4.0 AVE_DSWRF_ON_SURFACE DSWRF - NCEP 3.0 AVE_DLWRF_ON_SURFACE DLWRF - NCEP 3.0 AVE_USWRF_ON_SURFACE USWRF - NCEP 3.0 AVE_ULWRF_ON_SURFACE ULWRF - NCEP 3.0 AVE_USWRF_ON_TOP_OF_ATMOS USWRF - NCEP 3.0 AVE_ULWRF_ON_TOP_OF_ATMOS ULWRF - NCEP 3.0 INST_DSWRF_ON_SURFACE DSWRF - NCEP 4.0 INST_DLWRF_ON_SURFACE DLWRF + 4.0 + + + + INST_SWDDNI_ON_SURFACE + VBDSF + NCEP + 4.0 + + + + INST_SWDDIF_ON_SURFACE + VDDSF NCEP 4.0 @@ -2851,26 +2598,12 @@ FRICV_ON_SURFACE FRICV - NCEP 4.0 CD_ON_SURFACE CD - NCEP - 3.0 - - - - UFLX_ON_SURFACE - UFLX - 3.0 - - - - VFLX_ON_SURFACE - VFLX 3.0 @@ -2890,7 +2623,6 @@ AVE_SNOHF_ON_SURFACE SNOHF - NCEP 4.0 @@ -2900,16 +2632,9 @@ 4.0 - - ACM_EVP_ON_SURFACE - EVP - 4.0 - - ACM_PEVAP_ON_SURFACE PEVAP - NCEP 4.0 @@ -3049,26 +2774,12 @@ 4.0 - - ACM_LSPA_ON_SURFACE - LSPA - NCEP - 3.0 - - PRES_ON_TOP_OF_ATMOS PRES 3.0 - - CNWAT_ON_SURFACE - CNWAT - NCEP - 1.0 - - INST_GFLUX_ON_SURFACE GFLUX @@ -3079,7 +2790,6 @@ LFTX_ON_ISOBARIC_SFC_500-1000hpa LFTX - NCEP 50000. 100000. 3.0 @@ -3186,7 +2896,6 @@ USTM_ON_SPEC_HGT_LVL_ABOVE_GRND USTM - NCEP 6000. 4.0 @@ -3194,7 +2903,6 @@ VSTM_ON_SPEC_HGT_LVL_ABOVE_GRND VSTM - NCEP 6000. 4.0 @@ -3223,13 +2931,6 @@ 3.0 - - AVE_CDLYR_ON_ENTIRE_ATMOS - CDLYR - NCEP - 3.0 - - PRES_ON_CLOUD_BASE PRES @@ -3258,13 +2959,6 @@ AVE_SNOHF_ON_SURFACE SNOHF - NCEP - 4.0 - - - - ACM_EVP_ON_SURFACE - EVP 4.0 @@ -3313,7 +3007,6 @@ VWSH_ON_TROPOPAUSE VWSH - NCEP 3.0 @@ -3425,7 +3118,6 @@ REFC_ON_ENTIRE_ATMOS REFC - NCEP 4.0 @@ -3451,21 +3143,18 @@ TCOLI_ON_ENTIRE_ATMOS TCOLI - NCEP 5.0 TCOLR_ON_ENTIRE_ATMOS TCOLR - NCEP 5.0 TCOLS_ON_ENTIRE_ATMOS TCOLS - NCEP 5.0 @@ -3505,8 +3194,7 @@ HPBL_ON_SURFACE HPBL - NCEP - 6.0 + 6.0 @@ -3564,34 +3252,6 @@ 3.0 - - RCS_ON_SURFACE - RCS - NCEP - 3.0 - - - - RCT_ON_SURFACE - RCT - NCEP - 5.0 - - - - RCQ_ON_SURFACE - RCQ - NCEP - 3.0 - - - - RCSOL_ON_SURFACE - RCSOL - NCEP - 3.0 - - PEVPR_ON_SURFACE PEVPR @@ -3615,7 +3275,7 @@ LAI_ON_SURFACE LAI NCEP - -3.0 + -3.0 @@ -3625,14 +3285,6 @@ 4.0 - - TCDC_ON_SIGMA_LVLS - TCDC - 4 - 9975. 9915. 9835. 9745. 9650. 9490. 9260. 9015. 8755. 8480. 8190. 7890. 7585. 7185. 6690. 6180. 5470. 4550. 3595. 2605. 1580. 530. - 3.0 - - HGT_ON_PLANETARY_BOUND_LYR HGT @@ -3645,13 +3297,6 @@ -4.0 - - AVE_SNOWC_ON_SURFACE - SNOWC - NCEP - 3.0 - - SBTA167_ON_TOP_OF_ATMOS SBTA167 @@ -3802,7 +3447,7 @@ fcst hour nws_ncep - hrrr + rrfs complex_packing_spatial_diff 2nd_ord_sptdiff fltng_pnt @@ -3834,4 +3479,53 @@ 5000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 95000. 100000. 105000. 110000. 115000. 120000. 125000. 130000. 135000. 140000. 145000. 150000. 155000. 160000. 165000. 170000. 175000. 180000. 185000. 190000. 195000. 200000. 205000. 210000. 215000. 220000. 225000. 230000. 235000. 240000. 245000. 250000. 255000. 260000. 265000. 270000. 275000. 280000. 285000. 290000. 295000. 300000. + + + AVIATION + 32769 + ncep_nco + v2003 + local_tab_yes1 + fcst + oper + fcst + fcst + hour + nws_ncep + rrfs + complex_packing_spatial_diff + 2nd_ord_sptdiff + fltng_pnt + lossless + + + MXEDPRM_ON_ENTIRE_ATMOS + 3.0 + + + + EDPARM_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL + 30. 304. 609. 914. 1219. 1524. 1828. 2133. 2438. 2743. 3048. 3352. 3657. 3962. 4267. 4572. 4876. 5181. 5486. 5791. 6096. 6400. 6705. 7010. 7315. 7620. 7924. 8229. 8534. 8839. 9144. 9448. 9753. 10058. 10363. 10668. 10972. 11277. 11582. 11887. 12192. 12496. 12801. 13106. 13411. 13716. 14020. 14325. 14630. 14935. 15240. + 3.0 + + + + CAT_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL + 30. 304. 609. 914. 1219. 1524. 1828. 2133. 2438. 2743. 3048. 3352. 3657. 3962. 4267. 4572. 4876. 5181. 5486. 5791. 6096. 6400. 6705. 7010. 7315. 7620. 7924. 8229. 8534. 8839. 9144. 9448. 9753. 10058. 10363. 10668. 10972. 11277. 11582. 11887. 12192. 12496. 12801. 13106. 13411. 13716. 14020. 14325. 14630. 14935. 15240. + 3.0 + + + + MWTURB_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL + 30. 304. 609. 914. 1219. 1524. 1828. 2133. 2438. 2743. 3048. 3352. 3657. 3962. 4267. 4572. 4876. 5181. 5486. 5791. 6096. 6400. 6705. 7010. 7315. 7620. 7924. 8229. 8534. 8839. 9144. 9448. 9753. 10058. 10363. 10668. 10972. 11277. 11582. 11887. 12192. 12496. 12801. 13106. 13411. 13716. 14020. 14325. 14630. 14935. 15240. + 3.0 + + + + CIT_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL + 30. 304. 609. 914. 1219. 1524. 1828. 2133. 2438. 2743. 3048. 3352. 3657. 3962. 4267. 4572. 4876. 5181. 5486. 5791. 6096. 6400. 6705. 7010. 7315. 7620. 7924. 8229. 8534. 8839. 9144. 9448. 9753. 10058. 10363. 10668. 10972. 11277. 11582. 11887. 12192. 12496. 12801. 13106. 13411. 13716. 14020. 14325. 14630. 14935. 15240. + 3.0 + + + diff --git a/parm/global_1x1_paramlist_g2 b/parm/global_1x1_paramlist_g2 index 518998909..cb2f82f02 100644 --- a/parm/global_1x1_paramlist_g2 +++ b/parm/global_1x1_paramlist_g2 @@ -176,7 +176,6 @@ ICAHT:max wind ICAHT:tropopause ICEC:surface ICETK:surface -ICETMP:surface ICSEV:100 mb ICSEV:150 mb ICSEV:200 mb @@ -757,4 +756,3 @@ WEASD:surface WILT:surface SNOD:surface VIS:surface -ICEG:10 m above mean sea level diff --git a/parm/global_1x1_paramlist_g2.anl b/parm/global_1x1_paramlist_g2.anl index dd340636d..3c7ba28bb 100644 --- a/parm/global_1x1_paramlist_g2.anl +++ b/parm/global_1x1_paramlist_g2.anl @@ -152,7 +152,6 @@ HLCY:3000-0 m above ground ICAHT:max wind ICAHT:tropopause ICETK:surface -ICETMP:surface ICMR:50 mb ICMR:1000 mb ICMR:100 mb diff --git a/parm/global_1x1_paramlist_g2.f000 b/parm/global_1x1_paramlist_g2.f000 index b1dcb09cc..34d84ac3c 100644 --- a/parm/global_1x1_paramlist_g2.f000 +++ b/parm/global_1x1_paramlist_g2.f000 @@ -166,7 +166,6 @@ ICAHT:max wind ICAHT:tropopause ICEC:surface ICETK:surface -ICETMP:surface ICMR:50 mb ICMR:1000 mb ICMR:100 mb @@ -697,4 +696,3 @@ WEASD:surface WILT:surface SNOD:surface VIS:surface -ICEG:10 m above mean sea level diff --git a/parm/makefile b/parm/makefile index 31fd0fe63..55a82d860 100644 --- a/parm/makefile +++ b/parm/makefile @@ -40,7 +40,8 @@ ALL_TXT= \ postxconfig-NT-UFS-aerosol-F00.txt \ postxconfig-NT-GEFS-aerosol.txt \ postxconfig-NT-GEFS-F00-aerosol.txt \ - postxconfig-NT-AQM.txt + postxconfig-NT-AQM.txt \ + postxconfig-NT-SFS.txt .PHONY: all clean all: $(ALL_TXT) @@ -70,6 +71,7 @@ postxconfig-NT-UFS-aerosol-F00.txt: postcntrl_ufs_aerosol_f00.xml post_avblfld postxconfig-NT-GEFS-aerosol.txt: postcntrl_gefs_aerosol.xml post_avblflds.xml postxconfig-NT-GEFS-F00-aerosol.txt: postcntrl_gefs_aerosol_f00.xml post_avblflds.xml postxconfig-NT-AQM.txt: aqm.xml post_avblflds.xml +postxconfig-NT-SFS.txt: postcntrl_sfs.xml post_avblflds.xml %.txt: $(PERL) $(PERLXML) $^ $@ diff --git a/parm/nam_cntrl_cmaq.xml b/parm/nam_cntrl_cmaq.xml index ba4fd3ef3..32ba724a4 100644 --- a/parm/nam_cntrl_cmaq.xml +++ b/parm/nam_cntrl_cmaq.xml @@ -451,7 +451,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC - SOILM + SOILMOI 2 0. 2 @@ -2282,7 +2282,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC - SOILM + SOILMOI 2 0. 2 @@ -3793,7 +3793,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC - SOILM + SOILMOI 2 0. 2 diff --git a/parm/nam_post_avblflds.xml b/parm/nam_post_avblflds.xml index 9aeabac16..1601ce92b 100644 --- a/parm/nam_post_avblflds.xml +++ b/parm/nam_post_avblflds.xml @@ -297,7 +297,7 @@ 36 SOILM_ON_DEPTH_BEL_LAND_SFC - SOILM + SOILMOI depth_bel_land_sfc 2 depth_bel_land_sfc diff --git a/parm/ngac_post_avblflds.xml b/parm/ngac_post_avblflds.xml index 6c1e3e42f..49057cdfe 100644 --- a/parm/ngac_post_avblflds.xml +++ b/parm/ngac_post_avblflds.xml @@ -299,7 +299,7 @@ 36 SOILM_ON_DEPTH_BEL_LAND_SFC - SOILM + SOILMOI depth_bel_land_sfc 3.0 diff --git a/parm/params_grib2_tbl_new b/parm/params_grib2_tbl_new index 514fc5fa9..20ab866ed 100755 --- a/parm/params_grib2_tbl_new +++ b/parm/params_grib2_tbl_new @@ -5,6 +5,7 @@ 0 3 15 0 5WAVH 0 3 193 1 5WAVH 0 20 106 0 AACOEF + 4 10 4 0 AATRATE 0 2 11 0 ABSD 4 2 5 0 ABSFRQ 0 1 18 0 ABSH @@ -24,8 +25,10 @@ 0 2 36 0 AFRWE 0 20 50 0 AIA 0 18 10 0 AIRCON + 10 0 82 0 AIRDENOC 2 0 208 1 AKHS 2 0 209 1 AKMS + 10 2 14 0 ALBDOICE 0 19 1 0 ALBDO 0 20 108 0 ALBGRD 0 20 107 0 ALBSAT @@ -37,6 +40,7 @@ 0 3 11 0 ALTS 10 0 37 0 ALTWH 2 0 219 1 AMIXL + 4 5 0 0 AMPL 3 192 11 0 AMSRE10 3 192 12 0 AMSRE11 3 192 13 0 AMSRE12 @@ -65,7 +69,11 @@ 0 190 0 0 ATEXT 3 1 13 0 ATMDIV 0 20 101 0 ATMTK + 4 10 7 0 AURELEC + 20 1 8 0 AVECTNUM + 20 1 7 0 AVHRATIO 2 3 201 1 AVSFT + 10 191 4 0 BARDSF 2 3 200 1 BARET 10 4 7 0 BATHY 10 0 44 0 BENINX @@ -79,6 +87,7 @@ 2 0 197 1 BMIXL 0 7 201 1 BNEGELAY 2 3 4 0 BOTLST + 10 4 29 0 BPEH 0 7 202 1 BPOSELAY 0 15 1 0 BREF 3 1 27 0 BRFLF @@ -87,6 +96,11 @@ 0 15 2 0 BRVEL 0 15 0 0 BSWID 4 3 0 0 BTOT + 2 6 2 0 BUILDCOVER + 2 6 3 0 BUILDHGT + 2 4 21 0 BURNABAREA + 2 4 20 0 BURNAREA + 2 4 17 0 BURNIDX 4 3 1 0 BVEC1 4 3 2 0 BVEC2 4 3 3 0 BVEC3 @@ -94,6 +108,7 @@ 4 8 4 0 CAIIRAD 0 7 206 1 CANGLE 2 1 192 1 CANL + 2 0 63 0 CANTMP 0 7 6 0 CAPE 0 1 88 0 CATCP 0 19 29 0 CATEDR @@ -111,27 +126,48 @@ 0 6 11 0 CDCB 0 6 22 0 CDCC 0 17 3 0 CDCDLTFD + 0 1 162 0 CDCIMF 0 6 23 0 CDCIMR + 0 1 161 0 CDCLWMF 0 6 2 0 CDCON 0 6 12 0 CDCTOP 0 6 8 0 CDCT 0 17 2 0 CDGDLTFD + 0 3 43 0 CDGFLUX + 0 20 80 0 CDIVMF 0 6 14 0 CDLYR 0 6 192 1 CDLYR + 0 1 163 0 CDRMF + 0 1 164 0 CDSMF + 0 3 35 0 CDTMF + 0 1 165 0 CDTWMF 0 4 195 1 CDUVB + 0 1 160 0 CDWFMF + 0 3 42 0 CDWGFLUX 10 0 16 0 CDWW 0 2 29 0 CD 0 2 196 1 CD + 0 1 154 0 CECIMF + 0 1 152 0 CECLWMF + 0 1 158 0 CEFMF + 0 3 40 0 CEGFLUX 0 6 13 0 CEIL + 0 20 78 0 CEMF + 0 1 156 0 CERMF + 0 3 36 0 CETMF + 0 1 150 0 CEWVMF 0 5 197 1 CFNLF 0 4 199 1 CFNSF 0 1 34 0 CFRZR 0 1 193 1 CFRZR 0 20 54 0 CGDRC 0 20 53 0 CGPRC + 10 0 76 0 CHNCK + 0 1 147 0 CHPRECIP 10 3 2 0 CH 0 18 17 0 CIAIRC 0 19 206 1 CICEL + 0 1 146 0 CICEPR 0 1 35 0 CICEP 0 1 194 1 CICEP 10 2 12 0 CICES @@ -147,6 +183,7 @@ 2 3 22 0 CISICE 2 3 20 0 CISOILM 2 0 23 0 CISOILW + 0 19 50 0 CITEDR 0 19 207 1 CIVIS 3 2 9 0 CLDALB 3 2 10 0 CLDEMISS @@ -156,12 +193,23 @@ 3 2 6 0 CLDPER 3 2 4 0 CLDPHAS 3 1 16 0 CLDRAD + 3 1 31 0 CLDREF 3 2 3 0 CLDTYPE 0 1 235 1 CLLMR 0 1 22 0 CLMR 3 0 7 0 CLOUDM + 3 1 32 0 CLRREF + 0 3 39 0 CMATMOS + 0 1 155 0 CNCIMF + 0 1 153 0 CNCLWMF + 0 20 81 0 CNETS + 0 3 41 0 CNGFLUX 0 2 216 1 CNGWDU 0 2 217 1 CNGWDV + 0 20 79 0 CNMF + 0 1 157 0 CNRMF + 0 1 159 0 CNSMF + 0 3 37 0 CNTMF 0 3 209 1 CNVDEMF 0 3 208 1 CNVDMF 0 0 196 1 CNVHR @@ -171,8 +219,10 @@ 0 2 213 1 CNVV 2 0 13 0 CNWAT 2 0 196 1 CNWAT + 0 1 151 0 CNWVMF 0 20 56 0 COAIA 0 20 1 0 COLMD + 2 4 24 0 COMBCO 0 20 51 0 CONAIR 0 7 19 0 CONAPES 0 1 216 1 CONDP @@ -209,6 +259,7 @@ 0 1 33 0 CRAIN 0 1 192 1 CRAIN 0 20 71 0 CRERELSP + 2 0 48 0 CROPCOV 0 1 76 0 CRRATE 4 2 9 0 CRTFRQ 1 2 13 0 CSAFC @@ -219,6 +270,8 @@ 3 1 17 0 CSKYRAD 0 1 36 0 CSNOW 0 1 195 1 CSNOW + 20 3 8 0 CSPPCAP + 20 3 9 0 CSPPROD 0 1 58 0 CSRATE 0 1 55 0 CSRWE 0 5 195 1 CSULF @@ -230,29 +283,41 @@ 0 19 21 0 CTP 0 6 16 0 CUEFI 0 6 194 1 CUEFI + 0 19 239 1 CWASP + 0 1 149 0 CWATERMR 0 6 6 0 CWAT 0 7 195 1 CWDI 0 6 15 0 CWORK 0 6 193 1 CWORK 0 1 48 0 CWP 1 1 195 1 CWR + 0 1 166 0 CWVF + 0 19 41 0 DBHEIGHT 10 4 195 1 DBSS 0 7 203 1 DCAPE + 2 4 33 0 DDLMC 0 20 12 0 DDMFLX 0 3 30 0 DDRATE + 2 6 8 0 DDROAD + 2 6 6 0 DDROOF 0 20 15 0 DDVEL - 2 0 30 0 DECF + 2 4 35 0 DDWMC + 2 0 30 0 DECFC + 0 2 61 0 DEC 0 3 14 0 DENALT 0 3 10 0 DEN 0 0 7 0 DEPR 1 0 13 0 DEPWSS + 20 1 6 0 DFPRATIO 10 2 2 0 DICED + 4 10 3 0 DIDXSG 4 4 2 0 DIFEFLUX 4 4 4 0 DIFIFLUX 4 4 0 0 DIFPFLUX 3 6 5 0 DIFSOLEX 3 6 4 0 DIFSOLIR 0 4 14 0 DIFSWRF + 2 6 7 0 DIOWALL 10 1 0 0 DIRC 2 3 14 0 DIREC 10 0 10 0 DIRPW @@ -263,36 +328,82 @@ 10 0 32 0 DIRWWW 1 0 7 0 DISRS 0 3 6 0 DIST + 0 21 13 0 DIVENTFLUX + 0 21 16 0 DIVKENGFLUX + 0 21 14 0 DIVPOTFLUX + 0 21 17 0 DIVTOTFLUX + 0 21 18 0 DIVWENTFLUX + 0 21 15 0 DIVWPOTFLUX + 2 4 29 0 DLFL 0 5 8 0 DLWRFCS 0 5 3 0 DLWRF 0 5 192 1 DLWRF 0 3 28 0 DMFLX + 0 4 54 0 DNSWRFLX + 0 1 123 0 DPTYPE 0 0 6 0 DPT + 2 0 43 0 DRAINDIR + 2 4 13 0 DRFACT 2 4 8 0 DRTCODE 0 18 12 0 DRYDEP 0 19 237 1 DRYTPROB 4 7 2 0 DSKDAY 4 7 1 0 DSKINT 4 7 3 0 DSKNGT + 10 3 20 0 DSLIBARCOR 10 3 1 0 DSLM 10 191 3 0 DSLOBSO 0 191 3 0 DSLOBS 0 4 52 0 DSWRFCS + 0 4 61 0 DSWRFLXCS 0 4 13 0 DSWRFLX 0 4 7 0 DSWRF 0 4 192 1 DSWRF + 0 2 60 0 DTC 0 4 204 1 DTRF 2 4 7 0 DUFMCODE 0 4 194 1 DUVB + 2 4 30 0 DWFL + 10 3 4 0 DWHFLUX 0 4 12 0 DWUVR 0 2 9 0 DZDT 0 7 207 1 E3KH + 0 21 22 0 EADYGR 3 2 11 0 EAODR + 10 1 5 0 EASTCUR + 0 21 5 0 EASTENTFLUX + 0 21 19 0 EASTHFLUX + 0 21 9 0 EASTKINFLUX + 0 21 7 0 EASTPOTFLUX + 0 21 11 0 EASTTOTFLUX + 0 2 64 0 EASTTSSOD + 0 2 66 0 EASTTSSSR + 0 2 62 0 EASTTSS + 10 3 5 0 EASTWSS + 10 4 23 0 EASTWVEL 3 5 5 0 EBSDSSTS 3 5 4 0 EBSSTSTD + 2 0 61 0 ECORFLUX + 4 10 6 0 EDISSTIX 0 19 30 0 EDPARM + 0 1 138 0 EFARCICE + 0 1 140 0 EFARGRL + 0 1 141 0 EFARHAIL + 0 1 137 0 EFARRAIN + 0 1 142 0 EFARSIC + 0 1 139 0 EFARSNOW + 20 0 5 0 EFFTEMP 0 7 204 1 EFHL + 0 1 129 0 EFRCCWAT + 0 1 131 0 EFRCICE + 0 1 133 0 EFRGRL + 0 1 134 0 EFRHAIL + 0 1 130 0 EFRRAIN + 0 1 136 0 EFRSICEC + 0 1 135 0 EFRSLC + 0 1 132 0 EFRSNOW 0 3 222 1 EFSH + 10 0 89 0 EFWS 0 7 9 0 EHLX 2 0 237 1 EIWATER 4 2 1 0 ELCDEN @@ -302,9 +413,15 @@ 0 0 205 1 ELMELT 0 191 197 1 ELONN 0 191 193 1 ELON + 0 20 76 0 EMISFLX + 2 0 62 0 EMISS + 10 0 93 0 EMIWAVE 0 1 211 1 EMNP + 2 4 19 0 ENRELCOM + 0 21 3 0 ENTHALPY 0 0 3 0 EPOT 0 19 218 1 EPSR + 4 2 13 0 EQSLABT 10 3 252 1 EROSNP 1 0 3 0 ESCT 0 2 233 1 ESHR @@ -312,6 +429,8 @@ 3 1 0 0 ESTP 3 1 4 0 ESTUGRD 3 1 5 0 ESTVGRD + 10 3 14 0 ESURFWVEL + 10 4 38 0 ESWVP 0 2 32 0 ETACVV 10 3 250 1 ETCWL 4 3 4 0 ETOT @@ -319,6 +438,7 @@ 0 2 38 0 ETSS 4 6 3 0 EUVIRR 4 8 1 0 EUVRAD + 2 0 39 0 EVAPTRAT 2 0 6 0 EVAPT 0 1 79 0 EVARATE 2 3 198 1 EVBS @@ -326,22 +446,29 @@ 4 3 5 0 EVEC1 4 3 6 0 EVEC2 4 3 7 0 EVEC3 - 2 0 29 0 EVERF + 2 0 29 0 EVGFC 0 1 6 0 EVP 2 0 213 1 EWATR + 0 2 50 0 EWINDSTR 0 2 39 0 EWTPARM + 0 3 26 0 EXPRES 4 6 5 0 F107 + 20 1 5 0 FALPRATE 2 4 3 0 FBAREA 2 4 10 0 FBUPINX 0 6 37 0 FCONPC + 10 0 81 0 FCVOCEAN + 2 4 32 0 FDLMC 3 5 3 0 FDNSSTMP 2 4 11 0 FDSRTE + 2 4 34 0 FDWMC 1 0 0 0 FFLDG 1 0 1 0 FFLDRO 2 4 6 0 FFMCODE 0 1 228 1 FICEAC 0 6 21 0 FICE 0 6 199 1 FICE + 2 4 15 0 FIREDIDX 3 0 9 0 FIREDI 2 4 1 0 FIREODT 2 4 0 0 FIREOLK @@ -349,11 +476,15 @@ 1 0 12 0 FLDPSW 0 19 205 1 FLGHT 0 7 18 0 FLXRN + 20 1 9 0 FMALVRH + 0 6 50 0 FOG 2 4 4 0 FOSINDX 0 1 67 0 FPRATE 0 6 32 0 FRACCC + 2 4 36 0 FRADPOW 0 1 43 0 FRAIN 0 1 202 1 FRAIN + 4 5 2 0 FREQ 10 0 63 0 FREWWW 10 0 17 0 FRICVW 0 2 30 0 FRICV @@ -361,12 +492,19 @@ 0 1 227 1 FROZR 2 3 24 0 FRSTINX 10 0 64 0 FRWWTSW + 10 2 29 0 FRZDATE + 10 2 27 0 FRZMLTPOT 0 1 225 1 FRZR 10 3 204 1 FRZSPR 0 1 121 0 FSNOWC 0 6 36 0 FSTRPC + 2 4 23 0 FUELLOAD + 2 4 25 0 FUELMC + 10 4 31 0 FWFC + 10 4 30 0 FWFSW 2 4 5 0 FWINX 0 1 95 0 FZPRATE + 0 3 33 0 GAMSL 0 18 3 0 GDCES 0 18 4 0 GDIOD 0 18 5 0 GDRADP @@ -376,13 +514,19 @@ 0 2 44 0 GEOWS 2 0 10 0 GFLUX 2 0 193 1 GFLUX + 0 3 34 0 GHARGRD + 2 5 0 0 GLACCOV 2 5 1 0 GLACTMP + 0 19 47 0 GLIRRTS + 20 0 3 0 GLOBETMP 0 3 9 0 GPA 0 1 75 0 GPRATE 0 3 4 0 GP 0 4 3 0 GRAD + 2 0 49 0 GRASSCOV 0 7 17 0 GRDRN 0 1 32 0 GRLE + 2 0 60 0 GROSSFLUX 3 6 1 0 GSOLEXP 3 6 0 0 GSOLIRR 0 2 22 0 GUST @@ -396,13 +540,16 @@ 0 19 198 1 HAILPROB 0 1 73 0 HAILPR 0 1 31 0 HAIL + 10 3 10 0 HALOCSSH 4 8 2 0 HARAD 0 19 210 1 HAVNI + 20 1 3 0 HBRATEAV 0 6 5 0 HCDC 0 6 26 0 HCONCB 0 6 27 0 HCONCT 0 0 12 0 HEATX 4 8 6 0 HELCOR + 10 3 18 0 HFLUXCOR 2 0 24 0 HFLUX 0 20 62 0 HGTMD 0 3 211 1 HGTN @@ -411,6 +558,7 @@ 0 3 5 0 HGT 0 19 32 0 HIFREL 2 4 2 0 HINDEX + 2 0 54 0 HIVEGCOV 0 7 8 0 HLCY 0 18 16 0 HMXACON 0 3 18 0 HPBL @@ -421,14 +569,22 @@ 0 15 15 0 HSR 0 3 7 0 HSTDV 10 0 3 0 HTSGW + 20 0 4 0 HUMIDX + 0 3 44 0 HWBT 0 3 3 0 ICAHT 1 2 7 0 ICECIL 10 2 0 0 ICEC 10 2 7 0 ICED + 10 2 19 0 ICEFTHCK 10 2 6 0 ICEG + 10 2 21 0 ICEMPD + 10 2 20 0 ICEMPF + 10 2 22 0 ICEMPV 10 2 9 0 ICEPRS + 0 1 127 0 ICEP 0 19 27 0 ICESC 0 19 37 0 ICESEV + 2 3 29 0 ICETEMP 1 2 6 0 ICETIL 10 2 1 0 ICETK 10 2 8 0 ICETMP @@ -441,6 +597,7 @@ 0 19 234 1 ICSEV 1 2 5 0 ICTKIL 2 0 207 1 ICWAT + 2 4 18 0 IGNCOMP 0 1 20 0 ILIQW 10 0 27 0 IMFTSW 10 0 26 0 IMFWW @@ -454,13 +611,19 @@ 4 0 3 0 IONTMP 0 1 68 0 IPRATE 3 1 1 0 IRRATE + 2 0 47 0 IRRCOV 10 191 0 0 IRTSEC 3 5 0 0 ISSTMP 0 19 235 1 JFWPRB 10 3 201 1 KENG + 0 21 1 0 KINENG 0 7 3 0 KOX + 4 10 5 0 KP + 2 4 12 0 KRIDX 10 0 43 0 KSSEDW 0 7 2 0 KX + 2 0 56 0 LAIHI + 2 0 55 0 LAILO 0 7 198 1 LAI 2 0 234 1 LAKEFRC 2 0 233 1 LANDFRC @@ -476,19 +639,26 @@ 0 3 205 1 LAYTH 0 6 3 0 LCDC 10 3 203 1 LCH + 1 2 15 0 LDEPTH 2 0 28 0 LEAINX + 2 4 31 0 LFMC 0 7 10 0 LFTX 0 7 192 1 LFTX + 0 0 30 0 LHFLXE + 0 0 31 0 LHFLXS 0 0 10 0 LHTFL 0 1 229 1 LICEAC 0 13 195 1 LIPMF 2 3 10 0 LIQVSM + 2 4 27 0 LLFL 0 15 4 0 LMAXBR 4 7 0 0 LMBINT 0 3 210 1 LMH 0 2 218 1 LMV + 1 2 14 0 LNDSNOWT 0 2 203 1 LOPP 0 2 199 1 LOUV + 2 0 53 0 LOVEGCOV 0 2 201 1 LOVV 2 3 3 0 LOWLSM 0 13 194 1 LPMTF @@ -507,9 +677,13 @@ 0 17 192 1 LTNG 0 17 1 0 LTPINX 0 5 2 0 LWAVR + 2 4 28 0 LWFL 0 5 194 1 LWHR 0 4 5 0 LWRAD 2 3 23 0 LWSNWP + 20 1 1 0 MACPRATE + 20 1 0 0 MALACASE + 20 1 4 0 MALAIMM 4 8 7 0 MASK 0 6 38 0 MASSDCD 0 6 39 0 MASSDCI @@ -525,6 +699,7 @@ 0 2 21 0 MAXGUST 0 16 198 1 MAXREF 0 1 27 0 MAXRH + 4 2 10 0 MAXUFZ 0 2 220 1 MAXUVV 0 2 222 1 MAXUW 0 1 245 1 MAXVIG @@ -538,16 +713,22 @@ 0 1 112 0 MDLWGVA 0 1 109 0 MDLWHVA 0 1 115 0 MDLWSVA + 10 0 74 0 MDTSWEL + 10 0 75 0 MDWWAVE 3 2 30 0 MEACST + 20 0 1 0 MEANRTMP + 0 19 44 0 MEANVGRTL 0 6 200 1 MFLUX 0 2 26 0 MFLX 0 2 193 1 MFLX 0 0 14 0 MINDPD 0 1 198 1 MINRH + 0 19 45 0 MINVGRTL 0 19 3 0 MIXHT 0 19 204 1 MIXLY 0 1 2 0 MIXR 0 7 212 1 MLFC + 10 2 28 0 MLTDATE 0 191 195 1 MLYNO 0 1 114 0 MMLWGDA 0 1 111 0 MMLWHDA @@ -566,6 +747,7 @@ 10 0 20 0 MSSW 2 0 11 0 MSTAV 2 0 194 1 MSTAV + 2 3 204 1 MSTAV 2 0 7 0 MTERH 10 4 1 0 MTHA 10 4 0 0 MTHD @@ -598,25 +780,53 @@ 0 6 30 0 NDENCD 2 0 31 0 NDVINX 2 0 217 1 NDVI + 2 0 59 0 NECOFLUX + 10 0 85 0 NEFOCEAN + 10 0 83 0 NEFW + 0 19 46 0 NETRADFLUX + 10 3 13 0 NETUPWFLUX + 0 5 9 0 NIRALBDIF + 0 5 11 0 NIRALBDIRG + 0 5 12 0 NIRALBDIRI + 0 5 13 0 NIRALBDIRV + 0 5 10 0 NIRALBDIR 0 191 196 1 NLATN 0 191 192 1 NLAT 0 3 206 1 NLGSP 0 3 25 0 NLPRES + 0 2 54 0 NLSRLH + 0 2 55 0 NLSRLM 0 5 6 0 NLWRCS 0 5 5 0 NLWRF 0 5 0 0 NLWRS 0 5 1 0 NLWRT + 20 0 6 0 NOREFTMP + 10 3 6 0 NORTHWSS 3 1 6 0 NPIXU + 10 1 6 0 NRTHCUR + 0 21 6 0 NRTHENTFLUX + 0 21 20 0 NRTHHFLUX + 0 21 10 0 NRTHKINFLUX + 0 21 8 0 NRTHPOTFLUX + 0 21 12 0 NRTHTOTFLUX + 0 2 65 0 NRTHTSSOD + 0 2 67 0 NRTHTSSSR + 0 2 63 0 NRTHTSS + 10 4 24 0 NRTHWVEL + 10 0 84 0 NSOCEAN + 10 3 15 0 NSURFWVEL 0 4 11 0 NSWRFCS 0 4 9 0 NSWRF 0 4 0 0 NSWRS 0 4 1 0 NSWRT + 10 4 39 0 NSWVP 4 4 6 0 NTRNFLUX 0 2 37 0 NTSS 0 1 106 0 NUMDG 0 1 107 0 NUMDH 0 1 104 0 NUMDR 0 1 105 0 NUMDS + 0 2 51 0 NWINDSTR 0 2 34 0 NWIND 0 19 214 1 NWSALB 10 0 19 0 NWSTR @@ -648,19 +858,35 @@ 2 0 235 1 PAHFLX 3 3 2 0 PBINFRC 3 3 1 0 PBLIFRC + 0 1 126 0 PBLIZZ 0 19 12 0 PBLREG 3 3 0 0 PBMVFRC + 0 1 125 0 PBSNOW + 0 19 49 0 PCONTB + 0 19 48 0 PCONTT 0 1 234 1 PCPDUR 0 14 202 1 PDMAX1 0 14 203 1 PDMAX24 + 10 0 72 0 PDTSWELL + 10 0 71 0 PDWWAVE + 4 2 12 0 PEAKDEN + 4 2 11 0 PEAKH + 20 0 8 0 PEQUTMP + 0 1 143 0 PERATE 10 0 11 0 PERPW 1 0 16 0 PERRATE 10 0 13 0 PERSW + 2 0 40 0 PEVAPTRAT 0 1 40 0 PEVAP 0 1 199 1 PEVAP 0 1 41 0 PEVPR 0 1 200 1 PEVPR + 20 1 2 0 PFEIRATE + 4 5 1 0 PHASE + 0 4 60 0 PHOARFCS 0 4 10 0 PHOTAR + 0 1 122 0 PIIDX + 0 21 21 0 PILENERGY 3 0 8 0 PIXST 2 0 238 1 PLANTTR 0 7 0 0 PLI @@ -669,9 +895,12 @@ 10 0 23 0 PMAXWH 0 13 192 1 PMTC 0 13 193 1 PMTF + 20 2 0 0 POPDEN 1 1 2 0 POP 2 3 9 0 POROS 2 3 197 1 POROS + 0 20 18 0 POTHPH + 0 21 0 0 POTINTENG 0 0 2 0 POT 0 14 199 1 POZO 0 14 198 1 POZT @@ -681,11 +910,13 @@ 1 1 194 1 PPFFG 0 1 231 1 PPINDX 1 1 1 0 PPOSP + 10 3 3 0 PRACTSAL 0 1 7 0 PRATE 4 0 4 0 PRATMP 0 15 5 0 PREC 0 3 13 0 PRESALT 0 3 8 0 PRESA + 0 3 46 0 PRESDHS 0 3 212 1 PRESN 0 3 0 0 PRES 0 3 1 0 PRMSL @@ -697,6 +928,7 @@ 0 19 216 1 PRSIGSVR 0 19 215 1 PRSVR 10 4 21 0 PRTSAL + 0 1 124 0 PSHOW 0 19 36 0 PSNOWS 0 3 2 0 PTEND 0 1 19 0 PTYPE @@ -705,23 +937,33 @@ 0 1 3 0 PWAT 10 0 46 0 PWAVEDIR 0 1 30 0 PWCAT + 10 0 68 0 PWDFSPAR + 10 0 69 0 PWDSSPAR + 10 0 70 0 PWDTSPAR 10 0 34 0 PWPER + 10 0 65 0 PWPFSPAR + 10 0 66 0 PWPSSPAR + 10 0 67 0 PWPTSPAR 0 1 226 1 PWTHER 0 1 219 1 QMAX 0 1 220 1 QMIN + 1 1 196 1 QPFARI + 1 1 197 1 QPFFFG 2 0 215 1 QREC 0 1 218 1 QZ0 0 16 201 1 RADARVIL 2 3 202 1 RADT + 2 4 14 0 RATESPRD 3 1 8 0 RAZA - 2 0 21 0 RCQ + 2 0 20 0 RCQ 2 0 204 1 RCQ - 2 0 20 0 RCSOL + 2 0 21 0 RCSOL 2 0 205 1 RCSOL 2 0 18 0 RCS 2 0 202 1 RCS 2 0 19 0 RCT 2 0 203 1 RCT + 1 2 16 0 RDEPTH 2 0 206 1 RDRIP 0 15 6 0 RDSP1 0 15 7 0 RDSP2 @@ -739,6 +981,8 @@ 0 16 192 1 REFZR 0 2 13 0 RELD 0 2 12 0 RELV + 20 3 0 0 RENPCAP + 20 3 1 0 RENPPROD 0 16 3 0 RETOP 0 16 197 1 RETOP 0 0 194 1 REV @@ -746,6 +990,7 @@ 0 15 10 0 RFCI 0 15 13 0 RFGRPL 0 15 14 0 RFHAIL + 3 1 30 0 RFL04 3 1 9 0 RFL06 3 1 10 0 RFL08 3 1 11 0 RFL16 @@ -763,6 +1008,8 @@ 0 7 194 1 RI 2 3 6 0 RLYRS 2 3 193 1 RLYRS + 2 6 1 0 ROADCOVER + 4 10 2 0 ROTIDX 0 1 65 0 RPRATE 2 0 16 0 RSMIN 2 0 200 1 RSMIN @@ -770,11 +1017,13 @@ 0 191 194 1 RTSEC 10 3 206 1 RUNUP 1 0 11 0 RVERSW + 10 0 80 0 RWAVEAFW 0 1 24 0 RWMR 0 18 14 0 SACON 0 20 100 0 SADEN 0 19 19 0 SALBD 3 0 1 0 SALBEDO + 10 3 21 0 SALINITY 10 4 193 1 SALIN 1 2 12 0 SALTIL 10 4 3 0 SALTY @@ -844,22 +1093,39 @@ 3 192 68 0 SBTAHI9 3 0 2 0 SBTMP 0 7 210 1 SCCP - 4 2 10 0 SCINT + 4 10 1 0 SCIDEXS4 + 4 10 0 0 SCINIDX 0 1 84 0 SCLIWC 0 1 83 0 SCLLWC 3 1 29 0 SCRAD 0 20 112 0 SCTAOTK 3 0 5 0 SCTPRES + 2 6 5 0 SDBUILDHGT 0 20 6 0 SDDMFLX 0 1 61 0 SDEN + 0 3 38 0 SDFSO 3 1 99 0 SDMPEMRR 0 3 20 0 SDSGSO 0 1 60 0 SDWE + 10 4 48 0 SEACMMT + 10 4 44 0 SEACMVT + 10 4 50 0 SEACPSALT + 10 4 51 0 SEACSALT + 10 4 49 0 SEACZMT + 10 4 45 0 SEACZVT + 10 4 46 0 SEAMMT + 10 4 42 0 SEAMVT + 10 3 12 0 SEASFLUX + 10 4 47 0 SEAZMT + 10 4 43 0 SEAZVT 0 20 11 0 SEDMFLX 1 2 3 0 SEDTK 1 2 4 0 SEDTMP + 0 19 39 0 SEEINDEX 10 3 207 1 SETUP 0 1 62 0 SEVAP + 10 0 86 0 SEVWAVE + 0 20 77 0 SFCEFLX 2 0 216 1 SFCRH 2 0 1 0 SFCR 2 0 34 0 SFCWRO @@ -879,6 +1145,8 @@ 3 192 33 0 SFRA174 3 192 34 0 SFRA175 3 192 35 0 SFRA176 + 0 2 47 0 SFRHEAT + 0 2 48 0 SFRMOIST 10 4 11 0 SFSALP 1 2 9 0 SFSAL 10 4 12 0 SFTMPP @@ -892,17 +1160,24 @@ 0 1 108 0 SHTPRM 0 7 13 0 SHWINX 10 2 3 0 SICED + 10 2 17 0 SICEHC + 10 2 15 0 SICEVOL + 4 8 8 0 SICFL + 10 2 23 0 SIFTP 4 9 1 0 SIGHAL 0 7 209 1 SIGH 4 9 2 0 SIGPAR 4 9 0 0 SIGPED 0 7 211 1 SIGT 0 19 217 1 SIPD + 2 0 50 0 SKINRC 0 0 17 0 SKINT 3 5 1 0 SKSSTMP + 0 19 38 0 SKYIDX 0 1 230 1 SLACC 0 19 23 0 SLDP 3 0 4 0 SLFTI + 0 17 5 0 SLNGPIDX 10 3 202 1 SLTFL 2 3 194 1 SLTYP 0 6 34 0 SLWTC @@ -911,6 +1186,7 @@ 0 1 113 0 SMLWGMA 0 1 110 0 SMLWHMA 0 1 116 0 SMLWSMA + 2 0 41 0 SMRATE 2 3 7 0 SMREF 2 3 195 1 SMREF 0 19 18 0 SNFALB @@ -927,16 +1203,23 @@ 0 1 208 1 SNOT 0 1 42 0 SNOWC 0 1 201 1 SNOWC + 0 1 148 0 SNOWERAT 0 1 233 1 SNOWLR + 0 19 40 0 SNOWLVL 0 19 236 1 SNOWLVL + 2 3 28 0 SNOWTMP + 10 2 13 0 SNOWTSI 0 1 222 1 SNOWT + 20 3 6 0 SNPVPCAP + 20 3 7 0 SNPVPPROD + 10 2 18 0 SNSIHC + 10 2 16 0 SNVOLSI 2 3 25 0 SNWDEB 2 3 27 0 SOILDEP 2 3 21 0 SOILICE 2 3 5 0 SOILL 2 3 192 1 SOILL 2 3 19 0 SOILMOI - 2 0 22 0 SOILM 2 3 15 0 SOILP 2 0 239 1 SOILSE 2 3 18 0 SOILTMP @@ -948,6 +1231,7 @@ 3 1 28 0 SPBRT 10 1 1 0 SPC 4 6 4 0 SPECIRR + 10 0 88 0 SPECWI 4 1 0 0 SPEED 0 1 0 0 SPFH 10 0 45 0 SPFTR @@ -956,7 +1240,10 @@ 0 1 100 0 SPNCR 0 1 101 0 SPNCS 0 1 66 0 SPRATE + 2 4 16 0 SPRDCOMP 4 2 7 0 SPRDF + 20 3 4 0 SPVPCAP + 20 3 5 0 SPVPPROD 3 0 3 0 SPWAT 3 0 0 0 SRAD 0 1 85 0 SRAINC @@ -967,16 +1254,20 @@ 3 192 49 0 SRFAGR4 3 192 50 0 SRFAGR5 3 192 51 0 SRFAGR6 + 0 1 144 0 SRWATERC 0 1 12 0 SRWEQ 0 20 103 0 SSALBK 0 3 22 0 SSGSO + 10 3 19 0 SSHGTPARM 10 3 195 1 SSHG 3 5 2 0 SSKSSTMP 3 192 62 0 SSMS1715 3 192 63 0 SSMS1716 3 192 64 0 SSMS1717 3 192 65 0 SSMS1718 + 0 1 145 0 SSNOWWC 0 1 86 0 SSNOWW + 0 1 168 0 SSPFHW 1 0 6 0 SSRUN 1 0 193 1 SSRUN 10 3 200 1 SSST @@ -984,22 +1275,31 @@ 2 0 211 1 SSTOR 10 3 199 1 SSTT 0 6 35 0 SSWTC + 20 0 7 0 STDEFTMP + 10 3 11 0 STERCSSH + 10 0 96 0 STMCREST + 10 0 97 0 STMWAVE 0 19 200 1 STORPROB 0 7 208 1 STPC 0 2 4 0 STRM 0 1 87 0 STRPRATE + 2 0 52 0 SUBSRATE + 0 6 51 0 SUNFRAC 0 6 33 0 SUNSD 0 6 201 1 SUNSD 0 6 24 0 SUNS + 2 0 51 0 SURFRATE 10 3 192 1 SURGE 0 19 220 1 SVRTS 10 3 208 1 SWASH + 0 3 32 0 SWATERVP 0 4 2 0 SWAVR 10 0 7 0 SWDIR 0 20 7 0 SWDMFLX 0 7 5 0 SWEATX 10 0 8 0 SWELL 1 0 4 0 SWEPON + 2 3 30 0 SWET 10 0 47 0 SWHFSWEL 0 4 197 1 SWHR 10 0 48 0 SWHSSWEL @@ -1009,10 +1309,18 @@ 3 1 194 1 SWQI 0 4 6 0 SWRAD 0 19 212 1 SWSALB + 10 4 41 0 SWSTBC + 10 4 35 0 SWSTNR + 10 4 37 0 SWSTP + 10 4 40 0 SWTTBC + 10 4 34 0 SWTTNR + 10 4 36 0 SWTTP 0 6 1 0 TCDC + 0 191 4 0 TCDTRACK 0 0 204 1 TCHP 0 1 81 0 TCICON 0 14 2 0 TCIOZ + 0 1 169 0 TCISSPFHW 0 1 64 0 TCIWV 2 0 35 0 TCLASS 0 1 209 1 TCLSW @@ -1035,6 +1343,7 @@ 0 6 17 0 TCONDO 0 1 21 0 TCOND 0 6 195 1 TCOND + 0 1 167 0 TCSLW 10 3 242 1 TCSRG20 10 3 243 1 TCSRG30 10 3 244 1 TCSRG40 @@ -1046,7 +1355,10 @@ 0 1 51 0 TCWAT 0 0 20 0 TDCHT 0 2 31 0 TDCMOM + 10 0 94 0 TDMCREST + 10 0 95 0 TDMWAVE 2 0 36 0 TFRCT + 10 3 9 0 THERCSSH 0 0 197 1 THFLX 0 3 12 0 THICK 0 6 10 0 THUNC @@ -1055,10 +1367,13 @@ 0 18 7 0 TIACIP 0 18 8 0 TIACRP 10 3 251 1 TIDE + 0 7 20 0 TIIDEX 0 1 206 1 TIPD 0 19 11 0 TKE 0 1 90 0 TKMFLX + 0 19 42 0 TLBHEIGHT 0 17 4 0 TLGTFD + 0 19 43 0 TLTHEIGH 0 6 9 0 TMAXT 0 0 4 0 TMAX 0 0 5 0 TMIN @@ -1073,12 +1388,15 @@ 0 19 197 1 TORPROB 0 7 4 0 TOTALX 0 1 80 0 TOTCON + 0 21 2 0 TOTENG 0 18 13 0 TOTLWD 0 14 0 0 TOZNE 0 14 197 1 TOZ 2 0 37 0 TPERCT 0 19 219 1 TPFI 0 1 52 0 TPRATE + 0 2 231 1 TPWDIR + 0 2 232 1 TPWSPD 0 20 13 0 TRANHH 2 3 12 0 TRANSO 2 0 230 1 TRANS @@ -1087,11 +1405,13 @@ 0 2 225 1 TRWSPD 0 0 200 1 TSD1D 0 191 0 0 TSEC + 0 2 58 0 TSFCSTR 4 6 0 0 TSI 0 3 199 1 TSLSA 0 1 50 0 TSNOWP 0 1 241 1 TSNOW 2 0 2 0 TSOIL + 0 1 128 0 TSPRATE 0 1 57 0 TSRATE 0 1 53 0 TSRWE 0 19 203 1 TSTMC @@ -1116,8 +1436,11 @@ 10 3 205 1 TWLWAV 0 20 58 0 TYAAL 0 20 57 0 TYABA + 2 0 58 0 TYPHIVEG + 2 0 57 0 TYPLOVEG 0 3 16 0 U-GWD 0 3 194 1 U-GWD + 0 4 57 0 UBALBDIRG 10 1 194 1 UBARO 0 3 31 0 UCLSPRS 0 1 120 0 UCSCIW @@ -1135,8 +1458,10 @@ 0 5 4 0 ULWRF 0 5 193 1 ULWRF 0 3 27 0 UMFLX + 2 4 22 0 UNBURNAREA 0 1 118 0 UNCSH 0 2 45 0 UNDIV + 0 2 56 0 UNWIND 10 1 2 0 UOGRD 1 0 14 0 UPAPCP 1 0 15 0 UPASM @@ -1144,17 +1469,28 @@ 0 7 197 1 UPHL 2 3 2 0 UPLSM 2 3 1 0 UPLST + 2 0 44 0 UPSAREA + 10 4 27 0 UPWWVEL + 2 6 0 0 URBCOVER 3 1 192 1 USCT + 10 0 90 0 USMFO 10 0 21 0 USSD 0 2 27 0 USTM 0 2 194 1 USTM 0 4 53 0 USWRFCS 0 4 8 0 USWRF 0 4 193 1 USWRF + 20 0 0 0 UTHCIDX 0 4 205 1 UTRF + 0 4 15 0 UUVEARTH + 0 4 55 0 UVALBDIF + 0 4 58 0 UVALBDIRI + 0 4 56 0 UVALBDIR + 0 4 59 0 UVBDIRV 0 4 50 0 UVIUCS 0 4 51 0 UVI 0 7 196 1 UVI + 0 2 52 0 UWINDSTR 0 3 17 0 V-GWD 0 3 195 1 V-GWD 0 19 232 1 VAFTD @@ -1167,6 +1503,8 @@ 0 14 195 1 VDFOZ 0 2 208 1 VDFUA 0 2 209 1 VDFVA + 0 2 59 0 VDIV + 10 4 28 0 VEDDYDIF 0 2 204 1 VEDH 2 0 232 1 VEGMAX 2 0 231 1 VEGMIN @@ -1193,6 +1531,7 @@ 0 19 0 0 VIS 0 1 92 0 VKMFLX 0 20 52 0 VMXR + 0 2 57 0 VNWIND 10 1 3 0 VOGRD 3 4 4 0 VOLACDEM 3 4 7 0 VOLACDEN @@ -1211,6 +1550,9 @@ 0 0 15 0 VPTMP 0 2 224 1 VRATE 3 1 193 1 VSCT + 10 4 33 0 VSFC + 10 4 32 0 VSFSW + 10 0 91 0 VSMFO 2 0 25 0 VSOILM 2 3 16 0 VSOSM 10 0 22 0 VSSD @@ -1222,18 +1564,29 @@ 0 2 16 0 VVCSH 0 2 8 0 VVEL 2 0 27 0 VWILTM + 0 2 53 0 VWINDSTR 0 2 25 0 VWSH 0 2 192 1 VWSH + 2 6 4 0 VZAFRAC 10 4 17 0 WATDENA + 0 21 4 0 WATENTHALPY 10 4 16 0 WATERDEN 2 0 236 1 WATERSA 10 4 20 0 WATPDENA 10 4 19 0 WATPDEN 10 4 18 0 WATPTEMP 2 0 5 0 WATR + 10 0 79 0 WAVEFDIR + 10 0 78 0 WAVEFMAG 10 0 62 0 WAVEFREW + 4 5 3 0 WAVELGTH + 10 0 87 0 WAVEMSLC + 10 0 77 0 WAVESPSK + 10 0 92 0 WAVETEFO + 10 0 73 0 WCAPFRAC 2 0 223 1 WCCONV 0 0 13 0 WCF + 10 4 22 0 WCHEATC 2 0 221 1 WCINC 2 0 226 1 WCUFLX 2 0 227 1 WCVFLX @@ -1247,9 +1600,15 @@ 10 0 58 0 WDWTSWEL 0 1 13 0 WEASD 10 0 42 0 WESP + 20 0 2 0 WETBGTMP + 0 0 32 0 WETBPT 0 0 27 0 WETBT + 2 0 45 0 WETCOV 0 18 11 0 WETDEP + 0 0 206 1 WETGLBT + 2 0 46 0 WETTYPE 0 20 75 0 WFIREFLX + 2 4 26 0 WFIREPOT 1 2 2 0 WFRACT 10 0 59 0 WFWFSWEL 10 0 60 0 WFWSSWEL @@ -1259,13 +1618,18 @@ 2 0 26 0 WILT 2 0 201 1 WILT 0 2 33 0 WINDF + 20 3 2 0 WINDPCAP + 20 3 3 0 WINDPPROD 0 19 199 1 WINDPROB + 0 2 49 0 WINDSTR 3 1 19 0 WINDS 0 2 1 0 WIND 0 19 25 0 WIWW 10 0 193 1 WLENG 0 20 9 0 WLSMFLX 0 2 19 0 WMIXE + 0 3 45 0 WOBT + 2 0 42 0 WRDRATE 2 0 33 0 WROD 10 0 192 1 WSTP 10 0 18 0 WSTR @@ -1285,8 +1649,15 @@ 2 0 224 1 WVUFLX 2 0 225 1 WVVFLX 10 0 14 0 WWSDIR + 10 3 7 0 XCOMPSS + 10 4 25 0 XCOMPWV + 10 2 24 0 XICE 4 6 1 0 XLONG - 0 3 26 0 XPRES 4 8 0 0 XRAYRAD 4 6 2 0 XSHRT + 10 3 16 0 XSURFWVEL + 10 3 8 0 YCOMPSS + 10 4 26 0 YCOMPWV + 10 2 25 0 YICE + 10 3 17 0 YSURFVWEL 10 2 10 0 ZVCICEP diff --git a/parm/params_grib2_tbl_new.text b/parm/params_grib2_tbl_new.text index eef62d2dd..11d414dee 100755 --- a/parm/params_grib2_tbl_new.text +++ b/parm/params_grib2_tbl_new.text @@ -11,6 +11,17 @@ ! new tables 4.2-3-2,3,4,and 6 !2019-07-02 B. VUONG Added more parameters !2021-04-20 B. VUONG Added more parameters +!2023-03-09 A. BENJAMIN Added more parameters +!2023-03-30 A. BENJAMIN Added more parameters +!2023-10-19 A. BENJAMIN Added more parameters and +! new tables 4.2-3-1,4-8,10-0, +! 10-2,10-4 +!2023-11-02 A. BENJAMIN Added new parameters, +! fixed mislabeled params, +! match grib2 doc +!2023-12-07 A. BENJAMIN Added new parameters, and +! new tables: 4.2-2-6 +! 4.2-4-5,10 4.2-20-0,1,2,3 ! !GRIB2 parameter table for all disciplines and categories !The fields in order are grib2_discipline grib2_category @@ -56,6 +67,10 @@ ! Added more parameters in 7/2/2019 0 0 28 0 UCTMP 0 0 29 0 TMPADV +! Added new parameters 11/2/2023 + 0 0 30 0 LHFLXE + 0 0 31 0 LHFLXS + 0 0 32 0 WETBPT ! NCEP Local use 0 0 192 1 SNOHF 0 0 193 1 TTRAD @@ -72,6 +87,8 @@ 0 0 204 1 TCHP ! Added more parameters on 02/25/2021 0 0 205 1 ELMELT +! Added new parameters 11/2/2023 + 0 0 206 1 WETGLBT ! ! GRIB2 - TABLE 4.2-0-1 PARAMETERS FOR DISCIPLINE 0 CATEGORY 1 ! @@ -97,7 +114,7 @@ 0 1 19 0 PTYPE 0 1 20 0 ILIQW 0 1 21 0 TCOND -! Changed from CLWMR to CLWR +! Changed from CLWMR to CLWR ! (WGRIB2 v2.0.8 updated) in 4/6/2021 0 1 22 0 CLMR 0 1 23 0 ICMR @@ -203,6 +220,56 @@ 0 1 119 0 UCSCLW 0 1 120 0 UCSCIW 0 1 121 0 FSNOWC +! Added more parameters 10/20/2023 + 0 1 122 0 PIIDX + 0 1 123 0 DPTYPE + 0 1 124 0 PSHOW + 0 1 125 0 PBSNOW + 0 1 126 0 PBLIZZ + 0 1 127 0 ICEP + 0 1 128 0 TSPRATE + 0 1 129 0 EFRCCWAT + 0 1 130 0 EFRRAIN + 0 1 131 0 EFRCICE + 0 1 132 0 EFRSNOW + 0 1 133 0 EFRGRL + 0 1 134 0 EFRHAIL + 0 1 135 0 EFRSLC + 0 1 136 0 EFRSICEC + 0 1 137 0 EFARRAIN + 0 1 138 0 EFARCICE + 0 1 139 0 EFARSNOW + 0 1 140 0 EFARGRL + 0 1 141 0 EFARHAIL + 0 1 142 0 EFARSIC + 0 1 143 0 PERATE + 0 1 144 0 SRWATERC + 0 1 145 0 SSNOWWC + 0 1 146 0 CICEPR + 0 1 147 0 CHPRECIP + 0 1 148 0 SNOWERAT + 0 1 149 0 CWATERMR + 0 1 150 0 CEWVMF + 0 1 151 0 CNWVMF + 0 1 152 0 CECLWMF + 0 1 153 0 CNCLWMF + 0 1 154 0 CECIMF + 0 1 155 0 CNCIMF + 0 1 156 0 CERMF + 0 1 157 0 CNRMF + 0 1 158 0 CEFMF + 0 1 159 0 CNSMF + 0 1 160 0 CDWFMF + 0 1 161 0 CDCLWMF + 0 1 162 0 CDCIMF + 0 1 163 0 CDRMF + 0 1 164 0 CDSMF + 0 1 165 0 CDTWMF + 0 1 166 0 CWVF + 0 1 167 0 TCSLW +! Added New Parameters 12/15/2023 + 0 1 168 0 SSPFHW + 0 1 169 0 TCISSPFHW ! NCEP Local use 0 1 192 1 CRAIN 0 1 193 1 CFRZR @@ -307,6 +374,29 @@ ! Added more parameters in 7/2/2019 0 2 45 0 UNDIV 0 2 46 0 VORTADV +! Added parameters 10/20/2023 + 0 2 47 0 SFRHEAT + 0 2 48 0 SFRMOIST + 0 2 49 0 WINDSTR + 0 2 50 0 EWINDSTR + 0 2 51 0 NWINDSTR + 0 2 52 0 UWINDSTR + 0 2 53 0 VWINDSTR + 0 2 54 0 NLSRLH + 0 2 55 0 NLSRLM + 0 2 56 0 UNWIND + 0 2 57 0 VNWIND + 0 2 58 0 TSFCSTR +! Added parameters 12/15/2023 + 0 2 59 0 VDIV + 0 2 60 0 DTC + 0 2 61 0 DEC + 0 2 62 0 EASTTSS + 0 2 63 0 NRTHTSS + 0 2 64 0 EASTTSSOD + 0 2 65 0 NRTHTSSOD + 0 2 66 0 EASTTSSSR + 0 2 67 0 NRTHTSSSR ! NCEP Local use 0 2 192 1 VWSH 0 2 193 1 MFLX @@ -348,6 +438,9 @@ 0 2 228 1 TOA50 0 2 229 1 TOD50 0 2 230 1 TOD90 +! Added new parameters 11/2/2023 + 0 2 231 1 TPWDIR + 0 2 232 1 TPWSPD ! Added more parameters in 2/25/2021 0 2 233 1 ESHR 0 2 234 1 UESH @@ -384,7 +477,8 @@ 0 3 23 0 GWD 0 3 24 0 ASGSO 0 3 25 0 NLPRES - 0 3 26 0 XPRES +! Fixed 26 to match grib2 doc 11/2/2023 + 0 3 26 0 EXPRES ! Added more parameters in 2/28/2017 0 3 27 0 UMFLX 0 3 28 0 DMFLX @@ -392,6 +486,23 @@ 0 3 30 0 DDRATE ! Added more parameters in 7/2/2019 0 3 31 0 UCLSPRS +! Added parameters 10/20/2023 + 0 3 32 0 SWATERVP + 0 3 33 0 GAMSL + 0 3 34 0 GHARGRD + 0 3 35 0 CDTMF + 0 3 36 0 CETMF + 0 3 37 0 CNTMF + 0 3 38 0 SDFSO + 0 3 39 0 CMATMOS + 0 3 40 0 CEGFLUX + 0 3 41 0 CNGFLUX + 0 3 42 0 CDWGFLUX + 0 3 43 0 CDGFLUX + 0 3 44 0 HWBT + 0 3 45 0 WOBT +! Added new parameter 12/15/2023 + 0 3 46 0 PRESDHS ! NCEP Local use 0 3 192 1 MSLET 0 3 193 1 5WAVH @@ -445,12 +556,22 @@ ! Added more parameters in 2/28/2017 0 4 13 0 DSWRFLX 0 4 14 0 DIFSWRF + 0 4 15 0 UUVEARTH ! 0 4 50 0 UVIUCS 0 4 51 0 UVI ! Added more parameters in 2/28/2017 0 4 52 0 DSWRFCS 0 4 53 0 USWRFCS +! Added more parameters 10/20/2023 + 0 4 54 0 DNSWRFLX + 0 4 55 0 UVALBDIF + 0 4 56 0 UVALBDIR + 0 4 57 0 UBALBDIRG + 0 4 58 0 UVALBDIRI + 0 4 59 0 UVBDIRV + 0 4 60 0 PHOARFCS + 0 4 61 0 DSWRFLXCS ! NCEP Local use 0 4 192 1 DSWRF 0 4 193 1 USWRF @@ -480,6 +601,12 @@ 0 5 7 0 BRTEMP ! Added more parameters in 2/28/2017 0 5 8 0 DLWRFCS +! Added new parameters 10/20/2023 + 0 5 9 0 NIRALBDIF + 0 5 10 0 NIRALBDIR + 0 5 11 0 NIRALBDIRG + 0 5 12 0 NIRALBDIRI + 0 5 13 0 NIRALBDIRV ! NCEP Local use 0 5 192 1 DLWRF 0 5 193 1 ULWRF @@ -540,6 +667,9 @@ 0 6 47 0 VFRCWD 0 6 48 0 VFRCICE 0 6 49 0 VFRCIW +! Added new parameters 10/20/2023 + 0 6 50 0 FOG + 0 6 51 0 SUNFRAC ! NCEP Local use 0 6 192 1 CDLYR 0 6 193 1 CWORK @@ -575,6 +705,8 @@ 0 7 18 0 FLXRN ! Added more parameters in 7/2/2019 0 7 19 0 CONAPES +! Added new parameter 11/2/2023 + 0 7 20 0 TIIDEX ! NCEP Local use 0 7 192 1 LFTX 0 7 193 1 4LFTX @@ -680,6 +812,8 @@ 0 17 2 0 CDGDLTFD 0 17 3 0 CDCDLTFD 0 17 4 0 TLGTFD +! Added new parameter 11/2/2023 + 0 17 5 0 SLNGPIDX ! NCEP Local use 0 17 192 1 LTNG ! @@ -751,6 +885,21 @@ 0 19 36 0 PSNOWS ! Added more parameters in 12/03/2019 0 19 37 0 ICESEV +! Added new parameters 10/20/23 + 0 19 38 0 SKYIDX + 0 19 39 0 SEEINDEX + 0 19 40 0 SNOWLVL + 0 19 41 0 DBHEIGHT + 0 19 42 0 TLBHEIGHT + 0 19 43 0 TLTHEIGH + 0 19 44 0 MEANVGRTL + 0 19 45 0 MINVGRTL +! Added new parameters 12/15/2023 + 0 19 46 0 NETRADFLUX + 0 19 47 0 GLIRRTS + 0 19 48 0 PCONTT + 0 19 49 0 PCONTB + 0 19 50 0 CITEDR ! NCEP Local use 0 19 192 1 MXSALB 0 19 193 1 SNFALB @@ -792,6 +941,8 @@ 0 19 236 1 SNOWLVL 0 19 237 1 DRYTPROB 0 19 238 1 ELLINX +! Added new parameter 11/2/2023 + 0 19 239 1 CWASP ! ! GRIB2 - TABLE 4.2-0-20 PARAMETERS FOR DISCIPLINE 0 CATEGORY 20 ! @@ -814,6 +965,8 @@ 0 20 15 0 DDVEL 0 20 16 0 MSSRDRYA 0 20 17 0 MSSRWETA +! Added new parameters 10/20/2023 + 0 20 18 0 POTHPH ! 0 20 50 0 AIA 0 20 51 0 CONAIR @@ -843,6 +996,13 @@ 0 20 73 0 CBLCSRCP 0 20 74 0 CIRERECP 0 20 75 0 WFIREFLX +! Added new parameters 10/20/2023 + 0 20 76 0 EMISFLX + 0 20 77 0 SFCEFLX + 0 20 78 0 CEMF + 0 20 79 0 CNMF + 0 20 80 0 CDIVMF + 0 20 81 0 CNETS ! 0 20 100 0 SADEN 0 20 101 0 ATMTK @@ -858,6 +1018,34 @@ 0 20 111 0 ANGSTEXP 0 20 112 0 SCTAOTK ! +! GRIB2 - TABLE 4.2-0-21 PARAMETERS FOR DISCIPLINE 0 CATEGORY 21 +! +! Adding new table and parameters 11/2/2023 + 0 21 0 0 POTINTENG + 0 21 1 0 KINENG + 0 21 2 0 TOTENG + 0 21 3 0 ENTHALPY + 0 21 4 0 WATENTHALPY + 0 21 5 0 EASTENTFLUX + 0 21 6 0 NRTHENTFLUX + 0 21 7 0 EASTPOTFLUX + 0 21 8 0 NRTHPOTFLUX + 0 21 9 0 EASTKINFLUX + 0 21 10 0 NRTHKINFLUX + 0 21 11 0 EASTTOTFLUX + 0 21 12 0 NRTHTOTFLUX + 0 21 13 0 DIVENTFLUX + 0 21 14 0 DIVPOTFLUX + 0 21 15 0 DIVWPOTFLUX + 0 21 16 0 DIVKENGFLUX + 0 21 17 0 DIVTOTFLUX + 0 21 18 0 DIVWENTFLUX + 0 21 19 0 EASTHFLUX + 0 21 20 0 NRTHHFLUX + 0 21 21 0 PILENERGY +! Added new parameter 12/15/2023 + 0 21 22 0 EADYGR +! ! GRIB2 - TABLE 4.2-0-190 PARAMETERS FOR DISCIPLINE 0 CATEGORY 190 ! 0 190 0 0 ATEXT @@ -869,6 +1057,8 @@ 0 191 2 0 GEOLON ! Added more parameters in 8/26/2015 0 191 3 0 DSLOBS +! Added new parameter 12/15/2023 + 0 191 4 0 TCDTRACK ! NCEP Local use 0 191 192 1 NLAT 0 191 193 1 ELON @@ -929,6 +1119,9 @@ 1 1 193 1 CPOFP 1 1 194 1 PPFFG 1 1 195 1 CWR +! Added more parameters 3/9/2023 + 1 1 196 1 QPFARI + 1 1 197 1 QPFFFG ! ! GRIB2 - TABLE 4.2-1-2 PARAMETERS FOR DISCIPLINE 1 CATEGORY 2 ! @@ -947,12 +1140,18 @@ 1 2 12 0 SALTIL ! Added more parameters in 2/28/2017 1 2 13 0 CSAFC +! Added new paramter 11/2/2023 + 1 2 14 0 LNDSNOWT +! Added new parameters 12/15/2023 + 1 2 15 0 LDEPTH + 1 2 16 0 RDEPTH ! ! GRIB2 - TABLE 4.2-2-0 PARAMETERS FOR DISCIPLINE 2 CATEGORY 0 ! 2 0 0 0 LAND 2 0 1 0 SFCR 2 0 2 0 TSOIL +! Parameter SOILM deprecated 12/03/2021 ! 2 0 3 0 SOILM 2 0 4 0 VEG 2 0 5 0 WATR @@ -971,17 +1170,20 @@ ! 2 0 17 0 WILT 2 0 18 0 RCS 2 0 19 0 RCT - 2 0 20 0 RCSOL - 2 0 21 0 RCQ - 2 0 22 0 SOILM +! Swapped RCQ and RCSOL 11/02/2023 + 2 0 20 0 RCQ + 2 0 21 0 RCSOL +! Parameter SOILD deprecated 12/03/2021 +! 2 0 22 0 SOILM 2 0 23 0 CISOILW 2 0 24 0 HFLUX 2 0 25 0 VSOILM 2 0 26 0 WILT 2 0 27 0 VWILTM 2 0 28 0 LEAINX - 2 0 29 0 EVERF - 2 0 30 0 DECF +! Fixed 29-30 to match grib2 doc 11/2/2023 + 2 0 29 0 EVGFC + 2 0 30 0 DECFC 2 0 31 0 NDVINX 2 0 32 0 RDVEG ! Added more parameters in 8/26/2015 @@ -991,6 +1193,33 @@ 2 0 36 0 TFRCT 2 0 37 0 TPERCT 2 0 38 0 SOILVIC +! Added new parameters 10/23/2023 + 2 0 39 0 EVAPTRAT + 2 0 40 0 PEVAPTRAT + 2 0 41 0 SMRATE + 2 0 42 0 WRDRATE + 2 0 43 0 DRAINDIR + 2 0 44 0 UPSAREA + 2 0 45 0 WETCOV + 2 0 46 0 WETTYPE + 2 0 47 0 IRRCOV + 2 0 48 0 CROPCOV + 2 0 49 0 GRASSCOV + 2 0 50 0 SKINRC + 2 0 51 0 SURFRATE + 2 0 52 0 SUBSRATE + 2 0 53 0 LOVEGCOV + 2 0 54 0 HIVEGCOV + 2 0 55 0 LAILO + 2 0 56 0 LAIHI + 2 0 57 0 TYPLOVEG + 2 0 58 0 TYPHIVEG + 2 0 59 0 NECOFLUX + 2 0 60 0 GROSSFLUX + 2 0 61 0 ECORFLUX +! Added new parameters 12/15/2023 + 2 0 62 0 EMISS + 2 0 63 0 CANTMP ! NCEP Local use 2 0 192 1 SOILW 2 0 193 1 GFLUX @@ -1078,6 +1307,10 @@ 2 3 25 0 SNWDEB 2 3 26 0 SHFLX 2 3 27 0 SOILDEP +! Added new parameters 12/15/2023 + 2 3 28 0 SNOWTMP + 2 3 29 0 ICETEMP + 2 3 30 0 SWET ! NCEP Local use 2 3 192 1 SOILL 2 3 193 1 RLYRS @@ -1091,6 +1324,7 @@ 2 3 201 1 AVSFT 2 3 202 1 RADT 2 3 203 1 FLDCP + 2 3 204 1 MSTAV ! ! GRIB2 - TABLE 4.2-2-4 PARAMETERS FOR DISCIPLINE 2 CATEGORY 4 ! @@ -1108,13 +1342,57 @@ 2 4 9 0 INFSINX 2 4 10 0 FBUPINX 2 4 11 0 FDSRTE +! Added more parameters 3/30/2023 + 2 4 12 0 KRIDX + 2 4 13 0 DRFACT + 2 4 14 0 RATESPRD + 2 4 15 0 FIREDIDX + 2 4 16 0 SPRDCOMP + 2 4 17 0 BURNIDX + 2 4 18 0 IGNCOMP + 2 4 19 0 ENRELCOM +! Added new parameters 10/23/2023 + 2 4 20 0 BURNAREA + 2 4 21 0 BURNABAREA + 2 4 22 0 UNBURNAREA + 2 4 23 0 FUELLOAD + 2 4 24 0 COMBCO + 2 4 25 0 FUELMC +! Added more parameters 3/30/2023 + 2 4 26 0 WFIREPOT +! Added new parameters 12/15/2023 + 2 4 27 0 LLFL + 2 4 28 0 LWFL + 2 4 29 0 DLFL + 2 4 30 0 DWFL + 2 4 31 0 LFMC + 2 4 32 0 FDLMC + 2 4 33 0 DDLMC + 2 4 34 0 FDWMC + 2 4 35 0 DDWMC + 2 4 36 0 FRADPOW ! ! Added new Discipline 2 category 5 in 8/26/2015 ! ! GRIB2 - TABLE 4.2-2-5 PARAMETERS FOR DISCIPLINE 2 CATEGORY 5 +! +! Added new parameter 11/2/2023 + 2 5 0 0 GLACCOV ! 2 5 1 0 GLACTMP ! +! GRIB2 - TABLE 4.2-2-6 PARAMETERS FOR DISCIPLINE 2 CATEGORY 6 +! + 2 6 0 0 URBCOVER + 2 6 1 0 ROADCOVER + 2 6 2 0 BUILDCOVER + 2 6 3 0 BUILDHGT + 2 6 4 0 VZAFRAC + 2 6 5 0 SDBUILDHGT + 2 6 6 0 DDROOF + 2 6 7 0 DIOWALL + 2 6 8 0 DDROAD +! ! GRIB2 - TABLE 4.2-3-0 PARAMETERS FOR DISCIPLINE 3 CATEGORY 0 ! 3 0 0 0 SRAD @@ -1159,6 +1437,11 @@ 3 1 27 0 BRFLF 3 1 28 0 SPBRT 3 1 29 0 SCRAD +! Added more parameters 10/19/2023 + 3 1 30 0 RFL04 +! Added new parameters 12/15/2023 + 3 1 31 0 CLDREF + 3 1 32 0 CLRREF ! Added more parameters in 7/2/2019 3 1 98 0 CCMPEMRR 3 1 99 0 SDMPEMRR @@ -1353,7 +1636,11 @@ 4 2 7 0 SPRDF 4 2 8 0 HPRIMF 4 2 9 0 CRTFRQ - 4 2 10 0 SCINT +! adding new parameters 11/2/2023 + 4 2 10 0 MAXUFZ + 4 2 11 0 PEAKH + 4 2 12 0 PEAKDEN + 4 2 13 0 EQSLABT ! ! GRIB2 - TABLE 4.2-4-3 PARAMETERS FOR DISCIPLINE 4 CATEGORY 3 ! @@ -1376,6 +1663,13 @@ 4 4 5 0 INTIFLUX 4 4 6 0 NTRNFLUX ! +! GRIB2 - TABLE 4.2-4-5 PARAMETERS FOR DISCIPLINE 4 CATEGORY 5 +! + 4 5 0 0 AMPL + 4 5 1 0 PHASE + 4 5 2 0 FREQ + 4 5 3 0 WAVELGTH +! ! GRIB2 - TABLE 4.2-4-6 PARAMETERS FOR DISCIPLINE 4 CATEGORY 6 ! 4 6 0 0 TSI @@ -1403,6 +1697,8 @@ 4 8 5 0 WHTCOR 4 8 6 0 HELCOR 4 8 7 0 MASK +! Added new parameter 10/19/2023 + 4 8 8 0 SICFL ! ! GRIB2 - TABLE 4.2-4-9 PARAMETERS FOR DISCIPLINE 4 CATEGORY 9 ! @@ -1410,6 +1706,17 @@ 4 9 1 0 SIGHAL 4 9 2 0 SIGPAR ! +! GRIB2 - TABLE 4.2-4-10 PARAMETERS FOR DISCIPLINE 4 CATEGORY 10 +! + 4 10 0 0 SCINIDX + 4 10 1 0 SCIDEXS4 + 4 10 2 0 ROTIDX + 4 10 3 0 DIDXSG + 4 10 4 0 AATRATE + 4 10 5 0 KP + 4 10 6 0 EDISSTIX + 4 10 7 0 AURELEC +! ! GRIB2 - TABLE 4.2-10-0 PARAMETERS FOR DISCIPLINE 10 CATEGORY 0 ! 10 0 0 0 WVSP1 @@ -1479,6 +1786,41 @@ 10 0 62 0 WAVEFREW 10 0 63 0 FREWWW 10 0 64 0 FRWWTSW +! Added parameters 10/19/2023 + 10 0 65 0 PWPFSPAR + 10 0 66 0 PWPSSPAR + 10 0 67 0 PWPTSPAR + 10 0 68 0 PWDFSPAR + 10 0 69 0 PWDSSPAR + 10 0 70 0 PWDTSPAR + 10 0 71 0 PDWWAVE + 10 0 72 0 PDTSWELL + 10 0 73 0 WCAPFRAC + 10 0 74 0 MDTSWEL + 10 0 75 0 MDWWAVE + 10 0 76 0 CHNCK + 10 0 77 0 WAVESPSK + 10 0 78 0 WAVEFMAG + 10 0 79 0 WAVEFDIR + 10 0 80 0 RWAVEAFW + 10 0 81 0 FCVOCEAN + 10 0 82 0 AIRDENOC + 10 0 83 0 NEFW + 10 0 84 0 NSOCEAN + 10 0 85 0 NEFOCEAN + 10 0 86 0 SEVWAVE + 10 0 87 0 WAVEMSLC + 10 0 88 0 SPECWI + 10 0 89 0 EFWS + 10 0 90 0 USMFO + 10 0 91 0 VSMFO + 10 0 92 0 WAVETEFO +! Added new parameters 12/15/2023 + 10 0 93 0 EMIWAVE + 10 0 94 0 TDMCREST + 10 0 95 0 TDMWAVE + 10 0 96 0 STMCREST + 10 0 97 0 STMWAVE ! NCEP Local use 10 0 192 1 WSTP ! Added parameter in 8/26/2015 @@ -1492,6 +1834,9 @@ 10 1 3 0 VOGRD ! Added parameter in 7/2/2019 10 1 4 0 RIPCOP +! Added parameters 10/19/2023 + 10 1 5 0 EASTCUR + 10 1 6 0 NRTHCUR ! NCEP Local use 10 1 192 1 OMLU 10 1 193 1 OMLV @@ -1514,6 +1859,25 @@ 10 2 10 0 ZVCICEP 10 2 11 0 MVCICEP 10 2 12 0 CICES +! Added parameters 10/19/2023 + 10 2 13 0 SNOWTSI + 10 2 14 0 ALBDOICE + 10 2 15 0 SICEVOL + 10 2 16 0 SNVOLSI + 10 2 17 0 SICEHC + 10 2 18 0 SNSIHC + 10 2 19 0 ICEFTHCK + 10 2 20 0 ICEMPF + 10 2 21 0 ICEMPD + 10 2 22 0 ICEMPV + 10 2 23 0 SIFTP +! Added new parameters 12/15/2023 + 10 2 24 0 XICE + 10 2 25 0 YICE +! + 10 2 27 0 FRZMLTPOT + 10 2 28 0 MLTDATE + 10 2 29 0 FRZDATE ! ! GRIB2 - TABLE 4.2-10-3 PARAMETERS FOR DISCIPLINE 10 CATEGORY 3 ! @@ -1521,6 +1885,27 @@ 10 3 1 0 DSLM ! Added more parameters in 2/28/2017 10 3 2 0 CH +! Added new parameters in 10/30/2023 + 10 3 3 0 PRACTSAL + 10 3 4 0 DWHFLUX + 10 3 5 0 EASTWSS + 10 3 6 0 NORTHWSS + 10 3 7 0 XCOMPSS + 10 3 8 0 YCOMPSS + 10 3 9 0 THERCSSH + 10 3 10 0 HALOCSSH + 10 3 11 0 STERCSSH + 10 3 12 0 SEASFLUX + 10 3 13 0 NETUPWFLUX + 10 3 14 0 ESURFWVEL + 10 3 15 0 NSURFWVEL + 10 3 16 0 XSURFWVEL + 10 3 17 0 YSURFVWEL + 10 3 18 0 HFLUXCOR + 10 3 19 0 SSHGTPARM + 10 3 20 0 DSLIBARCOR +! Added new parameter 12/15/2023 + 10 3 21 0 SALINITY ! NCEP Local use 10 3 192 1 SURGE 10 3 193 1 ETSRG @@ -1582,6 +1967,38 @@ 10 4 19 0 WATPDEN 10 4 20 0 WATPDENA 10 4 21 0 PRTSAL +! Added parameters 10/19/2023 + 10 4 22 0 WCHEATC + 10 4 23 0 EASTWVEL + 10 4 24 0 NRTHWVEL + 10 4 25 0 XCOMPWV + 10 4 26 0 YCOMPWV + 10 4 27 0 UPWWVEL + 10 4 28 0 VEDDYDIF + 10 4 29 0 BPEH + 10 4 30 0 FWFSW + 10 4 31 0 FWFC + 10 4 32 0 VSFSW + 10 4 33 0 VSFC + 10 4 34 0 SWTTNR + 10 4 35 0 SWSTNR + 10 4 36 0 SWTTP + 10 4 37 0 SWSTP + 10 4 38 0 ESWVP + 10 4 39 0 NSWVP + 10 4 40 0 SWTTBC + 10 4 41 0 SWSTBC +! Added parameters 12/15/2023 + 10 4 42 0 SEAMVT + 10 4 43 0 SEAZVT + 10 4 44 0 SEACMVT + 10 4 45 0 SEACZVT + 10 4 46 0 SEAMMT + 10 4 47 0 SEAZMT + 10 4 48 0 SEACMMT + 10 4 49 0 SEACZMT + 10 4 50 0 SEACPSALT + 10 4 51 0 SEACSALT ! NCEP Local use 10 4 192 1 WTMPC 10 4 193 1 SALIN @@ -1597,3 +2014,47 @@ ! ! Added parameter in 8/26/2015 10 191 3 0 DSLOBSO +! Added new parameters 10/30/2023 + 10 191 4 0 BARDSF +! +! GRIB2 - TABLE 4.2-20-0 PARAMETERS FOR DISCIPLINE 20 CATEGORY 0 +! + 20 0 0 0 UTHCIDX + 20 0 1 0 MEANRTMP + 20 0 2 0 WETBGTMP + 20 0 3 0 GLOBETMP + 20 0 4 0 HUMIDX + 20 0 5 0 EFFTEMP + 20 0 6 0 NOREFTMP + 20 0 7 0 STDEFTMP + 20 0 8 0 PEQUTMP +! +! GRIB2 - TABLE 4.2-20-1 PARAMETERS FOR DISCIPLINE 20 CATEGORY 1 +! + 20 1 0 0 MALACASE + 20 1 1 0 MACPRATE + 20 1 2 0 PFEIRATE + 20 1 3 0 HBRATEAV + 20 1 4 0 MALAIMM + 20 1 5 0 FALPRATE + 20 1 6 0 DFPRATIO + 20 1 7 0 AVHRATIO + 20 1 8 0 AVECTNUM + 20 1 9 0 FMALVRH +! +! GRIB2 - TABLE 4.2-20-2 PARAMETERS FOR DISCIPLINE 20 CATEGORY 2 +! + 20 2 0 0 POPDEN +! +! GRIB2 - TABLE 4.2-20-3 PARAMETERS FOR DISCIPLINE 20 CATEGORY 3 +! + 20 3 0 0 RENPCAP + 20 3 1 0 RENPPROD + 20 3 2 0 WINDPCAP + 20 3 3 0 WINDPPROD + 20 3 4 0 SPVPCAP + 20 3 5 0 SPVPPROD + 20 3 6 0 SNPVPCAP + 20 3 7 0 SNPVPPROD + 20 3 8 0 CSPPCAP + 20 3 9 0 CSPPROD diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 2f58ff3ea..52580b14d 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -296,8 +296,8 @@ 36 - SOILM_ON_DEPTH_BEL_LAND_SFC - SOILM + GFS_CISOILM_ON_DEPTH_BEL_LAND_SFC + CISOILM depth_bel_land_sfc depth_bel_land_sfc 3.0 @@ -1510,7 +1510,6 @@ 171 RUC_MSTAV_ON_DEPTH_BEL_LAND_SFC MSTAV - NCEP depth_bel_land_sfc 3.0 @@ -4146,6 +4145,23 @@ 6.0 + + 476 + MXEDPRM_ON_ENTIRE_ATMOS + MXEDPRM + entire_atmos + 3.0 + + + + + 477 + CIT_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL + CITEDR + spec_alt_above_mean_sea_lvl + 3.0 + + 480 ICESEV_ON_ISOBARIC_SFC @@ -6591,6 +6607,14 @@ 9.0 + + 713 + CISOILM_ON_DEPTH_BEL_LAND_SFC + CISOILM + depth_bel_land_sfc + 3.0 + + 719 INST_USWRF_ON_TOP_OF_ATMOS @@ -6922,7 +6946,7 @@ 755 HWP_ON_SURFACE Hourly Wildfire Potential on surface - FWINX + WFIREPOT surface 5.0 @@ -7427,27 +7451,28 @@ 913 1H_FFG_EXCEEDANCE tmpl4_8 - FFLDRO + QPFFFG + NCEP ACM surface - 4.0 914 ACM_FFG_EXCEEDANCE tmpl4_8 - FFLDRO + QPFFFG + NCEP ACM surface - 4.0 915 1H_2YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7457,7 +7482,8 @@ 916 ACM_2YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7467,7 +7493,8 @@ 917 1H_5YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7477,7 +7504,8 @@ 918 ACM_5YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7487,7 +7515,8 @@ 919 1H_10YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7497,7 +7526,8 @@ 920 ACM_10YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7507,7 +7537,8 @@ 921 1H_100YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7517,7 +7548,8 @@ 922 ACM_100YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 diff --git a/parm/post_avblflds_raphrrr.xml b/parm/post_avblflds_raphrrr.xml index 617a51557..65895a026 100755 --- a/parm/post_avblflds_raphrrr.xml +++ b/parm/post_avblflds_raphrrr.xml @@ -311,7 +311,7 @@ 36 SOILM_ON_DEPTH_BEL_LAND_SFC - SOILM + SOILMOI depth_bel_land_sfc 3.0 diff --git a/parm/postcntrl_gfs_anl.xml b/parm/postcntrl_gfs_anl.xml index 1306d2e9f..cb7de93c0 100755 --- a/parm/postcntrl_gfs_anl.xml +++ b/parm/postcntrl_gfs_anl.xml @@ -548,11 +548,6 @@ 3.0 - - ICETMP_ON_SURFACE - 5.0 - - LAND_FRAC 3.0 diff --git a/parm/postcntrl_gfs_f00.xml b/parm/postcntrl_gfs_f00.xml index 3473ccdb9..3a618219b 100755 --- a/parm/postcntrl_gfs_f00.xml +++ b/parm/postcntrl_gfs_f00.xml @@ -821,12 +821,6 @@ 6.0 - - ICEG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL - 10. - 4.0 - - SOTYP_ON_SURFACE 4.0 @@ -837,11 +831,6 @@ 3.0 - - ICETMP_ON_SURFACE - 5.0 - - HGT_ON_CLOUD_CEILING 6.0 diff --git a/parm/postcntrl_gfs_f00_two.xml b/parm/postcntrl_gfs_f00_two.xml index 3d5df294f..97526704f 100755 --- a/parm/postcntrl_gfs_f00_two.xml +++ b/parm/postcntrl_gfs_f00_two.xml @@ -821,12 +821,6 @@ 6.0 - - ICEG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL - 10. - 4.0 - - SOTYP_ON_SURFACE 4.0 @@ -837,11 +831,6 @@ 3.0 - - ICETMP_ON_SURFACE - 5.0 - - HGT_ON_CLOUD_CEILING 6.0 @@ -1222,7 +1211,7 @@ - SOILM_ON_DEPTH_BEL_LAND_SFC + GFS_CISOILM_ON_DEPTH_BEL_LAND_SFC 2 0. 2 diff --git a/parm/postcntrl_gfs_flux.xml b/parm/postcntrl_gfs_flux.xml index 2511c3e48..51aa5c9a1 100755 --- a/parm/postcntrl_gfs_flux.xml +++ b/parm/postcntrl_gfs_flux.xml @@ -605,7 +605,7 @@ - SOILM_ON_DEPTH_BEL_LAND_SFC + GFS_CISOILM_ON_DEPTH_BEL_LAND_SFC 2 0. 2 diff --git a/parm/postcntrl_gfs_flux_f00.xml b/parm/postcntrl_gfs_flux_f00.xml index c8c6c1008..3e5c8c245 100755 --- a/parm/postcntrl_gfs_flux_f00.xml +++ b/parm/postcntrl_gfs_flux_f00.xml @@ -283,7 +283,7 @@ - SOILM_ON_DEPTH_BEL_LAND_SFC + GFS_CISOILM_ON_DEPTH_BEL_LAND_SFC 2 0. 2 diff --git a/parm/postcntrl_sfs.xml b/parm/postcntrl_sfs.xml new file mode 100644 index 000000000..790496a51 --- /dev/null +++ b/parm/postcntrl_sfs.xml @@ -0,0 +1,662 @@ + + + + + GFSPRS + 0 + ncep_nco + v2003 + local_tab_yes1 + fcst + oper + fcst + fcst + hour + nws_ncep + gfs_avn + complex_packing_spatial_diff + 2nd_ord_sptdiff + fltng_pnt + lossless + + + HGT_ON_ISOBARIC_SFC + 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. + 6.0 + + + + TMP_ON_ISOBARIC_SFC + 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. + 3.0 + + + + SPFH_ON_ISOBARIC_SFC + 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. + 4.0 + + + + RH_ON_ISOBARIC_SFC + 1. 2. 4. 7. 10. 20. 40. 70. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. + 3.0 + + + + UGRD_ON_ISOBARIC_SFC + 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. + 4.0 + + + + VGRD_ON_ISOBARIC_SFC + 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. + 4.0 + + + + ABSV_ON_ISOBARIC_SFC + 1. 2. 4. 7. 10. 20. 40. 70. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. + 4.0 + + + + O3MR_ON_ISOBARIC_SFC + NCEP + 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 12500. 15000. 20000. 25000. 30000. 35000. 40000. + 5.0 + + + + MSLET_ON_MEAN_SEA_LVL + 6.0 + + + + PRES_ON_MEAN_SEA_LVL + 6.0 + + + + TMP_ON_SPEC_HGT_LVL_ABOVE_GRND_2m + 4.0 + + + + SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_2m + 4.0 + + + + DPT_ON_SPEC_HGT_LVL_ABOVE_GRND_2m + 4.0 + + + + RH_ON_SPEC_HGT_LVL_ABOVE_GRND_2m + 3.0 + + + + UGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_10m + 4.0 + + + + VGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_10m + 4.0 + + + + PRES_ON_SURFACE + 6.0 + + + + HGT_ON_SURFACE + 6.0 + + + + TMP_ON_SURFACE + 4.0 + + + + TSOIL_ON_DEPTH_BEL_LAND_SFC + 2 2 2 2 + 0. 10. 40. 100. + 2 2 2 2 + 10. 40. 100. 200. + 4.0 + + + + SOILW_ON_DEPTH_BEL_LAND_SFC + NCEP + 2 2 2 2 + 0. 10. 40. 100. + 2 2 2 2 + 10. 40. 100. 200. + 3.0 + + + + SOILL_ON_DEPTH_BEL_LAND_SFC + NCEP + 2 2 2 2 + 0. 10. 40. 100. + 2 2 2 2 + 10. 40. 100. 200. + 3.0 + + + + CNWAT_ON_SURFACE + NCEP + 1.0 + + + + WEASD_ON_SURFACE + 3.0 + + + + PEVPR_ON_SURFACE + NCEP + 6.0 + + + + ICETK_ON_SURFACE + 3.0 + + + + SNOD_ON_SURFACE + 3.0 + yes + + + + WILT_ON_SURFACE + NCEP + 4.0 + yes + + + + FLDCP_ON_SURFACE + NCEP + 4.0 + yes + + + + GFS_LFTX_ON_SURFACE + NCEP + 3.0 + + + + GFS_4LFTX_ON_SURFACE + NCEP + 3.0 + + + + CAPE_ON_SURFACE + 4.0 + + + + CIN_ON_SURFACE + 0. + 4.0 + + + + PWAT_ON_ENTIRE_ATMOS_SINGLE_LYR + 3.0 + + + + ACM_APCP_ON_SURFACE + 4.0 + + + + ACM_ACPCP_ON_SURFACE + 4.0 + + + + ACM_NCPCP_ON_SURFACE + 4.0 + + + + AVE_PRATE_ON_SURFACE + 4.0 + + + + AVE_CPRAT_ON_SURFACE + NCEP + 4.0 + + + + AVE_TCDC_ON_ENTIRE_ATMOS + 3.0 + + + + VIS_ON_SURFACE + 3.0 + + + + AVE_DSWRF_ON_SURFACE + NCEP + 3.0 + + + + AVE_CDUVB_ON_SURFACE + NCEP + 3.0 + + + + AVE_DUVB_ON_SURFACE + NCEP + 3.0 + + + + AVE_DLWRF_ON_SURFACE + NCEP + 3.0 + + + + AVE_USWRF_ON_SURFACE + NCEP + 3.0 + + + + AVE_ULWRF_ON_SURFACE + NCEP + 3.0 + + + + AVE_USWRF_ON_TOP_OF_ATMOS + NCEP + 3.0 + + + + AVE_ULWRF_ON_TOP_OF_ATMOS + NCEP + 3.0 + + + + BRTMP_ON_TOP_OF_ATMOS + 3.0 + + + + SFCR_ON_SURFACE + 4.0 + + + + FRICV_ON_SURFACE + NCEP + 4.0 + + + + AVE_SHTFL_ON_SURFACE + 4.0 + + + + AVE_GFLUX_ON_SURFACE + NCEP + 4.0 + + + + AVE_LHTFL_ON_SURFACE + 4.0 + + + + AVE_UFLX_ON_SURFACE + 4.0 + + + + AVE_VFLX_ON_SURFACE + 4.0 + + + + LAND_ON_SURFACE + + + + ICEC_ON_SURFACE + 1.0 + + + + AVE_ALBDO_ON_SURFACE + 4.0 + + + + PRES_ON_TROPOPAUSE + 6.0 + + + + HGT_ON_TROPOPAUSE + 6.0 + + + + TMP_ON_TROPOPAUSE + 3.0 + + + + UGRD_ON_TROPOPAUSE + 4.0 + + + + VGRD_ON_TROPOPAUSE + 4.0 + + + + VWSH_ON_TROPOPAUSE + NCEP + 3.0 + + + + HGT_ON_0C_ISOTHERM + 6.0 + + + + RH_ON_0C_ISOTHERM + 2.0 + + + + HGT_ON_HGHST_TROP_FRZ_LVL + 6.0 + + + + RH_ON_HGHST_TROP_FRZ_LVL + 2.0 + + + + PRES_ON_MAX_WIND + 6.0 + + + + HGT_ON_MAX_WIND + 6.0 + + + + UGRD_ON_MAX_WIND + 4.0 + + + + VGRD_ON_MAX_WIND + 4.0 + + + + TMP_ON_MAX_WIND + 3.0 + + + + HPBL_ON_SURFACE + NCEP + 6.0 + + + + CWAT_ON_ENTIRE_ATMOS_SINGLE_LYR + 3.0 + + + + RH_ON_ENTIRE_ATMOS_SINGLE_LYR + 2.0 + + + + TOZNE_ON_ENTIRE_ATMOS_SINGLE_LYR + 4.0 + + + + GUST_ON_SURFACE + 3.0 + + + + UGRD_ON_ISENTROPIC_LVL + 320. 450. 550. 650. + 4.0 + + + + VGRD_ON_ISENTROPIC_LVL + 320. 450. 550. 650. + 4.0 + + + + TMP_ON_ISENTROPIC_LVL + 320. 450. 550. 650. + 3.0 + + + + PVORT_ON_ISENTROPIC_LVL + 310. 320. 350. 450. 550. 650. + 4.0 + + + + MNTSF_ON_ISENTROPIC_LVL + 320. + 4.0 + + + + UGRD_ON_POT_VORT_SFC + 9 9 9 9 9 9 9 9 + 500. -500. 1000. -1000. 1500. -1500. 2000. -2000. + 4.0 + + + + VGRD_ON_POT_VORT_SFC + 9 9 9 9 9 9 9 9 + 500. -500. 1000. -1000. 1500. -1500. 2000. -2000. + 4.0 + + + + TMP_ON_POT_VORT_SFC + 9 9 9 9 9 9 9 9 + 500. -500. 1000. -1000. 1500. -1500. 2000. -2000. + 4.0 + + + + HGT_ON_POT_VORT_SFC + 9 9 9 9 9 9 9 9 + 500. -500. 1000. -1000. 1500. -1500. 2000. -2000. + 6.0 + + + + PRES_ON_POT_VORT_SFC + 9 9 9 9 9 9 9 9 + 500. -500. 1000. -1000. 1500. -1500. 2000. -2000. + 6.0 + + + + VWSH_ON_POT_VORT_SFC + NCEP + 9 9 9 9 9 9 9 9 + 500. -500. 1000. -1000. 1500. -1500. 2000. -2000. + 3.0 + + + + AVE_CWORK_ON_ENTIRE_ATMOS_SINGLE_LYR + NCEP + 4.0 + + + + AVE_U-GWD_ON_SURFACE + NCEP + 5.0 + + + + AVE_V-GWD_ON_SURFACE + NCEP + 5.0 + + + + ACM_WATR_ON_SURFACE + 6.0 + + + + MAX_TMAX_ON_SPEC_HGT_LVL_ABOVE_GRND_2m + 4.0 + + + + MIN_TMIN_ON_SPEC_HGT_LVL_ABOVE_GRND_2m + 4.0 + + + + SUNSD_ON_SURFACE + NCEP + 5.0 + + + + HINDEX_ON_SURFACE + 1.0 + + + + CPOFP_ON_SURFACE + 4.0 + + + + APTMP_ON_SPEC_HGT_LVL_ABOVE_GRND_2m + 4.0 + + + + AVE_SNOHF_ON_SURFACE + SNOHF + AVE + 4.0 + + + + AVE_SNOWC_ON_SURFACE + SNOWC + AVE + 3.0 + + + + 549 + FDNSSTMP_ON_SURFACE + FDNSSTMP + surface + 4.0 + + + + 1004 + ACM_SNOWFALL_ON_SURFACE + tmpl4_8 + TSNOWP + ACM + surface + 4.0 + + + + 1005 + BUCKET_SNOWFALL_ON_SURFACE + tmpl4_8 + TSNOWP + ACM + surface + 4.0 + + + + HLCY_ON_SPEC_HGT_LVL_ABOVE_GRND + 3000. + 0. + 4.0 + + + + ACM_SSRUN_ON_SURFACE + 4.0 + + + + AVE_VBDSF_ON_SURFACE + NCEP + 6.0 + + + + AVE_NBDSF_ON_SURFACE + NCEP + 6.0 + + + + + diff --git a/parm/postxconfig-NT-GFS-ANL.txt b/parm/postxconfig-NT-GFS-ANL.txt index 83c13293b..638505e89 100644 --- a/parm/postxconfig-NT-GFS-ANL.txt +++ b/parm/postxconfig-NT-GFS-ANL.txt @@ -1,5 +1,5 @@ 1 -93 +92 GFSPRS 0 ncep_nco @@ -3383,43 +3383,6 @@ surface ? ? ? -968 -ICETMP_ON_SURFACE -? -1 -tmpl4_0 -ICETMP -? -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? 996 LAND_FRAC ? diff --git a/parm/postxconfig-NT-GFS-F00-TWO.txt b/parm/postxconfig-NT-GFS-F00-TWO.txt index 229c1f52e..1757a50c1 100644 --- a/parm/postxconfig-NT-GFS-F00-TWO.txt +++ b/parm/postxconfig-NT-GFS-F00-TWO.txt @@ -1,6 +1,6 @@ 2 47 -156 +154 GFSPRS 0 ncep_nco @@ -5049,43 +5049,6 @@ hybrid_lvl ? ? ? -588 -ICEG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL -? -1 -tmpl4_0 -ICEG -? -? -spec_alt_above_mean_sea_lvl -0 -? -1 -10. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? 219 SOTYP_ON_SURFACE ? @@ -5160,43 +5123,6 @@ surface ? ? ? -968 -ICETMP_ON_SURFACE -? -1 -tmpl4_0 -ICETMP -? -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? 260 HGT_ON_CLOUD_CEILING ? @@ -7471,11 +7397,11 @@ hybrid_lvl ? ? 36 -SOILM_ON_DEPTH_BEL_LAND_SFC +GFS_CISOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +CISOILM ? ? depth_bel_land_sfc diff --git a/parm/postxconfig-NT-GFS-F00.txt b/parm/postxconfig-NT-GFS-F00.txt index bf2548acd..33159fce8 100644 --- a/parm/postxconfig-NT-GFS-F00.txt +++ b/parm/postxconfig-NT-GFS-F00.txt @@ -1,5 +1,5 @@ 1 -156 +154 GFSPRS 0 ncep_nco @@ -5048,43 +5048,6 @@ hybrid_lvl ? ? ? -588 -ICEG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL -? -1 -tmpl4_0 -ICEG -? -? -spec_alt_above_mean_sea_lvl -0 -? -1 -10. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? 219 SOTYP_ON_SURFACE ? @@ -5159,43 +5122,6 @@ surface ? ? ? -968 -ICETMP_ON_SURFACE -? -1 -tmpl4_0 -ICETMP -? -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? 260 HGT_ON_CLOUD_CEILING ? diff --git a/parm/postxconfig-NT-GFS-FLUX-F00.txt b/parm/postxconfig-NT-GFS-FLUX-F00.txt index 26b7058c8..e4b856dae 100644 --- a/parm/postxconfig-NT-GFS-FLUX-F00.txt +++ b/parm/postxconfig-NT-GFS-FLUX-F00.txt @@ -1682,11 +1682,11 @@ hybrid_lvl ? ? 36 -SOILM_ON_DEPTH_BEL_LAND_SFC +GFS_CISOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +CISOILM ? ? depth_bel_land_sfc diff --git a/parm/postxconfig-NT-GFS-FLUX.txt b/parm/postxconfig-NT-GFS-FLUX.txt index d5f224d47..081a54c2c 100644 --- a/parm/postxconfig-NT-GFS-FLUX.txt +++ b/parm/postxconfig-NT-GFS-FLUX.txt @@ -3828,11 +3828,11 @@ surface ? ? 36 -SOILM_ON_DEPTH_BEL_LAND_SFC +GFS_CISOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +CISOILM ? ? depth_bel_land_sfc diff --git a/parm/postxconfig-NT-NMM.txt b/parm/postxconfig-NT-NMM.txt index 002bbcae0..5ebaf3085 100644 --- a/parm/postxconfig-NT-NMM.txt +++ b/parm/postxconfig-NT-NMM.txt @@ -2169,7 +2169,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +SOILMOI ? ? depth_bel_land_sfc @@ -11916,7 +11916,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +SOILMOI ? ? depth_bel_land_sfc @@ -19850,7 +19850,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +SOILMOI ? ? depth_bel_land_sfc diff --git a/parm/postxconfig-NT-SFS.txt b/parm/postxconfig-NT-SFS.txt new file mode 100644 index 000000000..7b886ec09 --- /dev/null +++ b/parm/postxconfig-NT-SFS.txt @@ -0,0 +1,4088 @@ +1 +110 +GFSPRS +0 +ncep_nco +v2003 +local_tab_yes1 +fcst +oper +fcst +fcst +hour +nws_ncep +gfs_avn +complex_packing_spatial_diff +2nd_ord_sptdiff +fltng_pnt +lossless +12 +HGT_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +HGT +? +? +isobaric_sfc +0 +? +39 +1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +13 +TMP_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +TMP +? +? +isobaric_sfc +0 +? +39 +1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +16 +SPFH_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +SPFH +? +? +isobaric_sfc +0 +? +39 +1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +17 +RH_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +RH +? +? +isobaric_sfc +0 +? +34 +1. 2. 4. 7. 10. 20. 40. 70. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +18 +UGRD_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +UGRD +? +? +isobaric_sfc +0 +? +39 +1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +19 +VGRD_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +VGRD +? +? +isobaric_sfc +0 +? +39 +1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +21 +ABSV_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +ABSV +? +? +isobaric_sfc +0 +? +34 +1. 2. 4. 7. 10. 20. 40. 70. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +268 +O3MR_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +O3MR +NCEP +? +isobaric_sfc +0 +? +26 +1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 12500. 15000. 20000. 25000. 30000. 35000. 40000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +5.0 +0 +0 +0 +? +? +? +23 +MSLET_ON_MEAN_SEA_LVL +? +1 +tmpl4_0 +MSLET +NCEP +? +mean_sea_lvl +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +105 +PRES_ON_MEAN_SEA_LVL +? +1 +tmpl4_0 +PRMSL +? +? +mean_sea_lvl +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +106 +TMP_ON_SPEC_HGT_LVL_ABOVE_GRND_2m +? +1 +tmpl4_0 +TMP +? +? +spec_hgt_lvl_above_grnd +0 +? +1 +2. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +112 +SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_2m +? +1 +tmpl4_0 +SPFH +? +? +spec_hgt_lvl_above_grnd +0 +? +1 +2. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +113 +DPT_ON_SPEC_HGT_LVL_ABOVE_GRND_2m +? +1 +tmpl4_0 +DPT +? +? +spec_hgt_lvl_above_grnd +0 +? +1 +2. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +114 +RH_ON_SPEC_HGT_LVL_ABOVE_GRND_2m +? +1 +tmpl4_0 +RH +? +? +spec_hgt_lvl_above_grnd +0 +? +1 +2. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +64 +UGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_10m +? +1 +tmpl4_0 +UGRD +? +? +spec_hgt_lvl_above_grnd +0 +? +1 +10. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +65 +VGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_10m +? +1 +tmpl4_0 +VGRD +? +? +spec_hgt_lvl_above_grnd +0 +? +1 +10. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +24 +PRES_ON_SURFACE +? +1 +tmpl4_0 +PRES +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +25 +HGT_ON_SURFACE +? +1 +tmpl4_0 +HGT +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +26 +TMP_ON_SURFACE +? +1 +tmpl4_0 +TMP +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +116 +TSOIL_ON_DEPTH_BEL_LAND_SFC +? +1 +tmpl4_0 +TSOIL +? +? +depth_bel_land_sfc +4 +2 2 2 2 +4 +0. 10. 40. 100. +depth_bel_land_sfc +4 +2 2 2 2 +4 +10. 40. 100. 200. +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +117 +SOILW_ON_DEPTH_BEL_LAND_SFC +? +1 +tmpl4_0 +SOILW +NCEP +? +depth_bel_land_sfc +4 +2 2 2 2 +4 +0. 10. 40. 100. +depth_bel_land_sfc +4 +2 2 2 2 +4 +10. 40. 100. 200. +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +225 +SOILL_ON_DEPTH_BEL_LAND_SFC +? +1 +tmpl4_0 +SOILL +NCEP +? +depth_bel_land_sfc +4 +2 2 2 2 +4 +0. 10. 40. 100. +depth_bel_land_sfc +4 +2 2 2 2 +4 +10. 40. 100. 200. +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +118 +CNWAT_ON_SURFACE +? +1 +tmpl4_0 +CNWAT +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +1.0 +0 +0 +0 +? +? +? +119 +WEASD_ON_SURFACE +? +1 +tmpl4_0 +WEASD +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +242 +PEVPR_ON_SURFACE +? +1 +tmpl4_0 +PEVPR +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +349 +ICETK_ON_SURFACE +? +1 +tmpl4_0 +ICETK +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +224 +SNOD_ON_SURFACE +? +1 +tmpl4_0 +SNOD +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +yes +236 +WILT_ON_SURFACE +? +1 +tmpl4_0 +WILT +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +yes +397 +FLDCP_ON_SURFACE +? +1 +tmpl4_0 +FLDCP +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +yes +572 +GFS_LFTX_ON_SURFACE +? +1 +tmpl4_0 +LFTX +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +573 +GFS_4LFTX_ON_SURFACE +? +1 +tmpl4_0 +4LFTX +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +32 +CAPE_ON_SURFACE +? +1 +tmpl4_0 +CAPE +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +107 +CIN_ON_SURFACE +? +1 +tmpl4_0 +CIN +? +? +surface +0 +? +1 +0. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +80 +PWAT_ON_ENTIRE_ATMOS_SINGLE_LYR +? +1 +tmpl4_0 +PWAT +? +? +entire_atmos_single_lyr +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +87 +ACM_APCP_ON_SURFACE +? +1 +tmpl4_8 +APCP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +33 +ACM_ACPCP_ON_SURFACE +? +1 +tmpl4_8 +ACPCP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +34 +ACM_NCPCP_ON_SURFACE +? +1 +tmpl4_8 +NCPCP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +271 +AVE_PRATE_ON_SURFACE +? +1 +tmpl4_8 +PRATE +? +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +272 +AVE_CPRAT_ON_SURFACE +? +1 +tmpl4_8 +CPRAT +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +144 +AVE_TCDC_ON_ENTIRE_ATMOS +? +1 +tmpl4_8 +TCDC +? +AVE +entire_atmos_single_lyr +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +180 +VIS_ON_SURFACE +? +1 +tmpl4_0 +VIS +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +126 +AVE_DSWRF_ON_SURFACE +? +1 +tmpl4_8 +DSWRF +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +297 +AVE_CDUVB_ON_SURFACE +? +1 +tmpl4_8 +CDUVB +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +298 +AVE_DUVB_ON_SURFACE +? +1 +tmpl4_8 +DUVB +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +127 +AVE_DLWRF_ON_SURFACE +? +1 +tmpl4_8 +DLWRF +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +128 +AVE_USWRF_ON_SURFACE +? +1 +tmpl4_8 +USWRF +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +129 +AVE_ULWRF_ON_SURFACE +? +1 +tmpl4_8 +ULWRF +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +130 +AVE_USWRF_ON_TOP_OF_ATMOS +? +1 +tmpl4_8 +USWRF +NCEP +AVE +top_of_atmos +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +131 +AVE_ULWRF_ON_TOP_OF_ATMOS +? +1 +tmpl4_8 +ULWRF +NCEP +AVE +top_of_atmos +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +275 +BRTMP_ON_TOP_OF_ATMOS +? +1 +tmpl4_0 +BRTMP +? +? +top_of_atmos +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +44 +SFCR_ON_SURFACE +? +1 +tmpl4_0 +SFCR +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +45 +FRICV_ON_SURFACE +? +1 +tmpl4_0 +FRICV +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +43 +AVE_SHTFL_ON_SURFACE +? +1 +tmpl4_8 +SHTFL +? +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +135 +AVE_GFLUX_ON_SURFACE +? +1 +tmpl4_8 +GFLUX +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +42 +AVE_LHTFL_ON_SURFACE +? +1 +tmpl4_8 +LHTFL +? +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +269 +AVE_UFLX_ON_SURFACE +? +1 +tmpl4_8 +UFLX +? +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +270 +AVE_VFLX_ON_SURFACE +? +1 +tmpl4_8 +VFLX +? +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +50 +LAND_ON_SURFACE +? +1 +tmpl4_0 +LAND +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +1.0 +0 +0 +0 +? +? +? +51 +ICEC_ON_SURFACE +? +1 +tmpl4_0 +ICEC +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +1.0 +0 +0 +0 +? +? +? +266 +AVE_ALBDO_ON_SURFACE +? +1 +tmpl4_8 +ALBDO +? +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +54 +PRES_ON_TROPOPAUSE +? +1 +tmpl4_0 +PRES +? +? +tropopause +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +177 +HGT_ON_TROPOPAUSE +? +1 +tmpl4_0 +HGT +? +? +tropopause +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +55 +TMP_ON_TROPOPAUSE +? +1 +tmpl4_0 +TMP +? +? +tropopause +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +56 +UGRD_ON_TROPOPAUSE +? +1 +tmpl4_0 +UGRD +? +? +tropopause +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +57 +VGRD_ON_TROPOPAUSE +? +1 +tmpl4_0 +VGRD +? +? +tropopause +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +58 +VWSH_ON_TROPOPAUSE +? +1 +tmpl4_0 +VWSH +NCEP +? +tropopause +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +62 +HGT_ON_0C_ISOTHERM +? +1 +tmpl4_0 +HGT +? +? +0C_isotherm +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +63 +RH_ON_0C_ISOTHERM +? +1 +tmpl4_0 +RH +? +? +0C_isotherm +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +2.0 +0 +0 +0 +? +? +? +165 +HGT_ON_HGHST_TROP_FRZ_LVL +? +1 +tmpl4_0 +HGT +? +? +hghst_trop_frz_lvl +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +350 +RH_ON_HGHST_TROP_FRZ_LVL +? +1 +tmpl4_0 +RH +? +? +hghst_trop_frz_lvl +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +2.0 +0 +0 +0 +? +? +? +173 +PRES_ON_MAX_WIND +? +1 +tmpl4_0 +PRES +? +? +max_wind +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +174 +HGT_ON_MAX_WIND +? +1 +tmpl4_0 +HGT +? +? +max_wind +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +175 +UGRD_ON_MAX_WIND +? +1 +tmpl4_0 +UGRD +? +? +max_wind +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +176 +VGRD_ON_MAX_WIND +? +1 +tmpl4_0 +VGRD +? +? +max_wind +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +314 +TMP_ON_MAX_WIND +? +1 +tmpl4_0 +TMP +? +? +max_wind +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +221 +HPBL_ON_SURFACE +? +1 +tmpl4_0 +HPBL +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +575 +CWAT_ON_ENTIRE_ATMOS_SINGLE_LYR +? +1 +tmpl4_0 +CWAT +? +? +entire_atmos_single_lyr +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +312 +RH_ON_ENTIRE_ATMOS_SINGLE_LYR +? +1 +tmpl4_0 +RH +? +? +entire_atmos_single_lyr +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +2.0 +0 +0 +0 +? +? +? +299 +TOZNE_ON_ENTIRE_ATMOS_SINGLE_LYR +? +1 +tmpl4_0 +TOZNE +? +? +entire_atmos_single_lyr +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +245 +GUST_ON_SURFACE +? +1 +tmpl4_0 +GUST +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +332 +UGRD_ON_ISENTROPIC_LVL +? +1 +tmpl4_0 +UGRD +? +? +isentropic_lvl +0 +? +4 +320. 450. 550. 650. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +333 +VGRD_ON_ISENTROPIC_LVL +? +1 +tmpl4_0 +VGRD +? +? +isentropic_lvl +0 +? +4 +320. 450. 550. 650. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +334 +TMP_ON_ISENTROPIC_LVL +? +1 +tmpl4_0 +TMP +? +? +isentropic_lvl +0 +? +4 +320. 450. 550. 650. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +335 +PVORT_ON_ISENTROPIC_LVL +? +1 +tmpl4_0 +PVORT +? +? +isentropic_lvl +0 +? +6 +310. 320. 350. 450. 550. 650. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +353 +MNTSF_ON_ISENTROPIC_LVL +? +1 +tmpl4_0 +MNTSF +? +? +isentropic_lvl +0 +? +1 +320. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +336 +UGRD_ON_POT_VORT_SFC +? +1 +tmpl4_0 +UGRD +? +? +pot_vort_sfc +8 +9 9 9 9 9 9 9 9 +8 +500. -500. 1000. -1000. 1500. -1500. 2000. -2000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +337 +VGRD_ON_POT_VORT_SFC +? +1 +tmpl4_0 +VGRD +? +? +pot_vort_sfc +8 +9 9 9 9 9 9 9 9 +8 +500. -500. 1000. -1000. 1500. -1500. 2000. -2000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +338 +TMP_ON_POT_VORT_SFC +? +1 +tmpl4_0 +TMP +? +? +pot_vort_sfc +8 +9 9 9 9 9 9 9 9 +8 +500. -500. 1000. -1000. 1500. -1500. 2000. -2000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +339 +HGT_ON_POT_VORT_SFC +? +1 +tmpl4_0 +HGT +? +? +pot_vort_sfc +8 +9 9 9 9 9 9 9 9 +8 +500. -500. 1000. -1000. 1500. -1500. 2000. -2000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +340 +PRES_ON_POT_VORT_SFC +? +1 +tmpl4_0 +PRES +? +? +pot_vort_sfc +8 +9 9 9 9 9 9 9 9 +8 +500. -500. 1000. -1000. 1500. -1500. 2000. -2000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +341 +VWSH_ON_POT_VORT_SFC +? +1 +tmpl4_0 +VWSH +NCEP +? +pot_vort_sfc +8 +9 9 9 9 9 9 9 9 +8 +500. -500. 1000. -1000. 1500. -1500. 2000. -2000. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +313 +AVE_CWORK_ON_ENTIRE_ATMOS_SINGLE_LYR +? +1 +tmpl4_8 +CWORK +NCEP +AVE +entire_atmos_single_lyr +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +315 +AVE_U-GWD_ON_SURFACE +? +1 +tmpl4_8 +U-GWD +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +5.0 +0 +0 +0 +? +? +? +316 +AVE_V-GWD_ON_SURFACE +? +1 +tmpl4_8 +V-GWD +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +5.0 +0 +0 +0 +? +? +? +343 +ACM_WATR_ON_SURFACE +? +1 +tmpl4_8 +WATR +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +345 +MAX_TMAX_ON_SPEC_HGT_LVL_ABOVE_GRND_2m +? +1 +tmpl4_8 +TMAX +? +MAX +spec_hgt_lvl_above_grnd +0 +? +1 +2. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +346 +MIN_TMIN_ON_SPEC_HGT_LVL_ABOVE_GRND_2m +? +1 +tmpl4_8 +TMIN +? +MIN +spec_hgt_lvl_above_grnd +0 +? +1 +2. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +396 +SUNSD_ON_SURFACE +? +1 +tmpl4_0 +SUNSD +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +5.0 +0 +0 +0 +? +? +? +455 +HINDEX_ON_SURFACE +Haines Index on surface +1 +tmpl4_0 +HINDEX +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +1.0 +0 +0 +0 +? +? +? +172 +CPOFP_ON_SURFACE +? +1 +tmpl4_0 +CPOFP +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +808 +APTMP_ON_SPEC_HGT_LVL_ABOVE_GRND_2m +? +1 +tmpl4_0 +APTMP +? +? +spec_hgt_lvl_above_grnd +0 +? +1 +2. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +136 +AVE_SNOHF_ON_SURFACE +? +1 +tmpl4_8 +SNOHF +? +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +500 +AVE_SNOWC_ON_SURFACE +? +1 +tmpl4_8 +SNOWC +? +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +549 +FDNSSTMP_ON_SURFACE +? +1 +tmpl4_0 +FDNSSTMP +? +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +1004 +ACM_SNOWFALL_ON_SURFACE +? +1 +tmpl4_8 +TSNOWP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +1005 +BUCKET_SNOWFALL_ON_SURFACE +? +1 +tmpl4_8 +TSNOWP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +162 +HLCY_ON_SPEC_HGT_LVL_ABOVE_GRND +? +1 +tmpl4_0 +HLCY +? +? +spec_hgt_lvl_above_grnd +0 +? +1 +3000. +spec_hgt_lvl_above_grnd +0 +? +1 +0. +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +122 +ACM_SSRUN_ON_SURFACE +? +1 +tmpl4_8 +SSRUN +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +401 +AVE_VBDSF_ON_SURFACE +averaged surface visible beam downward solar flux +1 +tmpl4_8 +VBDSF +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +403 +AVE_NBDSF_ON_SURFACE +averaged surface near IR beam downward solar flux +1 +tmpl4_8 +NBDSF +NCEP +AVE +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index dbda5521e..a0e47132a 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -1,7 +1,8 @@ +4 +5 3 -3 -250 -308 +235 +284 PRSLEV 32769 ncep_nco @@ -579,7 +580,7 @@ REFD_ON_HYBRID_LVL 1 tmpl4_0 REFD -NCEP +? ? hybrid_lvl 0 @@ -610,43 +611,6 @@ hybrid_lvl ? ? ? -146 -BMIXL_ON_HYBRID_LVL -? -1 -tmpl4_0 -BMIXL -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? 12 HGT_ON_ISOBARIC_SFC ? @@ -906,43 +870,6 @@ isobaric_sfc ? ? ? -20 -VVEL_ON_ISOBARIC_SFC -? -1 -tmpl4_0 -VVEL -? -? -isobaric_sfc -0 -? -46 -200. 500. 700. 1000. 2000. 3000. 5000. 7000. 7500. 10000. 12500. 15000. 17500. 20000. 22500. 25000. 27500. 30000. 32500. 35000. 37500. 40000. 42500. 45000. 47500. 50000. 52500. 55000. 57500. 60000. 62500. 65000. 67500. 70000. 72500. 75000. 77500. 80000. 82500. 85000. 87500. 90000. 92500. 95000. 97500. 100000. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? 284 DZDT_ON_ISOBARIC_SFC ? @@ -1720,56 +1647,19 @@ spec_pres_above_grnd ? ? ? -158 -POT_ON_SPEC_HGT_LVL_ABOVE_GRND_10m +24 +PRES_ON_SURFACE ? 1 tmpl4_0 -POT -? -? -spec_hgt_lvl_above_grnd -0 -? -1 -10. -? -0 -? -0 -? -? +PRES ? -0 -0.0 -0 -0.0 ? +surface 0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? -159 -SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_10m -? -1 -tmpl4_0 -SPFH ? -? -spec_hgt_lvl_above_grnd 0 ? -1 -10. ? 0 ? @@ -1787,19 +1677,19 @@ spec_hgt_lvl_above_grnd 0 0.0 1 -3.0 +6.0 0 0 0 ? ? ? -24 -PRES_ON_SURFACE +25 +HGT_ON_SURFACE ? 1 tmpl4_0 -PRES +HGT ? ? surface @@ -1831,12 +1721,12 @@ surface ? ? ? -25 -HGT_ON_SURFACE +27 +POT_ON_SURFACE ? 1 tmpl4_0 -HGT +POT ? ? surface @@ -1861,19 +1751,19 @@ surface 0 0.0 1 -6.0 +5.0 0 0 0 ? ? ? -27 -POT_ON_SURFACE +28 +SPFH_ON_SURFACE ? 1 tmpl4_0 -POT +SPFH ? ? surface @@ -1898,19 +1788,19 @@ surface 0 0.0 1 -5.0 +3.0 0 0 0 ? ? ? -28 -SPFH_ON_SURFACE +26 +TMP_ON_SURFACE ? 1 tmpl4_0 -SPFH +TMP ? ? surface @@ -1935,22 +1825,22 @@ surface 0 0.0 1 -3.0 +4.0 0 0 0 ? ? ? -26 -TMP_ON_SURFACE +713 +CISOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -TMP +CISOILM ? ? -surface +depth_bel_land_sfc 0 ? 0 @@ -1972,7 +1862,7 @@ surface 0 0.0 1 -4.0 +3.0 0 0 0 @@ -2096,7 +1986,7 @@ CNWAT_ON_SURFACE 1 tmpl4_0 CNWAT -NCEP +? ? surface 0 @@ -2164,50 +2054,13 @@ surface ? ? ? -120 -SNOWC_ON_SURFACE -? -1 -tmpl4_0 -SNOWC -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? 169 SFEXC_ON_SURFACE ? 1 tmpl4_0 SFEXC -NCEP +? ? surface 0 @@ -2349,12 +2202,12 @@ surface ? ? ? -226 -SNFALB_ON_SURFACE +227 +MXSALB_ON_SURFACE ? 1 tmpl4_0 -SNFALB +MXSALB NCEP ? surface @@ -2386,12 +2239,12 @@ surface ? ? ? -227 -MXSALB_ON_SURFACE +220 +CCOND_ON_SURFACE ? 1 tmpl4_0 -MXSALB +CCOND NCEP ? surface @@ -2423,12 +2276,12 @@ surface ? ? ? -220 -CCOND_ON_SURFACE +237 +SMREF_ON_SURFACE ? 1 tmpl4_0 -CCOND +SMREF NCEP ? surface @@ -2460,12 +2313,12 @@ surface ? ? ? -238 -RCS_ON_SURFACE +233 +POROS_ON_SURFACE ? 1 tmpl4_0 -RCS +POROS NCEP ? surface @@ -2497,12 +2350,12 @@ surface ? ? ? -239 -RCT_ON_SURFACE +235 +RLYRS_ON_SURFACE ? 1 tmpl4_0 -RCT +RLYRS NCEP ? surface @@ -2527,19 +2380,19 @@ surface 0 0.0 1 -5.0 +3.0 0 0 0 ? ? ? -240 -RCQ_ON_SURFACE +234 +RSMIN_ON_SURFACE ? 1 tmpl4_0 -RCQ +RSMIN NCEP ? surface @@ -2571,13 +2424,13 @@ surface ? ? ? -241 -RCSOL_ON_SURFACE +224 +SNOD_ON_SURFACE ? 1 tmpl4_0 -RCSOL -NCEP +SNOD +? ? surface 0 @@ -2601,21 +2454,21 @@ surface 0 0.0 1 -3.0 +6.0 0 0 0 ? ? ? -237 -SMREF_ON_SURFACE +725 +GSD_ACM_SNOD_ON_SURFACE ? 1 -tmpl4_0 -SMREF -NCEP +tmpl4_8 +ASNOW ? +ACM surface 0 ? @@ -2638,19 +2491,19 @@ surface 0 0.0 1 -3.0 +9.0 0 0 0 ? ? ? -233 -POROS_ON_SURFACE +232 +SMDRY_ON_SURFACE ? 1 tmpl4_0 -POROS +SMDRY NCEP ? surface @@ -2682,12 +2535,12 @@ surface ? ? ? -235 -RLYRS_ON_SURFACE +236 +WILT_ON_SURFACE ? 1 tmpl4_0 -RLYRS +WILT NCEP ? surface @@ -2719,198 +2572,13 @@ surface ? ? ? -234 -RSMIN_ON_SURFACE -? -1 -tmpl4_0 -RSMIN -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -224 -SNOD_ON_SURFACE -? -1 -tmpl4_0 -SNOD -? -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -6.0 -0 -0 -0 -? -? -? -725 -GSD_ACM_SNOD_ON_SURFACE -? -1 -tmpl4_8 -ASNOW -? -ACM -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -232 -SMDRY_ON_SURFACE -? -1 -tmpl4_0 -SMDRY -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -236 -WILT_ON_SURFACE -? -1 -tmpl4_0 -WILT -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -171 -RUC_MSTAV_ON_DEPTH_BEL_LAND_SFC +171 +RUC_MSTAV_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 MSTAV -NCEP +? ? depth_bel_land_sfc 0 @@ -2984,7 +2652,7 @@ LFTX_ON_ISOBARIC_SFC_500-1000hpa 1 tmpl4_0 LFTX -NCEP +? ? isobaric_sfc 0 @@ -3021,7 +2689,7 @@ isobaric_sfc 1 tmpl4_0 4LFTX -NCEP +? ? spec_pres_above_grnd 0 @@ -3576,7 +3244,7 @@ USTM_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 USTM -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -3613,7 +3281,7 @@ VSTM_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 VSTM -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -3903,12 +3571,12 @@ surface ? ? ? -34 -ACM_NCPCP_ON_SURFACE +417 +CACM_APCP_ON_SURFACE ? 1 tmpl4_8 -NCPCP +APCP ? ACM surface @@ -3940,12 +3608,12 @@ surface ? ? ? -417 -CACM_APCP_ON_SURFACE +121 +ACM_SNOM_ON_SURFACE ? 1 tmpl4_8 -APCP +SNOM ? ACM surface @@ -3970,19 +3638,19 @@ surface 0 0.0 1 --4.0 +4.0 0 0 0 ? ? ? -419 -CACM_NCPCP_ON_SURFACE +122 +ACM_SSRUN_ON_SURFACE ? 1 tmpl4_8 -NCPCP +SSRUN ? ACM surface @@ -4007,21 +3675,21 @@ surface 0 0.0 1 --4.0 +6.0 0 0 0 ? ? ? -121 -ACM_SNOM_ON_SURFACE -? +407 +GSD_INST_CRAIN_ON_SURFACE +GSD_instant precipitation type on surface 1 -tmpl4_8 -SNOM +tmpl4_0 +CRAIN +? ? -ACM surface 0 ? @@ -4044,21 +3712,21 @@ surface 0 0.0 1 -4.0 +1.0 0 0 0 ? ? ? -122 -ACM_SSRUN_ON_SURFACE -? +559 +GSD_CSNOW_ON_SURFACE +GSD_Categorical snow on surface 1 -tmpl4_8 -SSRUN -NCEP -ACM +tmpl4_0 +CSNOW +? +? surface 0 ? @@ -4081,21 +3749,21 @@ surface 0 0.0 1 -6.0 +1.0 0 0 0 ? ? ? -123 -ACM_BGRUN_ON_SURFACE -? +560 +GSD_CICEP_ON_SURFACE +GSD_Categorical ice pellets on surface 1 -tmpl4_8 -BGRUN -NCEP -ACM +tmpl4_0 +CICEP +? +? surface 0 ? @@ -4118,155 +3786,7 @@ surface 0 0.0 1 -6.0 -0 -0 -0 -? -? -? -343 -ACM_WATR_ON_SURFACE -? -1 -tmpl4_8 -WATR -? -ACM -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -6.0 -0 -0 -0 -? -? -? -407 -GSD_INST_CRAIN_ON_SURFACE -GSD_instant precipitation type on surface -1 -tmpl4_0 -CRAIN -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 -0 -0 -0 -? -? -? -559 -GSD_CSNOW_ON_SURFACE -GSD_Categorical snow on surface -1 -tmpl4_0 -CSNOW -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 -0 -0 -0 -? -? -? -560 -GSD_CICEP_ON_SURFACE -GSD_Categorical ice pellets on surface -1 -tmpl4_0 -CICEP -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 +1.0 0 0 0 @@ -4279,7 +3799,7 @@ GSD_Categorical freezing rain on surface 1 tmpl4_0 CFRZR -NCEP +? ? surface 0 @@ -4353,7 +3873,7 @@ CPOFP_ON_SURFACE 1 tmpl4_0 CPOFP -NCEP +? ? surface 0 @@ -4754,43 +4274,6 @@ entire_atmos_single_lyr ? ? ? -139 -AVE_CDLYR_ON_ENTIRE_ATMOS -? -1 -tmpl4_8 -CDLYR -NCEP -AVE -entire_atmos_single_lyr -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? 410 GSD_VIS_ON_SURFACE GSD_visibility on surface @@ -4908,7 +4391,7 @@ INST_USWRF_ON_SURFACE 1 tmpl4_0 USWRF -NCEP +? ? surface 0 @@ -4945,7 +4428,7 @@ INST_ULWRF_ON_SURFACE 1 tmpl4_0 ULWRF -NCEP +? ? surface 0 @@ -4982,7 +4465,7 @@ AVE_DSWRF_ON_SURFACE 1 tmpl4_8 DSWRF -NCEP +? AVE surface 0 @@ -5019,7 +4502,7 @@ AVE_DLWRF_ON_SURFACE 1 tmpl4_8 DLWRF -NCEP +? AVE surface 0 @@ -5056,7 +4539,7 @@ AVE_USWRF_ON_SURFACE 1 tmpl4_8 USWRF -NCEP +? AVE surface 0 @@ -5093,7 +4576,7 @@ AVE_ULWRF_ON_SURFACE 1 tmpl4_8 ULWRF -NCEP +? AVE surface 0 @@ -5130,7 +4613,7 @@ AVE_USWRF_ON_TOP_OF_ATMOS 1 tmpl4_8 USWRF -NCEP +? AVE top_of_atmos 0 @@ -5167,7 +4650,7 @@ AVE_ULWRF_ON_TOP_OF_ATMOS 1 tmpl4_8 ULWRF -NCEP +? AVE top_of_atmos 0 @@ -5204,7 +4687,7 @@ INST_ULWRF_ON_TOP_OF_ATMOS 1 tmpl4_0 ULWRF -NCEP +? ? top_of_atmos 0 @@ -5278,7 +4761,7 @@ INST_DSWRF_ON_SURFACE 1 tmpl4_0 DSWRF -NCEP +? ? surface 0 @@ -5315,7 +4798,7 @@ INST_DLWRF_ON_SURFACE 1 tmpl4_0 DLWRF -NCEP +? ? surface 0 @@ -5346,12 +4829,12 @@ surface ? ? ? -262 -INST_CSDSF_ON_SURFACE +772 +INST_SWDDNI_ON_SURFACE ? 1 tmpl4_0 -CSDSF +VBDSF NCEP ? surface @@ -5383,13 +4866,13 @@ surface ? ? ? -44 -SFCR_ON_SURFACE +773 +INST_SWDDIF_ON_SURFACE ? 1 tmpl4_0 -SFCR -? +VDDSF +NCEP ? surface 0 @@ -5413,19 +4896,19 @@ surface 0 0.0 1 -2.7 +4.0 0 0 0 ? ? ? -45 -FRICV_ON_SURFACE +262 +INST_CSDSF_ON_SURFACE ? 1 tmpl4_0 -FRICV +CSDSF NCEP ? surface @@ -5457,13 +4940,13 @@ surface ? ? ? -132 -CD_ON_SURFACE +44 +SFCR_ON_SURFACE ? 1 tmpl4_0 -CD -NCEP +SFCR +? ? surface 0 @@ -5487,19 +4970,19 @@ surface 0 0.0 1 -3.0 +2.7 0 0 0 ? ? ? -133 -UFLX_ON_SURFACE +45 +FRICV_ON_SURFACE ? 1 tmpl4_0 -UFLX +FRICV ? ? surface @@ -5524,19 +5007,19 @@ surface 0 0.0 1 -3.0 +4.0 0 0 0 ? ? ? -134 -VFLX_ON_SURFACE +132 +CD_ON_SURFACE ? 1 tmpl4_0 -VFLX +CD ? ? surface @@ -5648,7 +5131,7 @@ AVE_SNOHF_ON_SURFACE 1 tmpl4_8 SNOHF -NCEP +? AVE surface 0 @@ -5716,12 +5199,12 @@ surface ? ? ? -47 -ACM_EVP_ON_SURFACE +137 +ACM_PEVAP_ON_SURFACE ? 1 tmpl4_8 -EVP +PEVAP ? ACM surface @@ -5753,51 +5236,14 @@ surface ? ? ? -137 -ACM_PEVAP_ON_SURFACE +154 +INST_SHTFL_ON_SURFACE ? 1 -tmpl4_8 -PEVAP -NCEP -ACM -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -154 -INST_SHTFL_ON_SURFACE -? -1 -tmpl4_0 -SHTFL -? -? +tmpl4_0 +SHTFL +? +? surface 0 ? @@ -6314,7 +5760,7 @@ VWSH_ON_TROPOPAUSE 1 tmpl4_0 VWSH -NCEP +? ? tropopause 0 @@ -6567,19 +6013,19 @@ spec_hgt_lvl_above_grnd ? ? ? -60 -UGRD_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL +578 +SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT ? 1 tmpl4_0 -UGRD +SPFH ? ? -spec_alt_above_mean_sea_lvl +spec_hgt_lvl_above_grnd 0 ? -10 -305. 457. 610. 914. 1524. 1829. 2134. 2743. 3658. 4572. +1 +80. ? 0 ? @@ -6597,26 +6043,26 @@ spec_alt_above_mean_sea_lvl 0 0.0 1 -4.0 +5.0 0 0 0 ? ? ? -576 -UGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT +579 +PRES_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT ? 1 tmpl4_0 -UGRD +PRES ? ? spec_hgt_lvl_above_grnd 0 ? -6 -30. 50. 80. 100. 160. 320. +1 +80. ? 0 ? @@ -6634,19 +6080,19 @@ spec_hgt_lvl_above_grnd 0 0.0 1 -4.0 +3.0 0 0 0 ? ? ? -61 -VGRD_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL +60 +UGRD_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL ? 1 tmpl4_0 -VGRD +UGRD ? ? spec_alt_above_mean_sea_lvl @@ -6678,12 +6124,12 @@ spec_alt_above_mean_sea_lvl ? ? ? -577 -VGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT +576 +UGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT ? 1 tmpl4_0 -VGRD +UGRD ? ? spec_hgt_lvl_above_grnd @@ -6715,19 +6161,19 @@ spec_hgt_lvl_above_grnd ? ? ? -451 -SPFH_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL +61 +VGRD_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL ? 1 tmpl4_0 -SPFH +VGRD ? ? spec_alt_above_mean_sea_lvl 0 ? -1 -305. +10 +305. 457. 610. 914. 1524. 1829. 2134. 2743. 3658. 4572. ? 0 ? @@ -6745,19 +6191,19 @@ spec_alt_above_mean_sea_lvl 0 0.0 1 -5.0 +4.0 0 0 0 ? ? ? -578 -SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT +577 +VGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT ? 1 tmpl4_0 -SPFH +VGRD ? ? spec_hgt_lvl_above_grnd @@ -6782,26 +6228,26 @@ spec_hgt_lvl_above_grnd 0 0.0 1 -5.0 +4.0 0 0 0 ? ? ? -579 -PRES_ON_SPEC_HGT_LVL_ABOVE_GRND_FDHGT +451 +SPFH_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL ? 1 tmpl4_0 -PRES +SPFH ? ? -spec_hgt_lvl_above_grnd +spec_alt_above_mean_sea_lvl 0 ? -6 -30. 50. 80. 100. 160. 320. +1 +305. ? 0 ? @@ -6819,7 +6265,7 @@ spec_hgt_lvl_above_grnd 0 0.0 1 -3.0 +5.0 0 0 0 @@ -7418,43 +6864,6 @@ spec_pres_above_grnd ? ? ? -90 -VVEL_ON_SPEC_PRES_ABOVE_GRND -? -1 -tmpl4_0 -VVEL -? -? -spec_pres_above_grnd -0 -? -3 -3000. 9000. 18000. -spec_pres_above_grnd -0 -? -3 -0. 6000. 15000. -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? 148 PRES_ON_CLOUD_BASE ? @@ -7831,81 +7240,7 @@ REFC_ON_ENTIRE_ATMOS 1 tmpl4_0 REFC -NCEP -? -entire_atmos_single_lyr -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -276 -REFZR_ON_ENTIRE_ATMOS -? -1 -tmpl4_0 -REFZR -NCEP -? -entire_atmos_single_lyr -0 ? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 --4.0 -0 -0 -0 -? -? -? -277 -REFZI_ON_ENTIRE_ATMOS -? -1 -tmpl4_0 -REFZI -NCEP ? entire_atmos_single_lyr 0 @@ -7929,7 +7264,7 @@ entire_atmos_single_lyr 0 0.0 1 --4.0 +4.0 0 0 0 @@ -7942,82 +7277,8 @@ REFD_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 REFD -NCEP -? -spec_hgt_lvl_above_grnd -0 -? -2 -4000. 1000. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -279 -REFZR_ON_SPEC_HGT_LVL_ABOVE_GRND -? -1 -tmpl4_0 -REFZR -NCEP -? -spec_hgt_lvl_above_grnd -0 -? -2 -4000. 1000. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 --4.0 -0 -0 -0 -? ? ? -280 -REFZI_ON_SPEC_HGT_LVL_ABOVE_GRND -? -1 -tmpl4_0 -REFZI -NCEP -? spec_hgt_lvl_above_grnd 0 ? @@ -8040,7 +7301,7 @@ spec_hgt_lvl_above_grnd 0 0.0 1 --4.0 +4.0 0 0 0 @@ -8053,7 +7314,7 @@ HPBL_ON_SURFACE 1 tmpl4_0 HPBL -NCEP +? ? surface 0 @@ -8201,7 +7462,7 @@ TCOLI_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLI -NCEP +? ? entire_atmos_single_lyr 0 @@ -8756,7 +8017,7 @@ TCOLR_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLR -NCEP +? ? entire_atmos_single_lyr 0 @@ -8793,7 +8054,7 @@ TCOLS_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLS -NCEP +? ? entire_atmos_single_lyr 0 @@ -8899,199 +8160,14 @@ entire_atmos_single_lyr ? ? 285 -TCLSW_ON_ENTIRE_ATMOS -? -1 -tmpl4_0 -TCLSW -NCEP -? -entire_atmos_single_lyr -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? -286 -TCOLM_ON_ENTIRE_ATMOS -? -1 -tmpl4_0 -TCOLM -NCEP -? -entire_atmos_single_lyr -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? -287 -HGT_ON_LWST_BOT_LVL_OF_SUPERCOOLED_LIQ_WATER_LYR -? -1 -tmpl4_0 -HGT -? -? -lwst_bot_lvl_of_supercooled_liq_water_lyr -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -6.0 -0 -0 -0 -? -? -? -288 -HGT_ON_HGHST_TOP_LVL_OF_SUPERCOOLED_LIQ_WATER_LYR -? -1 -tmpl4_0 -HGT -? -? -hghst_top_lvl_of_supercooled_liq_water_lyr -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? -408 -GSD_HGT_ON_CLOUD_CEILING -GSD_geopotential height on cloud ceiling -1 -tmpl4_0 -HGT -? -? -cloud_ceilng -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 --3.0 -0 -0 -0 -? -? -? -487 -GSD_EXP_CEILING +TCLSW_ON_ENTIRE_ATMOS ? 1 tmpl4_0 -CEIL -? +TCLSW +NCEP ? -cloud_ceilng +entire_atmos_single_lyr 0 ? 0 @@ -9113,22 +8189,22 @@ cloud_ceilng 0 0.0 1 --3.0 +5.0 0 0 0 ? ? ? -711 -GSD_EXP_CEILING_2 +286 +TCOLM_ON_ENTIRE_ATMOS ? 1 tmpl4_0 -CEIL -? +TCOLM +NCEP ? -cloud_base +entire_atmos_single_lyr 0 ? 0 @@ -9150,22 +8226,22 @@ cloud_base 0 0.0 1 --3.0 +5.0 0 0 0 ? ? ? -256 -ACM_LSPA_ON_SURFACE +287 +HGT_ON_LWST_BOT_LVL_OF_SUPERCOOLED_LIQ_WATER_LYR ? 1 -tmpl4_8 -LSPA -NCEP -ACM -surface +tmpl4_0 +HGT +? +? +lwst_bot_lvl_of_supercooled_liq_water_lyr 0 ? 0 @@ -9187,22 +8263,22 @@ surface 0 0.0 1 -3.0 +6.0 0 0 0 ? ? ? -282 -PRES_ON_TOP_OF_ATMOS +288 +HGT_ON_HGHST_TOP_LVL_OF_SUPERCOOLED_LIQ_WATER_LYR ? 1 tmpl4_0 -PRES +HGT ? ? -top_of_atmos +hghst_top_lvl_of_supercooled_liq_water_lyr 0 ? 0 @@ -9224,22 +8300,22 @@ top_of_atmos 0 0.0 1 -3.0 +5.0 0 0 0 ? ? ? -290 -SWHR_ON_ENTIRE_ATMOS -? +408 +GSD_HGT_ON_CLOUD_CEILING +GSD_geopotential height on cloud ceiling 1 tmpl4_0 -SWHR -NCEP +HGT ? -entire_atmos_single_lyr +? +cloud_ceilng 0 ? 0 @@ -9261,22 +8337,22 @@ entire_atmos_single_lyr 0 0.0 1 -5.0 +-3.0 0 0 0 ? ? ? -291 -LWHR_ON_ENTIRE_ATMOS +487 +GSD_EXP_CEILING ? 1 tmpl4_0 -LWHR -NCEP +CEIL ? -entire_atmos_single_lyr +? +cloud_ceilng 0 ? 0 @@ -9298,26 +8374,26 @@ entire_atmos_single_lyr 0 0.0 1 -5.0 +-3.0 0 0 0 ? ? ? -296 -TMP_ON_SIGMA_LVL_HPC +711 +GSD_EXP_CEILING_2 ? 1 tmpl4_0 -TMP +CEIL ? ? -sigma_lvl -1 -4 -5 -9000. 8500. 8000. 7500. 7000. +cloud_base +0 +? +0 +? ? 0 ? @@ -9335,22 +8411,22 @@ sigma_lvl 0 0.0 1 --4.0 +-3.0 0 0 0 ? ? ? -344 -PBLREG_ON_SURFACE +282 +PRES_ON_TOP_OF_ATMOS ? 1 tmpl4_0 -PBLREG +PRES ? ? -surface +top_of_atmos 0 ? 0 @@ -9372,7 +8448,7 @@ surface 0 0.0 1 -2.0 +3.0 0 0 0 @@ -9533,7 +8609,7 @@ RETOP_ON_ENTIRE_ATMOS_SINGLE_LYR 1 tmpl4_0 RETOP -NCEP +? ? entire_atmos_single_lyr 0 @@ -10125,7 +9201,7 @@ Updraft Helicity on Specified Height Level Above Ground 1 tmpl4_0 UPHL -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -10495,7 +9571,7 @@ REFD_ON_ISOTHERMAL 1 tmpl4_0 REFD -NCEP +? ? isothermal 0 @@ -10531,8 +9607,8 @@ isothermal ? 1 tmpl4_8 -FFLDRO -? +QPFFFG +NCEP ACM surface 0 @@ -10568,8 +9644,8 @@ ACM_FFG_EXCEEDANCE ? 1 tmpl4_8 -FFLDRO -? +QPFFFG +NCEP ACM surface 0 @@ -10605,8 +9681,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10642,8 +9718,8 @@ ACM_2YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10679,8 +9755,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10716,8 +9792,8 @@ ACM_5YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10753,8 +9829,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10790,8 +9866,8 @@ ACM_10YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10827,8 +9903,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10864,8 +9940,8 @@ ACM_100YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -11197,7 +10273,7 @@ HWP_ON_SURFACE Hourly Wildfire Potential on surface 1 tmpl4_0 -FWINX +WFIREPOT ? ? surface @@ -11414,6 +10490,43 @@ hghst_trop_frz_lvl ? ? ? +704 +GSD_MAX_LTG_THREAT3_ON_ENTIRE_ATMOS +? +1 +tmpl4_8 +LTNG +NCEP +MAX +entire_atmos +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? NATLEV 32769 ncep_nco @@ -11615,43 +10728,6 @@ isobaric_sfc ? ? ? -20 -VVEL_ON_ISOBARIC_SFC -? -1 -tmpl4_0 -VVEL -? -? -isobaric_sfc -0 -? -4 -25000. 50000. 70000. 85000. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? 16 SPFH_ON_ISOBARIC_SFC ? @@ -11948,43 +11024,6 @@ hybrid_lvl ? ? ? -9 -VVEL_ON_HYBRID_LVL -? -1 -tmpl4_0 -VVEL -? -? -hybrid_lvl -0 -? -65 -1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? 264 DZDT_ON_HYBRID_LVL ? @@ -12318,19 +11357,56 @@ spec_hgt_lvl_above_grnd ? ? ? -65 -VGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_10m +65 +VGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_10m +? +1 +tmpl4_0 +VGRD +? +? +spec_hgt_lvl_above_grnd +0 +? +1 +10. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +24 +PRES_ON_SURFACE ? 1 tmpl4_0 -VGRD +PRES ? ? -spec_hgt_lvl_above_grnd +surface +0 +? 0 ? -1 -10. ? 0 ? @@ -12348,26 +11424,26 @@ spec_hgt_lvl_above_grnd 0 0.0 1 -4.0 +6.0 0 0 0 ? ? ? -158 -POT_ON_SPEC_HGT_LVL_ABOVE_GRND_10m +25 +HGT_ON_SURFACE ? 1 tmpl4_0 -POT +HGT ? ? -spec_hgt_lvl_above_grnd +surface +0 +? 0 ? -1 -10. ? 0 ? @@ -12385,26 +11461,26 @@ spec_hgt_lvl_above_grnd 0 0.0 1 -5.0 +6.0 0 0 0 ? ? ? -159 -SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_10m +27 +POT_ON_SURFACE ? 1 tmpl4_0 -SPFH +POT ? ? -spec_hgt_lvl_above_grnd +surface +0 +? 0 ? -1 -10. ? 0 ? @@ -12422,19 +11498,19 @@ spec_hgt_lvl_above_grnd 0 0.0 1 -3.0 +5.0 0 0 0 ? ? ? -24 -PRES_ON_SURFACE +28 +SPFH_ON_SURFACE ? 1 tmpl4_0 -PRES +SPFH ? ? surface @@ -12459,19 +11535,19 @@ surface 0 0.0 1 -6.0 +3.0 0 0 0 ? ? ? -25 -HGT_ON_SURFACE +26 +TMP_ON_SURFACE ? 1 tmpl4_0 -HGT +TMP ? ? surface @@ -12496,22 +11572,22 @@ surface 0 0.0 1 -6.0 +4.0 0 0 0 ? ? ? -27 -POT_ON_SURFACE -? +581 +VIL_ON_ENTIRE_ATMOS +entire atmosphere Vertically Integrated Liquid (kg/m-2) 1 tmpl4_0 -POT +VIL ? ? -surface +entire_atmos_single_lyr 0 ? 0 @@ -12533,22 +11609,22 @@ surface 0 0.0 1 -5.0 +7.0 0 0 0 ? ? ? -28 -SPFH_ON_SURFACE +769 +GSD_VIL_ON_ENTIRE_ATMOS ? 1 tmpl4_0 -SPFH +VIL ? ? -surface +entire_atmos 0 ? 0 @@ -12570,22 +11646,22 @@ surface 0 0.0 1 -3.0 +7.0 0 0 0 ? ? ? -26 -TMP_ON_SURFACE +400 +RETOP_ON_ENTIRE_ATMOS_SINGLE_LYR ? 1 tmpl4_0 -TMP +RETOP ? ? -surface +entire_atmos_single_lyr 0 ? 0 @@ -12607,7 +11683,7 @@ surface 0 0.0 1 -4.0 +6.0 0 0 0 @@ -13138,7 +12214,7 @@ REFD_ON_ISOTHERMAL 1 tmpl4_0 REFD -NCEP +? ? isothermal 0 @@ -13317,6 +12393,43 @@ spec_hgt_lvl_above_grnd ? ? ? +713 +CISOILM_ON_DEPTH_BEL_LAND_SFC +? +1 +tmpl4_0 +CISOILM +? +? +depth_bel_land_sfc +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? 116 TSOIL_ON_DEPTH_BEL_LAND_SFC ? @@ -13434,7 +12547,7 @@ SFEXC_ON_SURFACE 1 tmpl4_0 SFEXC -NCEP +? ? surface 0 @@ -13508,7 +12621,7 @@ RUC_MSTAV_ON_DEPTH_BEL_LAND_SFC 1 tmpl4_0 MSTAV -NCEP +? ? depth_bel_land_sfc 0 @@ -13582,7 +12695,7 @@ CNWAT_ON_SURFACE 1 tmpl4_0 CNWAT -NCEP +? ? surface 0 @@ -13656,7 +12769,7 @@ surface 1 tmpl4_0 4LFTX -NCEP +? ? spec_pres_above_grnd 0 @@ -13761,43 +12874,6 @@ surface ? ? ? -34 -ACM_NCPCP_ON_SURFACE -? -1 -tmpl4_8 -NCPCP -? -ACM -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 --4.0 -0 -0 -0 -? -? -? 417 CACM_APCP_ON_SURFACE ? @@ -13835,43 +12911,6 @@ surface ? ? ? -419 -CACM_NCPCP_ON_SURFACE -? -1 -tmpl4_8 -NCPCP -? -ACM -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 --4.0 -0 -0 -0 -? -? -? 1004 ACM_SNOWFALL_ON_SURFACE ? @@ -13952,7 +12991,7 @@ ACM_SSRUN_ON_SURFACE 1 tmpl4_8 SSRUN -NCEP +? ACM surface 0 @@ -13976,20 +13015,20 @@ surface 0 0.0 1 -4.0 +6.0 0 0 0 ? ? ? -123 -ACM_BGRUN_ON_SURFACE +121 +ACM_SNOM_ON_SURFACE ? 1 tmpl4_8 -BGRUN -NCEP +SNOM +? ACM surface 0 @@ -14026,7 +13065,7 @@ GSD_instant precipitation type on surface 1 tmpl4_0 CRAIN -NCEP +? ? surface 0 @@ -14063,7 +13102,7 @@ GSD_Categorical snow on surface 1 tmpl4_0 CSNOW -NCEP +? ? surface 0 @@ -14100,7 +13139,7 @@ GSD_Categorical ice pellets on surface 1 tmpl4_0 CICEP -NCEP +? ? surface 0 @@ -14137,7 +13176,7 @@ GSD_Categorical freezing rain on surface 1 tmpl4_0 CFRZR -NCEP +? ? surface 0 @@ -14211,7 +13250,7 @@ CPOFP_ON_SURFACE 1 tmpl4_0 CPOFP -NCEP +? ? surface 0 @@ -14395,44 +13434,7 @@ GRLE_ON_HYBRID_LVL Graupel mixing ration on hybrid level 1 tmpl4_0 -GRLE -? -? -hybrid_lvl -0 -? -65 -1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -145 -TCDC_ON_HYBRID_LVL -? -1 -tmpl4_0 -TCDC +GRLE ? ? hybrid_lvl @@ -14464,12 +13466,12 @@ hybrid_lvl ? ? ? -181 -RWMR_ON_HYBRID_LVL +145 +TCDC_ON_HYBRID_LVL ? 1 tmpl4_0 -RWMR +TCDC ? ? hybrid_lvl @@ -14501,12 +13503,12 @@ hybrid_lvl ? ? ? -182 -SNMR_ON_HYBRID_LVL +181 +RWMR_ON_HYBRID_LVL ? 1 tmpl4_0 -SNMR +RWMR ? ? hybrid_lvl @@ -14538,13 +13540,13 @@ hybrid_lvl ? ? ? -766 -GSD_NCWFA_ON_HYBRID_LVL +182 +SNMR_ON_HYBRID_LVL ? 1 tmpl4_0 -PMTF -NCEP +SNMR +? ? hybrid_lvl 0 @@ -14612,13 +13614,13 @@ hybrid_lvl ? ? ? -767 -GSD_NCIFA_ON_HYBRID_LVL +737 +SMOKE_ON_HYBRID_LVL ? 1 -tmpl4_0 -PMTC -NCEP +tmpl4_48 +MASSDEN +? ? hybrid_lvl 0 @@ -14630,10 +13632,10 @@ hybrid_lvl ? 0 ? -? -? -0 -0.0 +particulate_org_matter_dry +smaller_than_first_limit +7 +25 0 0.0 ? @@ -14642,15 +13644,15 @@ hybrid_lvl 0 0.0 1 -3.0 +6.0 0 0 0 ? ? ? -737 -SMOKE_ON_HYBRID_LVL +742 +DUST_ON_HYBRID_LVL ? 1 tmpl4_48 @@ -14667,7 +13669,7 @@ hybrid_lvl ? 0 ? -particulate_org_matter_dry +dust_dry smaller_than_first_limit 7 25 @@ -14686,8 +13688,8 @@ smaller_than_first_limit ? ? ? -742 -DUST_ON_HYBRID_LVL +1012 +COARSEPM_ON_HYBRID_LVL ? 1 tmpl4_48 @@ -14705,11 +13707,11 @@ hybrid_lvl 0 ? dust_dry -smaller_than_first_limit +between_first_second_limit_noincl2ndlmt 7 25 -0 -0.0 +7 +100 ? 0 0.0 @@ -14945,50 +13947,13 @@ entire_atmos_single_lyr ? ? ? -139 -AVE_CDLYR_ON_ENTIRE_ATMOS -? -1 -tmpl4_8 -CDLYR -NCEP -AVE -entire_atmos_single_lyr -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? 141 INST_USWRF_ON_SURFACE ? 1 tmpl4_0 USWRF -NCEP +? ? surface 0 @@ -15025,7 +13990,7 @@ INST_ULWRF_ON_SURFACE 1 tmpl4_0 ULWRF -NCEP +? ? surface 0 @@ -15062,7 +14027,7 @@ AVE_DSWRF_ON_SURFACE 1 tmpl4_8 DSWRF -NCEP +? AVE surface 0 @@ -15099,7 +14064,7 @@ AVE_DLWRF_ON_SURFACE 1 tmpl4_8 DLWRF -NCEP +? AVE surface 0 @@ -15136,7 +14101,7 @@ AVE_USWRF_ON_SURFACE 1 tmpl4_8 USWRF -NCEP +? AVE surface 0 @@ -15173,7 +14138,7 @@ AVE_ULWRF_ON_SURFACE 1 tmpl4_8 ULWRF -NCEP +? AVE surface 0 @@ -15210,7 +14175,7 @@ AVE_USWRF_ON_TOP_OF_ATMOS 1 tmpl4_8 USWRF -NCEP +? AVE top_of_atmos 0 @@ -15247,7 +14212,7 @@ AVE_ULWRF_ON_TOP_OF_ATMOS 1 tmpl4_8 ULWRF -NCEP +? AVE top_of_atmos 0 @@ -15284,7 +14249,7 @@ INST_DSWRF_ON_SURFACE 1 tmpl4_0 DSWRF -NCEP +? ? surface 0 @@ -15321,7 +14286,7 @@ INST_DLWRF_ON_SURFACE 1 tmpl4_0 DLWRF -NCEP +? ? surface 0 @@ -15352,12 +14317,12 @@ surface ? ? ? -262 -INST_CSDSF_ON_SURFACE +772 +INST_SWDDNI_ON_SURFACE ? 1 tmpl4_0 -CSDSF +VBDSF NCEP ? surface @@ -15389,13 +14354,13 @@ surface ? ? ? -44 -SFCR_ON_SURFACE +773 +INST_SWDDIF_ON_SURFACE ? 1 tmpl4_0 -SFCR -? +VDDSF +NCEP ? surface 0 @@ -15419,19 +14384,19 @@ surface 0 0.0 1 -2.7 +4.0 0 0 0 ? ? ? -45 -FRICV_ON_SURFACE +262 +INST_CSDSF_ON_SURFACE ? 1 tmpl4_0 -FRICV +CSDSF NCEP ? surface @@ -15463,13 +14428,13 @@ surface ? ? ? -132 -CD_ON_SURFACE +44 +SFCR_ON_SURFACE ? 1 tmpl4_0 -CD -NCEP +SFCR +? ? surface 0 @@ -15493,19 +14458,19 @@ surface 0 0.0 1 -3.0 +2.7 0 0 0 ? ? ? -133 -UFLX_ON_SURFACE +45 +FRICV_ON_SURFACE ? 1 tmpl4_0 -UFLX +FRICV ? ? surface @@ -15530,19 +14495,19 @@ surface 0 0.0 1 -3.0 +4.0 0 0 0 ? ? ? -134 -VFLX_ON_SURFACE +132 +CD_ON_SURFACE ? 1 tmpl4_0 -VFLX +CD ? ? surface @@ -15654,7 +14619,7 @@ AVE_SNOHF_ON_SURFACE 1 tmpl4_8 SNOHF -NCEP +? AVE surface 0 @@ -15722,50 +14687,13 @@ surface ? ? ? -47 -ACM_EVP_ON_SURFACE -? -1 -tmpl4_8 -EVP -? -ACM -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? 137 ACM_PEVAP_ON_SURFACE ? 1 tmpl4_8 PEVAP -NCEP +? ACM surface 0 @@ -16462,98 +15390,24 @@ spec_pres_above_grnd ? ? ? -74 -VGRD_ON_SPEC_PRES_ABOVE_GRND -? -1 -tmpl4_0 -VGRD -? -? -spec_pres_above_grnd -0 -? -6 -3000. 6000. 9000. 12000. 15000. 18000. -spec_pres_above_grnd -0 -? -6 -0. 3000. 6000. 9000. 12000. 15000. -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -256 -ACM_LSPA_ON_SURFACE -? -1 -tmpl4_8 -LSPA -NCEP -ACM -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -282 -PRES_ON_TOP_OF_ATMOS -? -1 -tmpl4_0 -PRES -? -? -top_of_atmos -0 +74 +VGRD_ON_SPEC_PRES_ABOVE_GRND ? -0 +1 +tmpl4_0 +VGRD ? ? +spec_pres_above_grnd 0 ? +6 +3000. 6000. 9000. 12000. 15000. 18000. +spec_pres_above_grnd 0 ? +6 +0. 3000. 6000. 9000. 12000. 15000. ? ? 0 @@ -16566,22 +15420,22 @@ top_of_atmos 0 0.0 1 -3.0 +4.0 0 0 0 ? ? ? -118 -CNWAT_ON_SURFACE +282 +PRES_ON_TOP_OF_ATMOS ? 1 tmpl4_0 -CNWAT -NCEP +PRES ? -surface +? +top_of_atmos 0 ? 0 @@ -16603,7 +15457,7 @@ surface 0 0.0 1 -1.0 +3.0 0 0 0 @@ -16653,7 +15507,7 @@ LFTX_ON_ISOBARIC_SFC_500-1000hpa 1 tmpl4_0 LFTX -NCEP +? ? isobaric_sfc 0 @@ -17171,7 +16025,7 @@ USTM_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 USTM -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -17208,7 +16062,7 @@ VSTM_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 VSTM -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -17387,43 +16241,6 @@ entire_atmos_single_lyr ? ? ? -139 -AVE_CDLYR_ON_ENTIRE_ATMOS -? -1 -tmpl4_8 -CDLYR -NCEP -AVE -entire_atmos_single_lyr -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? 148 PRES_ON_CLOUD_BASE ? @@ -17578,45 +16395,8 @@ AVE_SNOHF_ON_SURFACE 1 tmpl4_8 SNOHF -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? ? -47 -ACM_EVP_ON_SURFACE -? -1 -tmpl4_8 -EVP -? -ACM +AVE surface 0 ? @@ -17911,7 +16691,7 @@ VWSH_ON_TROPOPAUSE 1 tmpl4_0 VWSH -NCEP +? ? tropopause 0 @@ -18577,7 +17357,7 @@ REFC_ON_ENTIRE_ATMOS 1 tmpl4_0 REFC -NCEP +? ? entire_atmos_single_lyr 0 @@ -18725,7 +17505,7 @@ TCOLI_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLI -NCEP +? ? entire_atmos_single_lyr 0 @@ -18762,7 +17542,7 @@ TCOLR_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLR -NCEP +? ? entire_atmos_single_lyr 0 @@ -18799,7 +17579,7 @@ TCOLS_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLS -NCEP +? ? entire_atmos_single_lyr 0 @@ -19021,7 +17801,7 @@ HPBL_ON_SURFACE 1 tmpl4_0 HPBL -NCEP +? ? surface 0 @@ -19267,167 +18047,19 @@ surface 0 0.0 1 -3.0 -0 -0 -0 -? -? -? -236 -WILT_ON_SURFACE -? -1 -tmpl4_0 -WILT -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -237 -SMREF_ON_SURFACE -? -1 -tmpl4_0 -SMREF -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -238 -RCS_ON_SURFACE -? -1 -tmpl4_0 -RCS -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -239 -RCT_ON_SURFACE -? -1 -tmpl4_0 -RCT -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 +3.0 0 0 0 ? ? ? -240 -RCQ_ON_SURFACE +236 +WILT_ON_SURFACE ? 1 tmpl4_0 -RCQ +WILT NCEP ? surface @@ -19459,12 +18091,12 @@ surface ? ? ? -241 -RCSOL_ON_SURFACE +237 +SMREF_ON_SURFACE ? 1 tmpl4_0 -RCSOL +SMREF NCEP ? surface @@ -19681,43 +18313,6 @@ surface ? ? ? -222 -TCDC_ON_SIGMA_LVLS -? -1 -tmpl4_0 -TCDC -? -? -sigma_lvl -1 -4 -22 -9975. 9915. 9835. 9745. 9650. 9490. 9260. 9015. 8755. 8480. 8190. 7890. 7585. 7185. 6690. 6180. 5470. 4550. 3595. 2605. 1580. 530. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? 289 HGT_ON_PLANETARY_BOUND_LYR ? @@ -19792,43 +18387,6 @@ surface ? ? ? -500 -AVE_SNOWC_ON_SURFACE -? -1 -tmpl4_8 -SNOWC -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? 927 SBTA167_ON_TOP_OF_ATMOS ? @@ -20691,7 +19249,7 @@ fcst fcst hour nws_ncep -hrrr +rrfs complex_packing_spatial_diff 2nd_ord_sptdiff fltng_pnt @@ -20807,3 +19365,204 @@ spec_alt_above_mean_sea_lvl ? ? ? +AVIATION +32769 +ncep_nco +v2003 +local_tab_yes1 +fcst +oper +fcst +fcst +hour +nws_ncep +rrfs +complex_packing_spatial_diff +2nd_ord_sptdiff +fltng_pnt +lossless +476 +MXEDPRM_ON_ENTIRE_ATMOS +? +1 +tmpl4_0 +MXEDPRM +? +? +entire_atmos +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +467 +EDPARM_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL +? +1 +tmpl4_0 +EDPARM +? +? +spec_alt_above_mean_sea_lvl +0 +? +51 +30. 304. 609. 914. 1219. 1524. 1828. 2133. 2438. 2743. 3048. 3352. 3657. 3962. 4267. 4572. 4876. 5181. 5486. 5791. 6096. 6400. 6705. 7010. 7315. 7620. 7924. 8229. 8534. 8839. 9144. 9448. 9753. 10058. 10363. 10668. 10972. 11277. 11582. 11887. 12192. 12496. 12801. 13106. 13411. 13716. 14020. 14325. 14630. 14935. 15240. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +468 +CAT_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL +? +1 +tmpl4_0 +CATEDR +? +? +spec_alt_above_mean_sea_lvl +0 +? +51 +30. 304. 609. 914. 1219. 1524. 1828. 2133. 2438. 2743. 3048. 3352. 3657. 3962. 4267. 4572. 4876. 5181. 5486. 5791. 6096. 6400. 6705. 7010. 7315. 7620. 7924. 8229. 8534. 8839. 9144. 9448. 9753. 10058. 10363. 10668. 10972. 11277. 11582. 11887. 12192. 12496. 12801. 13106. 13411. 13716. 14020. 14325. 14630. 14935. 15240. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +469 +MWTURB_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL +? +1 +tmpl4_0 +MWTURB +? +? +spec_alt_above_mean_sea_lvl +0 +? +51 +30. 304. 609. 914. 1219. 1524. 1828. 2133. 2438. 2743. 3048. 3352. 3657. 3962. 4267. 4572. 4876. 5181. 5486. 5791. 6096. 6400. 6705. 7010. 7315. 7620. 7924. 8229. 8534. 8839. 9144. 9448. 9753. 10058. 10363. 10668. 10972. 11277. 11582. 11887. 12192. 12496. 12801. 13106. 13411. 13716. 14020. 14325. 14630. 14935. 15240. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +477 +CIT_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL +? +1 +tmpl4_0 +CITEDR +? +? +spec_alt_above_mean_sea_lvl +0 +? +51 +30. 304. 609. 914. 1219. 1524. 1828. 2133. 2438. 2743. 3048. 3352. 3657. 3962. 4267. 4572. 4876. 5181. 5486. 5791. 6096. 6400. 6705. 7010. 7315. 7620. 7924. 8229. 8534. 8839. 9144. 9448. 9753. 10058. 10363. 10668. 10972. 11277. 11582. 11887. 12192. 12496. 12801. 13106. 13411. 13716. 14020. 14325. 14630. 14935. 15240. +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? diff --git a/parm/postxconfig-NT-rap.txt b/parm/postxconfig-NT-rap.txt index c76b78397..c8f5d97eb 100644 --- a/parm/postxconfig-NT-rap.txt +++ b/parm/postxconfig-NT-rap.txt @@ -577,7 +577,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +SOILMOI ? ? depth_bel_land_sfc diff --git a/sorc/libIFI.fd b/sorc/libIFI.fd index 41dd43d7c..1ba827087 160000 --- a/sorc/libIFI.fd +++ b/sorc/libIFI.fd @@ -1 +1 @@ -Subproject commit 41dd43d7c552b0981b894dcc0f9db507a120f7e2 +Subproject commit 1ba8270870947b583cd51bc72ff8960f4c1fb36e diff --git a/sorc/ncep_post.fd/ALLOCATE_ALL.f b/sorc/ncep_post.fd/ALLOCATE_ALL.f index 2ade6e18c..96e0c183f 100644 --- a/sorc/ncep_post.fd/ALLOCATE_ALL.f +++ b/sorc/ncep_post.fd/ALLOCATE_ALL.f @@ -493,6 +493,7 @@ SUBROUTINE ALLOCATE_ALL() allocate(shdmin(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(shdmax(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(lai(ista_2l:iend_2u,jsta_2l:jend_2u)) + allocate(xlaixy(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(acsnow(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(acgraup(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(acfrain(ista_2l:iend_2u,jsta_2l:jend_2u)) @@ -524,6 +525,7 @@ SUBROUTINE ALLOCATE_ALL() shdmin(i,j)=spval shdmax(i,j)=spval lai(i,j)=spval + xlaixy(i,j)=spval acsnow(i,j)=spval acgraup(i,j)=spval acfrain(i,j)=spval diff --git a/sorc/ncep_post.fd/CALVIS_GSD.f b/sorc/ncep_post.fd/CALVIS_GSD.f index ca9028294..9f6afaa53 100644 --- a/sorc/ncep_post.fd/CALVIS_GSD.f +++ b/sorc/ncep_post.fd/CALVIS_GSD.f @@ -91,13 +91,19 @@ SUBROUTINE CALVIS_GSD(CZEN,VIS) ! 2021-05 Wen Meng - Add checking for undefined points invloved in computation ! 2021-08 Wen Meng - Restrict divided by 0. ! 2021-10 Jesse Meng - 2D DECOMPOSITION +! 2023-11 Tim Corrie, Eric James - addition of attenuation for blowing snow +! 2024-03 Eric James - removal of extcof55 factor in visibility +! calculation (extcof55 is all zeroes) +! 2024-04 Eric James - correcting bug in BLSN effect (missing factor of +! ustar_t) and removing BLSN effect for z0>0.7 (forests) ! !------------------------------------------------------------------ ! - use vrbls3d, only: qqw, qqi, qqs, qqr, qqg, t, pmid, q, u, v, extcof55, aextc55 - use params_mod, only: h1, d608, rd - use ctlblk_mod, only: jm, im, jsta_2l, jend_2u, lm, modelname, spval,& + use vrbls2d, only: sno, si, ustar, z0 + use vrbls3d, only: qqw, qqi, qqs, qqr, qqg, t, pmid, q, u, v, aextc55 + use params_mod, only: h1, d608, rd, g + use ctlblk_mod, only: jm, im, jsta_2l, jend_2u, lm, modelname, spval, method_blsn,& ista_2l, iend_2u implicit none @@ -109,6 +115,10 @@ SUBROUTINE CALVIS_GSD(CZEN,VIS) REAL RHB(ista_2l:iend_2u,jsta_2l:jend_2u,LM) REAL CZEN(ista_2l:iend_2u,jsta_2l:jend_2u) + real :: z, ustar_t, u_p, lamda, r_bar, alpha + real :: rho_sno + real :: z_r, Q_s, C_r, c_z, c_alpha, vis_blsn, BETABLSN + real celkel,tice,coeflc,coeflp,coeffc,coeffp,coeffg real exponlc,exponlp,exponfc,exponfp,exponfg,const1 real rhoice,rhowat,qrain,qsnow,qgraupel,qclw,qclice,tv,rhoair, & @@ -300,6 +310,46 @@ SUBROUTINE CALVIS_GSD(CZEN,VIS) if (t(i,j,lm)< 270. .and. temp_fac==1.) & write (6,*) 'Problem w/ temp_fac - calvis' +! Key calculation of attenuation from blowing snow -- updated 5 August 2022 by Tim Corrie +! Framework is from Letcher et al (2021) + + ustar_t = 0.2 + u_p = 2.8*ustar_t + lamda = 0.45 + z = 2.0 + alpha = 15.0 + r_bar = 0.0002 + +! print *, i,j + + + if (si(i,j) ustar_t .and. z0(i,j) .le. 0.7) then + z_r = 1.6*(ustar(i,j)**2./(2.*g)) + Q_s = max((0.68/ustar(i,j))*(RHOAIR/g)*ustar_t*(ustar(i,j)**2.-ustar_t**2.),0.0) + C_r = (Q_s/u_p)*(lamda*g/ustar(i,j)**2.)*exp(-lamda*z_r*g/ustar(i,j)**2.) + c_z = max(C_r * exp(-1.55*((0.05628*ustar(i,j))**-0.544 - z**-0.544)),1e-15) + c_alpha = alpha/(alpha+2) !simplified version of (6) in Letcher et al (2021) + rho_sno = sno(i,j)/(si(i,j)/1.0e3) + rho_sno = rho_sno*2. + 10.*max(0.,rho_sno-150.0) + vis_blsn = (5.217*rho_sno*r_bar**1.011)/(1.82*c_z*c_alpha) + BETABLSN = 3.912/(vis_blsn/1000.0) + ! print to ensure quality + !print *, "z_r", z_r + !print *, "Q_s", Q_s + !print *, "C_r", C_r + !print *, "c_z", c_z + !print *, "c_alpha", c_alpha + !print *, "sno/SWE", sno(i,j) + !print *, "si/SNOD", si(i,j)/1.0e3 + !print *, "rho_sno", rho_sno + !print *, "vis_blsn", vis_blsn + !print *, "BETABLSN", BETABLSN + !print *, "ustar", ustar(i,j) + else + BETABLSN = 0 + !print *, "BETABLSN", BETABLSN + end if + ! Key calculation of attenuation from each hydrometeor type (cloud, snow, graupel, rain, ice) BETAV=COEFFC*CONCFC**EXPONFC & + coef_SNOW*CONCFP**EXPONFP & @@ -309,10 +359,13 @@ SUBROUTINE CALVIS_GSD(CZEN,VIS) ! Addition of attenuation from aerosols if option selected if(method == 2 .or. method == 3)then ! aerosol method BETAV = BETAV + aextc55(i,j,lm)*1000. + if(method_blsn) then ! BLSN method, updated 8 August 2022 by Tim Corrie + BETAV = BETAV + BETABLSN + endif endif ! Calculation of visibility based on hydrometeor and aerosols. (RH effect not yet included.) - VIS(I,J)=MIN(90.,CONST1/(BETAV+extcof55(i,j,lm))) ! max of 90km + VIS(I,J)=MIN(90.,CONST1/BETAV) ! max of 90km if (vis(i,j) 2023-04-04 | Li(Kate Zhang) | Add namelist optoin for CCPP-Chem (UFS-Chem) and 2D diag. output (d2d_chem) for GEFS-Aerosols and CCPP-Chem model. !> 2023-04-17 | Eric James | Adding 160 and 320 m above ground to HTFD for RRFS output. !> 2023-08-16 | Yali Mao | Add gtg_on logical option +!> 2023-11-24 | Eric James | Add method_blsn logical option !----------------------------------------------------------------------- !> @defgroup CTLBLK_mod Sets default parameters that are used throughout the UPP code !----------------------------------------------------------------------- @@ -73,6 +74,7 @@ module CTLBLK_mod logical :: aqf_on !< Turn on Air Quality Forecasting (CMAQ-based). logical :: slrutah_on !< Calculate snow to liquid ratio (SLR) using method from University of Utah. logical :: gtg_on !< Turn on GTG (Graphical Turbulence Guidance) + logical :: method_blsn !< Turn on blowing snow effect on visibility diagnostic ! logical :: SIGMA !< No longer used/supported. logical :: RUN !< No longer used/supported. diff --git a/sorc/ncep_post.fd/DEALLOCATE.f b/sorc/ncep_post.fd/DEALLOCATE.f index bf979f8c2..d16c6f2d4 100644 --- a/sorc/ncep_post.fd/DEALLOCATE.f +++ b/sorc/ncep_post.fd/DEALLOCATE.f @@ -166,6 +166,7 @@ SUBROUTINE DE_ALLOCATE deallocate(shdmin) deallocate(shdmax) deallocate(lai) + deallocate(xlaixy) deallocate(acsnow) deallocate(acgraup) deallocate(acfrain) diff --git a/sorc/ncep_post.fd/INITPOST_NETCDF.f b/sorc/ncep_post.fd/INITPOST_NETCDF.f index b14cbc316..8537de90e 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -45,6 +45,11 @@ !> 2023-10-17 | Eric James | Including hail mixing ratio in calculation of hydrometeor VIL !> and cwm when present (NSSL microphysics) !> 2023-10-23 | Jaymes Kenyon | Read HAILCAST diagnostic output from RRFS +!> 2024-01-12 | Wen Meng | Remove the hard-wired bucket for beyond F240 +!> 2024-02-07 | Eric James | Adding reading of direct and diffuse irradiance and LAI +!> 2024-02-20 | Jaymes Kenyon | Add calculation of PBLHGUST (from INITPOST.F) to support RRFS 10-m wind gust diagnostic +!> 2024-03-15 | Wen Meng | Add option to read 3D soil-related variables +!> 2024-03-25 | Eric James | Enabling reading of snow melt and surface albedo from RRFS !> !> @author Hui-Ya Chuang @date 2016-03-04 !---------------------------------------------------------------------- @@ -73,8 +78,8 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) use vrbls2d, only: f, pd, fis, pblh, ustar, z0, ths, qs, twbs, qwbs, avgcprate, & cprate, avgprec, prec, lspa, sno, sndepac, si, cldefi, th10, q10, tshltr, pshltr, & - tshltr, albase, avgalbedo, avgtcdc, czen, czmean, mxsnal, landfrac, radot, sigt4, & - cfrach, cfracl, cfracm, avgcfrach, qshltr, avgcfracl, avgcfracm, cnvcfr, & + tshltr, albase, albedo, avgalbedo, avgtcdc, czen, czmean, mxsnal, landfrac, radot,& + sigt4,cfrach, cfracl, cfracm, avgcfrach, qshltr, avgcfracl, avgcfracm, cnvcfr, & islope, cmc, grnflx, vegfrc, acfrcv, ncfrcv, acfrst, ncfrst, ssroff, & bgroff, rlwin, rlwtoa, cldwork, alwin, alwout, alwtoa, rswin, rswinc, & rswout, aswin, auvbin, auvbinc, aswout, aswtoa, sfcshx, sfclhx, subshx, & @@ -83,7 +88,7 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) uz0, vz0, ptop, htop, pbot, hbot, ptopl, pbotl, ttopl, ptopm, pbotm, ttopm, & ptoph, pboth, pblcfr, ttoph, runoff, tecan, tetran, tedir, twa, maxtshltr, & mintshltr, maxrhshltr, fdnsst, acgraup, graup_bucket, acfrain, frzrn_bucket, & - snow_acm, snow_bkt, snownc, graupelnc, qrmax, & + snow_acm, snow_bkt, snownc, graupelnc, qrmax, swddif, swddni, xlaixy, & minrhshltr, dzice, smcwlt, suntime, fieldcapa, htopd, hbotd, htops, hbots, & cuppt, dusmass, ducmass, dusmass25, ducmass25, aswintoa,rel_vort_maxhy1, & maxqshltr, minqshltr, acond, sr, u10h, v10h,refd_max, w_up_max, w_dn_max, & @@ -93,7 +98,7 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) alwoutc,alwtoac,aswoutc,aswtoac,alwinc,aswinc,avgpotevp,snoavg, & ti,aod550,du_aod550,ss_aod550,su_aod550,oc_aod550,bc_aod550,prate_max,maod,dustpm10, & dustcb,bccb,occb,sulfcb,sscb,dustallcb,ssallcb,dustpm,sspm,pp25cb,pp10cb,no3cb,nh4cb,& - pwat, ebb, hwp, aqm_aod550, ltg1_max,ltg2_max,ltg3_max, hail_maxhailcast + pwat, ebb, hwp, aqm_aod550, ltg1_max,ltg2_max,ltg3_max, hail_maxhailcast, pblhgust use soil, only: sldpth, sllevel, sh2o, smc, stc use masks, only: lmv, lmh, htm, vtm, gdlat, gdlon, dx, dy, hbm2, sm, sice use physcons_post, only: grav => con_g, fv => con_fvirt, rgas => con_rd, & @@ -179,11 +184,11 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) REAL DUMMY(IM,JM) !jw integer ii,jj,js,je,iyear,imn,iday,itmp,ioutcount,istatus, & - I,J,L,ll,k,kf,irtn,igdout,n,Index,nframe, & + I,J,L,ll,k,k1,kf,irtn,igdout,n,Index,nframe, & nframed2,iunitd3d,ierr,idum,iret,nrec,idrt integer ncid3d,ncid2d,varid,nhcas,varid_bl,iret_bl real TSTART,TLMH,TSPH,ES,FACT,soilayert,soilayerb,zhour,dum, & - tvll,pmll,tv, tx1, tx2 + tvll,pmll,tv, tx1, tx2, zpbltop character*20,allocatable :: recname(:) integer, allocatable :: reclev(:), kmsk(:,:) @@ -213,6 +218,7 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) integer, parameter :: npass2=5, npass3=30 real, parameter :: third=1.0/3.0 + real, parameter :: delta_theta4gust=0.5 INTEGER, DIMENSION(2) :: ij4min, ij4max REAL :: omgmin, omgmax real, allocatable :: d2d(:,:), u2d(:,:), v2d(:,:), omga2d(:,:) @@ -220,10 +226,11 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) real, allocatable :: div3d(:,:,:) real(kind=4),allocatable :: vcrd(:,:) real :: dum_const - real, allocatable :: ext550(:,:,:) + real, allocatable :: ext550(:,:,:),thv(:,:,:) if (modelname == 'FV3R') then allocate(ext550(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) + allocate(thv(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) endif !*********************************************************************** @@ -1636,7 +1643,7 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) end if tprec = float(fhzero) - if(ifhr>240)tprec=12. + ! if(ifhr>240)tprec=12. tclod = tprec trdlw = tprec trdsw = tprec @@ -1789,6 +1796,11 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) enddo enddo if(debugprint)print*,'sample ',VarName,' = ',avgalbedo(isa,jsa) +! sfc albedo + VarName='sfalb' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,albedo) + if(debugprint)print*,'sample ',VarName,' = ',albedo(isa,jsa) ! surface potential T using getgb VarName='tmpsfc' @@ -2237,6 +2249,9 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) SLLEVEL(8) = 1.6 SLLEVEL(9) = 3.0 END IF + + Status=nf90_inq_varid(ncid2d,'zsoil',varid) + if(Status/=0)then !read soil avriables in 2D ! liquid volumetric soil mpisture in fraction using nemsio VarName='soill1' @@ -2585,30 +2600,94 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) if(debugprint)print*,'sample stc = ',1,stc(isa,jsa,9) END IF -! -! E. James - 27 Sep 2022: this is for RRFS, adding smoke and dust -! extinction; it needs to be after ZINT is defined. -! + + else !read soil variables in 3D + VarName='soilt' + call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,stc(ista_2l,jsta_2l,1),nsoil) + VarName='soilw' + call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,smc(ista_2l,jsta_2l,1),nsoil) + VarName='soill' + call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,sh2o(ista_2l,jsta_2l,1),nsoil) + endif + if (modelname == 'FV3R') then do l = 1, lm do j = jsta_2l, jend_2u do i = ista_2l, iend_2u + ! + ! E. James - 27 Sep 2022: this is for RRFS, adding smoke and dust + ! extinction; it needs to be after ZINT is defined. + ! if(ext550(i,j,l)0 .or. IGET(464)>0 .or. IGET(467)>0.or. IGET(470)>0 .or. IGET(476)>0) THEN - IF(MODELNAME=='RAPR') THEN + IF (MODELNAME=='RAPR') THEN !tgs - 24may17 - smooth PBLHGUST if(MAPTYPE == 6) then if(grib=='grib2') then @@ -4084,7 +4088,7 @@ SUBROUTINE MDLFLD ZSFC=ZINT(I,J,NINT(LMH(I,J))+1) loopL:DO L=NINT(LMH(I,J)),1,-1 - IF(MODELNAME=='RAPR') THEN + IF (MODELNAME=='RAPR' .OR. MODELNAME=='FV3R') THEN HGT=ZMID(I,J,L) PBLHOLD=PBLHGUST(I,J) ELSE @@ -4104,7 +4108,7 @@ SUBROUTINE MDLFLD if(lpbl(i,j)<1)print*,'zero lpbl',i,j,pblri(i,j),lpbl(i,j) ENDDO ENDDO - IF(MODELNAME=='RAPR') THEN + IF (MODELNAME=='RAPR' .OR. MODELNAME=='FV3R') THEN CALL CALGUST(LPBL,PBLHGUST,GUST) ELSE CALL CALGUST(LPBL,PBLRI,GUST) @@ -4205,7 +4209,7 @@ SUBROUTINE MDLFLD ! ! ! COMPUTE NCAR GTG turbulence - IF(gtg_on) then + IF(gtg_on .and. (IGET(464) > 0 .or. IGET(467) > 0 .or. IGET(470) > 0)) then i=(ista+iend)/2 j=(jsta+jend)/2 ! if(me == 0) print*,'sending input to GTG i,j,hgt,gust',i,j,ZINT(i,j,LP1),gust(i,j) @@ -4225,7 +4229,7 @@ SUBROUTINE MDLFLD dx(ista:iend,:),dy(ista:iend,:),u10(ista:iend,:),v10(ista:iend,:),& GUST(ista:iend,:),avgprec(ista:iend,:),sm(ista:iend,:),sice(ista:iend,:),& catedr(ista:iend,:,:),mwt(ista:iend,:,:),cit(ista:iend,:,:),& - gtg(ista:iend,:,:),RICHNO(ista:iend,:,:),item) + RICHNO(ista:iend,:,:),gtg(ista:iend,:,:),item) i=iend j=jend ! 321,541 diff --git a/sorc/ncep_post.fd/MISCLN.f b/sorc/ncep_post.fd/MISCLN.f index e1b8b897a..c2bce66fb 100644 --- a/sorc/ncep_post.fd/MISCLN.f +++ b/sorc/ncep_post.fd/MISCLN.f @@ -55,6 +55,9 @@ !! 23-04-03 E Colon - Added additional array assignments to resolve SPC fields crashes for RRFS input !! 23-08-16 Y Mao - Updated interpolation to flight levels for regional GTG fields !! 23-08-24 Y Mao - Add gtg_on option for GTG interpolation +!! 24-01-07 H LIN - Add CIT output in NCAR GTG turbulence calculation +!! 24-01-09 Y Mao - Correct the height level of EDPARM (ID=467) on 0m to index 52 from the control file, instead of 0. +!! 24-04-09 Y Mao - Change the mnemonics of EDPARM (ID=467) on 0m to MXEDPRM (ID=476) on the entire atmoshpere !! USAGE: CALL MISCLN !! INPUT ARGUMENT LIST: !! @@ -93,7 +96,7 @@ SUBROUTINE MISCLN ! ! use vrbls3d, only: pmid, uh, vh, t, zmid, zint, pint, alpint, q, omga - use vrbls3d, only: catedr,mwt,gtg + use vrbls3d, only: catedr,mwt,gtg, cit use vrbls2d, only: pblh, cprate, fis, T500, T700, Z500, Z700,& teql,ieql, cape,cin use masks, only: lmh @@ -1200,7 +1203,7 @@ SUBROUTINE MISCLN ! ! ***BLOCK 3-2: FD LEVEL (from control file) GTG ! - IF(gtg_on .and. (IGET(467)>0.or.IGET(468)>0.or.IGET(469)>0)) THEN + IF(gtg_on .and. (IGET(467)>0.or.IGET(468)>0.or.IGET(469)>0.or.IGET(477)>0)) THEN ! MASS FIELDS INTERPOLATION if(allocated(QIN)) deallocate(QIN) if(allocated(QTYPE)) deallocate(QTYPE) @@ -1228,9 +1231,16 @@ SUBROUTINE MISCLN QTYPE(nFDS)="O" end if -! FOR Regional GTG, ALL LEVLES OF DIFFERENT VARIABLES ARE THE SAME, except for EDPARM -! Use levels of iID=468 for interpolation - iID=468 + IF(IGET(477) > 0) THEN + nFDS = nFDS + 1 + IDS(nFDS) = 477 + QIN(ISTA:IEND,JSTA:JEND,1:LM,nFDS)=cit(ISTA:IEND,JSTA:JEND,1:LM) + QTYPE(nFDS)="O" + end if + + +! FOR Regional GTG, ALL LEVLES OF DIFFERENT VARIABLES ARE THE SAME + iID=467 N = IAVBLFLD(IGET(iID)) NFDCTL=size(pset%param(N)%level) if(allocated(ITYPEFDLVLCTL)) deallocate(ITYPEFDLVLCTL) @@ -1252,7 +1262,7 @@ SUBROUTINE MISCLN ! Adjust values before output DO N=1,nFDS iID=IDS(N) - if(iID==467 .or. iID==468 .or. iID==469) then + if(iID==467 .or. iID==468 .or. iID==469 .or. iID==477) then DO IFD = 1,NFDCTL DO J=JSTA,JEND DO I=ISTA,IEND @@ -1270,9 +1280,9 @@ SUBROUTINE MISCLN DO N=1,nFDS iID=IDS(N) -! Regional GTG has a legend of special defination -! 0 m holds the max value of the whole vertical column - if (iID == 467) then +! For regional GTG, output the max value of EDPARM(ID=467) in the whole vertical column +! to MXEDPRM(ID=476) + if (iID == 467 .and. iget(476) > 0) then EGRID1 = SPVAL DO IFD = 1,NFDCTL DO J=JSTA,JEND @@ -1293,8 +1303,7 @@ SUBROUTINE MISCLN ENDDO if(grib=='grib2') then cfld=cfld+1 - fld_info(cfld)%ifld=IAVBLFLD(IGET(iID)) - fld_info(cfld)%lvl=0. + fld_info(cfld)%ifld=IAVBLFLD(IGET(476)) ! MXEDPRM ID !$omp parallel do private(i,j,ii,jj) do j=1,jend-jsta+1 jj = jsta+j-1 diff --git a/sorc/ncep_post.fd/SURFCE.f b/sorc/ncep_post.fd/SURFCE.f index 7677f6584..85a099a3c 100644 --- a/sorc/ncep_post.fd/SURFCE.f +++ b/sorc/ncep_post.fd/SURFCE.f @@ -45,6 +45,10 @@ !> 2023-06-15 | E James | Correcting bug fix in GSL precip type for RRFS (use 1h pcp, not run total pcp) !> 2023-10-04 | W Meng | Fix mismatched IDs from 526-530 !> 2023-10-05 | E James | Correcting bug fix in GSL precip type for RRFS (was using 1000x 1h pcp) +!> 2024-01-23 | E James | Using consistent snow ratio SR from history files throughout GSL precip type diagnosis. +!> 2024-01-30 | A Jensen | Comment out graupel precipitation warning. +!> 2024-02-07 | E James | Enabling output of LAI and wilting point for RRFS. +!> 2024-03-25 | E James | Enabling output of column integrated soil moisture. !> !> @note !> USAGE: CALL SURFCE @@ -97,7 +101,7 @@ SUBROUTINE SURFCE snow_bucket1, rainc_bucket1, graup_bucket1, & frzrn_bucket, snow_acm, snow_bkt, & shdmin, shdmax, lai, ch10,cd10,landfrac,paha,pahi, & - tecan,tetran,tedir,twa,IFI_APCP + tecan,tetran,tedir,twa,IFI_APCP,xlaixy use soil, only: stc, sllevel, sldpth, smc, sh2o use masks, only: lmh, sm, sice, htm, gdlat, gdlon use physcons_post,only: CON_EPS, CON_EPSM1 @@ -717,6 +721,32 @@ SUBROUTINE SURFCE endif ENDIF ! +! TOTAL SOIL MOISTURE + IF (IGET(713)>0) THEN +!$omp parallel do private(i,j) + DO J=JSTA,JEND + DO I=ISTA,IEND +! IF(SMSTOT(I,J)/=SPVAL) THEN + GRID1(I,J) = SMSTOT(I,J) +! ELSE +! GRID1(I,J) = SPVAL +! ENDIF + ENDDO + ENDDO + if(grib=='grib2') then + cfld=cfld+1 + fld_info(cfld)%ifld=IAVBLFLD(IGET(713)) +!$omp parallel do private(i,j,ii,jj) + do j=1,jend-jsta+1 + jj = jsta+j-1 + do i=1,iend-ista+1 + ii = ista+i-1 + datapd(i,j,cfld) = GRID1(ii,jj) + enddo + enddo + endif + ENDIF +! ! PLANT CANOPY SURFACE WATER. IF ( IGET(118)>0 ) THEN IF(MODELNAME == 'RAPR') THEN @@ -5152,25 +5182,34 @@ SUBROUTINE SURFCE totprcp = (RAINC_BUCKET(I,J) + RAINNC_BUCKET(I,J))*1.e-3 ENDIF snowratio = 0.0 - if(graup_bucket(i,j)*1.e-3 > totprcp.and.graup_bucket(i,j)/=spval)then - print *,'WARNING - Graupel is higher that total precip at point',i,j - print *,'totprcp,graup_bucket(i,j),snow_bucket(i,j),rainnc_bucket',& - totprcp,graup_bucket(i,j),snow_bucket(i,j),rainnc_bucket(i,j) - endif +!-- This following warning message prints too often and is being commented out by +!-- Anders Jensen on 30 Jan 2024. I think that this warning message prints only when +!-- graupel alone is reaching the surface. Total precipitation is interpolated +!-- and precipitation from individual hydrometeor categories is not. Thus, when +!-- total precipitation equals graupel precipitation and total precipitation is +!-- interpolated and graupel precipitation is not, the two values may not be equal. +! if(graup_bucket(i,j)*1.e-3 > totprcp.and.graup_bucket(i,j)/=spval)then +! print *,'WARNING - Graupel is higher than total precip at point',i,j +! print *,'totprcp,graup_bucket(i,j)*1.e-3,snow_bucket(i,j),rainnc_bucket',& +! totprcp,graup_bucket(i,j)*1.e-3,snow_bucket(i,j),rainnc_bucket(i,j) +! endif ! --------------------------------------------------------------- ! Minimum 1h precipitation to even consider p-type specification ! (0.0001 mm in 1h, very light precipitation) ! --------------------------------------------------------------- - if (totprcp-graup_bucket(i,j)*1.e-3 > 0.0000001) & + if (totprcp-graup_bucket(i,j)*1.e-3 > 0.0000001) then ! snowratio = snow_bucket(i,j)*1.e-3/totprcp ! orig !14aug15 - change from Stan and Trevor ! --------------------------------------------------------------- ! Snow-to-total ratio to be used below ! --------------------------------------------------------------- - snowratio = snow_bucket(i,j)*1.e-3 / (totprcp-graup_bucket(i,j)*1.e-3) - -! snowratio = SR(i,j) + IF(MODELNAME == 'FV3R') THEN + snowratio = SR(i,j) + ELSE + snowratio = snow_bucket(i,j)*1.e-3 / (totprcp-graup_bucket(i,j)*1.e-3) + ENDIF + endif !-- 2-m temperature t2 = TSHLTR(I,J)*(PSHLTR(I,J)*1.E-5)**CAPA ! --------------------------------------------------------------- @@ -6182,12 +6221,15 @@ SUBROUTINE SURFCE ! LEAF AREA INDEX IF (MODELNAME == 'NCAR'.OR.MODELNAME=='NMM' .OR. & MODELNAME == 'FV3R' .OR. MODELNAME=='RAPR')THEN - IF (iSF_SURFACE_PHYSICS == 2 .OR. MODELNAME=='RAPR') THEN + IF (iSF_SURFACE_PHYSICS == 2 .OR. MODELNAME=='FV3R' .OR. MODELNAME=='RAPR') THEN IF (IGET(254)>0) THEN + if (me==0)print*,'starting LAI' DO J=JSTA,JEND DO I=ISTA,IEND IF (MODELNAME=='RAPR')THEN GRID1(I,J)=LAI(I,J) + ELSE IF (MODELNAME=='FV3R')THEN + GRID1(I,J)=XLAIXY(I,J) ELSE GRID1(I,J) = XLAI ENDIF @@ -6266,7 +6308,7 @@ SUBROUTINE SURFCE & .OR. IGET(237)>0 .OR. IGET(238)>0 & & .OR. IGET(239)>0 .OR. IGET(240)>0 & & .OR. IGET(241)>0 ) THEN - IF (iSF_SURFACE_PHYSICS == 2) THEN !NSOIL == 4 + IF (iSF_SURFACE_PHYSICS == 2 .OR. iSF_SURFACE_PHYSICS == 3) THEN !NSOIL == 4 ! if(me==0)print*,'starting computing canopy conductance' allocate(rsmin(ista:iend,jsta:jend), smcref(ista:iend,jsta:jend), gc(ista:iend,jsta:jend), & rcq(ista:iend,jsta:jend), rct(ista:iend,jsta:jend), rcsoil(ista:iend,jsta:jend), rcs(ista:iend,jsta:jend)) diff --git a/sorc/ncep_post.fd/VRBLS2D_mod.f b/sorc/ncep_post.fd/VRBLS2D_mod.f index 8e919dd98..c7f10ce25 100644 --- a/sorc/ncep_post.fd/VRBLS2D_mod.f +++ b/sorc/ncep_post.fd/VRBLS2D_mod.f @@ -62,7 +62,7 @@ module vrbls2d ,SWNORMmean(:,:),SNFDEN(:,:),SNDEPAC(:,:),SWDDNI(:,:),SWDDIF(:,:) & ,SWDNBC(:,:),SWDDNIC(:,:),SWDDIFC(:,:), SWUPBC(:,:), SWUPT(:,:) & ,TAOD5502D(:,:),AERASY2D(:,:),AERSSA2D(:,:),MEAN_FRP(:,:),EBB(:,:) & - ,HWP(:,:),LWP(:,:),IWP(:,:) & + ,HWP(:,:),LWP(:,:),IWP(:,:),XLAIXY(:,:) & ! add new fields for GFS ,SFCUX(:,:),SFCVX(:,:),SFCUXI(:,:), SFCVXI(:,:),AVGALBEDO(:,:),AVGCPRATE(:,:) & ,AVGPREC(:,:),PTOP(:,:),PBOT(:,:),AVGCFRACH(:,:) & diff --git a/sorc/ncep_post.fd/WRFPOST.f b/sorc/ncep_post.fd/WRFPOST.F similarity index 98% rename from sorc/ncep_post.fd/WRFPOST.f rename to sorc/ncep_post.fd/WRFPOST.F index d2b0ef546..1c778d6ab 100644 --- a/sorc/ncep_post.fd/WRFPOST.f +++ b/sorc/ncep_post.fd/WRFPOST.F @@ -37,6 +37,7 @@ ! and 2D diag. output (d2d_chem) for GEFS-Aerosols and CCPP-Chem model. !> 2023-05-20 | Rahul Mahajan | Bug fix for fileNameFlat as namelist configurable !> 2023-08-16 | Yali Mao | Add gtg_on logical option +!> 2023-11-29 | Eric James | Add method_blsn logical option !> @author Mike Bladwin NSSL/SPC @date 2002-06-18 !--------------------------------------------------------------------- !> @return wrfpost @@ -115,8 +116,10 @@ PROGRAM WRFPOST !=========================================================================================== ! use netcdf +#if defined(BUILD_WITH_NEMSIO) use nemsio_module, only: nemsio_getheadvar, nemsio_gfile, nemsio_init, nemsio_open, & nemsio_getfilehead,nemsio_close +#endif use CTLBLK_mod, only: filenameaer, me, num_procs, num_servers, mpi_comm_comp, datestr, & mpi_comm_inter, filename, ioform, grib, idat, filenameflux, filenamed3d, gdsdegr, & spldef, modelname, ihrst, lsmdef,vtimeunits, tprec, pthresh, datahandle, im, jm, lm, & @@ -127,13 +130,15 @@ PROGRAM WRFPOST mdl2agl_tim, mdl2std_tim, mdl2thandpv_tim, calrad_wcloud_tim,nasa_on,gccpp_on, & fixed_tim, time_output, imin, surfce2_tim, komax, ivegsrc, d3d_on, gocart_on,rdaod, & readxml_tim, spval, fullmodelname, submodelname, hyb_sigp, filenameflat, aqf_on,numx, & - run_ifi_tim, slrutah_on, d2d_chem, gtg_on + run_ifi_tim, slrutah_on, d2d_chem, gtg_on, method_blsn use grib2_module, only: gribit2,num_pset,nrecout,first_grbtbl,grib_info_finalize use upp_ifi_mod, only: write_ifi_debug_files !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - implicit none ! +#if defined(BUILD_WITH_NEMSIO) type(nemsio_gfile) :: nfile,ffile,rfile +#endif INCLUDE "mpif.h" ! ! DECLARE VARIABLES. @@ -153,7 +158,7 @@ PROGRAM WRFPOST ! integer :: kpo,kth,kpv real,dimension(komax) :: po,th,pv - namelist/nampgb/kpo,po,kth,th,kpv,pv,fileNameAER,d3d_on,gocart_on,gccpp_on, nasa_on,gtg_on,popascal & + namelist/nampgb/kpo,po,kth,th,kpv,pv,fileNameAER,d3d_on,gocart_on,gccpp_on, nasa_on,gtg_on,method_blsn,popascal & ,hyb_sigp,rdaod,d2d_chem, aqf_on,slrutah_on, vtimeunits,numx,write_ifi_debug_files integer :: itag_ierr namelist/model_inputs/fileName,IOFORM,grib,DateStr,MODELNAME,SUBMODELNAME & @@ -261,6 +266,7 @@ PROGRAM WRFPOST aqf_on = .false. slrutah_on = .false. gtg_on = .false. + method_blsn = .true. popascal = .false. fileNameAER = '' rdaod = .false. @@ -470,6 +476,7 @@ PROGRAM WRFPOST print*,'WRF Binary format is no longer supported' STOP 9996 ! NEMSIO format +#if defined(BUILD_WITH_NEMSIO) ELSE IF(TRIM(IOFORM) == 'binarynemsio' .or. & TRIM(IOFORM) == 'binarynemsiompiio' )THEN @@ -526,7 +533,7 @@ PROGRAM WRFPOST ! print*,'iostatusD3D in WRFPOST= ',iostatusD3D END IF - +#endif ELSE PRINT*,'UNKNOWN MODEL OUTPUT FORMAT, STOPPING' STOP 9999 @@ -583,6 +590,7 @@ PROGRAM WRFPOST PRINT*,'POST does not have mpiio option for this model, STOPPING' STOP 9998 END IF +#if defined(BUILD_WITH_NEMSIO) ELSE IF(TRIM(IOFORM) == 'binarynemsio') THEN IF(MODELNAME == 'NMM') THEN CALL INITPOST_NEMS(NREC,nfile) @@ -605,7 +613,7 @@ PROGRAM WRFPOST STOP 9999 END IF - +#endif ELSE PRINT*,'UNKNOWN MODEL OUTPUT FORMAT, STOPPING' STOP 9999 diff --git a/sorc/ncep_post.fd/gtg_interp.F90 b/sorc/ncep_post.fd/gtg_interp.F90 new file mode 100644 index 000000000..57147900b --- /dev/null +++ b/sorc/ncep_post.fd/gtg_interp.F90 @@ -0,0 +1,4 @@ + subroutine gtg_interp() + implicit none + print *, "Stub code for GTG protection but to make UPP public to work" + end subroutine gtg_interp diff --git a/sorc/ncep_post.fd/post_gtg.fd b/sorc/ncep_post.fd/post_gtg.fd index a9828705b..7476b8f27 160000 --- a/sorc/ncep_post.fd/post_gtg.fd +++ b/sorc/ncep_post.fd/post_gtg.fd @@ -1 +1 @@ -Subproject commit a9828705b587c451fc2a7267d1c374d737be425b +Subproject commit 7476b8f2790a47d788f79cebfdbb551567ae7cf8 diff --git a/tests/compile_upp.sh b/tests/compile_upp.sh index 078a63b8c..bce87b787 100755 --- a/tests/compile_upp.sh +++ b/tests/compile_upp.sh @@ -14,6 +14,7 @@ usage() { echo " -g build with GTG(users with gtg repos. access only) DEFAULT: OFF" echo " -I build with libIFI(users with ifi repos. access only) DEFAULT: OFF" echo " -i build with libIFI(users with ifi install access only) DEFAULT: OFF" + echo " -n build without nemsio DEFAULT: ON" echo " -w build without WRF-IO DEFAULT: ON" echo " -v build with cmake verbose DEFAULT: NO" echo " -c Compiler to use for build DEFAULT: intel" @@ -26,11 +27,12 @@ usage() { prefix="../install" ifi_opt=" -DBUILD_WITH_IFI=OFF" gtg_opt=" -DBUILD_WITH_GTG=OFF" +nemsio_opt=" -DBUILD_WITH_NEMSIO=ON" wrfio_opt=" -DBUILD_WITH_WRFIO=ON" compiler="intel" verbose_opt="" debug_opt="" -while getopts ":p:gwc:vhiId" opt; do +while getopts ":p:gnwc:vhiId" opt; do case $opt in p) prefix=$OPTARG @@ -38,6 +40,9 @@ while getopts ":p:gwc:vhiId" opt; do g) gtg_opt=" -DBUILD_WITH_GTG=ON" ;; + n) + nemsio_opt=" -DBUILD_WITH_NEMSIO=OFF" + ;; w) wrfio_opt=" -DBUILD_WITH_WRFIO=OFF" ;; @@ -61,7 +66,15 @@ while getopts ":p:gwc:vhiId" opt; do ;; esac done -cmake_opts=" -DCMAKE_INSTALL_PREFIX=$prefix"${wrfio_opt}${gtg_opt}${ifi_opt}${debug_opt} + +if [[ ! -z $debug_opt && $ifi_opt =~ INTERNAL.*=ON ]] ; then + echo ENABLING IFI DEBUG + # When building debug mode with internal IFI, also enable debugging in IFI. + # This includes bounds checking in much of the libIFI C++ library. + debug_opt="$debug_opt -DIFI_DEBUG=ON" +fi + +cmake_opts=" -DCMAKE_INSTALL_PREFIX=$prefix"${nemsio_opt}${wrfio_opt}${gtg_opt}${ifi_opt}${debug_opt} if [[ $(uname -s) == Darwin ]]; then readonly MYDIR=$(cd "$(dirname "$(greadlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) @@ -75,24 +88,12 @@ source ${PATHTR}/tests/detect_machine.sh if [[ $MACHINE_ID != "unknown" ]]; then if [ $MACHINE_ID == "wcoss2" -o $MACHINE_ID == "wcoss2_a" ]; then module reset - elif [[ "$MACHINE_ID" =~ gaea.* ]] ; then - if [[ $( hostname ) =~ gaea5[0-9] ]] ; then - module purge - # Unset the read-only variables $PELOCAL_PRGENV and $RCLOCAL_PRGENV - gdb -ex 'call (int) unbind_variable("PELOCAL_PRGENV")' \ - -ex 'call (int) unbind_variable("RCLOCAL_PRGENV")' \ - --pid=$$ --batch - # Reload system default modules: - set +eu - source /etc/bash.bashrc.local - source /lustre/f2/dev/role.epic/contrib/Lmod_init.sh - set -eu - else - # There is no safe "module purge" on GAEA compute nodes. - set +eu - source /lustre/f2/dev/role.epic/contrib/Lmod_init.sh - set -eu - fi + elif [[ "$MACHINE_ID" =~ gaea* ]] ; then + module reset + # Unset the read-only variables $PELOCAL_PRGENV and $RCLOCAL_PRGENV + gdb -ex 'call (int) unbind_variable("PELOCAL_PRGENV")' \ + -ex 'call (int) unbind_variable("RCLOCAL_PRGENV")' \ + --pid=$$ --batch else module purge fi @@ -112,6 +113,7 @@ if [[ $MACHINE_ID != "unknown" ]]; then module list fi +set -x BUILD_DIR=${BUILD_DIR:-"build"} rm -rf ${BUILD_DIR} install mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} diff --git a/tests/detect_machine.sh b/tests/detect_machine.sh index 997e550dc..76b7ce933 100755 --- a/tests/detect_machine.sh +++ b/tests/detect_machine.sh @@ -1,112 +1,94 @@ #!/bin/bash +# The authoritative copy of this script lives in the ufs-weather-model at: +# https://github.com/ufs-community/ufs-weather-model/blob/develop/tests/detect_machine.sh +# If any local modifications are made or new platform support added, +# please consider opening an issue and a PR to the ufs-weather-model +# so that this copy remains in sync with its authoritative source +# +# Thank you for your contribution + +# If the MACHINE_ID variable is set, skip this script. +[[ -n ${MACHINE_ID:-} ]] && return + +# First detect w/ hostname case $(hostname -f) in - alogin01.acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2_a ;; ### acorn - alogin02.acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2_a ;; ### acorn - adecflow01.acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### acorn - adecflow02.acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### acorn - dlogin01.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dodwood - dlogin02.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dodwood - dlogin03.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dodwood - dlogin04.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dodwood - dlogin05.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dodwood - dlogin06.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dodwood - dlogin07.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dodwood - dlogin08.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dodwood - dlogin09.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dodwood - clogin01.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus - clogin02.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus - clogin03.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus - clogin04.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus - clogin05.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus - clogin06.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus - clogin07.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus - clogin08.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus - clogin09.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus - - gaea9) MACHINE_ID=gaea ;; ### gaea9 - gaea10) MACHINE_ID=gaea ;; ### gaea10 - gaea11) MACHINE_ID=gaea ;; ### gaea11 - gaea12) MACHINE_ID=gaea ;; ### gaea12 - gaea13) MACHINE_ID=gaea ;; ### gaea13 - gaea14) MACHINE_ID=gaea ;; ### gaea14 - gaea15) MACHINE_ID=gaea ;; ### gaea15 - gaea16) MACHINE_ID=gaea ;; ### gaea16 - gaea9.ncrc.gov) MACHINE_ID=gaea ;; ### gaea9 - gaea10.ncrc.gov) MACHINE_ID=gaea ;; ### gaea10 - gaea11.ncrc.gov) MACHINE_ID=gaea ;; ### gaea11 - gaea12.ncrc.gov) MACHINE_ID=gaea ;; ### gaea12 - gaea13.ncrc.gov) MACHINE_ID=gaea ;; ### gaea13 - gaea14.ncrc.gov) MACHINE_ID=gaea ;; ### gaea14 - gaea15.ncrc.gov) MACHINE_ID=gaea ;; ### gaea15 - gaea16.ncrc.gov) MACHINE_ID=gaea ;; ### gaea16 - - gaea5[0-9]*) MACHINE_ID=gaea-c5 ;; ### GAEA C5 login node - - hfe01) MACHINE_ID=hera ;; ### hera01 - hfe02) MACHINE_ID=hera ;; ### hera02 - hfe03) MACHINE_ID=hera ;; ### hera03 - hfe04) MACHINE_ID=hera ;; ### hera04 - hfe05) MACHINE_ID=hera ;; ### hera05 - hfe06) MACHINE_ID=hera ;; ### hera06 - hfe07) MACHINE_ID=hera ;; ### hera07 - hfe08) MACHINE_ID=hera ;; ### hera08 - hfe09) MACHINE_ID=hera ;; ### hera09 - hfe10) MACHINE_ID=hera ;; ### hera10 - hfe11) MACHINE_ID=hera ;; ### hera11 - hfe12) MACHINE_ID=hera ;; ### hera12 - - fe1) MACHINE_ID=jet ;; ### jet01 - fe2) MACHINE_ID=jet ;; ### jet02 - fe3) MACHINE_ID=jet ;; ### jet03 - fe4) MACHINE_ID=jet ;; ### jet04 - fe5) MACHINE_ID=jet ;; ### jet05 - fe6) MACHINE_ID=jet ;; ### jet06 - fe7) MACHINE_ID=jet ;; ### jet07 - fe8) MACHINE_ID=jet ;; ### jet08 - tfe1) MACHINE_ID=jet ;; ### jet09 - tfe2) MACHINE_ID=jet ;; ### jet10 - - Orion-login-1.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion1 - Orion-login-2.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion2 - Orion-login-3.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion3 - Orion-login-4.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion4 - - Hercules-login-1.HPC.MsState.Edu) MACHINE_ID=hercules ;; ### hercules1 - Hercules-login-2.HPC.MsState.Edu) MACHINE_ID=hercules ;; ### hercules2 - Hercules-login-3.HPC.MsState.Edu) MACHINE_ID=hercules ;; ### hercules3 - Hercules-login-4.HPC.MsState.Edu) MACHINE_ID=hercules ;; ### hercules4 - - cheyenne1.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1 - cheyenne2.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne2 - cheyenne3.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne3 - cheyenne4.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne4 - cheyenne5.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne5 - cheyenne6.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne6 - cheyenne1.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1 - cheyenne2.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne2 - cheyenne3.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne3 - cheyenne4.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne4 - cheyenne5.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne5 - cheyenne6.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne6 - - login1.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede1 - login2.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede2 - login3.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede3 - login4.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede4 - - s4-submit.ssec.wisc.edu) MACHINE_ID=s4 ;; ### S4 - - *) MACHINE_ID=unknown + adecflow0[12].acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=acorn ;; ### acorn + alogin0[123].acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=acorn ;; ### acorn + clogin0[1-9].cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus01-9 + clogin10.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus10 + dlogin0[1-9].dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dogwood01-9 + dlogin10.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dogwood10 + + gaea5[1-8]) MACHINE_ID=gaea ;; ### gaea51-58 + gaea5[1-8].ncrc.gov) MACHINE_ID=gaea ;; ### gaea51-58 + + hfe0[1-9]) MACHINE_ID=hera ;; ### hera01-09 + hfe1[01]) MACHINE_ID=hera ;; ### hera10-11 + hecflow01) MACHINE_ID=hera ;; ### heraecflow01 + + s4-submit.ssec.wisc.edu) MACHINE_ID=s4 ;; ### s4 + + fe[1-8]) MACHINE_ID=jet ;; ### jet1-8 + tfe[12]) MACHINE_ID=jet ;; ### tjet1-2 + + Orion-login-[1-4].HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion1-4 + + [Hh]ercules-login-[1-4].[Hh][Pp][Cc].[Mm]s[Ss]tate.[Ee]du) MACHINE_ID=hercules ;; ### hercules1-4 + + derecho[1-8].hsn.de.hpc.ucar.edu) MACHINE_ID=derecho ;; ### derecho1-8 + + login[1-4].stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede1-4 + + login0[1-2].expanse.sdsc.edu) MACHINE_ID=expanse ;; ### expanse1-2 + + discover3[1-5].prv.cube) MACHINE_ID=discover ;; ### discover31-35 + *) MACHINE_ID=UNKNOWN ;; # Unknown platform esac -# Overwrite auto-detect with RT_MACHINE if set -MACHINE_ID=${RT_MACHINE:-${MACHINE_ID}} +if [[ ${MACHINE_ID} == "UNKNOWN" ]]; then + case ${PW_CSP:-} in + "aws" | "google" | "azure") MACHINE_ID=noaacloud ;; + *) PW_CSP="UNKNOWN" + esac +fi + +# Overwrite auto-detect with MACHINE if set +MACHINE_ID=${MACHINE:-${MACHINE_ID}} -# Append compiler -#if [ $MACHINE_ID = orion ] || [ $MACHINE_ID = hera ] || [ $MACHINE_ID = cheyenne ] || [ $MACHINE_ID = jet ] || [ $MACHINE_ID = gaea ] || [ $MACHINE_ID = stampede ] || [ $MACHINE_ID = s4 ]; then -# MACHINE_ID=${MACHINE_ID}.${RT_COMPILER} -#fi +# If MACHINE_ID is no longer UNKNNOWN, return it +if [[ "${MACHINE_ID}" != "UNKNOWN" ]]; then + return +fi -echo "Machine: " $MACHINE_ID +# Try searching based on paths since hostname may not match on compute nodes +if [[ -d /lfs/h3 ]]; then + # We are on NOAA Cactus or Dogwood + MACHINE_ID=wcoss2 +elif [[ -d /lfs/h1 && ! -d /lfs/h3 ]]; then + # We are on NOAA TDS Acorn + MACHINE_ID=acorn +elif [[ -d /mnt/lfs1 ]]; then + # We are on NOAA Jet + MACHINE_ID=jet +elif [[ -d /scratch1 ]]; then + # We are on NOAA Hera + MACHINE_ID=hera +elif [[ -d /work ]]; then + # We are on MSU Orion or Hercules + if [[ -d /apps/other ]]; then + # We are on Hercules + MACHINE_ID=hercules + else + MACHINE_ID=orion + fi +elif [[ -d /gpfs && -d /ncrc ]]; then + # We are on GAEA. + MACHINE_ID=gaea +elif [[ -d /data/prod ]]; then + # We are on SSEC's S4 + MACHINE_ID=s4 +else + echo WARNING: UNKNOWN PLATFORM 1>&2 +fi