From b469e27459c17cd8372ee86a6294c313c9092897 Mon Sep 17 00:00:00 2001 From: EricJames-NOAA Date: Wed, 29 Nov 2023 18:48:56 -0700 Subject: [PATCH 01/29] Introducing blowing snow impact on visibility (#823) * Introducing blowing snow effect on GSL visibility diagnostic. * Reverting change to compile_upp.sh * Changing "method_blsn" to a namelist option, set to "true" by default. * Adding change log entry to WRFPOST.f --- sorc/ncep_post.fd/CALVIS_GSD.f | 52 ++++++++++++++++++++++++++++++++-- sorc/ncep_post.fd/CTLBLK.f | 2 ++ sorc/ncep_post.fd/WRFPOST.f | 6 ++-- 3 files changed, 56 insertions(+), 4 deletions(-) diff --git a/sorc/ncep_post.fd/CALVIS_GSD.f b/sorc/ncep_post.fd/CALVIS_GSD.f index ca9028294e..c2795a6e52 100644 --- a/sorc/ncep_post.fd/CALVIS_GSD.f +++ b/sorc/ncep_post.fd/CALVIS_GSD.f @@ -91,13 +91,15 @@ 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 ! !------------------------------------------------------------------ ! + use vrbls2d, only: sno, si, ustar 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 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 +111,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 +306,45 @@ 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) 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/WRFPOST.f b/sorc/ncep_post.fd/WRFPOST.f index d2b0ef546a..01a63baa1d 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 @@ -127,7 +128,7 @@ 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 !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -153,7 +154,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 +262,7 @@ PROGRAM WRFPOST aqf_on = .false. slrutah_on = .false. gtg_on = .false. + method_blsn = .true. popascal = .false. fileNameAER = '' rdaod = .false. From 987c7f2af3064c5175b5a37e1568e5083c68bad1 Mon Sep 17 00:00:00 2001 From: souopgui Date: Fri, 1 Dec 2023 09:13:27 -0600 Subject: [PATCH 02/29] Update UPP modulefile on S4 with spack-stack 1.5.0 (#828) * Rename s4 to s4.lua, update to use spack-stack on s4 * Update modulefiles for s4 to make it uniform with other platform --------- Co-authored-by: Innocent Souopgui --- modulefiles/s4 | 33 --------------------------------- modulefiles/s4.lua | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 33 deletions(-) delete mode 100644 modulefiles/s4 create mode 100644 modulefiles/s4.lua diff --git a/modulefiles/s4 b/modulefiles/s4 deleted file mode 100644 index f41835c428..0000000000 --- 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 0000000000..3a42fa888a --- /dev/null +++ b/modulefiles/s4.lua @@ -0,0 +1,24 @@ +-- --------------------------------------------------------------------------- +-- David Huber 06/2021, Set up config. with the hpc-stack NCEPLIBS. +-- Innocent Souopgui 11/2023, Update to use spack-stack +-- --------------------------------------------------------------------------- + + +prepend_path("MODULEPATH", "/data/prod/jedi/spack-stack/spack-stack-1.5.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") + From be5bfdf1a694f9ac43a871d19dee2cd7a762f69f Mon Sep 17 00:00:00 2001 From: WenMeng-NOAA <48260754+WenMeng-NOAA@users.noreply.github.com> Date: Fri, 8 Dec 2023 09:01:25 -0500 Subject: [PATCH 03/29] Remove 3 hybrid level variables from RRFS products. (#836) * Remove 3 hybrid level variables from RRFS products. * Add fix for ci failture --- .github/workflows/intel.yml | 2 +- parm/fv3lam_rrfs.xml | 29 ------- parm/postxconfig-NT-fv3lam_rrfs.txt | 113 +--------------------------- 3 files changed, 2 insertions(+), 142 deletions(-) diff --git a/.github/workflows/intel.yml b/.github/workflows/intel.yml index 9819136deb..ad3f5140be 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/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index d0c19c95a4..32be83d2c2 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -2182,15 +2182,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 @@ -2677,16 +2668,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 @@ -2696,16 +2677,6 @@ 3.0 - - 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. -49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. - 3.0 - - 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. diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index dbda5521e4..db487e8164 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -1,6 +1,6 @@ 3 3 -250 +247 308 PRSLEV 32769 @@ -11948,43 +11948,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 ? @@ -14538,43 +14501,6 @@ hybrid_lvl ? ? ? -766 -GSD_NCWFA_ON_HYBRID_LVL -? -1 -tmpl4_0 -PMTF -NCEP -? -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 -? -? -? 754 GSD_NCRAIN_ON_HYBRID_LVL ? @@ -14612,43 +14538,6 @@ hybrid_lvl ? ? ? -767 -GSD_NCIFA_ON_HYBRID_LVL -? -1 -tmpl4_0 -PMTC -NCEP -? -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 -? -? -? 737 SMOKE_ON_HYBRID_LVL ? From 40b7dbd4b5ae43b6e7c8efb10917438d8c459f38 Mon Sep 17 00:00:00 2001 From: Fernando Andrade - NOAA <121964418+FernandoAndrade-NOAA@users.noreply.github.com> Date: Fri, 8 Dec 2023 10:32:45 -0700 Subject: [PATCH 04/29] Jenkins RT Improvements (#837) * Adding comment function * Updating addresses to personal repo * changing token back to epic cicd * testing token for build status * Update rt.sh Exit code 1 if results changed and text file for Jenkins to output changes. * updating comment body for failures * sample bl change for fail test * Update Jenkinsfile echo messages for debug * Updating location of txt file * moving post section into Hera * printing txt file for debug * Update Jenkinsfile * fixing double quotes * changing read file function * changing comment body format * changing comment message format * escaping \ character * testing message part * change comment format * adding prints * trying vaired comment message tests * posting just original message * Update Jenkinsfile * Update Jenkinsfile escape newlines * Update Jenkinsfile * update comment message * adding escape for newlines * fixing escape characters * add newline before diff info * fixing first newline * fix first newline * code cleanup * move logic to function * add global variable * fix variable placements * fixing typo * add back missing line * Update access token * code cleanup * fixing token * fixing typo * add function to other platforms * test change naming convention * changing machine name convention back * set up parallel stages * fix pass comment message * fix newlines * fixing formatting, adding extra newline * testing on jet only * testing on orion only * testing hercules only * run orion and hera * testing all * switching order * running just orion * add back hercules * switch Hercules and hera * full test again * adding sleeps * edit sleeps * adding retries * add try catch for retry * remove extra bracket * add script step * remove try catch block * Update Jenkinsfile add Hercules Adds Hercules Jenkins steps, should be the same as Orion. rt.sh should be creating separate machine-specific test directories. * try different method of retry * run orion alone * retry orion * orion and jet * Orion, jet, and Hercules * move orion to the end * fix parentheses * move orion location * testing non parallel method * skip hera due to maintenance * Re-add Hera and clean up * Updating comment destination to NOAA-EMC repo * revert dummy bl change --------- Co-authored-by: ankimball <131040494+ankimball@users.noreply.github.com> --- ci/Jenkinsfile | 307 ++++++++++++++++++++++++++++++------------------- ci/rt.sh | 8 ++ 2 files changed, 198 insertions(+), 117 deletions(-) diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile index 8b610a4ee4..d4ca030c9f 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 7bce25424f..c556915cc7 100755 --- a/ci/rt.sh +++ b/ci/rt.sh @@ -236,12 +236,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 From d7ab9b8e9b390b31feaab6c8d4fa85a7879374de Mon Sep 17 00:00:00 2001 From: AndrewBenjamin-NOAA <103067657+AndrewBenjamin-NOAA@users.noreply.github.com> Date: Wed, 13 Dec 2023 18:19:16 -0500 Subject: [PATCH 05/29] Changing duplicate product ids from local use to WMO (#827) * removed NCEP from CPOFP at the surface. Use WMO id over NCEP local use * removed NCEP from CRAIN, CFRZR, CICEP, CSNOW * removed NCEP from HPBL, REFD (1000, and 4000m above groud 1,2 hybrid levels), LFTX (500-1000mb), REFC (entire atmos), RETOP (entire atmos), USTM, and VSTM * removed NCEP table flag for CFRZR in the prslev file to match native file * removed NCEP from for 4LFTX (180-0mb) * removed NCEP from for REFD: 263K level. --- parm/fv3lam_rrfs.xml | 50 ++++++-------------------- parm/postxconfig-NT-fv3lam_rrfs.txt | 54 ++++++++++++++--------------- 2 files changed, 38 insertions(+), 66 deletions(-) diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index 32be83d2c2..8017cfa25f 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -128,7 +128,6 @@ REFD_ON_HYBRID_LVL REFD - NCEP 1. 2. 4.0 @@ -593,7 +592,6 @@ LFTX_ON_ISOBARIC_SFC_500-1000hpa LFTX - NCEP 50000. 100000. 3.0 @@ -602,7 +600,6 @@ 4LFTX_ON_SPEC_PRES_ABOVE_GRND 4LFTX - NCEP 18000. 0. 3.0 @@ -714,7 +711,6 @@ USTM_ON_SPEC_HGT_LVL_ABOVE_GRND USTM - NCEP 6000. 4.0 @@ -722,7 +718,6 @@ VSTM_ON_SPEC_HGT_LVL_ABOVE_GRND VSTM - NCEP 6000. 4.0 @@ -810,30 +805,25 @@ 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 +834,6 @@ CPOFP_ON_SURFACE CPOFP - NCEP 4.0 @@ -1463,7 +1452,6 @@ REFC_ON_ENTIRE_ATMOS REFC - NCEP 4.0 @@ -1484,7 +1472,6 @@ REFD_ON_SPEC_HGT_LVL_ABOVE_GRND REFD - NCEP 4000. 1000. 4.0 @@ -1508,8 +1495,7 @@ HPBL_ON_SURFACE HPBL - NCEP - 6.0 + 6.0 @@ -1747,8 +1733,7 @@ RETOP_ON_ENTIRE_ATMOS_SINGLE_LYR RETOP - NCEP - 6.0 + 6.0 @@ -1921,7 +1906,6 @@ REFD_ON_ISOTHERMAL REFD - NCEP isothermal 263. -4.0 @@ -2391,7 +2375,6 @@ REFD_ON_ISOTHERMAL REFD - NCEP isothermal 263. -4.0 @@ -2493,7 +2476,6 @@ 4LFTX_ON_SPEC_PRES_ABOVE_GRND 4LFTX - NCEP 18000. 0. 3.0 @@ -2558,30 +2540,26 @@ 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 @@ -2592,7 +2570,6 @@ CPOFP_ON_SURFACE CPOFP - NCEP 4.0 @@ -3050,7 +3027,6 @@ LFTX_ON_ISOBARIC_SFC_500-1000hpa LFTX - NCEP 50000. 100000. 3.0 @@ -3157,7 +3133,6 @@ USTM_ON_SPEC_HGT_LVL_ABOVE_GRND USTM - NCEP 6000. 4.0 @@ -3165,7 +3140,6 @@ VSTM_ON_SPEC_HGT_LVL_ABOVE_GRND VSTM - NCEP 6000. 4.0 @@ -3396,7 +3370,6 @@ REFC_ON_ENTIRE_ATMOS REFC - NCEP 4.0 @@ -3476,8 +3449,7 @@ HPBL_ON_SURFACE HPBL - NCEP - 6.0 + 6.0 diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index db487e8164..a8c5eebfd5 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -579,7 +579,7 @@ REFD_ON_HYBRID_LVL 1 tmpl4_0 REFD -NCEP +? ? hybrid_lvl 0 @@ -2984,7 +2984,7 @@ LFTX_ON_ISOBARIC_SFC_500-1000hpa 1 tmpl4_0 LFTX -NCEP +? ? isobaric_sfc 0 @@ -3021,7 +3021,7 @@ isobaric_sfc 1 tmpl4_0 4LFTX -NCEP +? ? spec_pres_above_grnd 0 @@ -3576,7 +3576,7 @@ USTM_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 USTM -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -3613,7 +3613,7 @@ VSTM_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 VSTM -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -4168,7 +4168,7 @@ GSD_instant precipitation type on surface 1 tmpl4_0 CRAIN -NCEP +? ? surface 0 @@ -4205,7 +4205,7 @@ GSD_Categorical snow on surface 1 tmpl4_0 CSNOW -NCEP +? ? surface 0 @@ -4242,7 +4242,7 @@ GSD_Categorical ice pellets on surface 1 tmpl4_0 CICEP -NCEP +? ? surface 0 @@ -4279,7 +4279,7 @@ GSD_Categorical freezing rain on surface 1 tmpl4_0 CFRZR -NCEP +? ? surface 0 @@ -4353,7 +4353,7 @@ CPOFP_ON_SURFACE 1 tmpl4_0 CPOFP -NCEP +? ? surface 0 @@ -7831,7 +7831,7 @@ REFC_ON_ENTIRE_ATMOS 1 tmpl4_0 REFC -NCEP +? ? entire_atmos_single_lyr 0 @@ -7942,7 +7942,7 @@ REFD_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 REFD -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -8053,7 +8053,7 @@ HPBL_ON_SURFACE 1 tmpl4_0 HPBL -NCEP +? ? surface 0 @@ -9533,7 +9533,7 @@ RETOP_ON_ENTIRE_ATMOS_SINGLE_LYR 1 tmpl4_0 RETOP -NCEP +? ? entire_atmos_single_lyr 0 @@ -10495,7 +10495,7 @@ REFD_ON_ISOTHERMAL 1 tmpl4_0 REFD -NCEP +? ? isothermal 0 @@ -13101,7 +13101,7 @@ REFD_ON_ISOTHERMAL 1 tmpl4_0 REFD -NCEP +? ? isothermal 0 @@ -13619,7 +13619,7 @@ surface 1 tmpl4_0 4LFTX -NCEP +? ? spec_pres_above_grnd 0 @@ -13989,7 +13989,7 @@ GSD_instant precipitation type on surface 1 tmpl4_0 CRAIN -NCEP +? ? surface 0 @@ -14026,7 +14026,7 @@ GSD_Categorical snow on surface 1 tmpl4_0 CSNOW -NCEP +? ? surface 0 @@ -14063,7 +14063,7 @@ GSD_Categorical ice pellets on surface 1 tmpl4_0 CICEP -NCEP +? ? surface 0 @@ -14100,7 +14100,7 @@ GSD_Categorical freezing rain on surface 1 tmpl4_0 CFRZR -NCEP +? ? surface 0 @@ -14174,7 +14174,7 @@ CPOFP_ON_SURFACE 1 tmpl4_0 CPOFP -NCEP +? ? surface 0 @@ -16542,7 +16542,7 @@ LFTX_ON_ISOBARIC_SFC_500-1000hpa 1 tmpl4_0 LFTX -NCEP +? ? isobaric_sfc 0 @@ -17060,7 +17060,7 @@ USTM_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 USTM -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -17097,7 +17097,7 @@ VSTM_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 VSTM -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -18466,7 +18466,7 @@ REFC_ON_ENTIRE_ATMOS 1 tmpl4_0 REFC -NCEP +? ? entire_atmos_single_lyr 0 @@ -18910,7 +18910,7 @@ HPBL_ON_SURFACE 1 tmpl4_0 HPBL -NCEP +? ? surface 0 From 01cdf7fec927575c7939460207c74a7be35d2fdf Mon Sep 17 00:00:00 2001 From: "Samuel Trahan (NOAA contractor)" <39415369+SamuelTrahanNOAA@users.noreply.github.com> Date: Wed, 20 Dec 2023 15:58:34 -0500 Subject: [PATCH 06/29] libIFI does not request NetCDF (#843) A bug in the libIFI.fd/CMakeFile caused it to ask for NetCDF C++ when building in the post. This updates to a hash of libIFI with that bug fixed. There is no need to update the libIFI installations. Only the option for building in UPP has changed. --- sorc/libIFI.fd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/libIFI.fd b/sorc/libIFI.fd index 41dd43d7c5..df7b97c407 160000 --- a/sorc/libIFI.fd +++ b/sorc/libIFI.fd @@ -1 +1 @@ -Subproject commit 41dd43d7c552b0981b894dcc0f9db507a120f7e2 +Subproject commit df7b97c407b651dfb9454554efbe6c22cebb6f37 From 8dc432973c753ef1792be014346ce6648c761f56 Mon Sep 17 00:00:00 2001 From: Edward Hartnett <38856240+edwardhartnett@users.noreply.github.com> Date: Thu, 11 Jan 2024 13:53:37 -0700 Subject: [PATCH 07/29] changed name of documentation target to avoid conflict with other UFS repos (#849) --- docs/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 633bbbd0fb..c6774887ee 100644 --- a/docs/CMakeLists.txt +++ b/docs/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) From 5c4372e4d4e2dba74f32ee8deff450b53c3cf495 Mon Sep 17 00:00:00 2001 From: "Samuel Trahan (NOAA contractor)" <39415369+SamuelTrahanNOAA@users.noreply.github.com> Date: Fri, 12 Jan 2024 09:29:49 -0500 Subject: [PATCH 08/29] RRFS IFI crash fix + debug mode change (#852) * When building for debug with internal ifi, enable ifi debug too * libIFI: fix for RRFS crash (tested on Hera but not WCOSS yet * libIFI: use thetaW extreme value instead of inserting missing value * point to head of main libIFI --- sorc/libIFI.fd | 2 +- tests/compile_upp.sh | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/sorc/libIFI.fd b/sorc/libIFI.fd index df7b97c407..1ba8270870 160000 --- a/sorc/libIFI.fd +++ b/sorc/libIFI.fd @@ -1 +1 @@ -Subproject commit df7b97c407b651dfb9454554efbe6c22cebb6f37 +Subproject commit 1ba8270870947b583cd51bc72ff8960f4c1fb36e diff --git a/tests/compile_upp.sh b/tests/compile_upp.sh index 078a63b8c8..2ecfe9f5eb 100755 --- a/tests/compile_upp.sh +++ b/tests/compile_upp.sh @@ -61,6 +61,14 @@ while getopts ":p:gwc:vhiId" opt; do ;; esac done + +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"${wrfio_opt}${gtg_opt}${ifi_opt}${debug_opt} if [[ $(uname -s) == Darwin ]]; then @@ -112,6 +120,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} From 40a67b9ff01f428a06d3012a78c85b68de218113 Mon Sep 17 00:00:00 2001 From: WenMeng-NOAA <48260754+WenMeng-NOAA@users.noreply.github.com> Date: Fri, 19 Jan 2024 17:13:11 -0500 Subject: [PATCH 09/29] Update grib2 tables with g2tmpl v1.10.2 and change soil moisture grib2 name (#855) * Update grib2 tables with g2tmpl v1.10.2. * Change grib2 name 'SOILM' into 'SOILOI' in post_avblflds files and gfs, rap, nam control files. --- parm/nam_cntrl_cmaq.xml | 6 +++--- parm/nam_post_avblflds.xml | 2 +- parm/ngac_post_avblflds.xml | 2 +- parm/params_grib2_tbl_new | 1 - parm/params_grib2_tbl_new.text | 6 ++++-- parm/post_avblflds.xml | 2 +- parm/post_avblflds_raphrrr.xml | 2 +- parm/postxconfig-NT-GFS-F00-TWO.txt | 2 +- parm/postxconfig-NT-GFS-FLUX-F00.txt | 2 +- parm/postxconfig-NT-GFS-FLUX.txt | 2 +- parm/postxconfig-NT-GFS-TWO.txt | 2 +- parm/postxconfig-NT-NMM.txt | 6 +++--- parm/postxconfig-NT-rap.txt | 2 +- 13 files changed, 19 insertions(+), 18 deletions(-) diff --git a/parm/nam_cntrl_cmaq.xml b/parm/nam_cntrl_cmaq.xml index ba4fd3ef35..32ba724a4d 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 9aeabac160..1601ce92b2 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 6c1e3e42fe..49057cdfee 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 514fc5fa98..26a83ac3a1 100755 --- a/parm/params_grib2_tbl_new +++ b/parm/params_grib2_tbl_new @@ -936,7 +936,6 @@ 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 diff --git a/parm/params_grib2_tbl_new.text b/parm/params_grib2_tbl_new.text index eef62d2dd7..f5ef8d2e23 100755 --- a/parm/params_grib2_tbl_new.text +++ b/parm/params_grib2_tbl_new.text @@ -97,7 +97,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 @@ -953,6 +953,7 @@ 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 @@ -973,7 +974,8 @@ 2 0 19 0 RCT 2 0 20 0 RCSOL 2 0 21 0 RCQ - 2 0 22 0 SOILM +! 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 diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 2f58ff3ea6..a1c42093da 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -297,7 +297,7 @@ 36 SOILM_ON_DEPTH_BEL_LAND_SFC - SOILM + SOILMOI depth_bel_land_sfc depth_bel_land_sfc 3.0 diff --git a/parm/post_avblflds_raphrrr.xml b/parm/post_avblflds_raphrrr.xml index 617a515570..65895a026f 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/postxconfig-NT-GFS-F00-TWO.txt b/parm/postxconfig-NT-GFS-F00-TWO.txt index 229c1f52e9..de64c9545c 100644 --- a/parm/postxconfig-NT-GFS-F00-TWO.txt +++ b/parm/postxconfig-NT-GFS-F00-TWO.txt @@ -7475,7 +7475,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +SOILMOI ? ? depth_bel_land_sfc diff --git a/parm/postxconfig-NT-GFS-FLUX-F00.txt b/parm/postxconfig-NT-GFS-FLUX-F00.txt index 26b7058c80..8ba5573486 100644 --- a/parm/postxconfig-NT-GFS-FLUX-F00.txt +++ b/parm/postxconfig-NT-GFS-FLUX-F00.txt @@ -1686,7 +1686,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +SOILMOI ? ? depth_bel_land_sfc diff --git a/parm/postxconfig-NT-GFS-FLUX.txt b/parm/postxconfig-NT-GFS-FLUX.txt index d5f224d471..8af5fed45b 100644 --- a/parm/postxconfig-NT-GFS-FLUX.txt +++ b/parm/postxconfig-NT-GFS-FLUX.txt @@ -3832,7 +3832,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +SOILMOI ? ? depth_bel_land_sfc diff --git a/parm/postxconfig-NT-GFS-TWO.txt b/parm/postxconfig-NT-GFS-TWO.txt index ba22c218fc..a417134f43 100644 --- a/parm/postxconfig-NT-GFS-TWO.txt +++ b/parm/postxconfig-NT-GFS-TWO.txt @@ -11619,7 +11619,7 @@ SOILM_ON_DEPTH_BEL_LAND_SFC ? 1 tmpl4_0 -SOILM +SOILMOI ? ? depth_bel_land_sfc diff --git a/parm/postxconfig-NT-NMM.txt b/parm/postxconfig-NT-NMM.txt index 002bbcae04..5ebaf30858 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-rap.txt b/parm/postxconfig-NT-rap.txt index c76b783977..c8f5d97eb2 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 From 945cb2cef5e8bd5949afd4f0fc35c4fb6e95a1bf Mon Sep 17 00:00:00 2001 From: Jili Dong Date: Tue, 23 Jan 2024 08:25:20 -0500 Subject: [PATCH 10/29] fix missing reflectivity bug by adding nssl mp to the microphysics options when assigning model reflectivity (#858) --- sorc/ncep_post.fd/MDLFLD.f | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f index bb0265d584..1cdfbef230 100644 --- a/sorc/ncep_post.fd/MDLFLD.f +++ b/sorc/ncep_post.fd/MDLFLD.f @@ -587,7 +587,7 @@ SUBROUTINE MDLFLD ELSE IF(((MODELNAME == 'NMM' .and. GRIDTYPE=='B') .OR. MODELNAME == 'FV3R' & .OR. MODELNAME == 'GFS') & - .and. imp_physics==8)THEN !NMMB or FV3R or GFS +THOMPSON + .and. (imp_physics==8 .or. imp_physics==17 .or. imp_physics==18))THEN !NMMB or FV3R or GFS +THOMPSON DO L=1,LM DO J=JSTA,JEND DO I=ista,iend From 775e6ed47cdd685501dd8c1afed98814abecec44 Mon Sep 17 00:00:00 2001 From: EricJames-NOAA Date: Thu, 25 Jan 2024 10:20:53 -0700 Subject: [PATCH 11/29] Bug fix for GSL precip type (#861) * Making the snow ratio computation consistent throughout GSD precip type analysis * Correction to SURFCE.f * Clean up indentation in SURFCE.f * Adding change log entry. * Adding check for model name; only use consistent snow ratio is we are running RRFS --- sorc/ncep_post.fd/SURFCE.f | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sorc/ncep_post.fd/SURFCE.f b/sorc/ncep_post.fd/SURFCE.f index 7677f65841..e3ca85ab8e 100644 --- a/sorc/ncep_post.fd/SURFCE.f +++ b/sorc/ncep_post.fd/SURFCE.f @@ -45,6 +45,7 @@ !> 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. !> !> @note !> USAGE: CALL SURFCE @@ -5162,15 +5163,18 @@ SUBROUTINE SURFCE ! 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 ! --------------------------------------------------------------- From cd58d226ecde08487bba80caa159e33ad52e3200 Mon Sep 17 00:00:00 2001 From: hsinmulin-NOAA <48441737+hsinmulin-NOAA@users.noreply.github.com> Date: Thu, 25 Jan 2024 17:47:12 -0500 Subject: [PATCH 12/29] Additional GTG output "CIT" (#839) * add CIT add "CIT" as additional GTG output * add CIT additional "CIT" related GTG output changes for the UPP * add CIT additional GTG output variable "CIT" * Update CMakeLists.txt Add "gtg_interp.F90" per updated GTG_4.15 version that pulls all the interpolation to this file. * update gtg code revision * Create gtg_interp.F90 Stub code for GTG protection but to make UPP public to work * Update MDLFLD.f for GTG special issue The code change is to speed up and resolved the non-identical UPP outputs when compare GTG on & off (used or not used). * Update MDLFLD.f Add comments for the change log * Update MDLFLD.f correct 470 to 477 to consistent with CITEDR in "post_avblflds.xml" * Add files via upload 1. update the comments 2. fix the issue that the last vertical level of CIT in AVIATI10.tm00 of RRFS GTG per MISCLN.f * Add files via upload fix the issue that the last vertical level of CIT in AVIATI10.tm00 of RRFS GTG per change in MISCLN.f * Update MDLFLD.f switching GTG max to gtgx3 from gtgx2. * Update MDLFLD.f add comment for the change --- parm/fv3lam_rrfs.xml | 44 ++++++++ parm/params_grib2_tbl_new | 1 + parm/params_grib2_tbl_new.text | 2 + parm/post_avblflds.xml | 9 ++ parm/postxconfig-NT-fv3lam_rrfs.txt | 167 +++++++++++++++++++++++++++- sorc/ncep_post.fd/CMakeLists.txt | 1 + sorc/ncep_post.fd/MDLFLD.f | 9 +- sorc/ncep_post.fd/MISCLN.f | 19 +++- sorc/ncep_post.fd/gtg_interp.F90 | 4 + sorc/ncep_post.fd/post_gtg.fd | 2 +- 10 files changed, 249 insertions(+), 9 deletions(-) create mode 100644 sorc/ncep_post.fd/gtg_interp.F90 diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index 8017cfa25f..3985377f08 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -3777,4 +3777,48 @@ 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 + + + 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. 0. + 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/params_grib2_tbl_new b/parm/params_grib2_tbl_new index 26a83ac3a1..c3cdd17de3 100755 --- a/parm/params_grib2_tbl_new +++ b/parm/params_grib2_tbl_new @@ -147,6 +147,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 diff --git a/parm/params_grib2_tbl_new.text b/parm/params_grib2_tbl_new.text index f5ef8d2e23..5059b025c8 100755 --- a/parm/params_grib2_tbl_new.text +++ b/parm/params_grib2_tbl_new.text @@ -751,6 +751,8 @@ 0 19 36 0 PSNOWS ! Added more parameters in 12/03/2019 0 19 37 0 ICESEV +! Added more parameters in 11/01/2023 + 0 19 50 0 CITEDR ! NCEP Local use 0 19 192 1 MXSALB 0 19 193 1 SNFALB diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index a1c42093da..974f6ce1e4 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -4146,6 +4146,15 @@ 6.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 diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index a8c5eebfd5..fb1741805f 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -1,4 +1,5 @@ -3 +4 +4 3 247 308 @@ -20696,3 +20697,167 @@ 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 +467 +EDPARM_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL +? +1 +tmpl4_0 +EDPARM +? +? +spec_alt_above_mean_sea_lvl +0 +? +52 +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.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/sorc/ncep_post.fd/CMakeLists.txt b/sorc/ncep_post.fd/CMakeLists.txt index 8a8b6da26c..1968280b37 100644 --- a/sorc/ncep_post.fd/CMakeLists.txt +++ b/sorc/ncep_post.fd/CMakeLists.txt @@ -135,6 +135,7 @@ list(APPEND GTG_LIB_SRC gtg_read_config.F90 gtg_mlmodel.F90 gtg_prob.F90 + gtg_interp.F90 gtg_ctlblk.F90 gtg_filter.F90 gtg_indices.F90 diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f index 1cdfbef230..375da5f15e 100644 --- a/sorc/ncep_post.fd/MDLFLD.f +++ b/sorc/ncep_post.fd/MDLFLD.f @@ -57,7 +57,10 @@ !! 23-08-16 | Y Mao | For gtg_algo, add tke as an input and cit as an output !! 23-08-16 | Y Mao | For GTG, replace iget(ID) with namelist option 'gtg_on'. !! 23-10-04 | W Meng | Read 3D radar reflectivity from model when GFS use Thmopson MP -!! 23-10-17 | E James | Include hail hydrometeors in VIL computation when available +!! 23-10-17 | E James| Include hail hydrometeors in VIL computation when available +!! 24-01-07 | Y Mao | Add EDPARM IDs to the condition to call gtg_algo() +!! 24-01-24 | H Lin | switching GTG max (gtg) to gtgx3 from gtgx2 per gtg_algo() call +!! !! USAGE: CALL MDLFLD !! INPUT ARGUMENT LIST: !! @@ -4205,7 +4208,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 +4228,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 e1b8b897a9..1362b372d4 100644 --- a/sorc/ncep_post.fd/MISCLN.f +++ b/sorc/ncep_post.fd/MISCLN.f @@ -55,6 +55,8 @@ !! 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. !! USAGE: CALL MISCLN !! INPUT ARGUMENT LIST: !! @@ -93,7 +95,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 +1202,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,6 +1230,14 @@ SUBROUTINE MISCLN QTYPE(nFDS)="O" end if + 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, except for EDPARM ! Use levels of iID=468 for interpolation iID=468 @@ -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 @@ -1272,6 +1282,7 @@ SUBROUTINE MISCLN ! Regional GTG has a legend of special defination ! 0 m holds the max value of the whole vertical column +! 0 m is the last height in the control file if (iID == 467) then EGRID1 = SPVAL DO IFD = 1,NFDCTL @@ -1294,7 +1305,7 @@ SUBROUTINE MISCLN if(grib=='grib2') then cfld=cfld+1 fld_info(cfld)%ifld=IAVBLFLD(IGET(iID)) - fld_info(cfld)%lvl=0. + fld_info(cfld)%lvl=NFDCTL+1 !$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/gtg_interp.F90 b/sorc/ncep_post.fd/gtg_interp.F90 new file mode 100644 index 0000000000..57147900b4 --- /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 a9828705b5..333bd604ca 160000 --- a/sorc/ncep_post.fd/post_gtg.fd +++ b/sorc/ncep_post.fd/post_gtg.fd @@ -1 +1 @@ -Subproject commit a9828705b587c451fc2a7267d1c374d737be425b +Subproject commit 333bd604ca59f5914ab8d91fe4b66452418f16ee From 6331f0bb849fa5d9d6e20f645f9cd3a26ad3edfe Mon Sep 17 00:00:00 2001 From: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com> Date: Sun, 28 Jan 2024 23:11:07 -0500 Subject: [PATCH 13/29] Upgrade to spack-stack version 1.6.0 (#856) * Upgrade to spack-stack v1.6.0, remove cheyenne. #844 * Loosen up CI concretizer for sp. #844 * Update CI/ip version to SS version. * Revert unify to true. #844 * Change prod-util to prod_util on MSU. --- ci/rt.sh | 12 ++++++------ ci/spack.yaml | 14 ++++++------- modulefiles/cheyenne | 39 ------------------------------------- modulefiles/cheyenne_gnu | 40 -------------------------------------- modulefiles/hera.lua | 2 +- modulefiles/hercules.lua | 2 +- modulefiles/jet | 37 ----------------------------------- modulefiles/jet.lua | 22 +++++++++++++++++++++ modulefiles/orion.lua | 2 +- modulefiles/s4.lua | 3 ++- modulefiles/upp_common.lua | 6 +++--- 11 files changed, 43 insertions(+), 136 deletions(-) delete mode 100644 modulefiles/cheyenne delete mode 100644 modulefiles/cheyenne_gnu mode change 100755 => 100644 modulefiles/hercules.lua delete mode 100644 modulefiles/jet create mode 100644 modulefiles/jet.lua diff --git a/ci/rt.sh b/ci/rt.sh index c556915cc7..cf839e660e 100755 --- a/ci/rt.sh +++ b/ci/rt.sh @@ -65,26 +65,26 @@ 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/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 fi #set working directory diff --git a/ci/spack.yaml b/ci/spack.yaml index ddfcfe83db..8070074bdf 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/modulefiles/cheyenne b/modulefiles/cheyenne deleted file mode 100644 index f5a40a5bdb..0000000000 --- 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 d14c372e6d..0000000000 --- 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/hera.lua b/modulefiles/hera.lua index b59640cf30..5bd691da6b 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-noavx512/install/modulefiles/Core") +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.6.0/envs/unified-env/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 a3c7a170f5..b057df81ed --- 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)) diff --git a/modulefiles/jet b/modulefiles/jet deleted file mode 100644 index eaa92db3f6..0000000000 --- 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 0000000000..dcd54d7b57 --- /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/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 4113b01fca..669c260d9b 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.lua b/modulefiles/s4.lua index 3a42fa888a..58faca1bae 100644 --- a/modulefiles/s4.lua +++ b/modulefiles/s4.lua @@ -1,10 +1,11 @@ -- --------------------------------------------------------------------------- -- 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.5.0/envs/unified-env/install/modulefiles/Core") +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" diff --git a/modulefiles/upp_common.lua b/modulefiles/upp_common.lua index 92eb093e29..e012f56522 100644 --- a/modulefiles/upp_common.lua +++ b/modulefiles/upp_common.lua @@ -8,14 +8,14 @@ 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"}, From 289469988b319f7b73060aad4936ab9a614ee8a6 Mon Sep 17 00:00:00 2001 From: AndersJensen-NOAA <132939212+AndersJensen-NOAA@users.noreply.github.com> Date: Wed, 31 Jan 2024 05:33:20 -0700 Subject: [PATCH 14/29] Comment out graupel warning (#865) * Comment out graupel warning * Add changelog --- sorc/ncep_post.fd/SURFCE.f | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/sorc/ncep_post.fd/SURFCE.f b/sorc/ncep_post.fd/SURFCE.f index e3ca85ab8e..492f418e38 100644 --- a/sorc/ncep_post.fd/SURFCE.f +++ b/sorc/ncep_post.fd/SURFCE.f @@ -46,6 +46,7 @@ !> 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. !> !> @note !> USAGE: CALL SURFCE @@ -5153,11 +5154,17 @@ 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 From a982dfe8dc3d813a46a136fc025302f17bb15f81 Mon Sep 17 00:00:00 2001 From: Jaymes Kenyon Date: Thu, 1 Feb 2024 09:12:16 -0500 Subject: [PATCH 15/29] RRFS: Include echo top and two VIL-related fields in native-level output (#867) * Adding echo top and radar VIL to RRFS native-level output (these are already available in the pressure-level output). For completeness of the VIL-related offerings, hydrometeor VIL has also been added to the native-level output. * Updating the flat file --- parm/fv3lam_rrfs.xml | 18 +++++ parm/postxconfig-NT-fv3lam_rrfs.txt | 113 +++++++++++++++++++++++++++- 2 files changed, 130 insertions(+), 1 deletion(-) diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index 3985377f08..0c864f0abb 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -2280,6 +2280,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 diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index fb1741805f..0c584ca2db 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -1,7 +1,7 @@ 4 4 3 -247 +250 308 PRSLEV 32769 @@ -12578,6 +12578,117 @@ surface ? ? ? +581 +VIL_ON_ENTIRE_ATMOS +entire atmosphere Vertically Integrated Liquid (kg/m-2) +1 +tmpl4_0 +VIL +? +? +entire_atmos_single_lyr +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +7.0 +0 +0 +0 +? +? +? +769 +GSD_VIL_ON_ENTIRE_ATMOS +? +1 +tmpl4_0 +VIL +? +? +entire_atmos +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +7.0 +0 +0 +0 +? +? +? +400 +RETOP_ON_ENTIRE_ATMOS_SINGLE_LYR +? +1 +tmpl4_0 +RETOP +? +? +entire_atmos_single_lyr +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? 423 MAX_MAXUVV_ON_ISOBARIC_SFC_100-1000hpa hourly maximum Upward Vertical Velocity between 100-1000hpa From 2953e46750236754a6f27330f2aad4d4d7ce7d09 Mon Sep 17 00:00:00 2001 From: AndrewBenjamin-NOAA <103067657+AndrewBenjamin-NOAA@users.noreply.github.com> Date: Thu, 1 Feb 2024 11:54:20 -0500 Subject: [PATCH 16/29] removed NCEP for ULWRF to use the official WMO ID rather than the dupilcate NCEP local use ID (#868) --- parm/fv3lam_rrfs.xml | 7 ------- parm/postxconfig-NT-fv3lam_rrfs.txt | 14 +++++++------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index 0c864f0abb..885c73734a 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -936,7 +936,6 @@ INST_ULWRF_ON_SURFACE ULWRF - NCEP 4.0 @@ -964,7 +963,6 @@ AVE_ULWRF_ON_SURFACE ULWRF - NCEP 3.0 @@ -978,14 +976,12 @@ AVE_ULWRF_ON_TOP_OF_ATMOS ULWRF - NCEP 3.0 INST_ULWRF_ON_TOP_OF_ATMOS ULWRF - NCEP 4.0 @@ -2741,7 +2737,6 @@ INST_ULWRF_ON_SURFACE ULWRF - NCEP 4.0 @@ -2769,7 +2764,6 @@ AVE_ULWRF_ON_SURFACE ULWRF - NCEP 3.0 @@ -2783,7 +2777,6 @@ AVE_ULWRF_ON_TOP_OF_ATMOS ULWRF - NCEP 3.0 diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index 0c584ca2db..287aca3513 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -4946,7 +4946,7 @@ INST_ULWRF_ON_SURFACE 1 tmpl4_0 ULWRF -NCEP +? ? surface 0 @@ -5094,7 +5094,7 @@ AVE_ULWRF_ON_SURFACE 1 tmpl4_8 ULWRF -NCEP +? AVE surface 0 @@ -5168,7 +5168,7 @@ AVE_ULWRF_ON_TOP_OF_ATMOS 1 tmpl4_8 ULWRF -NCEP +? AVE top_of_atmos 0 @@ -5205,7 +5205,7 @@ INST_ULWRF_ON_TOP_OF_ATMOS 1 tmpl4_0 ULWRF -NCEP +? ? top_of_atmos 0 @@ -15026,7 +15026,7 @@ INST_ULWRF_ON_SURFACE 1 tmpl4_0 ULWRF -NCEP +? ? surface 0 @@ -15174,7 +15174,7 @@ AVE_ULWRF_ON_SURFACE 1 tmpl4_8 ULWRF -NCEP +? AVE surface 0 @@ -15248,7 +15248,7 @@ AVE_ULWRF_ON_TOP_OF_ATMOS 1 tmpl4_8 ULWRF -NCEP +? AVE top_of_atmos 0 From c7439448d51cdd82bfcfa36c998464af4d7be11f Mon Sep 17 00:00:00 2001 From: Gillian Petro <96886803+gspetro-NOAA@users.noreply.github.com> Date: Wed, 7 Feb 2024 18:07:09 -0500 Subject: [PATCH 17/29] [develop]: User's Guide Updates (#871) * restructure UG * add FAQ * update UFS unified vars table * update UPP GRIB2 output table * misc updates/minor fixes * add Built/Run/Test chapters * change hail to hail mixing ratio in UFS vars table --- .readthedocs.yml | 4 +- README.md | 32 +- docs/InputsOutputs.rst | 169 ------- docs/Installation.rst | 117 ----- docs/Running.rst | 134 ------ .../BackgroundInfo}/Acknowledgments.rst | 8 +- .../BackgroundInfo}/CodeOverview.rst | 28 +- .../BackgroundInfo}/Introduction.rst | 2 +- docs/UserGuide/BackgroundInfo/index.rst | 10 + .../BuildingRunningTesting/BuildingUPP.rst | 109 +++++ .../BuildingRunningTesting/InputsOutputs.rst | 175 +++++++ .../BuildingRunningTesting/RunningUPP.rst | 125 +++++ .../BuildingRunningTesting/index.rst | 9 + .../CustomizingTheUPP}/AddNewVariable.rst | 45 +- .../CustomizingTheUPP}/Regridding.rst | 23 +- docs/UserGuide/CustomizingTheUPP/index.rst | 9 + docs/UserGuide/Reference/FAQ.rst | 105 ++++ docs/{ => UserGuide/Reference}/Glossary.rst | 14 +- docs/UserGuide/Reference/index.rst | 8 + docs/{ => UserGuide}/_static/custom.css | 0 .../_static/theme_overrides.css | 0 docs/{ => UserGuide}/conf.py | 15 +- docs/UserGuide/index.rst | 11 + docs/{ => UserGuide}/requirements.txt | 0 .../tables}/UFS_unified_variables_table.csv | 447 +++++++++--------- .../tables}/UFS_unified_variables_table.rst | 0 .../tables}/UPP_GRIB2_Table_byID.csv | 22 +- .../tables}/UPP_GRIB2_Table_byID.rst | 2 + docs/index.rst | 16 - 29 files changed, 881 insertions(+), 758 deletions(-) delete mode 100644 docs/InputsOutputs.rst delete mode 100644 docs/Installation.rst delete mode 100644 docs/Running.rst rename docs/{ => UserGuide/BackgroundInfo}/Acknowledgments.rst (82%) rename docs/{ => UserGuide/BackgroundInfo}/CodeOverview.rst (87%) rename docs/{ => UserGuide/BackgroundInfo}/Introduction.rst (91%) create mode 100644 docs/UserGuide/BackgroundInfo/index.rst create mode 100644 docs/UserGuide/BuildingRunningTesting/BuildingUPP.rst create mode 100644 docs/UserGuide/BuildingRunningTesting/InputsOutputs.rst create mode 100644 docs/UserGuide/BuildingRunningTesting/RunningUPP.rst create mode 100644 docs/UserGuide/BuildingRunningTesting/index.rst rename docs/{ => UserGuide/CustomizingTheUPP}/AddNewVariable.rst (90%) rename docs/{ => UserGuide/CustomizingTheUPP}/Regridding.rst (87%) create mode 100644 docs/UserGuide/CustomizingTheUPP/index.rst create mode 100644 docs/UserGuide/Reference/FAQ.rst rename docs/{ => UserGuide/Reference}/Glossary.rst (82%) create mode 100644 docs/UserGuide/Reference/index.rst rename docs/{ => UserGuide}/_static/custom.css (100%) rename docs/{ => UserGuide}/_static/theme_overrides.css (100%) rename docs/{ => UserGuide}/conf.py (80%) create mode 100644 docs/UserGuide/index.rst rename docs/{ => UserGuide}/requirements.txt (100%) rename docs/{ => UserGuide/tables}/UFS_unified_variables_table.csv (96%) rename docs/{ => UserGuide/tables}/UFS_unified_variables_table.rst (100%) rename docs/{ => UserGuide/tables}/UPP_GRIB2_Table_byID.csv (98%) rename docs/{ => UserGuide/tables}/UPP_GRIB2_Table_byID.rst (94%) delete mode 100644 docs/index.rst diff --git a/.readthedocs.yml b/.readthedocs.yml index 87283cf68c..32872d19e3 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: docs/UserGuide/conf.py # Build documentation with MkDocs #mkdocs: @@ -24,4 +24,4 @@ formats: all python: # version: 3.7 install: - - requirements: docs/requirements.txt + - requirements: docs/UserGuide/requirements.txt diff --git a/README.md b/README.md index 004fd1db66..2917652893 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/docs/InputsOutputs.rst b/docs/InputsOutputs.rst deleted file mode 100644 index eed194926c..0000000000 --- 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 575d585261..0000000000 --- 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 a0fa902b9c..0000000000 --- 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/Acknowledgments.rst b/docs/UserGuide/BackgroundInfo/Acknowledgments.rst similarity index 82% rename from docs/Acknowledgments.rst rename to docs/UserGuide/BackgroundInfo/Acknowledgments.rst index 5fa4829659..770b580749 100644 --- a/docs/Acknowledgments.rst +++ b/docs/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/docs/UserGuide/BackgroundInfo/CodeOverview.rst similarity index 87% rename from docs/CodeOverview.rst rename to docs/UserGuide/BackgroundInfo/CodeOverview.rst index 69c2b1b1e5..57051c6bd7 100644 --- a/docs/CodeOverview.rst +++ b/docs/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/docs/UserGuide/BackgroundInfo/Introduction.rst similarity index 91% rename from docs/Introduction.rst rename to docs/UserGuide/BackgroundInfo/Introduction.rst index 9844c8453a..4ee8a576af 100644 --- a/docs/Introduction.rst +++ b/docs/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/docs/UserGuide/BackgroundInfo/index.rst b/docs/UserGuide/BackgroundInfo/index.rst new file mode 100644 index 0000000000..8e3c9ca1be --- /dev/null +++ b/docs/UserGuide/BackgroundInfo/index.rst @@ -0,0 +1,10 @@ +Background Information +========================= + +.. toctree:: + :maxdepth: 3 + + + Introduction + CodeOverview + Acknowledgments diff --git a/docs/UserGuide/BuildingRunningTesting/BuildingUPP.rst b/docs/UserGuide/BuildingRunningTesting/BuildingUPP.rst new file mode 100644 index 0000000000..0916e8ff22 --- /dev/null +++ b/docs/UserGuide/BuildingRunningTesting/BuildingUPP.rst @@ -0,0 +1,109 @@ +.. role:: underline + :class: underline +.. role:: bolditalic + :class: bolditalic + +************************* +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/docs/UserGuide/BuildingRunningTesting/InputsOutputs.rst b/docs/UserGuide/BuildingRunningTesting/InputsOutputs.rst new file mode 100644 index 0000000000..67a50c936b --- /dev/null +++ b/docs/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/docs/UserGuide/BuildingRunningTesting/RunningUPP.rst b/docs/UserGuide/BuildingRunningTesting/RunningUPP.rst new file mode 100644 index 0000000000..064bba5aa3 --- /dev/null +++ b/docs/UserGuide/BuildingRunningTesting/RunningUPP.rst @@ -0,0 +1,125 @@ +.. role:: underline + :class: underline +.. role:: bolditalic + :class: bolditalic + +*********************** +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/docs/UserGuide/BuildingRunningTesting/index.rst b/docs/UserGuide/BuildingRunningTesting/index.rst new file mode 100644 index 0000000000..2d6e1fc4d7 --- /dev/null +++ b/docs/UserGuide/BuildingRunningTesting/index.rst @@ -0,0 +1,9 @@ +Building, Running, and Testing the UPP +============================================ + +.. toctree:: + :maxdepth: 3 + + InputsOutputs + BuildingUPP + RunningUPP diff --git a/docs/AddNewVariable.rst b/docs/UserGuide/CustomizingTheUPP/AddNewVariable.rst similarity index 90% rename from docs/AddNewVariable.rst rename to docs/UserGuide/CustomizingTheUPP/AddNewVariable.rst index 81b1c1147e..32837b9cae 100644 --- a/docs/AddNewVariable.rst +++ b/docs/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/docs/UserGuide/CustomizingTheUPP/Regridding.rst similarity index 87% rename from docs/Regridding.rst rename to docs/UserGuide/CustomizingTheUPP/Regridding.rst index 44a0c13288..b6a540be73 100644 --- a/docs/Regridding.rst +++ b/docs/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: http://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. + *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 http://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/. diff --git a/docs/UserGuide/CustomizingTheUPP/index.rst b/docs/UserGuide/CustomizingTheUPP/index.rst new file mode 100644 index 0000000000..eb7f24bb0a --- /dev/null +++ b/docs/UserGuide/CustomizingTheUPP/index.rst @@ -0,0 +1,9 @@ +Customizing the UPP +=========================== + +.. toctree:: + :maxdepth: 3 + + AddNewVariable + Regridding + diff --git a/docs/UserGuide/Reference/FAQ.rst b/docs/UserGuide/Reference/FAQ.rst new file mode 100644 index 0000000000..84961d6cb0 --- /dev/null +++ b/docs/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/docs/UserGuide/Reference/Glossary.rst similarity index 82% rename from docs/Glossary.rst rename to docs/UserGuide/Reference/Glossary.rst index 8fb469d8af..011f0adf6f 100644 --- a/docs/Glossary.rst +++ b/docs/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/docs/UserGuide/Reference/index.rst b/docs/UserGuide/Reference/index.rst new file mode 100644 index 0000000000..af294c82e7 --- /dev/null +++ b/docs/UserGuide/Reference/index.rst @@ -0,0 +1,8 @@ +Reference +============ + +.. toctree:: + :maxdepth: 3 + + FAQ + Glossary diff --git a/docs/_static/custom.css b/docs/UserGuide/_static/custom.css similarity index 100% rename from docs/_static/custom.css rename to docs/UserGuide/_static/custom.css diff --git a/docs/_static/theme_overrides.css b/docs/UserGuide/_static/theme_overrides.css similarity index 100% rename from docs/_static/theme_overrides.css rename to docs/UserGuide/_static/theme_overrides.css diff --git a/docs/conf.py b/docs/UserGuide/conf.py similarity index 80% rename from docs/conf.py rename to docs/UserGuide/conf.py index d32246789a..b18cef9d74 100644 --- a/docs/conf.py +++ b/docs/UserGuide/conf.py @@ -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 @@ -76,3 +77,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/docs/UserGuide/index.rst b/docs/UserGuide/index.rst new file mode 100644 index 0000000000..f213719179 --- /dev/null +++ b/docs/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/docs/UserGuide/requirements.txt similarity index 100% rename from docs/requirements.txt rename to docs/UserGuide/requirements.txt diff --git a/docs/UFS_unified_variables_table.csv b/docs/UserGuide/tables/UFS_unified_variables_table.csv similarity index 96% rename from docs/UFS_unified_variables_table.csv rename to docs/UserGuide/tables/UFS_unified_variables_table.csv index b559bb8eaa..1f835ae7e0 100644 --- a/docs/UFS_unified_variables_table.csv +++ b/docs/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/docs/UserGuide/tables/UFS_unified_variables_table.rst similarity index 100% rename from docs/UFS_unified_variables_table.rst rename to docs/UserGuide/tables/UFS_unified_variables_table.rst diff --git a/docs/UPP_GRIB2_Table_byID.csv b/docs/UserGuide/tables/UPP_GRIB2_Table_byID.csv similarity index 98% rename from docs/UPP_GRIB2_Table_byID.csv rename to docs/UserGuide/tables/UPP_GRIB2_Table_byID.csv index dd09e3d399..d3488c8528 100644 --- a/docs/UPP_GRIB2_Table_byID.csv +++ b/docs/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/docs/UserGuide/tables/UPP_GRIB2_Table_byID.rst similarity index 94% rename from docs/UPP_GRIB2_Table_byID.rst rename to docs/UserGuide/tables/UPP_GRIB2_Table_byID.rst index 65f2e40f27..3f5f1be3fc 100644 --- a/docs/UPP_GRIB2_Table_byID.rst +++ b/docs/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/index.rst b/docs/index.rst deleted file mode 100644 index cfb655ab0e..0000000000 --- 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 From 9d8b2a836cb9104e3640e0b6ff0b4e2de8dcc16b Mon Sep 17 00:00:00 2001 From: YaliMao-NOAA <53870326+YaliMao-NOAA@users.noreply.github.com> Date: Wed, 21 Feb 2024 19:47:15 -0500 Subject: [PATCH 18/29] update gtg code revision to v4.16 (#873) Co-authored-by: yali mao --- sorc/ncep_post.fd/post_gtg.fd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/ncep_post.fd/post_gtg.fd b/sorc/ncep_post.fd/post_gtg.fd index 333bd604ca..755d92dd5a 160000 --- a/sorc/ncep_post.fd/post_gtg.fd +++ b/sorc/ncep_post.fd/post_gtg.fd @@ -1 +1 @@ -Subproject commit 333bd604ca59f5914ab8d91fe4b66452418f16ee +Subproject commit 755d92dd5a474cd805c39cfaa3080e20772a46d7 From 74d4a19c1501806ff70a9c1a9e815bf11bd4e030 Mon Sep 17 00:00:00 2001 From: EricJames-NOAA Date: Tue, 27 Feb 2024 15:48:15 -0700 Subject: [PATCH 19/29] Add some output fields to RRFS (#870) * Initial commit to output new irradiance and LSM variables. * Reverting a change to fv3lam_rrfs.xml * Reverting change to upp_common.lua * Tiny change to upp_common.lua * Resolving conflicts * Updating change logs. * Updating control files. * Getting rid of print statement, cleaning up formatting. * Adding a space. * Reverting changes. * Updating GRIB2 table for correct ordering. * Putting table in correct parm/ subdirectory. --- parm/fv3lam_rrfs.xml | 51 ++++- parm/params_grib2_tbl_new | 5 +- parm/params_grib2_tbl_new.text | 3 + parm/post_avblflds.xml | 34 ++-- parm/postxconfig-NT-fv3lam_rrfs.txt | 305 +++++++++++++++++++++++++--- sorc/ncep_post.fd/ALLOCATE_ALL.f | 2 + sorc/ncep_post.fd/DEALLOCATE.f | 1 + sorc/ncep_post.fd/INITPOST_NETCDF.f | 18 +- sorc/ncep_post.fd/SURFCE.f | 10 +- sorc/ncep_post.fd/VRBLS2D_mod.f | 2 +- 10 files changed, 387 insertions(+), 44 deletions(-) diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index 885c73734a..b82c92f4d7 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -399,6 +399,12 @@ 4.0 + + SOILM_ON_DEPTH_BEL_LAND_SFC + SOILMOI + 3.0 + + TSOIL_ON_DEPTH_BEL_LAND_SFC TSOIL @@ -1005,6 +1011,20 @@ 4.0 + + INST_SWDDNI_ON_SURFACE + VBDSF + NCEP + 4.0 + + + + INST_SWDDIF_ON_SURFACE + VDDSF + NCEP + 4.0 + + INST_CSDSF_ON_SURFACE CSDSF @@ -1997,7 +2017,6 @@ HWP_ON_SURFACE - FWINX 5.0 @@ -2419,6 +2438,12 @@ -2.0 + + SOILM_ON_DEPTH_BEL_LAND_SFC + SOILMOI + 3.0 + + TSOIL_ON_DEPTH_BEL_LAND_SFC TSOIL @@ -2684,6 +2709,14 @@ 6.0 + + 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. + 6.0 + + LCDC_ON_LOW_CLOUD_LYR LCDC @@ -2794,6 +2827,20 @@ 4.0 + + INST_SWDDNI_ON_SURFACE + VBDSF + NCEP + 4.0 + + + + INST_SWDDIF_ON_SURFACE + VDDSF + NCEP + 4.0 + + INST_CSDSF_ON_SURFACE CSDSF @@ -3569,7 +3616,7 @@ LAI_ON_SURFACE LAI NCEP - -3.0 + -3.0 diff --git a/parm/params_grib2_tbl_new b/parm/params_grib2_tbl_new index c3cdd17de3..62c0935d23 100755 --- a/parm/params_grib2_tbl_new +++ b/parm/params_grib2_tbl_new @@ -147,7 +147,7 @@ 2 3 22 0 CISICE 2 3 20 0 CISOILM 2 0 23 0 CISOILW - 0 19 50 0 CITEDR + 0 19 50 0 CITEDR 0 19 207 1 CIVIS 3 2 9 0 CLDALB 3 2 10 0 CLDEMISS @@ -710,6 +710,8 @@ 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 @@ -1250,6 +1252,7 @@ 0 0 27 0 WETBT 0 18 11 0 WETDEP 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 diff --git a/parm/params_grib2_tbl_new.text b/parm/params_grib2_tbl_new.text index 5059b025c8..694cd10fe5 100755 --- a/parm/params_grib2_tbl_new.text +++ b/parm/params_grib2_tbl_new.text @@ -931,6 +931,8 @@ 1 1 193 1 CPOFP 1 1 194 1 PPFFG 1 1 195 1 CWR + 1 1 196 1 QPFARI + 1 1 197 1 QPFFFG ! ! GRIB2 - TABLE 4.2-1-2 PARAMETERS FOR DISCIPLINE 1 CATEGORY 2 ! @@ -1112,6 +1114,7 @@ 2 4 9 0 INFSINX 2 4 10 0 FBUPINX 2 4 11 0 FDSRTE + 2 4 26 0 WFIREPOT ! ! Added new Discipline 2 category 5 in 8/26/2015 ! diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 974f6ce1e4..36987589eb 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -6931,7 +6931,7 @@ 755 HWP_ON_SURFACE Hourly Wildfire Potential on surface - FWINX + WFIREPOT surface 5.0 @@ -7436,27 +7436,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 @@ -7466,7 +7467,8 @@ 916 ACM_2YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7476,7 +7478,8 @@ 917 1H_5YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7486,7 +7489,8 @@ 918 ACM_5YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7496,7 +7500,8 @@ 919 1H_10YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7506,7 +7511,8 @@ 920 ACM_10YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7516,7 +7522,8 @@ 921 1H_100YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7526,7 +7533,8 @@ 922 ACM_100YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index 287aca3513..918930a9c7 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -1,8 +1,8 @@ 4 4 3 -250 -308 +254 +311 PRSLEV 32769 ncep_nco @@ -1980,6 +1980,43 @@ surface ? ? ? +36 +SOILM_ON_DEPTH_BEL_LAND_SFC +? +1 +tmpl4_0 +SOILMOI +? +? +depth_bel_land_sfc +0 +? +0 +? +depth_bel_land_sfc +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 ? @@ -5347,6 +5384,80 @@ surface ? ? ? +772 +INST_SWDDNI_ON_SURFACE +? +1 +tmpl4_0 +VBDSF +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +773 +INST_SWDDIF_ON_SURFACE +? +1 +tmpl4_0 +VDDSF +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? 262 INST_CSDSF_ON_SURFACE ? @@ -10532,8 +10643,8 @@ isothermal ? 1 tmpl4_8 -FFLDRO -? +QPFFFG +NCEP ACM surface 0 @@ -10569,8 +10680,8 @@ ACM_FFG_EXCEEDANCE ? 1 tmpl4_8 -FFLDRO -? +QPFFFG +NCEP ACM surface 0 @@ -10606,8 +10717,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10643,8 +10754,8 @@ ACM_2YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10680,8 +10791,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10717,8 +10828,8 @@ ACM_5YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10754,8 +10865,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10791,8 +10902,8 @@ ACM_10YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10828,8 +10939,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10865,8 +10976,8 @@ ACM_100YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -11198,7 +11309,7 @@ HWP_ON_SURFACE Hourly Wildfire Potential on surface 1 tmpl4_0 -FWINX +WFIREPOT ? ? surface @@ -13392,6 +13503,43 @@ spec_hgt_lvl_above_grnd ? ? ? +36 +SOILM_ON_DEPTH_BEL_LAND_SFC +? +1 +tmpl4_0 +SOILMOI +? +? +depth_bel_land_sfc +0 +? +0 +? +depth_bel_land_sfc +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 ? @@ -14724,6 +14872,43 @@ smaller_than_first_limit ? ? ? +1012 +COARSEPM_ON_HYBRID_LVL +? +1 +tmpl4_48 +MASSDEN +? +? +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 +? +dust_dry +between_first_second_limit_noincl2ndlmt +7 +25 +7 +100 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? 37 LCDC_ON_LOW_CLOUD_LYR ? @@ -15353,6 +15538,80 @@ surface ? ? ? +772 +INST_SWDDNI_ON_SURFACE +? +1 +tmpl4_0 +VBDSF +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +773 +INST_SWDDIF_ON_SURFACE +? +1 +tmpl4_0 +VDDSF +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? 262 INST_CSDSF_ON_SURFACE ? diff --git a/sorc/ncep_post.fd/ALLOCATE_ALL.f b/sorc/ncep_post.fd/ALLOCATE_ALL.f index 2ade6e18c4..96e0c183f8 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/DEALLOCATE.f b/sorc/ncep_post.fd/DEALLOCATE.f index bf979f8c23..d16c6f2d44 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 b14cbc316f..20447d549a 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -45,6 +45,7 @@ !> 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-02-07 | Eric James | Adding reading of direct and diffuse irradiance and LAI !> !> @author Hui-Ya Chuang @date 2016-03-04 !---------------------------------------------------------------------- @@ -83,7 +84,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, & @@ -2679,6 +2680,21 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & spval,VarName,rswin) +! inst incoming direct beam sfc shortwave + VarName='visbmdi' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,swddni) + +! inst incoming diffuse sfc shortwave + VarName='visdfdi' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,swddif) + +! leaf area index + VarName='xlaixy' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,xlaixy) + ! inst incoming clear sky sfc shortwave ! FV3 do not output instant incoming clear sky sfc shortwave !$omp parallel do private(i,j) diff --git a/sorc/ncep_post.fd/SURFCE.f b/sorc/ncep_post.fd/SURFCE.f index 492f418e38..acbafa1930 100644 --- a/sorc/ncep_post.fd/SURFCE.f +++ b/sorc/ncep_post.fd/SURFCE.f @@ -47,6 +47,7 @@ !> 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. !> !> @note !> USAGE: CALL SURFCE @@ -99,7 +100,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 @@ -6193,12 +6194,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 @@ -6277,7 +6281,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 8e919dd982..c7f10ce251 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(:,:) & From 10bfc064810f4a521104aee561a96778d36dfe56 Mon Sep 17 00:00:00 2001 From: Jaymes Kenyon Date: Fri, 1 Mar 2024 07:22:51 -0500 Subject: [PATCH 20/29] RRFS: Use the 10-m wind gust calculation from RAP / HRRR (#876) * Implement the calculation of PBLHGUST into "INITPOST_NETCDF.f". This calculation has stylistic adaptations from its original code in "INITPOST.F". * Update log entry * In RRFS, call the CALGUST (10-m gust) subroutine using the PBLHGUST value. * Corrections to the theta-v calculation * Fix typo in comment * For RRFS, skip the horizontal smoothing of the PBLHGUST array. * Synching with EMC/develop * Updating change log --- sorc/ncep_post.fd/INITPOST_NETCDF.f | 79 ++++++++++++++++++++++++----- sorc/ncep_post.fd/MDLFLD.f | 9 ++-- 2 files changed, 72 insertions(+), 16 deletions(-) diff --git a/sorc/ncep_post.fd/INITPOST_NETCDF.f b/sorc/ncep_post.fd/INITPOST_NETCDF.f index 20447d549a..c267c2592d 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -46,6 +46,7 @@ !> and cwm when present (NSSL microphysics) !> 2023-10-23 | Jaymes Kenyon | Read HAILCAST diagnostic output from RRFS !> 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 !> !> @author Hui-Ya Chuang @date 2016-03-04 !---------------------------------------------------------------------- @@ -94,7 +95,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, & @@ -180,11 +181,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(:,:) @@ -214,6 +215,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(:,:) @@ -221,10 +223,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 !*********************************************************************** @@ -2586,30 +2589,82 @@ 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. -! + 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 @@ -4087,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 @@ -4107,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) From 3804b1241910542f0b87396c6282aecfbc904e39 Mon Sep 17 00:00:00 2001 From: KarinaAsmar-NOAA <148993962+KarinaAsmar-NOAA@users.noreply.github.com> Date: Mon, 4 Mar 2024 12:28:10 -0500 Subject: [PATCH 21/29] Set Up UPP control files for SFS development (#862) * copy of gefs control file for sfs * changed gen_proc from gefs to sfs * SFS (copied from GEFS control file) txt file * add postxconfig-NT-SFS.txt * added SFS entry for clean, includes txt and xml files * merging latest commits 1/19 and 1/23 * SFS control files with verified variables from GEFS baseline, 387 total fields * SFS control files with CAPE added * code fix for SFS * untracked flat file * SFS fix - remove hard-wired bucket for beyond F240 --- parm/makefile | 4 +- parm/postcntrl_sfs.xml | 639 +++++ parm/postxconfig-NT-SFS.txt | 3940 +++++++++++++++++++++++++++ sorc/ncep_post.fd/INITPOST_NETCDF.f | 3 +- 4 files changed, 4584 insertions(+), 2 deletions(-) create mode 100644 parm/postcntrl_sfs.xml create mode 100644 parm/postxconfig-NT-SFS.txt diff --git a/parm/makefile b/parm/makefile index 31fd0fe630..55a82d8606 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/postcntrl_sfs.xml b/parm/postcntrl_sfs.xml new file mode 100644 index 0000000000..5ccae304e3 --- /dev/null +++ b/parm/postcntrl_sfs.xml @@ -0,0 +1,639 @@ + + + + + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + + + + + + diff --git a/parm/postxconfig-NT-SFS.txt b/parm/postxconfig-NT-SFS.txt new file mode 100644 index 0000000000..29c1d2e9da --- /dev/null +++ b/parm/postxconfig-NT-SFS.txt @@ -0,0 +1,3940 @@ +1 +106 +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 +? +31 +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 +? +31 +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 +? +31 +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 +? +26 +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 +? +31 +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 +? +31 +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 +? +26 +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 +? +18 +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 +? +? +? diff --git a/sorc/ncep_post.fd/INITPOST_NETCDF.f b/sorc/ncep_post.fd/INITPOST_NETCDF.f index c267c2592d..f3e73683c7 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -45,6 +45,7 @@ !> 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 !> @@ -1640,7 +1641,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 From 0d438f4cacebb60d79b0a15210f7171fb1753603 Mon Sep 17 00:00:00 2001 From: WenMeng-NOAA <48260754+WenMeng-NOAA@users.noreply.github.com> Date: Wed, 6 Mar 2024 17:05:29 -0500 Subject: [PATCH 22/29] Update grib2 table files with the new release g2tmpl. (#880) --- parm/params_grib2_tbl_new | 380 +++++++++++++++++++++++++- parm/params_grib2_tbl_new.text | 468 ++++++++++++++++++++++++++++++++- 2 files changed, 835 insertions(+), 13 deletions(-) diff --git a/parm/params_grib2_tbl_new b/parm/params_grib2_tbl_new index 62c0935d23..20ab866ed4 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 @@ -157,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 @@ -172,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 @@ -210,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 @@ -220,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 @@ -231,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 @@ -264,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 @@ -303,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 @@ -313,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 @@ -320,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 @@ -327,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 @@ -350,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 @@ -362,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 @@ -377,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 @@ -397,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 @@ -412,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 @@ -422,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 @@ -442,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 @@ -455,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 @@ -477,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 @@ -508,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 @@ -526,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 @@ -539,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 @@ -567,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 @@ -599,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 @@ -649,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 @@ -670,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 @@ -682,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 @@ -698,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 @@ -706,7 +937,13 @@ 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 @@ -716,15 +953,17 @@ 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 @@ -742,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 @@ -749,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 @@ -766,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 @@ -773,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 @@ -847,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 @@ -882,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 @@ -895,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 @@ -914,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 @@ -930,9 +1203,17 @@ 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 @@ -950,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 @@ -958,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 @@ -969,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 @@ -986,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 @@ -1011,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 @@ -1037,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 @@ -1048,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 @@ -1057,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 @@ -1075,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 @@ -1089,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 @@ -1118,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 @@ -1137,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 @@ -1146,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 @@ -1169,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 @@ -1195,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 @@ -1213,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 @@ -1224,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 @@ -1249,8 +1600,13 @@ 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 @@ -1262,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 @@ -1288,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 694cd10fe5..11d414deec 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 ! @@ -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,7 +885,20 @@ 0 19 36 0 PSNOWS ! Added more parameters in 12/03/2019 0 19 37 0 ICESEV -! Added more parameters in 11/01/2023 +! 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 @@ -794,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 ! @@ -816,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 @@ -845,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 @@ -860,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 @@ -871,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 @@ -931,6 +1119,7 @@ 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 ! @@ -951,6 +1140,11 @@ 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 ! @@ -976,8 +1170,9 @@ ! 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 +! 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 @@ -986,8 +1181,9 @@ 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 @@ -997,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 @@ -1084,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 @@ -1097,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 ! @@ -1114,14 +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 @@ -1166,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 @@ -1360,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 ! @@ -1383,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 @@ -1410,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 ! @@ -1417,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 @@ -1486,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 @@ -1499,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 @@ -1521,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 ! @@ -1528,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 @@ -1589,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 @@ -1604,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 From d30e5c65a52ab84c9f19c0649aa649d17bf70b7e Mon Sep 17 00:00:00 2001 From: Gillian Petro <96886803+gspetro-NOAA@users.noreply.github.com> Date: Fri, 8 Mar 2024 11:29:21 -0500 Subject: [PATCH 23/29] [develop]: Add testing chapter to UG (#884) * add/update requirements files * add xlinks to build/run files * update gitignore to NOT ignore BuildingRunningTesting dir * update configuration * update links * add linkcheck to Makefile * add preliminary testing chapter * rename docs to doc * update RTD yaml paths from docs to doc * minor updates to testing ch * minor updates to testing ch * add test summary statement --- .gitignore | 2 +- .readthedocs.yml | 5 +- {docs => doc}/2D-decomp.md | 0 {docs => doc}/CMakeLists.txt | 0 {docs => doc}/Doxyfile.in | 0 {docs => doc}/Release_Notes.ncep_post.v7.0.0 | 0 .../BackgroundInfo/Acknowledgments.rst | 0 .../UserGuide/BackgroundInfo/CodeOverview.rst | 0 .../UserGuide/BackgroundInfo/Introduction.rst | 0 .../UserGuide/BackgroundInfo/index.rst | 0 .../BuildingRunningTesting/BuildingUPP.rst | 2 + .../BuildingRunningTesting/InputsOutputs.rst | 0 .../BuildingRunningTesting/RunningUPP.rst | 2 + .../BuildingRunningTesting/TestingUPP.rst | 53 ++++++++++++ .../BuildingRunningTesting/index.rst | 1 + .../CustomizingTheUPP/AddNewVariable.rst | 0 .../CustomizingTheUPP/Regridding.rst | 4 +- .../UserGuide/CustomizingTheUPP/index.rst | 0 doc/UserGuide/Makefile | 28 +++++++ {docs => doc}/UserGuide/Reference/FAQ.rst | 0 .../UserGuide/Reference/Glossary.rst | 4 +- {docs => doc}/UserGuide/Reference/index.rst | 0 {docs => doc}/UserGuide/_static/custom.css | 0 .../UserGuide/_static/theme_overrides.css | 0 {docs => doc}/UserGuide/conf.py | 25 +++++- {docs => doc}/UserGuide/index.rst | 0 .../UserGuide/requirements.in | 4 +- doc/UserGuide/requirements.txt | 82 +++++++++++++++++++ .../tables/UFS_unified_variables_table.csv | 0 .../tables/UFS_unified_variables_table.rst | 0 .../UserGuide/tables/UPP_GRIB2_Table_byID.csv | 0 .../UserGuide/tables/UPP_GRIB2_Table_byID.rst | 0 {docs => doc}/module-load-make-howto.txt | 0 {docs => doc}/user_guide.md | 0 34 files changed, 198 insertions(+), 14 deletions(-) rename {docs => doc}/2D-decomp.md (100%) rename {docs => doc}/CMakeLists.txt (100%) rename {docs => doc}/Doxyfile.in (100%) rename {docs => doc}/Release_Notes.ncep_post.v7.0.0 (100%) rename {docs => doc}/UserGuide/BackgroundInfo/Acknowledgments.rst (100%) rename {docs => doc}/UserGuide/BackgroundInfo/CodeOverview.rst (100%) rename {docs => doc}/UserGuide/BackgroundInfo/Introduction.rst (100%) rename {docs => doc}/UserGuide/BackgroundInfo/index.rst (100%) rename {docs => doc}/UserGuide/BuildingRunningTesting/BuildingUPP.rst (99%) rename {docs => doc}/UserGuide/BuildingRunningTesting/InputsOutputs.rst (100%) rename {docs => doc}/UserGuide/BuildingRunningTesting/RunningUPP.rst (99%) create mode 100644 doc/UserGuide/BuildingRunningTesting/TestingUPP.rst rename {docs => doc}/UserGuide/BuildingRunningTesting/index.rst (92%) rename {docs => doc}/UserGuide/CustomizingTheUPP/AddNewVariable.rst (100%) rename {docs => doc}/UserGuide/CustomizingTheUPP/Regridding.rst (97%) rename {docs => doc}/UserGuide/CustomizingTheUPP/index.rst (100%) create mode 100644 doc/UserGuide/Makefile rename {docs => doc}/UserGuide/Reference/FAQ.rst (100%) rename {docs => doc}/UserGuide/Reference/Glossary.rst (88%) rename {docs => doc}/UserGuide/Reference/index.rst (100%) rename {docs => doc}/UserGuide/_static/custom.css (100%) rename {docs => doc}/UserGuide/_static/theme_overrides.css (100%) rename {docs => doc}/UserGuide/conf.py (78%) rename {docs => doc}/UserGuide/index.rst (100%) rename docs/UserGuide/requirements.txt => doc/UserGuide/requirements.in (73%) create mode 100644 doc/UserGuide/requirements.txt rename {docs => doc}/UserGuide/tables/UFS_unified_variables_table.csv (100%) rename {docs => doc}/UserGuide/tables/UFS_unified_variables_table.rst (100%) rename {docs => doc}/UserGuide/tables/UPP_GRIB2_Table_byID.csv (100%) rename {docs => doc}/UserGuide/tables/UPP_GRIB2_Table_byID.rst (100%) rename {docs => doc}/module-load-make-howto.txt (100%) rename {docs => doc}/user_guide.md (100%) diff --git a/.gitignore b/.gitignore index c9d3f6e12b..8f7abb4203 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 32872d19e3..817d1e9ef8 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -11,7 +11,7 @@ build: # Build documentation in the docs/ directory with Sphinx sphinx: - configuration: docs/UserGuide/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/UserGuide/requirements.txt + - requirements: doc/UserGuide/requirements.txt 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 100% rename from docs/CMakeLists.txt rename to doc/CMakeLists.txt diff --git a/docs/Doxyfile.in b/doc/Doxyfile.in similarity index 100% rename from docs/Doxyfile.in rename to doc/Doxyfile.in 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/UserGuide/BackgroundInfo/Acknowledgments.rst b/doc/UserGuide/BackgroundInfo/Acknowledgments.rst similarity index 100% rename from docs/UserGuide/BackgroundInfo/Acknowledgments.rst rename to doc/UserGuide/BackgroundInfo/Acknowledgments.rst diff --git a/docs/UserGuide/BackgroundInfo/CodeOverview.rst b/doc/UserGuide/BackgroundInfo/CodeOverview.rst similarity index 100% rename from docs/UserGuide/BackgroundInfo/CodeOverview.rst rename to doc/UserGuide/BackgroundInfo/CodeOverview.rst diff --git a/docs/UserGuide/BackgroundInfo/Introduction.rst b/doc/UserGuide/BackgroundInfo/Introduction.rst similarity index 100% rename from docs/UserGuide/BackgroundInfo/Introduction.rst rename to doc/UserGuide/BackgroundInfo/Introduction.rst diff --git a/docs/UserGuide/BackgroundInfo/index.rst b/doc/UserGuide/BackgroundInfo/index.rst similarity index 100% rename from docs/UserGuide/BackgroundInfo/index.rst rename to doc/UserGuide/BackgroundInfo/index.rst diff --git a/docs/UserGuide/BuildingRunningTesting/BuildingUPP.rst b/doc/UserGuide/BuildingRunningTesting/BuildingUPP.rst similarity index 99% rename from docs/UserGuide/BuildingRunningTesting/BuildingUPP.rst rename to doc/UserGuide/BuildingRunningTesting/BuildingUPP.rst index 0916e8ff22..ca11fa6899 100644 --- a/docs/UserGuide/BuildingRunningTesting/BuildingUPP.rst +++ b/doc/UserGuide/BuildingRunningTesting/BuildingUPP.rst @@ -3,6 +3,8 @@ .. role:: bolditalic :class: bolditalic +.. _building-upp: + ************************* Building UPP Stand-Alone ************************* diff --git a/docs/UserGuide/BuildingRunningTesting/InputsOutputs.rst b/doc/UserGuide/BuildingRunningTesting/InputsOutputs.rst similarity index 100% rename from docs/UserGuide/BuildingRunningTesting/InputsOutputs.rst rename to doc/UserGuide/BuildingRunningTesting/InputsOutputs.rst diff --git a/docs/UserGuide/BuildingRunningTesting/RunningUPP.rst b/doc/UserGuide/BuildingRunningTesting/RunningUPP.rst similarity index 99% rename from docs/UserGuide/BuildingRunningTesting/RunningUPP.rst rename to doc/UserGuide/BuildingRunningTesting/RunningUPP.rst index 064bba5aa3..f72df10be1 100644 --- a/docs/UserGuide/BuildingRunningTesting/RunningUPP.rst +++ b/doc/UserGuide/BuildingRunningTesting/RunningUPP.rst @@ -3,6 +3,8 @@ .. role:: bolditalic :class: bolditalic +.. _running-upp: + *********************** Running UPP Stand-Alone *********************** diff --git a/doc/UserGuide/BuildingRunningTesting/TestingUPP.rst b/doc/UserGuide/BuildingRunningTesting/TestingUPP.rst new file mode 100644 index 0000000000..1014f26fc2 --- /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/docs/UserGuide/BuildingRunningTesting/index.rst b/doc/UserGuide/BuildingRunningTesting/index.rst similarity index 92% rename from docs/UserGuide/BuildingRunningTesting/index.rst rename to doc/UserGuide/BuildingRunningTesting/index.rst index 2d6e1fc4d7..02599d8037 100644 --- a/docs/UserGuide/BuildingRunningTesting/index.rst +++ b/doc/UserGuide/BuildingRunningTesting/index.rst @@ -7,3 +7,4 @@ Building, Running, and Testing the UPP InputsOutputs BuildingUPP RunningUPP + TestingUPP diff --git a/docs/UserGuide/CustomizingTheUPP/AddNewVariable.rst b/doc/UserGuide/CustomizingTheUPP/AddNewVariable.rst similarity index 100% rename from docs/UserGuide/CustomizingTheUPP/AddNewVariable.rst rename to doc/UserGuide/CustomizingTheUPP/AddNewVariable.rst diff --git a/docs/UserGuide/CustomizingTheUPP/Regridding.rst b/doc/UserGuide/CustomizingTheUPP/Regridding.rst similarity index 97% rename from docs/UserGuide/CustomizingTheUPP/Regridding.rst rename to doc/UserGuide/CustomizingTheUPP/Regridding.rst index b6a540be73..088ed7b38b 100644 --- a/docs/UserGuide/CustomizingTheUPP/Regridding.rst +++ b/doc/UserGuide/CustomizingTheUPP/Regridding.rst @@ -8,7 +8,7 @@ Users who wish to interpolate their UPP output to a different grid may do so wit *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 predefined :term:`NCEP` grids. Complete documentation with examples -of regridding for all available grid definitions can be found at: http://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/new_grid.html +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: @@ -125,4 +125,4 @@ the variable. .. note:: *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 http://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/. + Users may also download and install it directly from https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/. diff --git a/docs/UserGuide/CustomizingTheUPP/index.rst b/doc/UserGuide/CustomizingTheUPP/index.rst similarity index 100% rename from docs/UserGuide/CustomizingTheUPP/index.rst rename to doc/UserGuide/CustomizingTheUPP/index.rst diff --git a/doc/UserGuide/Makefile b/doc/UserGuide/Makefile new file mode 100644 index 0000000000..d3987c6e8f --- /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/docs/UserGuide/Reference/FAQ.rst b/doc/UserGuide/Reference/FAQ.rst similarity index 100% rename from docs/UserGuide/Reference/FAQ.rst rename to doc/UserGuide/Reference/FAQ.rst diff --git a/docs/UserGuide/Reference/Glossary.rst b/doc/UserGuide/Reference/Glossary.rst similarity index 88% rename from docs/UserGuide/Reference/Glossary.rst rename to doc/UserGuide/Reference/Glossary.rst index 011f0adf6f..1c86e92df8 100644 --- a/docs/UserGuide/Reference/Glossary.rst +++ b/doc/UserGuide/Reference/Glossary.rst @@ -67,7 +67,7 @@ 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 - `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. + `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 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. @@ -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 (: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. + 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/docs/UserGuide/Reference/index.rst b/doc/UserGuide/Reference/index.rst similarity index 100% rename from docs/UserGuide/Reference/index.rst rename to doc/UserGuide/Reference/index.rst diff --git a/docs/UserGuide/_static/custom.css b/doc/UserGuide/_static/custom.css similarity index 100% rename from docs/UserGuide/_static/custom.css rename to doc/UserGuide/_static/custom.css diff --git a/docs/UserGuide/_static/theme_overrides.css b/doc/UserGuide/_static/theme_overrides.css similarity index 100% rename from docs/UserGuide/_static/theme_overrides.css rename to doc/UserGuide/_static/theme_overrides.css diff --git a/docs/UserGuide/conf.py b/doc/UserGuide/conf.py similarity index 78% rename from docs/UserGuide/conf.py rename to doc/UserGuide/conf.py index b18cef9d74..e0524f2a00 100644 --- a/docs/UserGuide/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 ----------------------------------------------------- @@ -53,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 @@ -60,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'] } diff --git a/docs/UserGuide/index.rst b/doc/UserGuide/index.rst similarity index 100% rename from docs/UserGuide/index.rst rename to doc/UserGuide/index.rst diff --git a/docs/UserGuide/requirements.txt b/doc/UserGuide/requirements.in similarity index 73% rename from docs/UserGuide/requirements.txt rename to doc/UserGuide/requirements.in index 7be32f526d..26c778f4aa 100644 --- a/docs/UserGuide/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 0000000000..b4642f5872 --- /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.6 + # 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/UserGuide/tables/UFS_unified_variables_table.csv b/doc/UserGuide/tables/UFS_unified_variables_table.csv similarity index 100% rename from docs/UserGuide/tables/UFS_unified_variables_table.csv rename to doc/UserGuide/tables/UFS_unified_variables_table.csv diff --git a/docs/UserGuide/tables/UFS_unified_variables_table.rst b/doc/UserGuide/tables/UFS_unified_variables_table.rst similarity index 100% rename from docs/UserGuide/tables/UFS_unified_variables_table.rst rename to doc/UserGuide/tables/UFS_unified_variables_table.rst diff --git a/docs/UserGuide/tables/UPP_GRIB2_Table_byID.csv b/doc/UserGuide/tables/UPP_GRIB2_Table_byID.csv similarity index 100% rename from docs/UserGuide/tables/UPP_GRIB2_Table_byID.csv rename to doc/UserGuide/tables/UPP_GRIB2_Table_byID.csv diff --git a/docs/UserGuide/tables/UPP_GRIB2_Table_byID.rst b/doc/UserGuide/tables/UPP_GRIB2_Table_byID.rst similarity index 100% rename from docs/UserGuide/tables/UPP_GRIB2_Table_byID.rst rename to doc/UserGuide/tables/UPP_GRIB2_Table_byID.rst 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 From 2f15d266b4b7a10e8c83da3401b3adf95e2a81b8 Mon Sep 17 00:00:00 2001 From: AndrewBenjamin-NOAA <103067657+AndrewBenjamin-NOAA@users.noreply.github.com> Date: Wed, 13 Mar 2024 14:20:12 -0400 Subject: [PATCH 24/29] Update RRFS products to switch to WMO gribs IDs (#886) * removed NCEP for ULWRF to use the official WMO ID rather than the dupilcate NCEP local use ID * removed NCEP from REFZR, REFZI, BMIXL, and CNWAT to use WMO grib2 ids * removed NCEP from SNOWC, SFEXC, SSRUN, BGRUN, FRICV, CD, SNOHF, PEVAP, TCOLI in order to use WMO id over NCEP local use ID. * removed NCEP from SNFALB, CDLYR, USWRF, DSWRF, DLWRF, VWSH, TCOLR, TCOLS, UPHL * removed NCEP from MSTAV in post_avblflds.xml to use WMO grib2 id for RRFS * removed duplicate CNWAT NATLEV entry in fv3lam_rrfs.xml. --- parm/fv3lam_rrfs.xml | 58 ----------- parm/post_avblflds.xml | 1 - parm/postxconfig-NT-fv3lam_rrfs.txt | 145 +++++++++++----------------- 3 files changed, 54 insertions(+), 150 deletions(-) diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index b82c92f4d7..9e24122c3a 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -135,7 +135,6 @@ BMIXL_ON_HYBRID_LVL BMIXL - NCEP 1. 3.0 @@ -438,7 +437,6 @@ CNWAT_ON_SURFACE CNWAT - NCEP 1.0 @@ -451,14 +449,12 @@ SNOWC_ON_SURFACE SNOWC - NCEP 3.0 SFEXC_ON_SURFACE SFEXC - NCEP 3.0 @@ -484,7 +480,6 @@ SNFALB_ON_SURFACE SNFALB - NCEP 3.0 @@ -791,14 +786,12 @@ ACM_SSRUN_ON_SURFACE SSRUN - NCEP 6.0 ACM_BGRUN_ON_SURFACE BGRUN - NCEP 6.0 @@ -910,7 +903,6 @@ AVE_CDLYR_ON_ENTIRE_ATMOS CDLYR - NCEP 3.0 @@ -935,7 +927,6 @@ INST_USWRF_ON_SURFACE USWRF - NCEP 4.0 @@ -948,21 +939,18 @@ AVE_DSWRF_ON_SURFACE DSWRF - NCEP 3.0 AVE_DLWRF_ON_SURFACE DLWRF - NCEP 3.0 AVE_USWRF_ON_SURFACE USWRF - NCEP 3.0 @@ -975,7 +963,6 @@ AVE_USWRF_ON_TOP_OF_ATMOS USWRF - NCEP 3.0 @@ -1000,14 +987,12 @@ INST_DSWRF_ON_SURFACE DSWRF - NCEP 4.0 INST_DLWRF_ON_SURFACE DLWRF - NCEP 4.0 @@ -1041,14 +1026,12 @@ FRICV_ON_SURFACE FRICV - NCEP 4.0 CD_ON_SURFACE CD - NCEP 3.0 @@ -1080,7 +1063,6 @@ AVE_SNOHF_ON_SURFACE SNOHF - NCEP 4.0 @@ -1099,7 +1081,6 @@ ACM_PEVAP_ON_SURFACE PEVAP - NCEP 4.0 @@ -1192,7 +1173,6 @@ VWSH_ON_TROPOPAUSE VWSH - NCEP 3.0 @@ -1474,14 +1454,12 @@ REFZR_ON_ENTIRE_ATMOS REFZR - NCEP -4.0 REFZI_ON_ENTIRE_ATMOS REFZI - NCEP -4.0 @@ -1495,7 +1473,6 @@ REFZR_ON_SPEC_HGT_LVL_ABOVE_GRND REFZR - NCEP 4000. 1000. -4.0 @@ -1503,7 +1480,6 @@ REFZI_ON_SPEC_HGT_LVL_ABOVE_GRND REFZI - NCEP 4000. 1000. -4.0 @@ -1536,7 +1512,6 @@ TCOLI_ON_ENTIRE_ATMOS TCOLI - NCEP 5.0 @@ -1613,14 +1588,12 @@ TCOLR_ON_ENTIRE_ATMOS TCOLR - NCEP 5.0 TCOLS_ON_ENTIRE_ATMOS TCOLS - NCEP 5.0 @@ -1860,7 +1833,6 @@ UPHL_ON_SPEC_HGT_LVL_ABOVE_GRND_2-5km UPHL - NCEP -3.0 @@ -2477,7 +2449,6 @@ SFEXC_ON_SURFACE SFEXC - NCEP 3.0 @@ -2502,7 +2473,6 @@ CNWAT_ON_SURFACE CNWAT - NCEP 1.0 @@ -2565,14 +2535,12 @@ ACM_SSRUN_ON_SURFACE SSRUN - NCEP 4.0 ACM_BGRUN_ON_SURFACE BGRUN - NCEP 4.0 @@ -2756,14 +2724,12 @@ AVE_CDLYR_ON_ENTIRE_ATMOS CDLYR - NCEP 3.0 INST_USWRF_ON_SURFACE USWRF - NCEP 4.0 @@ -2776,21 +2742,18 @@ AVE_DSWRF_ON_SURFACE DSWRF - NCEP 3.0 AVE_DLWRF_ON_SURFACE DLWRF - NCEP 3.0 AVE_USWRF_ON_SURFACE USWRF - NCEP 3.0 @@ -2803,7 +2766,6 @@ AVE_USWRF_ON_TOP_OF_ATMOS USWRF - NCEP 3.0 @@ -2816,14 +2778,12 @@ INST_DSWRF_ON_SURFACE DSWRF - NCEP 4.0 INST_DLWRF_ON_SURFACE DLWRF - NCEP 4.0 @@ -2857,14 +2817,12 @@ FRICV_ON_SURFACE FRICV - NCEP 4.0 CD_ON_SURFACE CD - NCEP 3.0 @@ -2896,7 +2854,6 @@ AVE_SNOHF_ON_SURFACE SNOHF - NCEP 4.0 @@ -2915,7 +2872,6 @@ ACM_PEVAP_ON_SURFACE PEVAP - NCEP 4.0 @@ -3068,13 +3024,6 @@ 3.0 - - CNWAT_ON_SURFACE - CNWAT - NCEP - 1.0 - - INST_GFLUX_ON_SURFACE GFLUX @@ -3229,7 +3178,6 @@ AVE_CDLYR_ON_ENTIRE_ATMOS CDLYR - NCEP 3.0 @@ -3261,7 +3209,6 @@ AVE_SNOHF_ON_SURFACE SNOHF - NCEP 4.0 @@ -3316,7 +3263,6 @@ VWSH_ON_TROPOPAUSE VWSH - NCEP 3.0 @@ -3453,21 +3399,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 @@ -3649,7 +3592,6 @@ AVE_SNOWC_ON_SURFACE SNOWC - NCEP 3.0 diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 36987589eb..6663dad6ad 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -1510,7 +1510,6 @@ 171 RUC_MSTAV_ON_DEPTH_BEL_LAND_SFC MSTAV - NCEP depth_bel_land_sfc 3.0 diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index 918930a9c7..47a0329857 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -1,7 +1,7 @@ 4 4 3 -254 +253 311 PRSLEV 32769 @@ -617,7 +617,7 @@ BMIXL_ON_HYBRID_LVL 1 tmpl4_0 BMIXL -NCEP +? ? hybrid_lvl 0 @@ -2134,7 +2134,7 @@ CNWAT_ON_SURFACE 1 tmpl4_0 CNWAT -NCEP +? ? surface 0 @@ -2208,7 +2208,7 @@ SNOWC_ON_SURFACE 1 tmpl4_0 SNOWC -NCEP +? ? surface 0 @@ -2245,7 +2245,7 @@ SFEXC_ON_SURFACE 1 tmpl4_0 SFEXC -NCEP +? ? surface 0 @@ -2393,7 +2393,7 @@ SNFALB_ON_SURFACE 1 tmpl4_0 SNFALB -NCEP +? ? surface 0 @@ -2948,7 +2948,7 @@ RUC_MSTAV_ON_DEPTH_BEL_LAND_SFC 1 tmpl4_0 MSTAV -NCEP +? ? depth_bel_land_sfc 0 @@ -4095,7 +4095,7 @@ ACM_SSRUN_ON_SURFACE 1 tmpl4_8 SSRUN -NCEP +? ACM surface 0 @@ -4132,7 +4132,7 @@ ACM_BGRUN_ON_SURFACE 1 tmpl4_8 BGRUN -NCEP +? ACM surface 0 @@ -4798,7 +4798,7 @@ AVE_CDLYR_ON_ENTIRE_ATMOS 1 tmpl4_8 CDLYR -NCEP +? AVE entire_atmos_single_lyr 0 @@ -4946,7 +4946,7 @@ INST_USWRF_ON_SURFACE 1 tmpl4_0 USWRF -NCEP +? ? surface 0 @@ -5020,7 +5020,7 @@ AVE_DSWRF_ON_SURFACE 1 tmpl4_8 DSWRF -NCEP +? AVE surface 0 @@ -5057,7 +5057,7 @@ AVE_DLWRF_ON_SURFACE 1 tmpl4_8 DLWRF -NCEP +? AVE surface 0 @@ -5094,7 +5094,7 @@ AVE_USWRF_ON_SURFACE 1 tmpl4_8 USWRF -NCEP +? AVE surface 0 @@ -5168,7 +5168,7 @@ AVE_USWRF_ON_TOP_OF_ATMOS 1 tmpl4_8 USWRF -NCEP +? AVE top_of_atmos 0 @@ -5316,7 +5316,7 @@ INST_DSWRF_ON_SURFACE 1 tmpl4_0 DSWRF -NCEP +? ? surface 0 @@ -5353,7 +5353,7 @@ INST_DLWRF_ON_SURFACE 1 tmpl4_0 DLWRF -NCEP +? ? surface 0 @@ -5538,7 +5538,7 @@ FRICV_ON_SURFACE 1 tmpl4_0 FRICV -NCEP +? ? surface 0 @@ -5575,7 +5575,7 @@ CD_ON_SURFACE 1 tmpl4_0 CD -NCEP +? ? surface 0 @@ -5760,7 +5760,7 @@ AVE_SNOHF_ON_SURFACE 1 tmpl4_8 SNOHF -NCEP +? AVE surface 0 @@ -5871,7 +5871,7 @@ ACM_PEVAP_ON_SURFACE 1 tmpl4_8 PEVAP -NCEP +? ACM surface 0 @@ -6426,7 +6426,7 @@ VWSH_ON_TROPOPAUSE 1 tmpl4_0 VWSH -NCEP +? ? tropopause 0 @@ -7980,7 +7980,7 @@ REFZR_ON_ENTIRE_ATMOS 1 tmpl4_0 REFZR -NCEP +? ? entire_atmos_single_lyr 0 @@ -8017,7 +8017,7 @@ REFZI_ON_ENTIRE_ATMOS 1 tmpl4_0 REFZI -NCEP +? ? entire_atmos_single_lyr 0 @@ -8091,7 +8091,7 @@ REFZR_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 REFZR -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -8128,7 +8128,7 @@ REFZI_ON_SPEC_HGT_LVL_ABOVE_GRND 1 tmpl4_0 REFZI -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -8313,7 +8313,7 @@ TCOLI_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLI -NCEP +? ? entire_atmos_single_lyr 0 @@ -8868,7 +8868,7 @@ TCOLR_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLR -NCEP +? ? entire_atmos_single_lyr 0 @@ -8905,7 +8905,7 @@ TCOLS_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLS -NCEP +? ? entire_atmos_single_lyr 0 @@ -10237,7 +10237,7 @@ Updraft Helicity on Specified Height Level Above Ground 1 tmpl4_0 UPHL -NCEP +? ? spec_hgt_lvl_above_grnd 0 @@ -13657,7 +13657,7 @@ SFEXC_ON_SURFACE 1 tmpl4_0 SFEXC -NCEP +? ? surface 0 @@ -13731,7 +13731,7 @@ RUC_MSTAV_ON_DEPTH_BEL_LAND_SFC 1 tmpl4_0 MSTAV -NCEP +? ? depth_bel_land_sfc 0 @@ -13805,7 +13805,7 @@ CNWAT_ON_SURFACE 1 tmpl4_0 CNWAT -NCEP +? ? surface 0 @@ -14175,7 +14175,7 @@ ACM_SSRUN_ON_SURFACE 1 tmpl4_8 SSRUN -NCEP +? ACM surface 0 @@ -14212,7 +14212,7 @@ ACM_BGRUN_ON_SURFACE 1 tmpl4_8 BGRUN -NCEP +? ACM surface 0 @@ -15137,7 +15137,7 @@ AVE_CDLYR_ON_ENTIRE_ATMOS 1 tmpl4_8 CDLYR -NCEP +? AVE entire_atmos_single_lyr 0 @@ -15174,7 +15174,7 @@ INST_USWRF_ON_SURFACE 1 tmpl4_0 USWRF -NCEP +? ? surface 0 @@ -15248,7 +15248,7 @@ AVE_DSWRF_ON_SURFACE 1 tmpl4_8 DSWRF -NCEP +? AVE surface 0 @@ -15285,7 +15285,7 @@ AVE_DLWRF_ON_SURFACE 1 tmpl4_8 DLWRF -NCEP +? AVE surface 0 @@ -15322,7 +15322,7 @@ AVE_USWRF_ON_SURFACE 1 tmpl4_8 USWRF -NCEP +? AVE surface 0 @@ -15396,7 +15396,7 @@ AVE_USWRF_ON_TOP_OF_ATMOS 1 tmpl4_8 USWRF -NCEP +? AVE top_of_atmos 0 @@ -15470,7 +15470,7 @@ INST_DSWRF_ON_SURFACE 1 tmpl4_0 DSWRF -NCEP +? ? surface 0 @@ -15507,7 +15507,7 @@ INST_DLWRF_ON_SURFACE 1 tmpl4_0 DLWRF -NCEP +? ? surface 0 @@ -15692,7 +15692,7 @@ FRICV_ON_SURFACE 1 tmpl4_0 FRICV -NCEP +? ? surface 0 @@ -15729,7 +15729,7 @@ CD_ON_SURFACE 1 tmpl4_0 CD -NCEP +? ? surface 0 @@ -15914,7 +15914,7 @@ AVE_SNOHF_ON_SURFACE 1 tmpl4_8 SNOHF -NCEP +? AVE surface 0 @@ -16025,7 +16025,7 @@ ACM_PEVAP_ON_SURFACE 1 tmpl4_8 PEVAP -NCEP +? ACM surface 0 @@ -16833,43 +16833,6 @@ top_of_atmos ? ? ? -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 -? -? -? 152 INST_GFLUX_ON_SURFACE ? @@ -17653,7 +17616,7 @@ AVE_CDLYR_ON_ENTIRE_ATMOS 1 tmpl4_8 CDLYR -NCEP +? AVE entire_atmos_single_lyr 0 @@ -17838,7 +17801,7 @@ AVE_SNOHF_ON_SURFACE 1 tmpl4_8 SNOHF -NCEP +? AVE surface 0 @@ -18171,7 +18134,7 @@ VWSH_ON_TROPOPAUSE 1 tmpl4_0 VWSH -NCEP +? ? tropopause 0 @@ -18985,7 +18948,7 @@ TCOLI_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLI -NCEP +? ? entire_atmos_single_lyr 0 @@ -19022,7 +18985,7 @@ TCOLR_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLR -NCEP +? ? entire_atmos_single_lyr 0 @@ -19059,7 +19022,7 @@ TCOLS_ON_ENTIRE_ATMOS 1 tmpl4_0 TCOLS -NCEP +? ? entire_atmos_single_lyr 0 @@ -20058,7 +20021,7 @@ AVE_SNOWC_ON_SURFACE 1 tmpl4_8 SNOWC -NCEP +? AVE surface 0 From d597055fdc540898b18936690340fe29507fd36e Mon Sep 17 00:00:00 2001 From: WenMeng-NOAA <48260754+WenMeng-NOAA@users.noreply.github.com> Date: Wed, 13 Mar 2024 19:08:47 -0400 Subject: [PATCH 25/29] Sync EE2 updates from AQM v7 implementation (#890) * Sync EE2 changes from AQM v7 implementation * upgrade crtm to 2.4.0.1 on WCOSS2 * update modulefiles on Acorn --- modulefiles/wcoss2.lua | 2 +- modulefiles/wcoss2_a.lua | 69 +++++--------------------------- sorc/ncep_post.fd/CMakeLists.txt | 3 +- 3 files changed, 12 insertions(+), 62 deletions(-) diff --git a/modulefiles/wcoss2.lua b/modulefiles/wcoss2.lua index ac3dc9dd85..ce9dc5c721 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)) diff --git a/modulefiles/wcoss2_a.lua b/modulefiles/wcoss2_a.lua index 7db60d2455..ebedbdd30c 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/sorc/ncep_post.fd/CMakeLists.txt b/sorc/ncep_post.fd/CMakeLists.txt index 1968280b37..de439228ce 100644 --- a/sorc/ncep_post.fd/CMakeLists.txt +++ b/sorc/ncep_post.fd/CMakeLists.txt @@ -175,7 +175,8 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") set(CMAKE_Fortran_FLAGS "-g -traceback -fp-model source -free -convert big_endian") set(CMAKE_Fortran_FLAGS_RELEASE "-O3") - set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -check bounds -check pointers -check shape -check stack -check uninit") + set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -ftrapuv -check all") + set_source_files_properties(INITPOST_GFS_NEMS_MPIIO.f INITPOST_NETCDF.f INITPOST_NEMS.f PROPERTIES COMPILE_FLAGS -qoverride-limits) elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$") set(CMAKE_Fortran_FLAGS "-g -fbacktrace -ffree-form -ffree-line-length-none -fconvert=big-endian") From 15e2a8c1a5189621b51d948b3b8f88cf417bb620 Mon Sep 17 00:00:00 2001 From: WenMeng-NOAA <48260754+WenMeng-NOAA@users.noreply.github.com> Date: Mon, 18 Mar 2024 15:49:40 -0400 Subject: [PATCH 26/29] Update UPP for rocky8 transition on Hera and Jet (#895) * Add changes for Rocky8 on Hera. * Add changes for rocky8 on jet. --- modulefiles/hera.lua | 2 +- modulefiles/hera_c.lua | 23 +++++++++++++++++++++++ modulefiles/jet.lua | 2 +- modulefiles/jet_c.lua | 22 ++++++++++++++++++++++ tests/detect_machine.sh | 24 ++++++++++++------------ 5 files changed, 59 insertions(+), 14 deletions(-) create mode 100644 modulefiles/hera_c.lua create mode 100644 modulefiles/jet_c.lua diff --git a/modulefiles/hera.lua b/modulefiles/hera.lua index 5bd691da6b..2231ad1c1f 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.6.0/envs/unified-env/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/hera_c.lua b/modulefiles/hera_c.lua new file mode 100644 index 0000000000..5bd691da6b --- /dev/null +++ b/modulefiles/hera_c.lua @@ -0,0 +1,23 @@ +help([[ +Load environment to build UPP on hera +]]) + + +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.6.0/envs/unified-env/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/jet.lua b/modulefiles/jet.lua index dcd54d7b57..a118c88aa3 100644 --- a/modulefiles/jet.lua +++ b/modulefiles/jet.lua @@ -2,7 +2,7 @@ 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/install/modulefiles/Core") +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)) diff --git a/modulefiles/jet_c.lua b/modulefiles/jet_c.lua new file mode 100644 index 0000000000..dcd54d7b57 --- /dev/null +++ b/modulefiles/jet_c.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/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/tests/detect_machine.sh b/tests/detect_machine.sh index 997e550dc1..cbc6a96bc5 100755 --- a/tests/detect_machine.sh +++ b/tests/detect_machine.sh @@ -44,23 +44,23 @@ case $(hostname -f) in 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 + hfe01) MACHINE_ID=hera_c ;; ### hera01 + hfe02) MACHINE_ID=hera_c ;; ### hera02 + hfe03) MACHINE_ID=hera_c ;; ### hera03 + hfe04) MACHINE_ID=hera_c ;; ### hera04 + hfe05) MACHINE_ID=hera_c ;; ### hera05 + hfe06) MACHINE_ID=hera_c ;; ### hera06 + hfe07) MACHINE_ID=hera_c ;; ### hera07 + hfe08) MACHINE_ID=hera_c ;; ### 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 + fe1) MACHINE_ID=jet_c ;; ### jet01 + fe2) MACHINE_ID=jet_c ;; ### jet02 + fe3) MACHINE_ID=jet_c ;; ### jet03 + fe4) MACHINE_ID=jet_c ;; ### jet04 fe5) MACHINE_ID=jet ;; ### jet05 fe6) MACHINE_ID=jet ;; ### jet06 fe7) MACHINE_ID=jet ;; ### jet07 From 41023fd97241404050efa53f69c5f9bd31ac8b8c Mon Sep 17 00:00:00 2001 From: Fernando Andrade - NOAA <121964418+FernandoAndrade-NOAA@users.noreply.github.com> Date: Thu, 21 Mar 2024 10:21:32 -0700 Subject: [PATCH 27/29] Transition Gaea F2 to F5 + Cleanup (#896) * hera rocky8 and hercules python * Add changes for Rocky8 on Hera. * Add changes for rocky8 on jet. * gaea f5 & hercules python revert gaea_c5 to just gaea, update to spack stack 1.6.0, add python load to hercules * update hercules python & cleanup detect_machine * Update rt.sh * Update detect_machine.sh comment cleanup * Update detect_machine.sh * Update detect_machine.sh (ufs weather model) Adopted detect_machine.sh from the ufs-weather-model which should be more flexible in detecting the current machine. * rm hera_c & fail message * rm hera_c & hercules python load * Update rt.sh hera rocky8 --------- Co-authored-by: Wen Meng --- ci/rt.sh | 3 +- modulefiles/gaea-c5.lua | 58 ------------ modulefiles/gaea.lua | 70 +++++--------- modulefiles/hera_c.lua | 23 ----- modulefiles/hercules.lua | 3 + tests/compile_upp.sh | 24 ++--- tests/detect_machine.sh | 191 ++++++++++++++++++--------------------- 7 files changed, 122 insertions(+), 250 deletions(-) delete mode 100644 modulefiles/gaea-c5.lua delete mode 100644 modulefiles/hera_c.lua diff --git a/ci/rt.sh b/ci/rt.sh index cf839e660e..57cea79427 100755 --- a/ci/rt.sh +++ b/ci/rt.sh @@ -65,7 +65,7 @@ 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.6.0/envs/unified-env/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/2.1.1 @@ -85,6 +85,7 @@ elif [ $mac3 = herc ] ; then module load stack-intel/2021.9.0 module load stack-intel-oneapi-mpi/2021.9.0 module load prod_util/2.1.1 + module load stack-python/3.10.13 fi #set working directory diff --git a/modulefiles/gaea-c5.lua b/modulefiles/gaea-c5.lua deleted file mode 100644 index 09c7e6593c..0000000000 --- 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 7a87da323a..0e610cfd73 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_c.lua b/modulefiles/hera_c.lua deleted file mode 100644 index 5bd691da6b..0000000000 --- a/modulefiles/hera_c.lua +++ /dev/null @@ -1,23 +0,0 @@ -help([[ -Load environment to build UPP on hera -]]) - - -prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.6.0/envs/unified-env/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/hercules.lua b/modulefiles/hercules.lua index b057df81ed..da1722e68d 100644 --- a/modulefiles/hercules.lua +++ b/modulefiles/hercules.lua @@ -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/tests/compile_upp.sh b/tests/compile_upp.sh index 2ecfe9f5eb..c1cb507a19 100755 --- a/tests/compile_upp.sh +++ b/tests/compile_upp.sh @@ -83,24 +83,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 diff --git a/tests/detect_machine.sh b/tests/detect_machine.sh index cbc6a96bc5..ba157a0eb0 100755 --- a/tests/detect_machine.sh +++ b/tests/detect_machine.sh @@ -1,112 +1,95 @@ #!/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_c ;; ### hera01 - hfe02) MACHINE_ID=hera_c ;; ### hera02 - hfe03) MACHINE_ID=hera_c ;; ### hera03 - hfe04) MACHINE_ID=hera_c ;; ### hera04 - hfe05) MACHINE_ID=hera_c ;; ### hera05 - hfe06) MACHINE_ID=hera_c ;; ### hera06 - hfe07) MACHINE_ID=hera_c ;; ### hera07 - hfe08) MACHINE_ID=hera_c ;; ### 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_c ;; ### jet01 - fe2) MACHINE_ID=jet_c ;; ### jet02 - fe3) MACHINE_ID=jet_c ;; ### jet03 - fe4) MACHINE_ID=jet_c ;; ### 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[0-2]) MACHINE_ID=hera ;; ### hera10-12 + hecflow01) MACHINE_ID=hera ;; ### heraecflow01 + + s4-submit.ssec.wisc.edu) MACHINE_ID=s4 ;; ### s4 + + fe[1-4]) MACHINE_ID=jet_c ;; ### jet1-4 + fe[5-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 From e2189f7d0dcaa3ce15050618a3eeb2c4ef8774be Mon Sep 17 00:00:00 2001 From: WenMeng-NOAA <48260754+WenMeng-NOAA@users.noreply.github.com> Date: Fri, 22 Mar 2024 13:12:06 -0400 Subject: [PATCH 28/29] Update UPP for GFS V17 HR4 (#894) * Remove ICETMP and ICEG from the GFS UPP product list * Remove ICETMP and ICEG from pgrb2 product list * Remove time averaged P-type from GFS product list. * Remove VVEL from gfs product list * Remove VVEL from pgrb2/pgrb2b lists. * add option to read 3D soil fields * Revert VVEL changes --- parm/global_1x1_paramlist_g2 | 2 - parm/global_1x1_paramlist_g2.anl | 1 - parm/global_1x1_paramlist_g2.f000 | 2 - parm/postcntrl_gfs.xml | 35 ----- parm/postcntrl_gfs_anl.xml | 5 - parm/postcntrl_gfs_f00.xml | 11 -- parm/postcntrl_gfs_f00_two.xml | 11 -- parm/postcntrl_gfs_two.xml | 35 ----- parm/postxconfig-NT-GFS-ANL.txt | 39 +---- parm/postxconfig-NT-GFS-F00-TWO.txt | 76 +--------- parm/postxconfig-NT-GFS-F00.txt | 76 +--------- parm/postxconfig-NT-GFS-TWO.txt | 224 +--------------------------- parm/postxconfig-NT-GFS.txt | 224 +--------------------------- sorc/ncep_post.fd/INITPOST_NETCDF.f | 16 ++ 14 files changed, 21 insertions(+), 736 deletions(-) diff --git a/parm/global_1x1_paramlist_g2 b/parm/global_1x1_paramlist_g2 index 518998909a..cb2f82f02a 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 dd340636d6..3c7ba28bb9 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 b1dcb09ccd..34d84ac3c1 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/postcntrl_gfs.xml b/parm/postcntrl_gfs.xml index 07cb230777..b1233a89e5 100755 --- a/parm/postcntrl_gfs.xml +++ b/parm/postcntrl_gfs.xml @@ -389,30 +389,6 @@ 1.0 - - AVE_CRAIN_ON_SURFACE - NCEP - 1.0 - - - - AVE_CSNOW_ON_SURFACE - NCEP - 1.0 - - - - AVE_CICEP_ON_SURFACE - NCEP - 1.0 - - - - AVE_CFRZR_ON_SURFACE - NCEP - 1.0 - - AVE_PRATE_ON_SURFACE 6.0 @@ -1073,12 +1049,6 @@ 6.0 - - ICEG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL - 10. - 4.0 - - SOTYP_ON_SURFACE 4.0 @@ -1089,11 +1059,6 @@ 3.0 - - ICETMP_ON_SURFACE - 5.0 - - HGT_ON_CLOUD_CEILING 6.0 diff --git a/parm/postcntrl_gfs_anl.xml b/parm/postcntrl_gfs_anl.xml index 1306d2e9fa..cb7de93c07 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 3473ccdb96..3a618219b9 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 3d5df294fd..a26541def0 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 diff --git a/parm/postcntrl_gfs_two.xml b/parm/postcntrl_gfs_two.xml index b55f7cf665..244cc0c396 100755 --- a/parm/postcntrl_gfs_two.xml +++ b/parm/postcntrl_gfs_two.xml @@ -389,30 +389,6 @@ 1.0 - - AVE_CRAIN_ON_SURFACE - NCEP - 1.0 - - - - AVE_CSNOW_ON_SURFACE - NCEP - 1.0 - - - - AVE_CICEP_ON_SURFACE - NCEP - 1.0 - - - - AVE_CFRZR_ON_SURFACE - NCEP - 1.0 - - AVE_PRATE_ON_SURFACE 6.0 @@ -1073,12 +1049,6 @@ 6.0 - - ICEG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL - 10. - 4.0 - - SOTYP_ON_SURFACE 4.0 @@ -1089,11 +1059,6 @@ 3.0 - - ICETMP_ON_SURFACE - 5.0 - - HGT_ON_CLOUD_CEILING 6.0 diff --git a/parm/postxconfig-NT-GFS-ANL.txt b/parm/postxconfig-NT-GFS-ANL.txt index 83c13293ba..638505e89c 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 de64c9545c..a0f6f3346a 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 ? diff --git a/parm/postxconfig-NT-GFS-F00.txt b/parm/postxconfig-NT-GFS-F00.txt index bf2548acd9..33159fce8f 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-TWO.txt b/parm/postxconfig-NT-GFS-TWO.txt index a417134f43..595eed01de 100644 --- a/parm/postxconfig-NT-GFS-TWO.txt +++ b/parm/postxconfig-NT-GFS-TWO.txt @@ -1,6 +1,6 @@ 2 112 -210 +204 GFSPRS 0 ncep_nco @@ -2237,154 +2237,6 @@ surface ? ? ? -317 -AVE_CRAIN_ON_SURFACE -? -1 -tmpl4_8 -CRAIN -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 -0 -0 -0 -? -? -? -555 -AVE_CSNOW_ON_SURFACE -average Categorical snow on surface -1 -tmpl4_8 -CSNOW -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 -0 -0 -0 -? -? -? -556 -AVE_CICEP_ON_SURFACE -average Categorical ice pellets on surface -1 -tmpl4_8 -CICEP -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 -0 -0 -0 -? -? -? -557 -AVE_CFRZR_ON_SURFACE -average Categorical freezing rain on surface -1 -tmpl4_8 -CFRZR -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 -0 -0 -0 -? -? -? 271 AVE_PRATE_ON_SURFACE ? @@ -6788,43 +6640,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 ? @@ -6899,43 +6714,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.txt b/parm/postxconfig-NT-GFS.txt index 47cc36f4cd..9d43708604 100644 --- a/parm/postxconfig-NT-GFS.txt +++ b/parm/postxconfig-NT-GFS.txt @@ -1,5 +1,5 @@ 1 -210 +204 GFSPRS 0 ncep_nco @@ -2236,154 +2236,6 @@ surface ? ? ? -317 -AVE_CRAIN_ON_SURFACE -? -1 -tmpl4_8 -CRAIN -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 -0 -0 -0 -? -? -? -555 -AVE_CSNOW_ON_SURFACE -average Categorical snow on surface -1 -tmpl4_8 -CSNOW -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 -0 -0 -0 -? -? -? -556 -AVE_CICEP_ON_SURFACE -average Categorical ice pellets on surface -1 -tmpl4_8 -CICEP -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 -0 -0 -0 -? -? -? -557 -AVE_CFRZR_ON_SURFACE -average Categorical freezing rain on surface -1 -tmpl4_8 -CFRZR -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -1.0 -0 -0 -0 -? -? -? 271 AVE_PRATE_ON_SURFACE ? @@ -6787,43 +6639,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 ? @@ -6898,43 +6713,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/sorc/ncep_post.fd/INITPOST_NETCDF.f b/sorc/ncep_post.fd/INITPOST_NETCDF.f index f3e73683c7..19d1627e4a 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -48,6 +48,7 @@ !> 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 !> !> @author Hui-Ya Chuang @date 2016-03-04 !---------------------------------------------------------------------- @@ -2242,6 +2243,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' @@ -2590,6 +2594,18 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) if(debugprint)print*,'sample stc = ',1,stc(isa,jsa,9) END IF + + 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 From 4770a2f509b7122e76c4f004210031a58ae9502c Mon Sep 17 00:00:00 2001 From: YaliMao-NOAA <53870326+YaliMao-NOAA@users.noreply.github.com> Date: Tue, 26 Mar 2024 01:57:45 +0000 Subject: [PATCH 29/29] Correct model name for RRFS in-flight icing and update GTG version (#898) * update gtg code revision to v4.16.2 * Correct model name for RRFS in-flight icing output. Update GTG version to v4.16.2 --------- Co-authored-by: yali mao Co-authored-by: yali mao --- parm/fv3lam_rrfs.xml | 2 +- parm/postxconfig-NT-fv3lam_rrfs.txt | 2 +- sorc/ncep_post.fd/post_gtg.fd | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index 9e24122c3a..6a1aa70801 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -3745,7 +3745,7 @@ fcst hour nws_ncep - hrrr + rrfs complex_packing_spatial_diff 2nd_ord_sptdiff fltng_pnt diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index 47a0329857..10a745f3b5 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -20914,7 +20914,7 @@ fcst fcst hour nws_ncep -hrrr +rrfs complex_packing_spatial_diff 2nd_ord_sptdiff fltng_pnt diff --git a/sorc/ncep_post.fd/post_gtg.fd b/sorc/ncep_post.fd/post_gtg.fd index 755d92dd5a..7476b8f279 160000 --- a/sorc/ncep_post.fd/post_gtg.fd +++ b/sorc/ncep_post.fd/post_gtg.fd @@ -1 +1 @@ -Subproject commit 755d92dd5a474cd805c39cfaa3080e20772a46d7 +Subproject commit 7476b8f2790a47d788f79cebfdbb551567ae7cf8