From bf9750e4ae75012fd1480b53f898562bc66d4c14 Mon Sep 17 00:00:00 2001
From: WenMeng-NOAA <48260754+WenMeng-NOAA@users.noreply.github.com>
Date: Sat, 12 Nov 2022 18:45:55 -0500
Subject: [PATCH] Add MERRA2 aerosol fields as GFS V17 products. (#589)
---
parm/global_1x1_paramlist_g2 | 2 +-
parm/postcntrl_gfs.xml | 30 ++++
parm/postcntrl_gfs_f00.xml | 30 ++++
parm/postcntrl_gfs_f00_two.xml | 30 ++++
parm/postcntrl_gfs_two.xml | 30 ++++
parm/postxconfig-NT-GFS-F00-TWO.txt | 224 +++++++++++++++++++++++++++-
parm/postxconfig-NT-GFS-F00.txt | 224 +++++++++++++++++++++++++++-
parm/postxconfig-NT-GFS-TWO.txt | 224 +++++++++++++++++++++++++++-
parm/postxconfig-NT-GFS.txt | 224 +++++++++++++++++++++++++++-
scripts/exgfs_atmos_nceppost.sh | 2 +-
10 files changed, 1014 insertions(+), 6 deletions(-)
diff --git a/parm/global_1x1_paramlist_g2 b/parm/global_1x1_paramlist_g2
index 958fbd4d7..909261ccf 100644
--- a/parm/global_1x1_paramlist_g2
+++ b/parm/global_1x1_paramlist_g2
@@ -45,7 +45,7 @@ ACPCP:surface
ALBDO:surface
APCP:surface
APTMP:2 m above ground
-var discipline=0 master_table=2 parmcat=0 parm=21:2 m above ground
+AOTK:entire atmosphere
CAPE:180-0 mb above ground
CAPE:255-0 mb above ground
CAPE:90-0 mb above ground
diff --git a/parm/postcntrl_gfs.xml b/parm/postcntrl_gfs.xml
index 0d14de92d..9d79cdbe9 100755
--- a/parm/postcntrl_gfs.xml
+++ b/parm/postcntrl_gfs.xml
@@ -1159,6 +1159,36 @@
3.0
+
+ AER_OPT_GFS_at550
+ 9.0
+
+
+
+ DUST_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ SEASALT_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ SULFATE_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ ORGANIC_CARBON_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ BLACK_CARBON_AER_OPT_GFS_at550
+ 9.0
+
+
diff --git a/parm/postcntrl_gfs_f00.xml b/parm/postcntrl_gfs_f00.xml
index 22a5ddc8f..3473ccdb9 100755
--- a/parm/postcntrl_gfs_f00.xml
+++ b/parm/postcntrl_gfs_f00.xml
@@ -907,6 +907,36 @@
3.0
+
+ AER_OPT_GFS_at550
+ 9.0
+
+
+
+ DUST_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ SEASALT_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ SULFATE_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ ORGANIC_CARBON_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ BLACK_CARBON_AER_OPT_GFS_at550
+ 9.0
+
+
diff --git a/parm/postcntrl_gfs_f00_two.xml b/parm/postcntrl_gfs_f00_two.xml
index 184d03ea7..3d5df294f 100755
--- a/parm/postcntrl_gfs_f00_two.xml
+++ b/parm/postcntrl_gfs_f00_two.xml
@@ -907,6 +907,36 @@
3.0
+
+ AER_OPT_GFS_at550
+ 9.0
+
+
+
+ DUST_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ SEASALT_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ SULFATE_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ ORGANIC_CARBON_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ BLACK_CARBON_AER_OPT_GFS_at550
+ 9.0
+
+
diff --git a/parm/postcntrl_gfs_two.xml b/parm/postcntrl_gfs_two.xml
index 6d6e05793..c3edbb94f 100755
--- a/parm/postcntrl_gfs_two.xml
+++ b/parm/postcntrl_gfs_two.xml
@@ -1159,6 +1159,36 @@
3.0
+
+ AER_OPT_GFS_at550
+ 9.0
+
+
+
+ DUST_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ SEASALT_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ SULFATE_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ ORGANIC_CARBON_AER_OPT_GFS_at550
+ 9.0
+
+
+
+ BLACK_CARBON_AER_OPT_GFS_at550
+ 9.0
+
+
diff --git a/parm/postxconfig-NT-GFS-F00-TWO.txt b/parm/postxconfig-NT-GFS-F00-TWO.txt
index af5f49c16..229c1f52e 100644
--- a/parm/postxconfig-NT-GFS-F00-TWO.txt
+++ b/parm/postxconfig-NT-GFS-F00-TWO.txt
@@ -1,6 +1,6 @@
2
47
-150
+156
GFSPRS
0
ncep_nco
@@ -5567,6 +5567,228 @@ surface
?
?
?
+600
+AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+601
+DUST_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+602
+SEASALT_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+603
+SULFATE_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+604
+ORGANIC_CARBON_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+605
+BLACK_CARBON_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
GFSFLX
0
ncep_nco
diff --git a/parm/postxconfig-NT-GFS-F00.txt b/parm/postxconfig-NT-GFS-F00.txt
index fe928aa55..bf2548acd 100644
--- a/parm/postxconfig-NT-GFS-F00.txt
+++ b/parm/postxconfig-NT-GFS-F00.txt
@@ -1,5 +1,5 @@
1
-150
+156
GFSPRS
0
ncep_nco
@@ -5566,3 +5566,225 @@ surface
?
?
?
+600
+AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+601
+DUST_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+602
+SEASALT_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+603
+SULFATE_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+604
+ORGANIC_CARBON_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+605
+BLACK_CARBON_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
diff --git a/parm/postxconfig-NT-GFS-TWO.txt b/parm/postxconfig-NT-GFS-TWO.txt
index a459e5240..ea053e5f7 100644
--- a/parm/postxconfig-NT-GFS-TWO.txt
+++ b/parm/postxconfig-NT-GFS-TWO.txt
@@ -1,6 +1,6 @@
2
112
-197
+203
GFSPRS
0
ncep_nco
@@ -7306,6 +7306,228 @@ surface
?
?
?
+600
+AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+601
+DUST_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+602
+SEASALT_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+603
+SULFATE_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+604
+ORGANIC_CARBON_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+605
+BLACK_CARBON_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
GFSFLX
0
ncep_nco
diff --git a/parm/postxconfig-NT-GFS.txt b/parm/postxconfig-NT-GFS.txt
index 776ce6d3b..faf8aa0c3 100644
--- a/parm/postxconfig-NT-GFS.txt
+++ b/parm/postxconfig-NT-GFS.txt
@@ -1,5 +1,5 @@
1
-197
+203
GFSPRS
0
ncep_nco
@@ -7305,3 +7305,225 @@ surface
?
?
?
+600
+AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+601
+DUST_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+602
+SEASALT_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+603
+SULFATE_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+604
+ORGANIC_CARBON_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
+605
+BLACK_CARBON_AER_OPT_GFS_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
+555
+1
+9.0
+0
+0
+0
+?
+?
+?
diff --git a/scripts/exgfs_atmos_nceppost.sh b/scripts/exgfs_atmos_nceppost.sh
index f8e996d13..65b98984e 100755
--- a/scripts/exgfs_atmos_nceppost.sh
+++ b/scripts/exgfs_atmos_nceppost.sh
@@ -81,7 +81,7 @@ export machine=${machine:-WCOSS_C}
###########################
# Specify Output layers
###########################
-export POSTGPVARS="KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01,"
+export POSTGPVARS="KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01,rdaod=.true."
##########################################################
# Specify variable to directly output pgrb2 files for GDAS/GFS