diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml
index 77c6d9ff6..977541d9b 100755
--- a/parm/post_avblflds.xml
+++ b/parm/post_avblflds.xml
@@ -4168,7 +4168,7 @@
3.0
-
+
467
EDPARM_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL
@@ -4243,6 +4243,40 @@
6.0
+
+
+ 476
+ EDPARM_ON_ISOBARIC_SFC
+ EDPARM
+ isobaric_sfc
+ 3.0
+
+
+
+ 477
+ CAT_ON_ISOBARIC_SFC
+ CATEDR
+ isobaric_sfc
+ 3.0
+
+
+
+ 478
+ MWTURB_ON_ISOBARIC_SFC
+ MWTURB
+ isobaric_sfc
+ 3.0
+
+
+
+
+ 479
+ ICESEV_ON_ISOBARIC_SFC
+ ICESEV
+ isobaric_sfc
+ 1.0
+
+
480
ICESEV_ON_ICAO_STD_SFC
@@ -4252,6 +4286,14 @@
1.0
+
+ 481
+ ICIP_ON_ISOBARIC_SFC
+ ICIP
+ isobaric_sfc
+ 3.0
+
+
482
PRES_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL
@@ -4549,7 +4591,7 @@
6.0
-
+
518
HGT_ON_ICAO_STD_SFC
@@ -4590,30 +4632,6 @@
2.0
-
- 523
- VVEL_ON_ICAO_STD_SFC
- VVEL
- isobaric_sfc
- 5.0
-
-
-
- 524
- ABSV_ON_ICAO_STD_SFC
- ABSV
- isobaric_sfc
- 4.0
-
-
-
- 525
- CLWMR_ON_ICAO_STD_SFC
- CLWMR
- isobaric_sfc
- 4.0
-
-
551
CSNOW_ON_SURFACE
diff --git a/parm/postcntrl_gfs_wafs.xml b/parm/postcntrl_gfs_wafs.xml
index 8dea081b2..2bcf81c74 100755
--- a/parm/postcntrl_gfs_wafs.xml
+++ b/parm/postcntrl_gfs_wafs.xml
@@ -1,8 +1,8 @@
-
- GFSPRS
+
+ GFSSTD
0
ncep_nco
v2003
@@ -82,31 +82,81 @@
3.0
+
+
+
+
+
+ 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
+
- RH_ON_ICAO_STD_SFC
- 7000. 10040. 12770. 14750. 17870. 19680. 22730. 25000. 27450. 30090. 32500. 34430. 37500. 39270. 42500. 44650. 47500. 50600. 52500. 55000. 57500. 59520. 62500.
- 65000. 67500. 69680. 72500. 75260. 77500. 81200. 82500. 84310. 87500. 90000. 92500. 95000. 97500. 100000.
+ EDPARM_ON_ISOBARIC_SFC
+ 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680.
+
3.0
- VVEL_ON_ICAO_STD_SFC
- 7000. 10040. 12770. 14750. 17870. 19680. 22730. 25000. 27450. 30090. 32500. 34430. 37500. 39270. 42500. 44650. 47500. 50600. 52500. 55000. 57500. 59520. 62500.
- 65000. 67500. 69680. 72500. 75260. 77500. 81200. 82500. 84310. 87500. 90000. 92500. 95000. 97500. 100000.
+ CAT_ON_ISOBARIC_SFC
+ 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680.
3.0
- ABSV_ON_ICAO_STD_SFC
- 7000. 10040. 12770. 14750. 17870. 19680. 22730. 25000. 27450. 30090. 32500. 34430. 37500. 39270. 42500. 44650. 47500. 50600. 52500. 55000. 57500. 59520. 62500.
- 65000. 67500. 69680. 72500. 75260. 77500. 81200. 82500. 84310. 87500. 90000. 92500. 95000. 97500. 100000.
+ MWTURB_ON_ISOBARIC_SFC
+ 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680.
3.0
- CLWMR_ON_ICAO_STD_SFC
- 7000. 10040. 12770. 14750. 17870. 19680. 22730. 25000. 27450. 30090. 32500. 34430. 37500. 39270. 42500. 44650. 47500. 50600. 52500. 55000. 57500. 59520. 62500.
- 65000. 67500. 69680. 72500. 75260. 77500. 81200. 82500. 84310. 87500. 90000. 92500. 95000. 97500. 100000.
+ ICESEV_ON_ISOBARIC_SFC
+ 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+
+ 1.0
+
+
+
+ HGT_ON_ISOBARIC_SFC
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 6.0
+
+
+
+ TMP_ON_ISOBARIC_SFC
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 4.0
+
+
+
+ UGRD_ON_ISOBARIC_SFC
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 4.0
+
+
+
+ VGRD_ON_ISOBARIC_SFC
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 4.0
+
+
+
+ RH_ON_ISOBARIC_SFC
+ 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
3.0
diff --git a/parm/postcntrl_gfs_wafs_anl.xml b/parm/postcntrl_gfs_wafs_anl.xml
index 8d99f54fb..33b0beba4 100755
--- a/parm/postcntrl_gfs_wafs_anl.xml
+++ b/parm/postcntrl_gfs_wafs_anl.xml
@@ -20,24 +20,21 @@
lossless
- TMP_ON_ICAO_STD_SFC
- 10040. 14750. 19680. 25000. 30090. 34430. 39270. 44650. 50600. 55000. 59520.
- 65000. 69680. 75260. 81200. 84310. 90000. 95000. 100000.
- 3.0
+ TMP_ON_ISOBARIC_SFC
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 4.0
- UGRD_ON_ICAO_STD_SFC
- 10040. 14750. 19680. 25000. 30090. 34430. 39270. 44650. 50600. 55000. 59520.
- 65000. 69680. 75260. 81200. 84310. 90000. 95000. 100000.
- 3.0
+ UGRD_ON_ISOBARIC_SFC
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 4.0
- VGRD_ON_ICAO_STD_SFC
- 10040. 14750. 19680. 25000. 30090. 34430. 39270. 44650. 50600. 55000. 59520.
- 65000. 69680. 75260. 81200. 84310. 90000. 95000. 100000.
- 3.0
+ VGRD_ON_ISOBARIC_SFC
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 4.0
diff --git a/parm/postcntrl_gfs_wafs_ext.xml b/parm/postcntrl_gfs_wafs_ext.xml
new file mode 100755
index 000000000..ec7efbcac
--- /dev/null
+++ b/parm/postcntrl_gfs_wafs_ext.xml
@@ -0,0 +1,54 @@
+
+
+
+
+ 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
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 6.0
+
+
+
+ TMP_ON_ISOBARIC_SFC
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 4.0
+
+
+
+ UGRD_ON_ISOBARIC_SFC
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 4.0
+
+
+
+ VGRD_ON_ISOBARIC_SFC
+ 7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 4.0
+
+
+
+ RH_ON_ISOBARIC_SFC
+ 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+ 3.0
+
+
+
+
+
diff --git a/parm/postxconfig-NT-GFS-WAFS-ANL.txt b/parm/postxconfig-NT-GFS-WAFS-ANL.txt
index c1dcde1a1..7c79ea42e 100644
--- a/parm/postxconfig-NT-GFS-WAFS-ANL.txt
+++ b/parm/postxconfig-NT-GFS-WAFS-ANL.txt
@@ -16,8 +16,8 @@ complex_packing_spatial_diff
2nd_ord_sptdiff
fltng_pnt
lossless
-519
-TMP_ON_ICAO_STD_SFC
+13
+TMP_ON_ISOBARIC_SFC
?
1
tmpl4_0
@@ -27,8 +27,8 @@ TMP
isobaric_sfc
0
?
-19
-10040. 14750. 19680. 25000. 30090. 34430. 39270. 44650. 50600. 55000. 59520. 65000. 69680. 75260. 81200. 84310. 90000. 95000. 100000.
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
?
0
?
@@ -46,15 +46,15 @@ isobaric_sfc
0
0.0
1
-3.0
+4.0
0
0
0
?
?
?
-520
-UGRD_ON_ICAO_STD_SFC
+18
+UGRD_ON_ISOBARIC_SFC
?
1
tmpl4_0
@@ -64,8 +64,8 @@ UGRD
isobaric_sfc
0
?
-19
-10040. 14750. 19680. 25000. 30090. 34430. 39270. 44650. 50600. 55000. 59520. 65000. 69680. 75260. 81200. 84310. 90000. 95000. 100000.
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
?
0
?
@@ -83,15 +83,15 @@ isobaric_sfc
0
0.0
1
-3.0
+4.0
0
0
0
?
?
?
-521
-VGRD_ON_ICAO_STD_SFC
+19
+VGRD_ON_ISOBARIC_SFC
?
1
tmpl4_0
@@ -101,8 +101,8 @@ VGRD
isobaric_sfc
0
?
-19
-10040. 14750. 19680. 25000. 30090. 34430. 39270. 44650. 50600. 55000. 59520. 65000. 69680. 75260. 81200. 84310. 90000. 95000. 100000.
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
?
0
?
@@ -120,7 +120,7 @@ isobaric_sfc
0
0.0
1
-3.0
+4.0
0
0
0
diff --git a/parm/postxconfig-NT-GFS-WAFS-EXT.txt b/parm/postxconfig-NT-GFS-WAFS-EXT.txt
new file mode 100644
index 000000000..9a0415316
--- /dev/null
+++ b/parm/postxconfig-NT-GFS-WAFS-EXT.txt
@@ -0,0 +1,203 @@
+1
+5
+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
+?
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+?
+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
+?
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+18
+UGRD_ON_ISOBARIC_SFC
+?
+1
+tmpl4_0
+UGRD
+?
+?
+isobaric_sfc
+0
+?
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+?
+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
+?
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+?
+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
+?
+14
+50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+3.0
+0
+0
+0
+?
+?
+?
diff --git a/parm/postxconfig-NT-GFS-WAFS.txt b/parm/postxconfig-NT-GFS-WAFS.txt
index c14856c7a..250b80756 100644
--- a/parm/postxconfig-NT-GFS-WAFS.txt
+++ b/parm/postxconfig-NT-GFS-WAFS.txt
@@ -1,6 +1,7 @@
-1
-16
-GFSPRS
+2
+12
+9
+GFSSTD
0
ncep_nco
v2003
@@ -349,19 +350,35 @@ isobaric_sfc
?
?
?
-522
-RH_ON_ICAO_STD_SFC
+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
+476
+EDPARM_ON_ISOBARIC_SFC
?
1
tmpl4_0
-RH
+EDPARM
?
?
isobaric_sfc
0
?
-38
-7000. 10040. 12770. 14750. 17870. 19680. 22730. 25000. 27450. 30090. 32500. 34430. 37500. 39270. 42500. 44650. 47500. 50600. 52500. 55000. 57500. 59520. 62500. 65000. 67500. 69680. 72500. 75260. 77500. 81200. 82500. 84310. 87500. 90000. 92500. 95000. 97500. 100000.
+36
+14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680.
?
0
?
@@ -386,19 +403,19 @@ isobaric_sfc
?
?
?
-523
-VVEL_ON_ICAO_STD_SFC
+477
+CAT_ON_ISOBARIC_SFC
?
1
tmpl4_0
-VVEL
+CATEDR
?
?
isobaric_sfc
0
?
-38
-7000. 10040. 12770. 14750. 17870. 19680. 22730. 25000. 27450. 30090. 32500. 34430. 37500. 39270. 42500. 44650. 47500. 50600. 52500. 55000. 57500. 59520. 62500. 65000. 67500. 69680. 72500. 75260. 77500. 81200. 82500. 84310. 87500. 90000. 92500. 95000. 97500. 100000.
+36
+14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680.
?
0
?
@@ -423,19 +440,19 @@ isobaric_sfc
?
?
?
-524
-ABSV_ON_ICAO_STD_SFC
+478
+MWTURB_ON_ISOBARIC_SFC
?
1
tmpl4_0
-ABSV
+MWTURB
?
?
isobaric_sfc
0
?
-38
-7000. 10040. 12770. 14750. 17870. 19680. 22730. 25000. 27450. 30090. 32500. 34430. 37500. 39270. 42500. 44650. 47500. 50600. 52500. 55000. 57500. 59520. 62500. 65000. 67500. 69680. 72500. 75260. 77500. 81200. 82500. 84310. 87500. 90000. 92500. 95000. 97500. 100000.
+36
+14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680.
?
0
?
@@ -460,19 +477,204 @@ isobaric_sfc
?
?
?
-525
-CLWMR_ON_ICAO_STD_SFC
+479
+ICESEV_ON_ISOBARIC_SFC
?
1
tmpl4_0
-CLWMR
+ICESEV
?
?
isobaric_sfc
0
?
-38
-7000. 10040. 12770. 14750. 17870. 19680. 22730. 25000. 27450. 30090. 32500. 34430. 37500. 39270. 42500. 44650. 47500. 50600. 52500. 55000. 57500. 59520. 62500. 65000. 67500. 69680. 72500. 75260. 77500. 81200. 82500. 84310. 87500. 90000. 92500. 95000. 97500. 100000.
+26
+30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+1.0
+0
+0
+0
+?
+?
+?
+12
+HGT_ON_ISOBARIC_SFC
+?
+1
+tmpl4_0
+HGT
+?
+?
+isobaric_sfc
+0
+?
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+?
+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
+?
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+18
+UGRD_ON_ISOBARIC_SFC
+?
+1
+tmpl4_0
+UGRD
+?
+?
+isobaric_sfc
+0
+?
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+?
+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
+?
+56
+7170. 7520. 7900. 8280. 8700. 9120. 9570. 10040. 10530. 11050. 11600. 12170. 12770. 13400. 14060. 14750. 15470. 16240. 17040. 17870. 18750. 19680. 20650. 21660. 22730. 23840. 25000. 26200. 27450. 28740. 30090. 31490. 32930. 34430. 35990. 37600. 39270. 41000. 42790. 44650. 46560. 48550. 50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
+?
+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
+?
+14
+50600. 52720. 54920. 57180. 59520. 61940. 64440. 67020. 69680. 72430. 75260. 78190. 81200. 84310.
?
0
?
diff --git a/scripts/exgfs_atmos_nceppost.sh b/scripts/exgfs_atmos_nceppost.sh
index 20d591b3a..2aaa0dda4 100755
--- a/scripts/exgfs_atmos_nceppost.sh
+++ b/scripts/exgfs_atmos_nceppost.sh
@@ -30,6 +30,9 @@ echo " Jun 21 - Mao - Instead of err_chk, catch err and print out"
echo " WAFS failure warnings to avoid job crashing"
echo " Oct 21 - Meng - Remove jlogfile for wcoss2 transition."
echo " Nov 21 - Meng - Update POSTGRB2TBL default setting for wcoss2 transition."
+echo " May 22 - Mao - Set KPO for WAFS on different pressure levels"
+echo " May 22 - Mao - Three diff WAFS control files for anl, F000-F048, F054-F120"
+echo " May 22 - Mao - Add processing two paramsets for WAFS"
echo "-----------------------------------------------------"
#####################################################################
@@ -199,6 +202,9 @@ then
if [[ $RUN = gfs && $GRIBVERSION = 'grib2' ]] ; then
export OUTTYP=${OUTTYP:-4}
+ #For MDL2P.f, WAFS pressure levels are different from master file
+ export POSTGPVARS="KPO=56,PO=84310.,81200.,78190.,75260.,72430.,69680.,67020.,64440.,61940.,59520.,57180.,54920.,52720.,50600.,48550.,46560.,44650.,42790.,41000.,39270.,37600.,35990.,34430.,32930.,31490.,30090.,28740.,27450.,26200.,25000.,23840.,22730.,21660.,20650.,19680.,18750.,17870.,17040.,16240.,15470.,14750.,14060.,13400.,12770.,12170.,11600.,11050.,10530.,10040.,9570.,9120.,8700.,8280.,7900.,7520.,7170.,popascal=.true.,"
+
export PostFlatFile=$PARMpost/postxconfig-NT-GFS-WAFS-ANL.txt
export CTLFILE=$PARMpost/postcntrl_gfs_wafs_anl.xml
@@ -512,9 +518,17 @@ do
if [[ $RUN = gfs && $GRIBVERSION = 'grib2' ]] ; then
export OUTTYP=${OUTTYP:-4}
+ #For MDL2P.f, WAFS pressure levels are different from master file
+ export POSTGPVARS="KPO=56,PO=84310.,81200.,78190.,75260.,72430.,69680.,67020.,64440.,61940.,59520.,57180.,54920.,52720.,50600.,48550.,46560.,44650.,42790.,41000.,39270.,37600.,35990.,34430.,32930.,31490.,30090.,28740.,27450.,26200.,25000.,23840.,22730.,21660.,20650.,19680.,18750.,17870.,17040.,16240.,15470.,14750.,14060.,13400.,12770.,12170.,11600.,11050.,10530.,10040.,9570.,9120.,8700.,8280.,7900.,7520.,7170.,popascal=.true.,"
+
# Extend WAFS icing and gtg up to 120 hours
- export PostFlatFile=$PARMpost/postxconfig-NT-GFS-WAFS.txt
- export CTLFILE=$PARMpost/postcntrl_gfs_wafs.xml
+ if [ $fhr -le 48 ] ; then
+ export PostFlatFile=$PARMpost/postxconfig-NT-GFS-WAFS.txt
+ export CTLFILE=$PARMpost/postcntrl_gfs_wafs.xml
+ else
+ export PostFlatFile=$PARMpost/postxconfig-NT-GFS-WAFS-EXT.txt
+ export CTLFILE=$PARMpost/postcntrl_gfs_wafs_ext.xml
+ fi
# gtg has its own configurations
cp $PARMpost/gtg.config.gfs gtg.config
@@ -542,17 +556,30 @@ do
if [ $err -ne 0 ] ; then
echo " *** GFS POST WARNING: WAFS output failed for f${fhr}, err=$err"
else
+ # Will remove when GFSv17
+ if [ -e ${PGBOUT}GFSSTD ]
+ then
+ if test $SENDCOM = "YES"
+ then
+ cp ${PGBOUT}GFSSTD $COMOUT/${PREFIX}wafs_icao.grb2f$fhr
+ $WGRIB2 -s ${PGBOUT}GFSSTD > $PGIOUT # WAFS products exist from ush/gfs_nceppost.sh before running anything else
+ cp $PGIOUT $COMOUT/${PREFIX}wafs_icao.grb2f$fhr.idx
+ fi
+ fi
+
if [ -e $PGBOUT ]
then
if test $SENDCOM = "YES"
then
cp $PGBOUT $COMOUT/${PREFIX}wafs.grb2f$fhr
- cp $PGIOUT $COMOUT/${PREFIX}wafs.grb2if$fhr
+ $WGRIB2 -s $PGBOUT > $PGIOUT # WAFS products exist from ush/gfs_nceppost.sh before running anything else
+ cp $PGIOUT $COMOUT/${PREFIX}wafs.grb2f$fhr.idx
fi
fi
fi
fi
[[ -f wafsfile ]] && rm wafsfile ; [[ -f wafsifile ]] && rm wafsifile
+ [[ -f wafsfileGFSSTD ]] && rm wafsfileGFSSTD
fi
########################### WAFS end ###########################
diff --git a/sorc/ncep_post.fd/FDLVL.f b/sorc/ncep_post.fd/FDLVL.f
index 817d767f1..07b02e452 100644
--- a/sorc/ncep_post.fd/FDLVL.f
+++ b/sorc/ncep_post.fd/FDLVL.f
@@ -839,6 +839,7 @@ SUBROUTINE FDLVL_MASS(ITYPE,NFD,PTFD,HTFD,NIN,QIN,QTYPE,QFD)
! ALLOW ARRAY OF MASS INPUT TO INTERPOLATE MULTIPLE FIELDS
! WITH THE SAME LEVELS AT ONE TIME
! DUST=>AERFD CAN BE PROCESSED WHEN NIN=NBIN_DU
+! 2022-05-25 | Y Mao | Remove interpolation of w/omega/Hydrometeor fields on FD levels
!
! USAGE: CALL FDLVL_MASS(ITYPE,NFD,PTFD,HTFD,NIN,QIN,QTYPE,QFD)
! INPUT ARGUMENT LIST:
@@ -1088,9 +1089,7 @@ SUBROUTINE FDLVL_MASS(ITYPE,NFD,PTFD,HTFD,NIN,QIN,QTYPE,QFD)
endif
END IF ! endif loop for deducing T and Q differently for GFS
- if(QTYPE(N) == "W") QFD(I,J,IFD,N)=QIN(I,J,LM,N) ! W OMGA
if(QTYPE(N) == "K") QFD(I,J,IFD,N)= max(0.0,0.5*(QIN(I,J,LM,N)+QIN(I,J,LM-1,N))) ! TKE
- if(QTYPE(N) == "C") QFD(I,J,IFD,N)=0.0 ! Hydrometeor fields
END DO
ENDIF ! Underground
diff --git a/sorc/ncep_post.fd/MDL2P.f b/sorc/ncep_post.fd/MDL2P.f
index 3f4ce004a..fb8aefd86 100644
--- a/sorc/ncep_post.fd/MDL2P.f
+++ b/sorc/ncep_post.fd/MDL2P.f
@@ -25,6 +25,7 @@ SUBROUTINE MDL2P(iostatusD3D)
! 12-01-11 S LU - ADD GOCART AEROSOLS
! 13-08-01 S Moorthi - some optimization
! 14-02-26 S Moorthi - threading datapd assignment
+! 2022-05-25 | Y Mao | Add WAFS icing/turbulence
!
! USAGE: CALL MDL2P
! INPUT ARGUMENT LIST:
@@ -65,7 +66,7 @@ SUBROUTINE MDL2P(iostatusD3D)
ZGDRAG, CNVCTVMMIXING, VDIFFMACCE, MGDRAG, &
CNVCTUMMIXING, NCNVCTCFRAC, CNVCTUMFLX, CNVCTDETMFLX, &
CNVCTZGDRAG, CNVCTMGDRAG, ZMID, ZINT, PMIDV, &
- CNVCTDMFLX
+ CNVCTDMFLX, ICING_GFIP, ICING_GFIS,GTG,CAT=>CATEDR,MWT
use vrbls2d, only: T500, W_UP_MAX, W_DN_MAX, W_MEAN, PSLP, FIS, Z1000
use masks, only: LMH, SM
use physcons_post,only: CON_FVIRT, CON_ROG, CON_EPS, CON_EPSM1
@@ -99,7 +100,9 @@ SUBROUTINE MDL2P(iostatusD3D)
&, Q2SL, WSL, CFRSL, O3SL, TDSL &
&, EGRID1, EGRID2 &
&, FSL_OLD, USL_OLD, VSL_OLD &
- &, OSL_OLD, OSL995
+ &, OSL_OLD, OSL995 &
+ &, ICINGFSL, ICINGVSL &
+ &, GTGSL,CATSL,MWTSL
! REAL D3DSL(IM,JM,27),DUSTSL(IM,JM,NBIN_DU)
REAL, allocatable :: D3DSL(:,:,:), DUSTSL(:,:,:), SMOKESL(:,:,:)
!
@@ -219,6 +222,10 @@ SUBROUTINE MDL2P(iostatusD3D)
(IGET(442) > 0) .OR. (IGET(455) > 0) .OR. &
! ADD SMOKE FIELDS
(IGET(738) > 0) .OR. (MODELNAME == 'RAPR') .OR.&
+! Add WAFS hazard fields: Icing and GTG turbulence
+ (IGET(476) > 0) .OR. (IGET(477) > 0) .OR. &
+ (IGET(478) > 0) .OR. (IGET(479) > 0) .OR. &
+ (IGET(481) > 0) .OR. &
! LIFTED INDEX needs 500 mb T
(IGET(030)>0) .OR. (IGET(031)>0) .OR. (IGET(075)>0)) THEN
!
@@ -264,6 +271,11 @@ SUBROUTINE MDL2P(iostatusD3D)
RAD(I,J) = SPVAL
O3SL(I,J) = SPVAL
CFRSL(I,J) = SPVAL
+ ICINGFSL(I,J) = SPVAL
+ ICINGVSL(I,J) = SPVAL
+ GTGSL(I,J) = SPVAL
+ CATSL(I,J) = SPVAL
+ MWTSL(I,J) = SPVAL
!
!*** LOCATE VERTICAL INDEX OF MODEL MIDLAYER JUST BELOW
!*** THE PRESSURE LEVEL TO WHICH WE ARE INTERPOLATING.
@@ -354,6 +366,13 @@ SUBROUTINE MDL2P(iostatusD3D)
IF(TTND(I,J,1) < SPVAL) RAD(I,J) = TTND(I,J,1)
IF(O3(I,J,1) < SPVAL) O3SL(I,J) = O3(I,J,1)
IF(CFR(I,J,1) < SPVAL) CFRSL(I,J) = CFR(I,J,1)
+!GFIP
+ IF(ICING_GFIP(I,J,1) < SPVAL) ICINGFSL(I,J) = ICING_GFIP(I,J,1)
+ IF(ICING_GFIS(I,J,1) < SPVAL) ICINGVSL(I,J) = ICING_GFIS(I,J,1)
+!GTG
+ IF(GTG(I,J,1) < SPVAL) GTGSL(I,J) = GTG(I,J,1)
+ IF(CAT(I,J,1) < SPVAL) CATSL(I,J) = CAT(I,J,1)
+ IF(MWT(I,J,1) < SPVAL) MWTSL(I,J) = MWT(I,J,1)
! DUST
if (gocart_on) then
DO K = 1, NBIN_DU
@@ -516,6 +535,48 @@ SUBROUTINE MDL2P(iostatusD3D)
IF(CFR(I,J,LL) < SPVAL .AND. CFR(I,J,LL-1) < SPVAL) &
CFRSL(I,J) = CFR(I,J,LL) + (CFR(I,J,LL)-CFR(I,J,LL-1))*FACT
+!GFIP
+ IF(ICING_GFIP(I,J,LL) < SPVAL .AND. ICING_GFIP(I,J,LL-1) < SPVAL) &
+ ICINGFSL(I,J) = ICING_GFIP(I,J,LL) + (ICING_GFIP(I,J,LL)-ICING_GFIP(I,J,LL-1))*FACT
+ ICINGFSL(I,J) = max(0.0, ICINGFSL(I,J))
+ ICINGFSL(I,J) = min(1.0, ICINGFSL(I,J))
+ IF(ICING_GFIS(I,J,LL) < SPVAL .AND. ICING_GFIS(I,J,LL-1) < SPVAL) &
+ ICINGVSL(I,J) = ICING_GFIS(I,J,LL) + (ICING_GFIS(I,J,LL)-ICING_GFIS(I,J,LL-1))*FACT
+! Icing severity categories
+! 0 = none (0, 0.08)
+! 1 = trace [0.08, 0.21]
+! 2 = light (0.21, 0.37]
+! 3 = moderate (0.37, 0.67]
+! 4 = severe (0.67, 1]
+! https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-228.shtml
+ if (ICINGVSL(I,J) < 0.08) then
+ ICINGVSL(I,J) = 0.0
+ elseif (ICINGVSL(I,J) <= 0.21) then
+ ICINGVSL(I,J) = 1.
+ else if(ICINGVSL(I,J) <= 0.37) then
+ ICINGVSL(I,J) = 2.0
+ else if(ICINGVSL(I,J) <= 0.67) then
+ ICINGVSL(I,J) = 3.0
+ else
+ ICINGVSL(I,J) = 4.0
+ endif
+ if(ICINGFSL(I,J)< 0.001) ICINGVSL(I,J) = 0.
+! GTG
+ IF(GTG(I,J,LL) < SPVAL .AND. GTG(I,J,LL-1) < SPVAL) THEN
+ GTGSL(I,J) = GTG(I,J,LL) + (GTG(I,J,LL)-GTG(I,J,LL-1))*FACT
+ GTGSL(I,J) = max(0.0, GTGSL(I,J))
+ GTGSL(I,J) = min(1.0, GTGSL(I,J))
+ ENDIF
+ IF(CAT(I,J,LL) < SPVAL .AND. CAT(I,J,LL-1) < SPVAL) THEN
+ CATSL(I,J) = CAT(I,J,LL) + (CAT(I,J,LL)-CAT(I,J,LL-1))*FACT
+ CATSL(I,J) = max(0.0, CATSL(I,J))
+ CATSL(I,J) = min(1.0, CATSL(I,J))
+ ENDIF
+ IF(MWT(I,J,LL) < SPVAL .AND. MWT(I,J,LL-1) < SPVAL) THEN
+ MWTSL(I,J) = MWT(I,J,LL) + (MWT(I,J,LL)-MWT(I,J,LL-1))*FACT
+ MWTSL(I,J) = max(0.0, MWTSL(I,J))
+ MWTSL(I,J) = min(1.0, MWTSL(I,J))
+ ENDIF
! DUST
if (gocart_on) then
DO K = 1, NBIN_DU
@@ -2042,6 +2103,123 @@ SUBROUTINE MDL2P(iostatusD3D)
end if
!
+!
+!--- GFIP IN-FLIGHT ICING POTENTIAL: ADDED BY H CHUANG
+ IF(IGET(481) > 0)THEN
+ IF(LVLS(LP,IGET(481)) > 0)THEN
+!$omp parallel do private(i,j)
+ DO J=JSTA,JEND
+ DO I=1,IM
+ GRID1(I,J) = ICINGFSL(I,J)
+ ENDDO
+ ENDDO
+ if(grib == 'grib2') then
+ cfld = cfld + 1
+ fld_info(cfld)%ifld=IAVBLFLD(IGET(481))
+ fld_info(cfld)%lvl=LVLSXML(LP,IGET(481))
+!$omp parallel do private(i,j,jj)
+ do j=1,jend-jsta+1
+ jj = jsta+j-1
+ do i=1,im
+ datapd(i,j,cfld) = GRID1(i,jj)
+ enddo
+ enddo
+ endif
+ ENDIF
+ ENDIF
+!--- GFIP IN-FLIGHT ICING SEVERITY: ADDED BY Y MAO
+ IF(IGET(479) > 0) THEN
+ IF(LVLS(LP,IGET(479)) > 0) THEN
+!$omp parallel do private(i,j)
+ DO J=JSTA,JEND
+ DO I=1,IM
+ GRID1(I,J) = ICINGVSL(I,J)
+ ENDDO
+ ENDDO
+ if(grib == 'grib2') then
+ cfld = cfld+1
+ fld_info(cfld)%ifld=IAVBLFLD(IGET(479))
+ fld_info(cfld)%lvl=LVLSXML(LP,IGET(479))
+!$omp parallel do private(i,j,jj)
+ do j=1,jend-jsta+1
+ jj = jsta+j-1
+ do i=1,im
+ datapd(i,j,cfld) = GRID1(i,jj)
+ enddo
+ enddo
+ endif
+ ENDIF
+ ENDIF
+!--- GTG EDR turbulence: ADDED BY Y. MAO
+ IF(IGET(476) > 0) THEN
+ IF(LVLS(LP,IGET(476)) > 0) THEN
+!$omp parallel do private(i,j)
+ DO J=JSTA,JEND
+ DO I=1,IM
+ GRID1(I,J) = GTGSL(I,J)
+ ENDDO
+ ENDDO
+ if(grib == 'grib2') then
+ cfld = cfld+1
+ fld_info(cfld)%ifld=IAVBLFLD(IGET(476))
+ fld_info(cfld)%lvl=LVLSXML(LP,IGET(476))
+!$omp parallel do private(i,j,jj)
+ do j=1,jend-jsta+1
+ jj = jsta+j-1
+ do i=1,im
+ datapd(i,j,cfld) = GRID1(i,jj)
+ enddo
+ enddo
+ endif
+ ENDIF
+ ENDIF
+!--- GTG CAT turbulence: ADDED BY Y. MAO
+ IF(IGET(477) > 0) THEN
+ IF(LVLS(LP,IGET(477)) > 0) THEN
+!$omp parallel do private(i,j)
+ DO J=JSTA,JEND
+ DO I=1,IM
+ GRID1(I,J) = CATSL(I,J)
+ ENDDO
+ ENDDO
+ if(grib == 'grib2') then
+ cfld = cfld+1
+ fld_info(cfld)%ifld=IAVBLFLD(IGET(477))
+ fld_info(cfld)%lvl=LVLSXML(LP,IGET(477))
+!$omp parallel do private(i,j,jj)
+ do j=1,jend-jsta+1
+ jj = jsta+j-1
+ do i=1,im
+ datapd(i,j,cfld) = GRID1(i,jj)
+ enddo
+ enddo
+ endif
+ ENDIF
+ ENDIF
+!--- GTG MWT turbulence: ADDED BY Y. MAO
+ IF(IGET(478) > 0) THEN
+ IF(LVLS(LP,IGET(478)) > 0) THEN
+!$omp parallel do private(i,j)
+ DO J=JSTA,JEND
+ DO I=1,IM
+ GRID1(I,J) = MWTSL(I,J)
+ ENDDO
+ ENDDO
+ if(grib == 'grib2') then
+ cfld = cfld+1
+ fld_info(cfld)%ifld=IAVBLFLD(IGET(478))
+ fld_info(cfld)%lvl=LVLSXML(LP,IGET(478))
+!$omp parallel do private(i,j,jj)
+ do j=1,jend-jsta+1
+ jj = jsta+j-1
+ do i=1,im
+ datapd(i,j,cfld) = GRID1(i,jj)
+ enddo
+ enddo
+ endif
+ ENDIF
+ ENDIF
+
!$omp parallel do private(i,j)
DO J=JSTA_2L,JEND_2U
DO I=1,IM
diff --git a/sorc/ncep_post.fd/MDL2STD_P.f b/sorc/ncep_post.fd/MDL2STD_P.f
index 6b6f73033..50b280576 100644
--- a/sorc/ncep_post.fd/MDL2STD_P.f
+++ b/sorc/ncep_post.fd/MDL2STD_P.f
@@ -10,6 +10,7 @@ SUBROUTINE MDL2STD_P()
!
! PROGRAM HISTORY LOG:
! 19-09-24 Y Mao - REWRITTEN FROM MISCLN.f
+! 2022-05-25 | Y Mao | Remove interpolation of VVEL/ABSV/CLWMR
!
! USAGE: CALL MDL2STD_P
! INPUT ARGUMENT LIST:
@@ -86,17 +87,13 @@ SUBROUTINE MDL2STD_P()
! 520 UGRD
! 521 VGRD
! 522 RH
-! 523 VVEL
-! 524 ABSV
-! 525 CLWMR=QQW+QQR+QQS+QQG+QQI
IF(IGET(450)>0 .or. IGET(480)>0 .or. &
IGET(464)>0 .or. IGET(465)>0 .or. IGET(466)>0 .or. &
IGET(518)>0 .or. IGET(519)>0 .or. IGET(520)>0 .or. &
- IGET(521)>0 .or. IGET(522)>0 .or. IGET(523)>0 .or. &
- IGET(524)>0 .or. IGET(525)>0) then
+ IGET(521)>0 .or. IGET(522)>0) then
! STEP 1 -- U V (POSSIBLE FOR ABSV) INTERPLOCATION
- IF(IGET(520)>0 .or. IGET(521)>0 .or. IGET(524) > 0 ) THEN
+ IF(IGET(520)>0 .or. IGET(521)>0 ) THEN
! U/V are always paired, use any for HTFDCTL
iID=520
N = IAVBLFLD(IGET(iID))
@@ -155,30 +152,6 @@ SUBROUTINE MDL2STD_P()
cfld=cfld+1
fld_info(cfld)%ifld=IAVBLFLD(IGET(521))
fld_info(cfld)%lvl=LVLSXML(IFD,IGET(521))
-!$omp parallel do private(i,j,jj)
- do j=1,jend-jsta+1
- jj = jsta+j-1
- do i=1,im
- datapd(i,j,cfld) = GRID1(i,jj)
- enddo
- enddo
- endif
- ENDIF
- ! ABSV
- IF (LVLS(IFD,IGET(524)) > 0) THEN
- EGRID1=VAR3D1(1:IM,JSTA_2L:JEND_2U,IFD)
- EGRID2=VAR3D2(1:IM,JSTA_2L:JEND_2U,IFD)
- call CALVOR(EGRID1,EGRID2,EGRID3)
-!$omp parallel do private(i,j)
- DO J=JSTA,JEND
- DO I=1,IM
- GRID1(I,J)=EGRID3(I,J)
- ENDDO
- ENDDO
- if(grib=='grib2') then
- cfld=cfld+1
- fld_info(cfld)%ifld=IAVBLFLD(IGET(524))
- fld_info(cfld)%lvl=LVLSXML(IFD,IGET(524))
!$omp parallel do private(i,j,jj)
do j=1,jend-jsta+1
jj = jsta+j-1
@@ -242,22 +215,6 @@ SUBROUTINE MDL2STD_P()
QIN(1:IM,JSTA:JEND,1:LM,nFDS)=T(1:IM,JSTA:JEND,1:LM)
QTYPE(nFDS)="T"
end if
- IF(IGET(523) > 0) THEN
- nFDS = nFDS + 1
- IDS(nFDS) = 523
- QIN(1:IM,JSTA:JEND,1:LM,nFDS)=OMGA(1:IM,JSTA:JEND,1:LM)
- QTYPE(nFDS)="W"
- end if
- IF(IGET(525) > 0) THEN
- nFDS = nFDS + 1
- IDS(nFDS) = 525
- QIN(1:IM,JSTA:JEND,1:LM,nFDS)=QQW(1:IM,JSTA:JEND,1:LM)+ &
- QQR(1:IM,JSTA:JEND,1:LM)+ &
- QQS(1:IM,JSTA:JEND,1:LM)+ &
- QQG(1:IM,JSTA:JEND,1:LM)+ &
- QQI(1:IM,JSTA:JEND,1:LM)
- QTYPE(nFDS)="C"
- end if
! FOR WAFS, ALL LEVLES OF DIFFERENT VARIABLES ARE THE SAME, USE ANY
iID=IDS(1)
@@ -301,20 +258,6 @@ SUBROUTINE MDL2STD_P()
ENDDO
endif
-
- if(iID==525) then
- N1=N
- DO IFD = 1,NFDCTL
- DO J=JSTA,JEND
- DO I=1,IM
- if(QFD(I,J,IFD,N) < SPVAL) then
- QFD(I,J,IFD,N)=max(0.0,QFD(I,J,IFD,N))
- endif
- ENDDO
- ENDDO
- ENDDO
- endif
-
! Icing severity categories
! 0 = none (0, 0.08)
! 1 = trace [0.08, 0.21]
@@ -523,7 +466,7 @@ SUBROUTINE MDL2STD_P()
! Relabel the pressure level to reference levels
! IDS = 0
- IDS = (/ 450,480,464,465,466,518,519,520,521,522,523,524,525,(0,I=14,50) /)
+ IDS = (/ 450,480,464,465,466,518,519,520,521,522,(0,I=11,50) /)
do i = 1, NFDMAX
iID=IDS(i)
if(iID == 0) exit
diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f
index 869433104..20bc525bc 100644
--- a/sorc/ncep_post.fd/MDLFLD.f
+++ b/sorc/ncep_post.fd/MDLFLD.f
@@ -40,6 +40,7 @@ SUBROUTINE MDLFLD
! 14-11-17 B ZHOU - Undetected ECHO TOP value is modified from SPVAL to -5000.
! 15-xx-xx S. Moorthi - reduced memory version
! 15-11-03 S Moorthi - fix a bug in "RELATIVE HUMIDITY ON MDLSURFACES" sectio logic
+! 2022-05-25 | Y Mao | Add WAFS icing/turbulence on pressure levels
!
! USAGE: CALL MDLFLD
! INPUT ARGUMENT LIST:
@@ -870,10 +871,11 @@ SUBROUTINE MDLFLD
(IGET(752).GT.0).OR.(IGET(754).GT.0).OR. &
(IGET(278).GT.0).OR.(IGET(264).GT.0).OR. &
(IGET(450).GT.0).OR.(IGET(480).GT.0).OR. &
+ (IGET(479).GT.0).OR.(IGET(481).GT.0).OR. &
(IGET(774).GT.0).OR.(IGET(747).GT.0).OR. &
(IGET(464).GT.0).OR.(IGET(467).GT.0).OR. &
+ (IGET(470).GT.0).OR.(IGET(476).GT.0).OR. &
(IGET(629).GT.0).OR.(IGET(630).GT.0).OR. &
- (IGET(470).GT.0).OR. &
(IGET(909).GT.0).OR.(IGET(737).GT.0) ) THEN
DO 190 L=1,LM
@@ -1598,7 +1600,8 @@ SUBROUTINE MDLFLD
! RELATIVE HUMIDITY ON MDL SURFACES.
item = -1
IF (IGET(006) > 0) item = LVLS(L,IGET(006))
- IF (item > 0 .OR. IGET(450) > 0 .OR. IGET(480) > 0) THEN
+ IF (item > 0 .OR. IGET(450) > 0 .OR. IGET(480) > 0 .OR. &
+ IGET(479) > 0 .OR. IGET(481) > 0 ) THEN
LL=LM-L+1
!$omp parallel do private(i,j)
DO J=JSTA,JEND
@@ -3624,7 +3627,7 @@ SUBROUTINE MDLFLD
!
IF ( (IGET(289).GT.0) .OR. (IGET(389).GT.0) .OR. (IGET(454).GT.0) &
.OR. (IGET(245).GT.0) .or. IGET(464)>0 .or. IGET(467)>0 &
- .or. IGET(470)>0 ) THEN
+ .or. IGET(470)>0 .or. IGET(476)>0 ) THEN
! should only compute pblri if pblh from model is not computed based on Ri
! post does not yet read pbl scheme used by model. Will do this soon
! For now, compute PBLRI for non GFS models.
@@ -3855,7 +3858,7 @@ SUBROUTINE MDLFLD
ENDIF
!
! CALCULATE Gust based on Ri PBL
- IF (IGET(245).GT.0 .or. IGET(464)>0 .or. IGET(467)>0.or. IGET(470)>0) THEN
+ IF (IGET(245).GT.0 .or. IGET(464)>0 .or. IGET(467)>0.or. IGET(470)>0 .or. IGET(476)>0) THEN
IF(MODELNAME.EQ.'RAPR') THEN
!tgs - 24may17 - smooth PBLHGUST
if(MAPTYPE == 6) then
@@ -4017,7 +4020,7 @@ SUBROUTINE MDLFLD
!
!
! COMPUTE NCAR GTG turbulence
- IF(IGET(464)>0 .or. IGET(467)>0 .or. IGET(470)>0)THEN
+ IF(IGET(464)>0 .or. IGET(467)>0 .or. IGET(470)>0 .or. IGET(476)>0)THEN
i=IM/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)
@@ -4103,7 +4106,7 @@ SUBROUTINE MDLFLD
end IF
! COMPUTE NCAR FIP
- IF(IGET(450).GT.0 .or. IGET(480).GT.0)THEN
+ IF(IGET(450)>0 .or. IGET(480)>0 .or. IGET(479)>0 .or. IGET(481)>0)THEN
! cape and cin
ITYPE = 1
diff --git a/sorc/ncep_post.fd/get_postfilename.f b/sorc/ncep_post.fd/get_postfilename.f
index bc731e1c4..12879d291 100644
--- a/sorc/ncep_post.fd/get_postfilename.f
+++ b/sorc/ncep_post.fd/get_postfilename.f
@@ -5,6 +5,7 @@ subroutine get_postfilename(fname)
!
! Program log:
! 11-02 Jun Wang generate code from subroutine gribit
+! 2022-05-25 | Y Mao | For WAFS, output multi paramsets to different files
!
use ctlblk_mod, only : ifhr, me, modelname, ifmin
use rqstfld_mod, only : ritehd, datset, iget
@@ -80,6 +81,9 @@ subroutine get_postfilename(fname)
if(me==0)PRINT*,' FNAME FROM IPVOUT=',trim(FNAME)
ELSE IF(PGBOUT(1:4).NE.BLANK)THEN
FNAME = PGBOUT
+ if (IGET(464) >0 ) then
+ FNAME=trim(FNAME) // DATSET(1:KDAT)
+ endif
if(me==0)PRINT*,' FNAME FROM PGBOUT=',trim(FNAME)
ELSE
NDIG=MAX(LOG10(IHR+0.5)+1.,2.)
diff --git a/sorc/post_gtg.fd b/sorc/post_gtg.fd
index 95959a1c0..6bb7a1242 160000
--- a/sorc/post_gtg.fd
+++ b/sorc/post_gtg.fd
@@ -1 +1 @@
-Subproject commit 95959a1c04ef49452186e4be9d49b0c1d7aba7d9
+Subproject commit 6bb7a1242ab231f9afc047988483db494df59820