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] 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 518998909..cb2f82f02 100644
--- a/parm/global_1x1_paramlist_g2
+++ b/parm/global_1x1_paramlist_g2
@@ -176,7 +176,6 @@ ICAHT:max wind
ICAHT:tropopause
ICEC:surface
ICETK:surface
-ICETMP:surface
ICSEV:100 mb
ICSEV:150 mb
ICSEV:200 mb
@@ -757,4 +756,3 @@ WEASD:surface
WILT:surface
SNOD:surface
VIS:surface
-ICEG:10 m above mean sea level
diff --git a/parm/global_1x1_paramlist_g2.anl b/parm/global_1x1_paramlist_g2.anl
index dd340636d..3c7ba28bb 100644
--- a/parm/global_1x1_paramlist_g2.anl
+++ b/parm/global_1x1_paramlist_g2.anl
@@ -152,7 +152,6 @@ HLCY:3000-0 m above ground
ICAHT:max wind
ICAHT:tropopause
ICETK:surface
-ICETMP:surface
ICMR:50 mb
ICMR:1000 mb
ICMR:100 mb
diff --git a/parm/global_1x1_paramlist_g2.f000 b/parm/global_1x1_paramlist_g2.f000
index b1dcb09cc..34d84ac3c 100644
--- a/parm/global_1x1_paramlist_g2.f000
+++ b/parm/global_1x1_paramlist_g2.f000
@@ -166,7 +166,6 @@ ICAHT:max wind
ICAHT:tropopause
ICEC:surface
ICETK:surface
-ICETMP:surface
ICMR:50 mb
ICMR:1000 mb
ICMR:100 mb
@@ -697,4 +696,3 @@ WEASD:surface
WILT:surface
SNOD:surface
VIS:surface
-ICEG:10 m above mean sea level
diff --git a/parm/postcntrl_gfs.xml b/parm/postcntrl_gfs.xml
index 07cb23077..b1233a89e 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 1306d2e9f..cb7de93c0 100755
--- a/parm/postcntrl_gfs_anl.xml
+++ b/parm/postcntrl_gfs_anl.xml
@@ -548,11 +548,6 @@
3.0
-
- ICETMP_ON_SURFACE
- 5.0
-
-
LAND_FRAC
3.0
diff --git a/parm/postcntrl_gfs_f00.xml b/parm/postcntrl_gfs_f00.xml
index 3473ccdb9..3a618219b 100755
--- a/parm/postcntrl_gfs_f00.xml
+++ b/parm/postcntrl_gfs_f00.xml
@@ -821,12 +821,6 @@
6.0
-
- ICEG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL
- 10.
- 4.0
-
-
SOTYP_ON_SURFACE
4.0
@@ -837,11 +831,6 @@
3.0
-
- ICETMP_ON_SURFACE
- 5.0
-
-
HGT_ON_CLOUD_CEILING
6.0
diff --git a/parm/postcntrl_gfs_f00_two.xml b/parm/postcntrl_gfs_f00_two.xml
index 3d5df294f..a26541def 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 b55f7cf66..244cc0c39 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 83c13293b..638505e89 100644
--- a/parm/postxconfig-NT-GFS-ANL.txt
+++ b/parm/postxconfig-NT-GFS-ANL.txt
@@ -1,5 +1,5 @@
1
-93
+92
GFSPRS
0
ncep_nco
@@ -3383,43 +3383,6 @@ surface
?
?
?
-968
-ICETMP_ON_SURFACE
-?
-1
-tmpl4_0
-ICETMP
-?
-?
-surface
-0
-?
-0
-?
-?
-0
-?
-0
-?
-?
-?
-0
-0.0
-0
-0.0
-?
-0
-0.0
-0
-0.0
-1
-5.0
-0
-0
-0
-?
-?
-?
996
LAND_FRAC
?
diff --git a/parm/postxconfig-NT-GFS-F00-TWO.txt b/parm/postxconfig-NT-GFS-F00-TWO.txt
index de64c9545..a0f6f3346 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 bf2548acd..33159fce8 100644
--- a/parm/postxconfig-NT-GFS-F00.txt
+++ b/parm/postxconfig-NT-GFS-F00.txt
@@ -1,5 +1,5 @@
1
-156
+154
GFSPRS
0
ncep_nco
@@ -5048,43 +5048,6 @@ hybrid_lvl
?
?
?
-588
-ICEG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL
-?
-1
-tmpl4_0
-ICEG
-?
-?
-spec_alt_above_mean_sea_lvl
-0
-?
-1
-10.
-?
-0
-?
-0
-?
-?
-?
-0
-0.0
-0
-0.0
-?
-0
-0.0
-0
-0.0
-1
-4.0
-0
-0
-0
-?
-?
-?
219
SOTYP_ON_SURFACE
?
@@ -5159,43 +5122,6 @@ surface
?
?
?
-968
-ICETMP_ON_SURFACE
-?
-1
-tmpl4_0
-ICETMP
-?
-?
-surface
-0
-?
-0
-?
-?
-0
-?
-0
-?
-?
-?
-0
-0.0
-0
-0.0
-?
-0
-0.0
-0
-0.0
-1
-5.0
-0
-0
-0
-?
-?
-?
260
HGT_ON_CLOUD_CEILING
?
diff --git a/parm/postxconfig-NT-GFS-TWO.txt b/parm/postxconfig-NT-GFS-TWO.txt
index a417134f4..595eed01d 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 47cc36f4c..9d4370860 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 f3e73683c..19d1627e4 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