From 9a191de70fe4f7dc46fd7e63820d996c8f1a42f4 Mon Sep 17 00:00:00 2001 From: EricJames-NOAA Date: Wed, 18 Oct 2023 15:45:25 -0600 Subject: [PATCH] Adding another flavour of VIL to RRFS for FAA users. (#800) * Adding another flavour of VIL to RRFS for FAA users. * Updating VIL calculation to use hail mixing ratio from NSSL microphysics, if available. * Adding change log, and including hail mixing ratio in CWM. * Adding change log to MDLFLD.f * Removing legacy control file. * Deallocate QQH --- parm/fv3lam_rrfs.xml | 6 + parm/postxconfig-NT-fv3lam_rrfs.txt | 39 +- parm/postxconfig-NT-gefs-aerosol.txt | 2238 -------------------------- sorc/ncep_post.fd/ALLOCATE_ALL.f | 2 + sorc/ncep_post.fd/DEALLOCATE.f | 1 + sorc/ncep_post.fd/INITPOST_NETCDF.f | 31 +- sorc/ncep_post.fd/MDLFLD.f | 20 +- sorc/ncep_post.fd/VRBLS3D_mod.f | 2 +- 8 files changed, 81 insertions(+), 2258 deletions(-) delete mode 100644 parm/postxconfig-NT-gefs-aerosol.txt diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index b9aa48aec..40a3bb92b 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -1850,6 +1850,12 @@ 7.0 + + GSD_VIL_ON_ENTIRE_ATMOS + VIL + 7.0 + + UPHL_ON_SPEC_HGT_LVL_ABOVE_GRND_2-5km UPHL diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index cf5fdf675..f54bcd0fd 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -1,7 +1,7 @@ 3 3 249 -306 +307 PRSLEV 32769 ncep_nco @@ -10082,6 +10082,43 @@ entire_atmos_single_lyr ? ? ? +769 +GSD_VIL_ON_ENTIRE_ATMOS +? +1 +tmpl4_0 +VIL +? +? +entire_atmos +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +7.0 +0 +0 +0 +? +? +? 427 UPHL_ON_SPEC_HGT_LVL_ABOVE_GRND_2-5km Updraft Helicity on Specified Height Level Above Ground diff --git a/parm/postxconfig-NT-gefs-aerosol.txt b/parm/postxconfig-NT-gefs-aerosol.txt deleted file mode 100644 index e67e103aa..000000000 --- a/parm/postxconfig-NT-gefs-aerosol.txt +++ /dev/null @@ -1,2238 +0,0 @@ -1 -60 -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 -? -50 -40. 100. 200. 300. 500. 700. 1000. 1500. 2000. 3000. 4000. 5000. 7000. 10000. 12500. 15000. 17500. 20000. 22500. 25000. 27500. 30000. 32500. 35000. 37500. 40000. 42500. 45000. 47500. 50000. 52500. 55000. 57500. 60000. 62500. 65000. 67500. 70000. 72500. 75000. 77500. 80000. 82500. 85000. 87500. 90000. 92500. 95000. 97500. 100000. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -6.0 -0 -0 -0 -? -? -? -13 -TMP_ON_ISOBARIC_SFC -? -1 -tmpl4_0 -TMP -? -? -isobaric_sfc -0 -? -50 -40. 100. 200. 300. 500. 700. 1000. 1500. 2000. 3000. 4000. 5000. 7000. 10000. 12500. 15000. 17500. 20000. 22500. 25000. 27500. 30000. 32500. 35000. 37500. 40000. 42500. 45000. 47500. 50000. 52500. 55000. 57500. 60000. 62500. 65000. 67500. 70000. 72500. 75000. 77500. 80000. 82500. 85000. 87500. 90000. 92500. 95000. 97500. 100000. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -3.0 -0 -0 -0 -? -? -? -18 -UGRD_ON_ISOBARIC_SFC -? -1 -tmpl4_0 -UGRD -? -? -isobaric_sfc -0 -? -47 -100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 12500. 15000. 17500. 20000. 22500. 25000. 27500. 30000. 32500. 35000. 37500. 40000. 42500. 45000. 47500. 50000. 52500. 55000. 57500. 60000. 62500. 65000. 67500. 70000. 72500. 75000. 77500. 80000. 82500. 85000. 87500. 90000. 92500. 95000. 97500. 100000. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -19 -VGRD_ON_ISOBARIC_SFC -? -1 -tmpl4_0 -VGRD -? -? -isobaric_sfc -0 -? -47 -100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 12500. 15000. 17500. 20000. 22500. 25000. 27500. 30000. 32500. 35000. 37500. 40000. 42500. 45000. 47500. 50000. 52500. 55000. 57500. 60000. 62500. 65000. 67500. 70000. 72500. 75000. 77500. 80000. 82500. 85000. 87500. 90000. 92500. 95000. 97500. 100000. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -268 -O3MR_ON_ISOBARIC_SFC -? -1 -tmpl4_0 -O3MR -NCEP -? -isobaric_sfc -0 -? -25 -40. 100. 200. 300. 500. 700. 1000. 1500. 2000. 3000. 4000. 5000. 7000. 10000. 12500. 15000. 20000. 25000. 30000. 35000. 40000. 50000. 70000. 85000. 100000. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -5.0 -0 -0 -0 -? -? -? -252 -REFC_ON_ENTIRE_ATMOS -? -1 -tmpl4_0 -REFC -NCEP -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -253 -REFD_ON_SPEC_HGT_LVL_ABOVE_GRND -? -1 -tmpl4_0 -REFD -NCEP -? -spec_hgt_lvl_above_grnd -0 -? -1 -1000. -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -629 -DUST1_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTF -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -dust_dry -between_first_second_limit_noincl2ndlmt -7 -2 -7 -20 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -630 -DUST2_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTF -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -dust_dry -between_first_second_limit_noincl2ndlmt -7 -20 -7 -36 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -631 -DUST3_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTC -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -dust_dry -between_first_second_limit_noincl2ndlmt -7 -36 -7 -60 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -632 -DUST4_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTC -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -dust_dry -between_first_second_limit_noincl2ndlmt -7 -60 -7 -120 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -633 -DUST5_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTC -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -dust_dry -between_first_second_limit_noincl2ndlmt -7 -120 -7 -200 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -634 -SEASALT1_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTF -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -sea_salt_dry -between_first_second_limit_noincl2ndlmt -8 -6 -8 -20 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -635 -SEASALT2_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTF -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -sea_salt_dry -between_first_second_limit_noincl2ndlmt -7 -2 -7 -10 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -636 -SEASALT3_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTC -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -sea_salt_dry -between_first_second_limit_noincl2ndlmt -7 -10 -7 -30 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -637 -SEASALT4_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTC -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -sea_salt_dry -between_first_second_limit_noincl2ndlmt -7 -30 -7 -100 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -638 -SEASALT5_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTC -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -sea_salt_dry -between_first_second_limit_noincl2ndlmt -7 -100 -7 -200 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -643 -BCPHILIC_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTF -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -black_carbon_hydrophilic -equall_to_first_limit -10 -236 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -642 -BCPHOBIC_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTF -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -black_carbon_hydrophobic -equall_to_first_limit -10 -236 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -641 -OCPHILIC_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTF -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -particulate_org_matter_hydrophilic -equall_to_first_limit -10 -424 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -640 -OCPHOBIC_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTF -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -particulate_org_matter_hydrophobic -equall_to_first_limit -10 -424 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -639 -SO4_ON_HYBRID_LVL -? -1 -tmpl4_48 -PMTF -NCEP -? -hybrid_lvl -0 -? -1 -1. -? -0 -? -0 -? -sulphate_dry -equall_to_first_limit -9 -139 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -11.0 -0 -0 -0 -? -? -? -105 -PRES_ON_MEAN_SEA_LVL -? -1 -tmpl4_0 -PRES -? -? -mean_sea_lvl -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -6.0 -0 -0 -0 -? -? -? -26 -TMP_ON_SURFACE -? -1 -tmpl4_0 -TMP -? -? -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -609 -AER_OPT_DEP_at550 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -610 -DUST_AER_OPT_DEP_at550 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -dust_dry -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -611 -SEASALT_AER_OPT_DEP_at550 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -sea_salt_dry -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -612 -SULFATE_AER_OPT_DEP_at550 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -sulphate_dry -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -613 -ORGANIC_CARBON_AER_OPT_DEP_at550 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -particulate_org_matter_dry -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -614 -BLACK_CARBON_AER_OPT_DEP_at550 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -black_carbon_dry -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -650 -AER_SCAT_OPT_DEP_at550 -? -1 -tmpl4_48 -SCTAOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -651 -DUST_AER_SCAT_OPT_DEP_at550 -? -1 -tmpl4_48 -SCTAOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -dust_dry -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -652 -SEASALT_AER_SCAT_OPT_DEP_at550 -? -1 -tmpl4_48 -SCTAOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -sea_salt_dry -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -653 -SULFATE_AER_SCAT_OPT_DEP_at550 -? -1 -tmpl4_48 -SCTAOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -sulphate_dry -smaller_than_first_limit -8 -70 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -654 -ORGANIC_CARBON_AER_SCAT_OPT_DEP_at550 -? -1 -tmpl4_48 -SCTAOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -particulate_org_matter_dry -smaller_than_first_limit -8 -70 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -655 -BLACK_CARBON_AER_SCAT_OPT_DEP_at550 -? -1 -tmpl4_48 -SCTAOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -black_carbon_dry -smaller_than_first_limit -8 -70 -0 -0.0 -between_first_second_limit -9 -545 -9 -565 -1 -9.0 -0 -0 -0 -? -? -? -648 -SINGLE_SCAT_ALBD_at340 -? -1 -tmpl4_48 -SSALBK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -338 -9 -342 -1 -9.0 -0 -0 -0 -? -? -? -649 -AER_ASYM_FACTOR_at340 -? -1 -tmpl4_48 -ASYSFK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -338 -9 -342 -1 -9.0 -0 -0 -0 -? -? -? -623 -AER_OPT_DEP_at340 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -338 -9 -342 -1 -9.0 -0 -0 -0 -? -? -? -624 -AER_OPT_DEP_at440 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -430 -9 -450 -1 -9.0 -0 -0 -0 -? -? -? -625 -AER_OPT_DEP_at660 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -620 -9 -670 -1 -9.0 -0 -0 -0 -? -? -? -626 -AER_OPT_DEP_at860 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -841 -9 -876 -1 -9.0 -0 -0 -0 -? -? -? -627 -AER_OPT_DEP_at1630 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -1628 -9 -1652 -1 -9.0 -0 -0 -0 -? -? -? -628 -AER_OPT_DEP_at11100 -? -1 -tmpl4_48 -AOTK -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -20 -0 -0.0 -between_first_second_limit -9 -11000 -9 -11200 -1 -9.0 -0 -0 -0 -? -? -? -686 -DUST25_SFC_MASS_CON -? -1 -tmpl4_48 -PMTF -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -dust_dry -smaller_than_first_limit -7 -25 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -684 -SEAS25_SFC_MASS_CON -? -1 -tmpl4_48 -PMTF -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -sea_salt_dry -smaller_than_first_limit -7 -25 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -619 -PM10_SFC_MASS_CON -? -1 -tmpl4_48 -PMTC -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -10 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -620 -PM25_SFC_MASS_CON -? -1 -tmpl4_48 -PMTF -NCEP -? -surface -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -7 -25 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -621 -PM10_COL_MASS_DEN -? -1 -tmpl4_48 -COLMD -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -6 -10 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -622 -PM25_COL_MASS_DEN -? -1 -tmpl4_48 -COLMD -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -total_aerosol -smaller_than_first_limit -7 -25 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -646 -DUST_COL_MASS_DEN -? -1 -tmpl4_48 -COLMD -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -dust_dry -smaller_than_first_limit -7 -25 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -647 -SEAS_COL_MASS_DEN -? -1 -tmpl4_48 -COLMD -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -sea_salt_dry -smaller_than_first_limit -7 -25 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -616 -BC_COL_MASS_DEN -? -1 -tmpl4_48 -COLMD -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -black_carbon_dry -smaller_than_first_limit -10 -236 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -617 -OC_COL_MASS_DEN -? -1 -tmpl4_48 -COLMD -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -particulate_org_matter_dry -smaller_than_first_limit -10 -424 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -618 -SULF_COL_MASS_DEN -? -1 -tmpl4_48 -COLMD -? -? -entire_atmos -0 -? -0 -? -? -0 -? -0 -? -sulphate_dry -smaller_than_first_limit -7 -25 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -9.0 -0 -0 -0 -? -? -? -299 -TOZNE_ON_ENTIRE_ATMOS_SINGLE_LYR -? -1 -tmpl4_0 -TOZNE -? -? -entire_atmos_single_lyr -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -271 -AVE_PRATE_ON_SURFACE -? -1 -tmpl4_8 -PRATE -? -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -272 -AVE_CPRAT_ON_SURFACE -? -1 -tmpl4_8 -CPRAT -NCEP -AVE -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 -4.0 -0 -0 -0 -? -? -? -87 -ACM_APCP_ON_SURFACE -? -1 -tmpl4_8 -APCP -? -ACM -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 --4.0 -0 -0 -0 -? -? -? -33 -ACM_ACPCP_ON_SURFACE -? -1 -tmpl4_8 -ACPCP -? -ACM -surface -0 -? -0 -? -? -0 -? -0 -? -? -? -0 -0.0 -0 -0.0 -? -0 -0.0 -0 -0.0 -1 --4.0 -0 -0 -0 -? -? -? diff --git a/sorc/ncep_post.fd/ALLOCATE_ALL.f b/sorc/ncep_post.fd/ALLOCATE_ALL.f index 52072209a..2ade6e18c 100644 --- a/sorc/ncep_post.fd/ALLOCATE_ALL.f +++ b/sorc/ncep_post.fd/ALLOCATE_ALL.f @@ -151,6 +151,7 @@ SUBROUTINE ALLOCATE_ALL() allocate(QQR(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) allocate(QQS(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) allocate(QQG(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) + allocate(QQH(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) allocate(QQNW(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) allocate(QQNI(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) allocate(QQNR(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) @@ -186,6 +187,7 @@ SUBROUTINE ALLOCATE_ALL() QQR(i,j,l)=spval QQS(i,j,l)=spval QQG(i,j,l)=spval + QQH(i,j,l)=spval QQNW(i,j,l)=spval QQNI(i,j,l)=spval QQNR(i,j,l)=spval diff --git a/sorc/ncep_post.fd/DEALLOCATE.f b/sorc/ncep_post.fd/DEALLOCATE.f index 809c6f513..bf979f8c2 100644 --- a/sorc/ncep_post.fd/DEALLOCATE.f +++ b/sorc/ncep_post.fd/DEALLOCATE.f @@ -77,6 +77,7 @@ SUBROUTINE DE_ALLOCATE deallocate(QQR) deallocate(QQS) deallocate(QQG) + deallocate(QQH) deallocate(QQNW) deallocate(QQNI) deallocate(QQNR) diff --git a/sorc/ncep_post.fd/INITPOST_NETCDF.f b/sorc/ncep_post.fd/INITPOST_NETCDF.f index 5b2f70156..5ff5f4c78 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -41,7 +41,9 @@ !> 2023-07-24 | Hui-Ya Chuang | Bug fix in tke inialization !> 2023-08-04 | Jaymes Kenyon | Read RRFS microphysics number concentrations (cloud water, cloud ice, rain) !> 2023-08-31 | Li(Kate Zhang)| Add condition to include/exclude processing nitrate from model output -!> 2023-09-22 | Wen Meng | Bug fix in cwm intialization +!> 2023-09-22 | Wen Meng | Bug fix in cwm initialization +!> 2023-10-17 | Eric James | Including hail mixing ratio in calculation of hydrometeor VIL +!> and cwm when present (NSSL microphysics) !> !> @author Hui-Ya Chuang @date 2016-03-04 !---------------------------------------------------------------------- @@ -58,7 +60,7 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) use vrbls4d, only: dust, SALT, SUSO, SOOT, WASO, smoke, fv3dust, coarsepm, & no3,nh4, PP25, PP10 use vrbls3d, only: t, q, uh, vh, pmid, pint, alpint, dpres, zint, zmid, o3, & - qqr, qqnr, qqs, qqi, qqni, qqw, qqnw, qqg, cwm, & + qqr, qqnr, qqs, qqi, qqni, qqw, qqnw, qqg, qqh, cwm, & omga, rhomid, q2, cfr, rlwtt, rswtt, tcucn, & tcucns, train, el_pbl, exch_h, vdifftt, vdiffmois, dconvmois, nradtt, & o3vdiff, o3prod, o3tndy, mwpv, unknown, vdiffzacce, zgdrag,cnvctummixing, & @@ -524,13 +526,13 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) end if if(me==0)print*,'nhcas= ',nhcas if (nhcas == 0 ) then !non-hydrostatic case - nrec=21 + nrec=22 allocate (recname(nrec)) recname=[character(len=20) :: 'ugrd','vgrd','spfh','tmp','o3mr', & 'presnh','dzdt', 'clwmr','dpres', & 'delz','icmr','rwmr', & - 'snmr','grle','smoke','dust', & - 'coarsepm','ext550', & + 'snmr','grle','hail','smoke', & + 'dust','coarsepm','ext550', & 'nicp','water_nc','rain_nc'] else nrec=8 @@ -886,22 +888,24 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) spval,recname(13),qqs(ista_2l,jsta_2l,1),lm) call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & spval,recname(14),qqg(ista_2l,jsta_2l,1),lm) + call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,recname(15),qqh(ista_2l,jsta_2l,1),lm) ! read for regional FV3 if (modelname == 'FV3R') then call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & - spval,recname(15),smoke(ista_2l,jsta_2l,1,1),lm) + spval,recname(16),smoke(ista_2l,jsta_2l,1,1),lm) call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & - spval,recname(16),fv3dust(ista_2l,jsta_2l,1,1),lm) + spval,recname(17),fv3dust(ista_2l,jsta_2l,1,1),lm) call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & - spval,recname(17),coarsepm(ista_2l,jsta_2l,1,1),lm) + spval,recname(18),coarsepm(ista_2l,jsta_2l,1,1),lm) call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & - spval,recname(18),ext550(ista_2l,jsta_2l,1),lm) + spval,recname(19),ext550(ista_2l,jsta_2l,1),lm) call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & - spval,recname(19),qqni(ista_2l,jsta_2l,1),lm) + spval,recname(20),qqni(ista_2l,jsta_2l,1),lm) call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & - spval,recname(20),qqnw(ista_2l,jsta_2l,1),lm) + spval,recname(21),qqnw(ista_2l,jsta_2l,1),lm) call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & - spval,recname(21),qqnr(ista_2l,jsta_2l,1),lm) + spval,recname(22),qqnr(ista_2l,jsta_2l,1),lm) endif ! Compute max QRAIN in the column to be used later in precip type computation @@ -918,6 +922,9 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) if(qqr(i,j,l) /= spval) then qrmax(i,j)=max(qrmax(i,j),qqr(i,j,l)) cwm(i,j,l)=qqg(i,j,l)+qqs(i,j,l)+qqr(i,j,l)+qqi(i,j,l)+qqw(i,j,l) + if(qqh(i,j,l) /= spval) then + cwm(i,j,l)=cwm(i,j,l)+qqh(i,j,l) + endif endif enddo enddo diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f index 8f7ac0c70..bb0265d58 100644 --- a/sorc/ncep_post.fd/MDLFLD.f +++ b/sorc/ncep_post.fd/MDLFLD.f @@ -57,6 +57,7 @@ !! 23-08-16 | Y Mao | For gtg_algo, add tke as an input and cit as an output !! 23-08-16 | Y Mao | For GTG, replace iget(ID) with namelist option 'gtg_on'. !! 23-10-04 | W Meng | Read 3D radar reflectivity from model when GFS use Thmopson MP +!! 23-10-17 | E James | Include hail hydrometeors in VIL computation when available !! USAGE: CALL MDLFLD !! INPUT ARGUMENT LIST: !! @@ -96,8 +97,8 @@ SUBROUTINE MDLFLD use vrbls4d, only: dust, salt, suso, waso, soot, no3, nh4, smoke, fv3dust,& coarsepm use vrbls3d, only: zmid, t, pmid, q, cwm, f_ice, f_rain, f_rimef, qqw, qqi,& - qqr, qqs, cfr, cfr_raw, dbz, dbzr, dbzi, dbzc, qqw, nlice, nrain, qqg, zint, qqni,& - qqnr, qqnw, qqnwfa, qqnifa, uh, vh, mcvg, omga, wh, q2, ttnd, rswtt, & + qqr, qqs, cfr, cfr_raw, dbz, dbzr, dbzi, dbzc, qqw, nlice, nrain, qqg, qqh, zint,& + qqni, qqnr, qqnw, qqnwfa, qqnifa, uh, vh, mcvg, omga, wh, q2, ttnd, rswtt, & rlwtt, train, tcucn, o3, rhomid, dpres, el_pbl, pint, icing_gfip, icing_gfis, & catedr,mwt,gtg,cit, REF_10CM, avgpmtf, avgozcon @@ -3374,10 +3375,17 @@ SUBROUTINE MDLFLD IF(QQR(I,J,L)