From 5e2a29354ecb662096cae67f80f5734cbda3b72f Mon Sep 17 00:00:00 2001 From: yali mao Date: Wed, 22 Feb 2023 19:35:50 +0000 Subject: [PATCH 1/3] Pick up changes from GFSv16.3 with the following pull requests: https://github.com/NOAA-EMC/UPP/pull/497 https://github.com/NOAA-EMC/UPP/pull/543 --- parm/post_avblflds.xml | 70 +++++--- parm/postcntrl_gfs_wafs.xml | 86 +++------- parm/postcntrl_gfs_wafs_anl.xml | 21 ++- parm/postcntrl_gfs_wafs_ext.xml | 54 +++++++ parm/postxconfig-NT-GFS-WAFS-ANL.txt | 30 ++-- parm/postxconfig-NT-GFS-WAFS-EXT.txt | 203 +++++++++++++++++++++++ parm/postxconfig-NT-GFS-WAFS.txt | 230 +++++---------------------- scripts/exgfs_atmos_nceppost.sh | 21 ++- sorc/ncep_post.fd/FDLVL.f | 3 +- sorc/ncep_post.fd/MDL2P.f | 186 +++++++++++++++++++++- sorc/ncep_post.fd/MDL2STD_P.f | 66 +------- sorc/ncep_post.fd/MDLFLD.f | 14 +- 12 files changed, 608 insertions(+), 376 deletions(-) create mode 100755 parm/postcntrl_gfs_wafs_ext.xml create mode 100644 parm/postxconfig-NT-GFS-WAFS-EXT.txt diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 591f1be5b..c12e97cc7 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -4074,7 +4074,7 @@ 3.0 - + 467 EDPARM_GTG_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL @@ -4149,6 +4149,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 @@ -4158,6 +4192,14 @@ 1.0 + + 481 + ICIP_ON_ISOBARIC_SFC + ICIP + isobaric_sfc + 3.0 + + 482 PRES_ON_SPEC_ALT_ABOVE_MEAN_SEA_LVL @@ -4496,7 +4538,7 @@ 6.0 - + 518 HGT_ON_ICAO_STD_SFC @@ -4537,30 +4579,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 - CLMR_ON_ICAO_STD_SFC - CLMR - isobaric_sfc - 4.0 - - 526 BUCKET1_APCP_ON_SURFACE diff --git a/parm/postcntrl_gfs_wafs.xml b/parm/postcntrl_gfs_wafs.xml index 25de26c7f..63237d7ed 100755 --- a/parm/postcntrl_gfs_wafs.xml +++ b/parm/postcntrl_gfs_wafs.xml @@ -1,7 +1,6 @@ - - + GFSPRS 0 ncep_nco @@ -20,93 +19,58 @@ lossless - EDPARM_GTG_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 - CAT_GTG_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 - MWTURB_GTG_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 - ICIP_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. - 3.0 - - - - ICESEV_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_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. - 3.0 - - - - TMP_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. - 3.0 - - - - UGRD_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. - 3.0 - - - - VGRD_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. - 3.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 - 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. - 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 - 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. - 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 - 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. - 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 - CLMR_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. + 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 c5e096871..6fd3c1801 100644 --- a/parm/postxconfig-NT-GFS-WAFS.txt +++ b/parm/postxconfig-NT-GFS-WAFS.txt @@ -1,5 +1,5 @@ 1 -16 +12 GFSPRS 0 ncep_nco @@ -16,8 +16,8 @@ complex_packing_spatial_diff 2nd_ord_sptdiff fltng_pnt lossless -464 -EDPARM_GTG_ON_ICAO_STD_SFC +476 +EDPARM_ON_ISOBARIC_SFC ? 1 tmpl4_0 @@ -27,8 +27,8 @@ 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 ? @@ -53,8 +53,8 @@ isobaric_sfc ? ? ? -465 -CAT_GTG_ON_ICAO_STD_SFC +477 +CAT_ON_ISOBARIC_SFC ? 1 tmpl4_0 @@ -64,8 +64,8 @@ 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 ? @@ -90,8 +90,8 @@ isobaric_sfc ? ? ? -466 -MWTURB_GTG_ON_ICAO_STD_SFC +478 +MWTURB_ON_ISOBARIC_SFC ? 1 tmpl4_0 @@ -101,8 +101,8 @@ 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 ? @@ -127,46 +127,9 @@ isobaric_sfc ? ? ? -450 -ICIP_ON_ICAO_STD_SFC -Total Icing Potential Diagnostic on standard atmospheric isobaric sfc -1 -tmpl4_0 -ICIP -? -? -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. -? -0 +479 +ICESEV_ON_ISOBARIC_SFC ? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -480 -ICESEV_ON_ICAO_STD_SFC -Icing severity on standard atmospheric isobaric levels 1 tmpl4_0 ICESEV @@ -175,8 +138,8 @@ 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 ? @@ -201,8 +164,8 @@ isobaric_sfc ? ? ? -518 -HGT_ON_ICAO_STD_SFC +12 +HGT_ON_ISOBARIC_SFC ? 1 tmpl4_0 @@ -212,8 +175,8 @@ HGT 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. +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 ? @@ -231,15 +194,15 @@ isobaric_sfc 0 0.0 1 -3.0 +6.0 0 0 0 ? ? ? -519 -TMP_ON_ICAO_STD_SFC +13 +TMP_ON_ISOBARIC_SFC ? 1 tmpl4_0 @@ -249,8 +212,8 @@ TMP 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. +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 ? @@ -268,15 +231,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 @@ -286,8 +249,8 @@ UGRD 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. +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 ? @@ -305,15 +268,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 @@ -323,8 +286,8 @@ VGRD 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. +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 ? @@ -342,15 +305,15 @@ isobaric_sfc 0 0.0 1 -3.0 +4.0 0 0 0 ? ? ? -522 -RH_ON_ICAO_STD_SFC +17 +RH_ON_ISOBARIC_SFC ? 1 tmpl4_0 @@ -360,119 +323,8 @@ RH 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. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -523 -VVEL_ON_ICAO_STD_SFC -? -1 -tmpl4_0 -VVEL -? -? -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. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -524 -ABSV_ON_ICAO_STD_SFC -? -1 -tmpl4_0 -ABSV -? -? -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. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -525 -CLMR_ON_ICAO_STD_SFC -? -1 -tmpl4_0 -CLMR -? -? -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. +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 500bc1cfb..7b3cb1ca2 100755 --- a/scripts/exgfs_atmos_nceppost.sh +++ b/scripts/exgfs_atmos_nceppost.sh @@ -31,6 +31,8 @@ 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 " Feb 22 - Lin - Exception handling if anl input not found." +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 "-----------------------------------------------------" ##################################################################### @@ -195,11 +197,14 @@ then # ecflow_client --event release_pgrb2_anl ########################## WAFS U/V/T analysis start ########################## -# U/V/T on ICAO standard atmospheric pressure levels for WAFS verification +# U/V/T on ICAO pressure levels for WAFS verification if [ $WAFSF = "YES" ] ; 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 @@ -517,10 +522,21 @@ 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 cp $PARMpost/gtg_imprintings.txt gtg_imprintings.txt @@ -552,7 +568,8 @@ do 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 diff --git a/sorc/ncep_post.fd/FDLVL.f b/sorc/ncep_post.fd/FDLVL.f index b0a0714c9..3333ef63e 100644 --- a/sorc/ncep_post.fd/FDLVL.f +++ b/sorc/ncep_post.fd/FDLVL.f @@ -778,6 +778,7 @@ SUBROUTINE FDLVL_UV(ITYPE,NFD,HTFD,UFD,VFD) !> 2017-06-01 | Y Mao | Add FD levels for GTG(EDPARM CATEDR MWTURB) and allow levels input from control file !> 2019-09-25 | Y Mao | Seperate mass from UV 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 !> 2020-11-10 | Jesse Meng | Use UPP_PHYSICS module +!> 2022-05-25 | Y Mao | Remove interpolation of w/omega/Hydrometeor fields on FD levels !> !> @author Russ Treadon W/NP2 @date 1992-12-22 SUBROUTINE FDLVL_MASS(ITYPE,NFD,PTFD,HTFD,NIN,QIN,QTYPE,QFD) @@ -976,9 +977,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 93a070788..971cdd1c8 100644 --- a/sorc/ncep_post.fd/MDL2P.f +++ b/sorc/ncep_post.fd/MDL2P.f @@ -30,6 +30,7 @@ !> 2021-03-11 | B Cui | Change local arrays to dimension (im,jsta:jend) !> 2021-04-01 | J Meng | Computation on defined points only !> 2021-07-07 | J MENG | 2D DECOMPOSITION +!> 2022-05-25 | Y Mao | Add WAFS icing/turbulence !> 2022-08-03 | W Meng | Modify total cloud fraction(331) !> 2022-09-22 | L Zhang | Remove DUSTSL !> 2022-11-16 | E James | Adding dust from RRFS @@ -49,7 +50,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,T700,W_UP_MAX,W_DN_MAX,W_MEAN,PSLP,FIS,Z1000,Z700,& Z500 use masks, only: LMH, SM @@ -86,7 +87,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, allocatable :: D3DSL(:,:,:), SMOKESL(:,:,:), FV3DUSTSL(:,:,:) ! integer,intent(in) :: iostatusD3D @@ -201,6 +204,10 @@ SUBROUTINE MDL2P(iostatusD3D) (IGET(395) > 0) .OR. (IGET(379) > 0) .OR. & ! ADD DUST FIELDS (IGET(455) > 0) .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. & ! ADD SMOKE FIELDS (IGET(738) > 0) .OR. (IGET(743) > 0) .OR. & (MODELNAME == 'RAPR') .OR.& @@ -249,6 +256,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. @@ -339,6 +351,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) DO K = 1, NBIN_SM IF(SMOKE(I,J,1,K) < SPVAL) SMOKESL(I,J,K)=SMOKE(I,J,1,K) IF(FV3DUST(I,J,1,K) < SPVAL) FV3DUSTSL(I,J,K)=FV3DUST(I,J,1,K) @@ -496,6 +515,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 DO K = 1, NBIN_SM IF(SMOKE(I,J,LL,K) < SPVAL .AND. SMOKE(I,J,LL-1,K) < SPVAL) & SMOKESL(I,J,K)=SMOKE(I,J,LL,K)+(SMOKE(I,J,LL,K)-SMOKE(I,J,LL-1,K))*FACT @@ -1993,6 +2054,127 @@ 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=ISTA,IEND + 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,iend-ista+1 + ii=ista+i-1 + datapd(i,j,cfld) = GRID1(ii,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=ISTA,IEND + 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,iend-ista+1 + ii=ista+i-1 + datapd(i,j,cfld) = GRID1(ii,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=ISTA,IEND + 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,iend-ista+1 + ii=ista+i-1 + datapd(i,j,cfld) = GRID1(ii,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=ISTA,IEND + 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,iend-ista+1 + ii=ista+i-1 + datapd(i,j,cfld) = GRID1(ii,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=ISTA,IEND + 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,iend-ista+1 + ii=ista+i-1 + datapd(i,j,cfld) = GRID1(ii,jj) + enddo + enddo + endif + ENDIF + ENDIF + !$omp parallel do private(i,j) DO J=JSTA_2L,JEND_2U DO I=ISTA_2L,IEND_2U diff --git a/sorc/ncep_post.fd/MDL2STD_P.f b/sorc/ncep_post.fd/MDL2STD_P.f index ee5ff8a94..f193b85a2 100644 --- a/sorc/ncep_post.fd/MDL2STD_P.f +++ b/sorc/ncep_post.fd/MDL2STD_P.f @@ -12,6 +12,7 @@ !> 2020-11-10 | J Meng | Use UPP_PHYSICS Module !> 2021-03-11 | B Cui | Change local arrays to dimension (im,jsta:jend) !> 2021-10-14 | J MENG | 2D DECOMPOSITION +!> 2022-05-25 | Y Mao | Remove interpolation of VVEL/ABSV/CLWMR !> !> @author Y Mao W/NP22 @date 2019-09-24 SUBROUTINE MDL2STD_P() @@ -71,17 +72,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)) @@ -141,31 +138,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,ii,jj) - do j=1,jend-jsta+1 - jj = jsta+j-1 - do i=1,iend-ista+1 - ii = ista+i-1 - datapd(i,j,cfld) = GRID1(ii,jj) - enddo - enddo - endif - ENDIF - ! ABSV - IF (LVLS(IFD,IGET(524)) > 0) THEN - EGRID1=VAR3D1(ISTA_2L:IEND_2U,JSTA_2L:JEND_2U,IFD) - EGRID2=VAR3D2(ISTA_2L:IEND_2U,JSTA_2L:JEND_2U,IFD) - call CALVOR(EGRID1,EGRID2,EGRID3) -!$omp parallel do private(i,j) - DO J=JSTA,JEND - DO I=ISTA,IEND - 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,ii,jj) do j=1,jend-jsta+1 jj = jsta+j-1 @@ -230,22 +202,6 @@ SUBROUTINE MDL2STD_P() QIN(ISTA:IEND,JSTA:JEND,1:LM,nFDS)=T(ISTA:IEND,JSTA:JEND,1:LM) QTYPE(nFDS)="T" end if - IF(IGET(523) > 0) THEN - nFDS = nFDS + 1 - IDS(nFDS) = 523 - QIN(ISTA:IEND,JSTA:JEND,1:LM,nFDS)=OMGA(ISTA:IEND,JSTA:JEND,1:LM) - QTYPE(nFDS)="W" - end if - IF(IGET(525) > 0) THEN - nFDS = nFDS + 1 - IDS(nFDS) = 525 - QIN(ISTA:IEND,JSTA:JEND,1:LM,nFDS)=QQW(ISTA:IEND,JSTA:JEND,1:LM)+ & - QQR(ISTA:IEND,JSTA:JEND,1:LM)+ & - QQS(ISTA:IEND,JSTA:JEND,1:LM)+ & - QQG(ISTA:IEND,JSTA:JEND,1:LM)+ & - QQI(ISTA:IEND,JSTA:JEND,1:LM) - QTYPE(nFDS)="C" - end if ! FOR WAFS, ALL LEVLES OF DIFFERENT VARIABLES ARE THE SAME, USE ANY iID=IDS(1) @@ -289,20 +245,6 @@ SUBROUTINE MDL2STD_P() ENDDO endif - - if(iID==525) then - N1=N - DO IFD = 1,NFDCTL - DO J=JSTA,JEND - DO I=ISTA,IEND - 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] @@ -505,7 +447,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,(0,I=10,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 776ae1e1f..0728a9dc6 100644 --- a/sorc/ncep_post.fd/MDLFLD.f +++ b/sorc/ncep_post.fd/MDLFLD.f @@ -44,6 +44,7 @@ !! 20-11-10 J MENG - USE UPP_PHYSICS MODULE !! 21-04-01 J MENG - COMPUTATION ON DEFINED POINTS ONLY !! 21-07-07 J MENG - 2D DECOMPOSITION +!! 22-05-25 Y Mao - Add WAFS icing/turbulence on pressure levels !! 22-09-22 L Zhang - ADD NO3 and NH4 output for UFS-Aerosols model !! 22-10-20 W Meng - Bug fix for cloud fraction and vertically integrated liquid !! 22-11-08 W Meng - Output hourly averaged PM2.5 and O3 for AQM model only (aqf_on) @@ -914,8 +915,10 @@ SUBROUTINE MDLFLD (IGET(752)>0).OR.(IGET(754)>0).OR. & (IGET(278)>0).OR.(IGET(264)>0).OR. & (IGET(450)>0).OR.(IGET(480)>0).OR. & + (IGET(479)>0).OR.(IGET(481)>0).OR. & (IGET(774)>0).OR.(IGET(747)>0).OR. & (IGET(464)>0).OR.(IGET(467)>0).OR. & + (IGET(470)>0).OR.(IGET(476)>0).OR. & (IGET(629)>0).OR.(IGET(630)>0).OR. & (IGET(470)>0).OR. & (IGET(909)>0).OR.(IGET(737)>0).OR. & @@ -1591,7 +1594,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 @@ -3770,7 +3774,7 @@ SUBROUTINE MDLFLD ! IF ( (IGET(289)>0) .OR. (IGET(389)>0) .OR. (IGET(454)>0) & .OR. (IGET(245)>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. @@ -4002,7 +4006,7 @@ SUBROUTINE MDLFLD ENDIF ! ! CALCULATE Gust based on Ri PBL - IF (IGET(245)>0 .or. IGET(464)>0 .or. IGET(467)>0.or. IGET(470)>0) THEN + IF (IGET(245)>0 .or. IGET(464)>0 .or. IGET(467)>0.or. IGET(470)>0 .or. IGET(476)>0) THEN IF(MODELNAME=='RAPR') THEN !tgs - 24may17 - smooth PBLHGUST if(MAPTYPE == 6) then @@ -4162,7 +4166,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=(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) @@ -4251,7 +4255,7 @@ SUBROUTINE MDLFLD end IF ! COMPUTE NCAR FIP - IF(IGET(450)>0 .or. IGET(480)>0)THEN + IF(IGET(450)>0 .or. IGET(480)>0 .or. IGET(479)>0 .or. IGET(481)>0)THEN ! cape and cin ITYPE = 1 From d4e59917615f024768bd004c5f205826e0ee4bd0 Mon Sep 17 00:00:00 2001 From: yali mao Date: Tue, 28 Feb 2023 14:36:11 +0000 Subject: [PATCH 2/3] 1. Reshape array inputs of gtg_algo in MDLFLD.f to make 1D decomposition of GTG compatible with 2D decomposition of UPP. 2. Make hard code numx=2 optional and can be overwritten --- jobs/J_NCEPPOST | 1 + sorc/ncep_post.fd/MDLFLD.f | 14 +++++++++++--- ush/gfs_nceppost.sh | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/jobs/J_NCEPPOST b/jobs/J_NCEPPOST index 0e1c5070e..9e5cd659e 100755 --- a/jobs/J_NCEPPOST +++ b/jobs/J_NCEPPOST @@ -108,6 +108,7 @@ export POSTGPEXEC=${POSTGPEXEC:-$EXECgfs/gfs_ncep_post} #################################### # Specify Special Post Vars #################################### +numx=${numx:-2} if [ $RUN = gfs ];then export FHOUT_PGB=${FHOUT_GFS:-3} #Output frequency of gfs pgb file at 1.0 and 0.5 deg. fi diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f index 0728a9dc6..60a136429 100644 --- a/sorc/ncep_post.fd/MDLFLD.f +++ b/sorc/ncep_post.fd/MDLFLD.f @@ -4176,9 +4176,17 @@ SUBROUTINE MDLFLD RICHNO=SPVAL call gtg_algo(im,jm,lm,jsta,jend,jsta_2L,jend_2U,& - uh,vh,wh,zmid,pmid,t,q,qqw,qqr,qqs,qqg,qqi,& - ZINT(ista_2l:iend_2u,JSTA_2L:JEND_2U,LP1),pblh,sfcshx,sfclhx,ustar,& - z0,gdlat,gdlon,dx,dy,u10,v10,GUST,avgprec,sm,sice,catedr,mwt,EL,gtg,RICHNO,item) + uh(ista:iend,:,:),vh(ista:iend,:,:),wh(ista:iend,:,:),& + zmid(ista:iend,:,:),pmid(ista:iend,:,:),t(ista:iend,:,:),& + q(ista:iend,:,:),qqw(ista:iend,:,:),qqr(ista:iend,:,:),& + qqs(ista:iend,:,:),qqg(ista:iend,:,:),qqi(ista:iend,:,:),& + ZINT(ista:iend,:,LP1),pblh(ista:iend,:),sfcshx(ista:iend,:),& + sfclhx(ista:iend,:),ustar(ista:iend,:),& + z0(ista:iend,:),gdlat(ista:iend,:),gdlon(ista:iend,:),& + 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,:,:),EL(ista:iend,:,:),& + gtg(ista:iend,:,:),RICHNO(ista:iend,:,:),item) i=iend j=jend ! 321,541 diff --git a/ush/gfs_nceppost.sh b/ush/gfs_nceppost.sh index 2ee5afcde..2da3fa8d5 100755 --- a/ush/gfs_nceppost.sh +++ b/ush/gfs_nceppost.sh @@ -294,7 +294,7 @@ export pgm=$PGM $LOGSCRIPT cat <postgp.inp.nml$$ &NAMPGB - $POSTGPVARS numx=2 + $POSTGPVARS numx=$numx EOF cat <>postgp.inp.nml$$ From 79a05f234cf812daefdcb8e46da3627f1d68568c Mon Sep 17 00:00:00 2001 From: yali mao Date: Tue, 14 Mar 2023 19:36:45 +0000 Subject: [PATCH 3/3] Remove RH from outputs on ICAO_STD_SFC --- parm/post_avblflds.xml | 10 +--- sorc/ncep_post.fd/MDL2STD_P.f | 86 +---------------------------------- sorc/ncep_post.fd/MDLFLD.f | 1 - 3 files changed, 3 insertions(+), 94 deletions(-) diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 57b45b6f9..c8bf9521c 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -4538,7 +4538,7 @@ 6.0 - + 518 HGT_ON_ICAO_STD_SFC @@ -4571,14 +4571,6 @@ 4.0 - - 522 - RH_ON_ICAO_STD_SFC - RH - isobaric_sfc - 2.0 - - 526 BUCKET1_APCP_ON_SURFACE diff --git a/sorc/ncep_post.fd/MDL2STD_P.f b/sorc/ncep_post.fd/MDL2STD_P.f index f193b85a2..32e113326 100644 --- a/sorc/ncep_post.fd/MDL2STD_P.f +++ b/sorc/ncep_post.fd/MDL2STD_P.f @@ -13,6 +13,7 @@ !> 2021-03-11 | B Cui | Change local arrays to dimension (im,jsta:jend) !> 2021-10-14 | J MENG | 2D DECOMPOSITION !> 2022-05-25 | Y Mao | Remove interpolation of VVEL/ABSV/CLWMR +!> 2023-03-14 | Y Mao | Remove interpolation of RH, remove use CALRH and CALVOR !> !> @author Y Mao W/NP22 @date 2019-09-24 SUBROUTINE MDL2STD_P() @@ -28,7 +29,6 @@ SUBROUTINE MDL2STD_P() ista, iend, ista_2l, iend_2u use rqstfld_mod, only: iget, lvls, iavblfld, lvlsxml use grib2_module, only: pset - use upp_physics, only: CALRH, CALVOR !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ! @@ -71,11 +71,10 @@ SUBROUTINE MDL2STD_P() ! 519 TMP ! 520 UGRD ! 521 VGRD -! 522 RH 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) then + IGET(521)>0) then ! STEP 1 -- U V (POSSIBLE FOR ABSV) INTERPLOCATION IF(IGET(520)>0 .or. IGET(521)>0 ) THEN @@ -364,87 +363,6 @@ SUBROUTINE MDL2STD_P() ENDDO ENDIF - ! RH - IF(IGET(522) > 0) THEN - iID=522 - N = IAVBLFLD(IGET(iID)) - NFDCTL=size(pset%param(N)%level) - if(allocated(ITYPEFDLVLCTL)) deallocate(ITYPEFDLVLCTL) - allocate(ITYPEFDLVLCTL(NFDCTL)) - DO IFD = 1,NFDCTL - ITYPEFDLVLCTL(IFD)=LVLS(IFD,IGET(iID)) - ENDDO - if(allocated(HTFDCTL)) deallocate(HTFDCTL) - allocate(HTFDCTL(NFDCTL)) - HTFDCTL=pset%param(N)%level - DO i = 1, NFDCTL - HTFDCTL(i)=P2H(HTFDCTL(i)/100.) - ENDDO - - if(allocated(QIN)) deallocate(QIN) - if(allocated(QTYPE)) deallocate(QTYPE) - ALLOCATE(QIN(ISTA:IEND,JSTA:JEND,LM,2)) - ALLOCATE(QTYPE(2)) - QIN(ISTA:IEND,JSTA:JEND,1:LM,1)=T(ISTA:IEND,JSTA:JEND,1:LM) - QIN(ISTA:IEND,JSTA:JEND,1:LM,2)=Q(ISTA:IEND,JSTA:JEND,1:LM) - QTYPE(1)="T" - QTYPE(2)="Q" - - if(allocated(QFD)) deallocate(QFD) - ALLOCATE(QFD(ISTA:IEND,JSTA:JEND,NFDCTL,2)) - QFD=SPVAL - - print *, "wafs levels",pset%param(N)%level - call FDLVL_MASS(ITYPEFDLVLCTL,NFDCTL,pset%param(N)%level,HTFDCTL,2,QIN,QTYPE,QFD) - - HTFDCTL=pset%param(N)%level ! Save back to pressure - - DO IFD = 1,NFDCTL - IF (LVLS(IFD,IGET(iID)) > 0) THEN -!$omp parallel do private(i,j) - DO J=JSTA,JEND - DO I=ISTA,IEND - EGRID2(I,J) = HTFDCTL(IFD) ! P - ENDDO - ENDDO - - EGRID3(ISTA:IEND,JSTA:JEND)=QFD(ISTA:IEND,JSTA:JEND,IFD,1) ! T - EGRID4(ISTA:IEND,JSTA:JEND)=QFD(ISTA:IEND,JSTA:JEND,IFD,2) ! Q - EGRID1 = SPVAL - - CALL CALRH(EGRID2(ista:iend,jsta:jend),EGRID3(ista:iend,jsta:jend),EGRID4(ista:iend,jsta:jend),EGRID1(ista:iend,jsta:jend)) - -!$omp parallel do private(i,j) - DO J=JSTA,JEND - DO I=ISTA,IEND - IF(EGRID1(I,J) < SPVAL) THEN - GRID1(I,J) = EGRID1(I,J)*100. - ELSE - GRID1(I,J) = EGRID1(I,J) - ENDIF - ENDDO - ENDDO - - if(grib=='grib2') then - cfld=cfld+1 - fld_info(cfld)%ifld=IAVBLFLD(IGET(iID)) - fld_info(cfld)%lvl=LVLSXML(IFD,IGET(iID)) -!$omp parallel do private(i,j,ii,jj) - do j=1,jend-jsta+1 - jj = jsta+j-1 - do i=1,iend-ista+1 - ii = ista+i-1 - datapd(i,j,cfld) = GRID1(i,jj) - enddo - enddo - endif - ENDIF - ENDDO - deallocate(QIN,QFD) - deallocate(QTYPE) - ENDIF - - ! Relabel the pressure level to reference levels ! IDS = 0 IDS = (/ 450,480,464,465,466,518,519,520,521,(0,I=10,50) /) diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f index 97d1774c1..13f6a1ef7 100644 --- a/sorc/ncep_post.fd/MDLFLD.f +++ b/sorc/ncep_post.fd/MDLFLD.f @@ -933,7 +933,6 @@ SUBROUTINE MDLFLD (IGET(464)>0).OR.(IGET(467)>0).OR. & (IGET(470)>0).OR.(IGET(476)>0).OR. & (IGET(629)>0).OR.(IGET(630)>0).OR. & - (IGET(470)>0).OR. & (IGET(909)>0).OR.(IGET(737)>0).OR. & (IGET(742)>0).OR. & (IGET(994)>0).OR.(IGET(995)>0) ) THEN