diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml
index da033fa71..ef6d496c6 100644
--- a/.github/workflows/gcc.yml
+++ b/.github/workflows/gcc.yml
@@ -34,6 +34,11 @@ jobs:
runs-on: ubuntu-latest
steps:
+ - name: checkout-upp # This is for getting spack.yaml
+ uses: actions/checkout@v2
+ with:
+ path: UPP
+
# Cache spack, compiler and dependencies
- name: cache-env
id: cache-env
@@ -42,13 +47,7 @@ jobs:
path: |
spack
~/.spack
- key: spack-${{ runner.os }}-${{ env.cache_key }}
-
- - name: checkout-upp # This is for getting spack.yaml
- if: steps.cache-env.outputs.cache-hit != 'true'
- uses: actions/checkout@v2
- with:
- path: UPP
+ key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('UPP/ci/spack.yaml') }}
# Install dependencies using Spack
- name: install-dependencies-with-spack
@@ -58,11 +57,11 @@ jobs:
source spack/share/spack/setup-env.sh
spack env create upp-env UPP/ci/spack.yaml
spack env activate upp-env
- spack compiler find
+ sudo apt install cmake
spack external find
spack add mpich@3.4.2
spack concretize
- spack install --dirty -v
+ spack install -v --fail-fast --dirty
build:
needs: setup
@@ -81,7 +80,7 @@ jobs:
path: |
spack
~/.spack
- key: spack-${{ runner.os }}-${{ env.cache_key }}
+ key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('UPP/ci/spack.yaml') }}
- name: build-upp
run: |
diff --git a/.github/workflows/intel.yml b/.github/workflows/intel.yml
index 97ab17caa..326ae143d 100644
--- a/.github/workflows/intel.yml
+++ b/.github/workflows/intel.yml
@@ -36,6 +36,12 @@ jobs:
runs-on: ubuntu-latest
steps:
+ - name: checkout-upp # This is for getting spack.yaml
+ if: steps.cache-env.outputs.cache-hit != 'true'
+ uses: actions/checkout@v2
+ with:
+ path: UPP
+
# Cache spack, compiler and dependencies
- name: cache-env
id: cache-env
@@ -45,10 +51,9 @@ jobs:
spack
~/.spack
/opt/intel
- key: spack-${{ runner.os }}-${{ env.cache_key }}
+ key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('UPP/ci/spack.yaml') }}
- name: install-intel-compilers
- if: steps.cache-env.outputs.cache-hit != 'true'
run: |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
@@ -57,25 +62,21 @@ jobs:
sudo apt-get install intel-oneapi-dev-utilities intel-oneapi-mpi-devel intel-oneapi-openmp intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
echo "source /opt/intel/oneapi/setvars.sh" >> ~/.bash_profile
- - name: checkout-upp # This is for getting spack.yaml
- if: steps.cache-env.outputs.cache-hit != 'true'
- uses: actions/checkout@v2
- with:
- path: UPP
-
# Install dependencies using Spack
- name: install-dependencies-with-spack
if: steps.cache-env.outputs.cache-hit != 'true'
run: |
+ sudo mv /usr/local/ /usr_local_mv
git clone -c feature.manyFiles=true https://github.com/NOAA-EMC/spack.git
source spack/share/spack/setup-env.sh
spack env create upp-env UPP/ci/spack.yaml
spack env activate upp-env
spack compiler find
+ sudo apt install cmake
spack external find
spack add intel-oneapi-mpi
spack concretize
- spack install --dirty -v
+ spack install --dirty -v --fail-fast
build:
needs: setup
@@ -99,7 +100,7 @@ jobs:
spack
~/.spack
/opt/intel
- key: spack-${{ runner.os }}-${{ env.cache_key }}
+ key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('UPP/ci/spack.yaml') }}
- name: build-upp
run: |
diff --git a/ci/spack.yaml b/ci/spack.yaml
index 1c7aa122e..ddfcfe83d 100644
--- a/ci/spack.yaml
+++ b/ci/spack.yaml
@@ -2,7 +2,9 @@
spack:
packages:
all:
- compiler: [intel, gcc]
+ compiler:
+ - intel
+ - gcc@10:10
specs:
- netcdf-c@4.7.4
- netcdf-fortran@4.5.3
diff --git a/parm/aqm.xml b/parm/aqm.xml
new file mode 100644
index 000000000..63f5e7513
--- /dev/null
+++ b/parm/aqm.xml
@@ -0,0 +1,200 @@
+
+
+
+
+ CMAQ
+ 32769
+ ncep_nco
+ v2003
+ local_tab_yes1
+ fcst
+ oper
+ fcst
+ fcst
+ hour
+ nws_ncep
+ nmm_8km
+ complex_packing_spatial_diff
+ 2nd_ord_sptdiff
+ fltng_pnt
+ lossless
+
+
+ AVE_PM25TOT_ON_HYBRID_LVL
+ PMTF
+ NCEP
+ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
+25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
+49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+ 7.0
+
+
+
+ AVE_OZCON_ON_HYBRID_LVL
+ OZCON
+ NCEP
+ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
+25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
+49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+ 7.0
+
+
+
+ TMP_ON_HYBRID_LVL
+ TMP
+ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
+25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
+49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+ 4.0
+
+
+
+ SPFH_ON_HYBRID_LVL
+ SPFH
+ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
+25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
+49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+ 7.0
+
+
+
+ UGRD_ON_HYBRID_LVL
+ UGRD
+ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
+25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
+49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+ 4.0
+
+
+
+ VGRD_ON_HYBRID_LVL
+ VGRD
+ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
+25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
+49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+ 4.0
+
+
+
+ DZDT_ON_HYBRID_LVL
+ DZDT
+ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
+25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
+49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+ 4.0
+
+
+
+ TCDC_ON_HYBRID_LVL
+ TCDC
+ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
+25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
+49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+ 3.0
+
+
+
+ TMP_ON_SPEC_HGT_LVL_ABOVE_GRND_2m
+ TMP
+ 4.0
+
+
+
+ SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_2m
+ SPFH
+ 4.0
+
+
+
+ DPT_ON_SPEC_HGT_LVL_ABOVE_GRND_2m
+ DPT
+ 4.0
+
+
+
+ RH_ON_SPEC_HGT_LVL_ABOVE_GRND_2m
+ RH
+ 3.0
+
+
+
+ UGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_10m
+ UGRD
+ 10.
+ 4.0
+
+
+
+ VGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_10m
+ VGRD
+ 10.
+ 4.0
+
+
+
+ PBLREG_ON_SURFACE
+ PBLREG
+ 2.0
+
+
+
+ TMP_ON_ISOBARIC_SFC
+ 50000. 70000. 85000. 92500. 100000.
+ -4.0
+
+
+
+ DPT_ON_ISOBARIC_SFC
+ 50000. 70000. 85000. 92500. 100000.
+ -4.0
+
+
+
+ HGT_ON_ISOBARIC_SFC
+ 50000. 70000. 85000. 100000.
+ -5.0
+
+
+
+ UGRD_ON_ISOBARIC_SFC
+ 25000. 30000. 50000. 70000. 85000. 92500. 100000.
+ -4.0
+
+
+
+ VGRD_ON_ISOBARIC_SFC
+ 25000. 30000. 50000. 70000. 85000. 92500. 100000.
+ -4.0
+
+
+
+ CAPE_ON_SURFACE
+ 3.0
+
+
+
+ BEST_CAPE_ON_SPEC_PRES_ABOVE_GRND
+ 18000.
+ 0.
+ 3.0
+
+
+
+ MIXED_LAYER_CAPE_ON_SPEC_PRES_ABOVE_GRND
+ 9000.
+ 0.
+ 3.0
+
+
+
+ AER_OPT_AQM_at550
+
+
+
+ HPBL_ON_SURFACE
+ NCEP
+ 6.0
+
+
+
+
diff --git a/parm/fv3lam_cmaq.xml b/parm/fv3lam_cmaq.xml
deleted file mode 100644
index 4ef8bd0e9..000000000
--- a/parm/fv3lam_cmaq.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
- CMAQ
- 32769
- ncep_nco
- v2003
- local_tab_yes1
- fcst
- oper
- fcst
- fcst
- hour
- nws_ncep
- nmm_8km
- complex_packing_spatial_diff
- 2nd_ord_sptdiff
- fltng_pnt
- lossless
-
-
- PM25TOT_ON_HYBRID_LVL
- PMTF
- NCEP
- 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
-25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
-49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
- 7.0
-
-
-
- O3MR_ON_HYBRID_LVL
- O3MR
- NCEP
- 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
-25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
-49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
- 7.0
-
-
-
- OZCON_ON_HYBRID_LVL
- OZCON
- NCEP
- 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
-25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
-49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
- 7.0
-
-
-
-
diff --git a/parm/makefile b/parm/makefile
index 6a6b419e3..303e96f07 100644
--- a/parm/makefile
+++ b/parm/makefile
@@ -30,6 +30,7 @@ RRFSFLATFILENAME = postxconfig-NT-fv3lam_rrfs.txt
RTMA3DFLATFILENAME = postxconfig-NT-3drtma.txt
UFSAEROSOLFLATFILENAME = postxconfig-NT-UFS-aerosol.txt
UFSAERO00FLATFILENAME = postxconfig-NT-UFS-aerosol-F00.txt
+AQMFLATFILENAME = postxconfig-NT-AQM.txt
# Source Post XML file
GFSAVAILXMLFILENAME = post_avblflds.xml
@@ -63,6 +64,8 @@ RTMA3DCTRLFILENAME = 3drtma_postcntrl.xml
RTMA3DAVAILXMLFILENAME = post_avblflds.xml
UFSAEROSOLCTRFILENAME = postcntrl_ufs_aerosol.xml
UFSAEROSOL00CTRFILENAME = postcntrl_ufs_aerosol_f00.xml
+AQMCTRLFILENAME = aqm.xml
+AVAILXMLFILENAME = post_avblflds.xml
# Post flat file generator
PERLXML = PostXMLPreprocessor.pl
@@ -91,6 +94,7 @@ PERLXMLRRFS = /usr/bin/perl $(PERLXML) $(RRFSCTRLFILENAME) $(RRFSAVA
PERLXML3DRTMA = /usr/bin/perl $(PERLXML) $(RTMA3DCTRLFILENAME) $(RTMA3DAVAILXMLFILENAME) $(RTMA3DFLATFILENAME)
PERLXMLUFSAEROSOL = /usr/bin/perl $(PERLXML) $(UFSAEROSOLCTRFILENAME) $(RTMA3DAVAILXMLFILENAME) $(UFSAEROSOLFLATFILENAME)
PERLXMLUFSAEROSOL00 = /usr/bin/perl $(PERLXML) $(UFSAEROSOL00CTRFILENAME) $(RTMA3DAVAILXMLFILENAME) $(UFSAERO00FLATFILENAME)
+PERLXMLAQM = /usr/bin/perl $(PERLXML) $(AQMCTRLFILENAME) $(AVAILXMLFILENAME) $(AQMFLATFILENAME)
# File to look for change
GFSXMLS = $(GFSAVAILXMLFILENAME) $(GFSCTRLFILENAME)
@@ -116,9 +120,10 @@ RRFSXMLS = $(RRFSAVAILXMLFILENAME) $(RRFSCTRLFILENAME)
RTMA3DXMLS = $(RTMA3DAVAILXMLFILENAME) $(RTMA3DCTRLFILENAME)
UFSAEROSOLXMLS = $(RTMA3DAVAILXMLFILENAME) $(UFSAEROSOLCTRLFILENAME)
UFSAEROSOL00XMLS = $(RTMA3DAVAILXMLFILENAME) $(UFSAEROSOL00CTRLFILENAME)
+AQMXMLS = $(AVAILXMLFILENAME) $(AQMCTRLFILENAME)
# If action is triggered; run the following
-all: $(GFSFLATFILENAME) $(GFSGOESFLATFILENAME) $(GFSANLFLATFILENAME) $(GFSF00FLATFILENAME) $(GFSFLUXFLATFILENAME) $(GFSFLUXF00FLATFILENAME) $(NMMFLATFILENAME) $(NGACFLATFILENAME) $(GEFSFLATFILENAME) $(GEFSANLFLATFILENAME) $(GEFSF00FLATFILENAME) $(FV3LAMFLATFILENAME) $(HAFSFLATFILENAME) $(HAFSNOSATFLATFILENAME) $(GFSTWOFLATFILENAME) $(GFSTWOF00FLATFILENAME) $(HRRRFLATFILENAME) $(RAPFLATFILENAME) $(RRFSFLATFILENAME) $(RTMA3DFLATFILENAME) $(UFSAEROSOLFLATFILENAME) $(UFSAERO00FLATFILENAME)
+all: $(GFSFLATFILENAME) $(GFSGOESFLATFILENAME) $(GFSANLFLATFILENAME) $(GFSF00FLATFILENAME) $(GFSFLUXFLATFILENAME) $(GFSFLUXF00FLATFILENAME) $(NMMFLATFILENAME) $(NGACFLATFILENAME) $(GEFSFLATFILENAME) $(GEFSANLFLATFILENAME) $(GEFSF00FLATFILENAME) $(FV3LAMFLATFILENAME) $(HAFSFLATFILENAME) $(HAFSNOSATFLATFILENAME) $(GFSTWOFLATFILENAME) $(GFSTWOF00FLATFILENAME) $(HRRRFLATFILENAME) $(RAPFLATFILENAME) $(RRFSFLATFILENAME) $(RTMA3DFLATFILENAME) $(UFSAEROSOLFLATFILENAME) $(UFSAERO00FLATFILENAME) $(AQMFLATFILENAME)
$(GFSFLATFILENAME): $(GFSXMLS)
$(PERLXMLGFS)
$(GFSGOESFLATFILENAME): $(GFSGOESXMLS)
@@ -163,10 +168,12 @@ $(UFSAEROSOLFLATFILENAME): $(UFSAEROSOLXMLS)
$(PERLXMLUFSAEROSOL)
$(UFSAERO00FLATFILENAME): $(UFSAEROSOL00XMLS)
$(PERLXMLUFSAEROSOL00)
+$(AQMFLATFILENAME): $(AQMXMLS)
+ $(PERLXMLAQM)
# Make clean
clean:
@echo
@echo '==== CLEAN ==================================================='
- /bin/rm -f $(GFSFLATFILENAME) $(GFSGOESFLATFILENAME) $(GFSANLFLATFILENAME) $(GFSF00FLATFILENAME) $(NMMFLATFILENAME) $(NGACFLATFILENAME) $(GEFSFLATFILENAME) $(GEFSANLFLATFILENAME) $(GEFSF00FLATFILENAME) $(FV3LAMFLATFILENAME) $(HAFSFLATFILENAME) $(GFSTWOFLATFILENAME) $(GFSTWOF00FLATFILENAME) $(HRRRFLATFILENAME) $(RAPFLATFILENAME) $(RTMA3DFLATFILENAME) $(UFSAEROSOLFLATFILENAME) $(UFSAERO00FLATFILENAME)
+ /bin/rm -f $(GFSFLATFILENAME) $(GFSGOESFLATFILENAME) $(GFSANLFLATFILENAME) $(GFSF00FLATFILENAME) $(NMMFLATFILENAME) $(NGACFLATFILENAME) $(GEFSFLATFILENAME) $(GEFSANLFLATFILENAME) $(GEFSF00FLATFILENAME) $(FV3LAMFLATFILENAME) $(HAFSFLATFILENAME) $(GFSTWOFLATFILENAME) $(GFSTWOF00FLATFILENAME) $(HRRRFLATFILENAME) $(RAPFLATFILENAME) $(RTMA3DFLATFILENAME) $(UFSAEROSOLFLATFILENAME) $(UFSAERO00FLATFILENAME) $(AQMFLATFILENAME)
diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml
index 68592827d..42f61113d 100755
--- a/parm/post_avblflds.xml
+++ b/parm/post_avblflds.xml
@@ -6635,6 +6635,19 @@
3.0
+
+ 712
+ AER_OPT_AQM_at550
+ tmpl4_48
+ AOTK
+ entire_atmos_single_lyr
+ total_aerosol
+ smaller_than_first_limit
+ 0
+ 0
+ 9.0
+
+
719
INST_USWRF_ON_TOP_OF_ATMOS
@@ -8059,16 +8072,20 @@
994
- OZCON_ON_HYBRID_LVL
+ AVE_OZCON_ON_HYBRID_LVL
+ tmpl4_8
OZCON
+ AVE
hybrid_lvl
7.0
995
- PM25TOT_ON_HYBRID_LVL
+ AVE_PM25TOT_ON_HYBRID_LVL
+ tmpl4_8
PMTF
+ AVE
hybrid_lvl
7.0
diff --git a/parm/postxconfig-NT-AQM.txt b/parm/postxconfig-NT-AQM.txt
new file mode 100644
index 000000000..54f199471
--- /dev/null
+++ b/parm/postxconfig-NT-AQM.txt
@@ -0,0 +1,943 @@
+1
+25
+CMAQ
+32769
+ncep_nco
+v2003
+local_tab_yes1
+fcst
+oper
+fcst
+fcst
+hour
+nws_ncep
+nmm_8km
+complex_packing_spatial_diff
+2nd_ord_sptdiff
+fltng_pnt
+lossless
+995
+AVE_PM25TOT_ON_HYBRID_LVL
+?
+1
+tmpl4_8
+PMTF
+NCEP
+AVE
+hybrid_lvl
+0
+?
+64
+1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+7.0
+0
+0
+0
+?
+?
+?
+994
+AVE_OZCON_ON_HYBRID_LVL
+?
+1
+tmpl4_8
+OZCON
+NCEP
+AVE
+hybrid_lvl
+0
+?
+64
+1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+7.0
+0
+0
+0
+?
+?
+?
+2
+TMP_ON_HYBRID_LVL
+?
+1
+tmpl4_0
+TMP
+?
+?
+hybrid_lvl
+0
+?
+64
+1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+5
+SPFH_ON_HYBRID_LVL
+?
+1
+tmpl4_0
+SPFH
+?
+?
+hybrid_lvl
+0
+?
+64
+1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+7.0
+0
+0
+0
+?
+?
+?
+7
+UGRD_ON_HYBRID_LVL
+?
+1
+tmpl4_0
+UGRD
+?
+?
+hybrid_lvl
+0
+?
+64
+1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+8
+VGRD_ON_HYBRID_LVL
+?
+1
+tmpl4_0
+VGRD
+?
+?
+hybrid_lvl
+0
+?
+64
+1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+264
+DZDT_ON_HYBRID_LVL
+?
+1
+tmpl4_0
+DZDT
+?
+?
+hybrid_lvl
+0
+?
+64
+1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+145
+TCDC_ON_HYBRID_LVL
+?
+1
+tmpl4_0
+TCDC
+?
+?
+hybrid_lvl
+0
+?
+64
+1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+3.0
+0
+0
+0
+?
+?
+?
+106
+TMP_ON_SPEC_HGT_LVL_ABOVE_GRND_2m
+?
+1
+tmpl4_0
+TMP
+?
+?
+spec_hgt_lvl_above_grnd
+0
+?
+1
+2.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+112
+SPFH_ON_SPEC_HGT_LVL_ABOVE_GRND_2m
+?
+1
+tmpl4_0
+SPFH
+?
+?
+spec_hgt_lvl_above_grnd
+0
+?
+1
+2.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+113
+DPT_ON_SPEC_HGT_LVL_ABOVE_GRND_2m
+?
+1
+tmpl4_0
+DPT
+?
+?
+spec_hgt_lvl_above_grnd
+0
+?
+1
+2.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+114
+RH_ON_SPEC_HGT_LVL_ABOVE_GRND_2m
+?
+1
+tmpl4_0
+RH
+?
+?
+spec_hgt_lvl_above_grnd
+0
+?
+1
+2.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+3.0
+0
+0
+0
+?
+?
+?
+64
+UGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_10m
+?
+1
+tmpl4_0
+UGRD
+?
+?
+spec_hgt_lvl_above_grnd
+0
+?
+1
+10.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+65
+VGRD_ON_SPEC_HGT_LVL_ABOVE_GRND_10m
+?
+1
+tmpl4_0
+VGRD
+?
+?
+spec_hgt_lvl_above_grnd
+0
+?
+1
+10.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+344
+PBLREG_ON_SURFACE
+?
+1
+tmpl4_0
+PBLREG
+?
+?
+surface
+0
+?
+0
+?
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+2.0
+0
+0
+0
+?
+?
+?
+13
+TMP_ON_ISOBARIC_SFC
+?
+1
+tmpl4_0
+TMP
+?
+?
+isobaric_sfc
+0
+?
+5
+50000. 70000. 85000. 92500. 100000.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+-4.0
+0
+0
+0
+?
+?
+?
+15
+DPT_ON_ISOBARIC_SFC
+?
+1
+tmpl4_0
+DPT
+?
+?
+isobaric_sfc
+0
+?
+5
+50000. 70000. 85000. 92500. 100000.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+-4.0
+0
+0
+0
+?
+?
+?
+12
+HGT_ON_ISOBARIC_SFC
+?
+1
+tmpl4_0
+HGT
+?
+?
+isobaric_sfc
+0
+?
+4
+50000. 70000. 85000. 100000.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+-5.0
+0
+0
+0
+?
+?
+?
+18
+UGRD_ON_ISOBARIC_SFC
+?
+1
+tmpl4_0
+UGRD
+?
+?
+isobaric_sfc
+0
+?
+7
+25000. 30000. 50000. 70000. 85000. 92500. 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
+?
+7
+25000. 30000. 50000. 70000. 85000. 92500. 100000.
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+-4.0
+0
+0
+0
+?
+?
+?
+32
+CAPE_ON_SURFACE
+?
+1
+tmpl4_0
+CAPE
+?
+?
+surface
+0
+?
+0
+?
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+3.0
+0
+0
+0
+?
+?
+?
+566
+BEST_CAPE_ON_SPEC_PRES_ABOVE_GRND
+?
+1
+tmpl4_0
+CAPE
+?
+?
+spec_pres_above_grnd
+0
+?
+1
+18000.
+spec_pres_above_grnd
+0
+?
+1
+0.
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+3.0
+0
+0
+0
+?
+?
+?
+582
+MIXED_LAYER_CAPE_ON_SPEC_PRES_ABOVE_GRND
+?
+1
+tmpl4_0
+CAPE
+?
+?
+spec_pres_above_grnd
+0
+?
+1
+9000.
+spec_pres_above_grnd
+0
+?
+1
+0.
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+3.0
+0
+0
+0
+?
+?
+?
+712
+AER_OPT_AQM_at550
+?
+1
+tmpl4_48
+AOTK
+?
+?
+entire_atmos_single_lyr
+0
+?
+0
+?
+?
+0
+?
+0
+?
+total_aerosol
+smaller_than_first_limit
+0
+0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+9.0
+0
+0
+0
+?
+?
+?
+221
+HPBL_ON_SURFACE
+?
+1
+tmpl4_0
+HPBL
+NCEP
+?
+surface
+0
+?
+0
+?
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+6.0
+0
+0
+0
+?
+?
+?
diff --git a/parm/postxconfig-NT-fv3lam_cmaq.txt b/parm/postxconfig-NT-fv3lam_cmaq.txt
deleted file mode 100644
index 1eec84111..000000000
--- a/parm/postxconfig-NT-fv3lam_cmaq.txt
+++ /dev/null
@@ -1,129 +0,0 @@
-1
-3
-CMAQ
-32769
-ncep_nco
-v2003
-local_tab_yes1
-fcst
-oper
-fcst
-fcst
-hour
-nws_ncep
-nmm_8km
-complex_packing_spatial_diff
-2nd_ord_sptdiff
-fltng_pnt
-lossless
-995
-PM25TOT_ON_HYBRID_LVL
-?
-1
-tmpl4_0
-PMTF
-NCEP
-?
-hybrid_lvl
-0
-?
-64
-1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
-?
-0
-?
-0
-?
-?
-?
-0
-0.0
-0
-0.0
-?
-0
-0.0
-0
-0.0
-1
-7.0
-0
-0
-0
-?
-?
-?
-267
-O3MR_ON_HYBRID_LVL
-?
-1
-tmpl4_0
-O3MR
-NCEP
-?
-hybrid_lvl
-0
-?
-64
-1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
-?
-0
-?
-0
-?
-?
-?
-0
-0.0
-0
-0.0
-?
-0
-0.0
-0
-0.0
-1
-7.0
-0
-0
-0
-?
-?
-?
-994
-OZCON_ON_HYBRID_LVL
-?
-1
-tmpl4_0
-OZCON
-NCEP
-?
-hybrid_lvl
-0
-?
-64
-1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
-?
-0
-?
-0
-?
-?
-?
-0
-0.0
-0
-0.0
-?
-0
-0.0
-0
-0.0
-1
-7.0
-0
-0
-0
-?
-?
-?
diff --git a/sorc/ncep_post.fd/ALLOCATE_ALL.f b/sorc/ncep_post.fd/ALLOCATE_ALL.f
index 27ee6c0dc..429ccb21d 100644
--- a/sorc/ncep_post.fd/ALLOCATE_ALL.f
+++ b/sorc/ncep_post.fd/ALLOCATE_ALL.f
@@ -20,6 +20,7 @@
!! two arrays are involved in GSL visibility computation.
!! - 22-03-22 Wen Meng - Initializing pwat.
!! - 22-09-22 Li(Kate) Zhang - Initializing NASA GOCART tracers of Nitrate, NH4,and their column burden.
+!! - 22-11-08 Kai Wang - Replace acfcmaq_on with aqf_on
!!
!! OUTPUT FILES:
!! - STDOUT - RUN TIME STANDARD OUT.
@@ -1371,23 +1372,32 @@ SUBROUTINE ALLOCATE_ALL()
enddo
! AQF
- if (me == 0) print *,'aqfcmaq_on= ', aqfcmaq_on
- if (aqfcmaq_on) then
+ if (me == 0) print *,'aqf_on= ', aqf_on
+ if (aqf_on) then
- allocate(ozcon(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(pmtf(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
+ allocate(avgozcon(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
+ allocate(avgpmtf(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
+ allocate(aqm_aod550(ista_2l:iend_2u,jsta_2l:jend_2u))
!Initialization
!$omp parallel do private(i,j,l)
do l=1,lm
do j=jsta_2l,jend_2u
do i=ista_2l,iend_2u
- ozcon(i,j,l)=0.
- pmtf(i,j,l)=0.
+ avgozcon(i,j,l)=spval
+ avgpmtf(i,j,l)=spval
enddo
enddo
enddo
+!Initialization
+!$omp parallel do private(i,j)
+ do j=jsta_2l,jend_2u
+ do i=ista_2l,iend_2u
+ aqm_aod550(i,j)=spval
+ enddo
+ enddo
+
endif
!
end
diff --git a/sorc/ncep_post.fd/CLDRAD.f b/sorc/ncep_post.fd/CLDRAD.f
index 6ae1653ab..58bf95eb6 100644
--- a/sorc/ncep_post.fd/CLDRAD.f
+++ b/sorc/ncep_post.fd/CLDRAD.f
@@ -67,6 +67,7 @@
!> 2022-09-22 | Li(Kate Zhang) | Update look-up table for NASA GOCART (UFS-Aerosols).
!> 2022-10-20 | Li(Kate Zhang) | Add nitrate look-up table and nitrate AOD for NASA GOCART (UFS-Aerosols).
!> 2022-11-16 | Eric James | Adding total column dust, biomass burning emissions, hourly wildfire potential from RRFS
+!> 2022-1207 | Wen Meng | Add AOD for AQM
!>
!> @author Russ Treadon W/NP2 @date 1993-08-30
SUBROUTINE CLDRAD
@@ -94,7 +95,7 @@ SUBROUTINE CLDRAD
LWP, IWP, AVGCPRATE, &
DUSTCB,SSCB,BCCB,OCCB,SULFCB,DUSTPM,SSPM,aod550, &
du_aod550,ss_aod550,su_aod550,oc_aod550,bc_aod550, &
- PWAT,DUSTPM10,MAOD,NO3CB,NH4CB
+ PWAT,DUSTPM10,MAOD,NO3CB,NH4CB,aqm_aod550
use masks, only: LMH, HTM
use params_mod, only: TFRZ, D00, H99999, QCLDMIN, SMALL, D608, H1, ROG, &
GI, RD, QCONV, ABSCOEFI, ABSCOEF, STBOL, PQ0, A2, &
@@ -103,7 +104,8 @@ SUBROUTINE CLDRAD
FLD_INFO, AVRAIN, THEAT, IFHR, IFMIN, AVCNVC, &
TCLOD, ARDSW, TRDSW, ARDLW, NBIN_DU, TRDLW, IM, &
NBIN_SS, NBIN_OC,NBIN_BC,NBIN_SU,NBIN_NO3,DTQ2, &
- JM, LM, gocart_on, nasa_on, me, rdaod,ISTA, IEND
+ JM, LM, gocart_on, nasa_on, me, rdaod,ISTA, IEND, &
+ aqf_on
use rqstfld_mod, only: IGET, ID, LVLS, IAVBLFLD
use gridspec_mod, only: dyval, gridtype
use cmassi_mod, only: TRAD_ice
@@ -4542,6 +4544,22 @@ SUBROUTINE CLDRAD
ENDIF
END IF !rdaod
+ !AQM AEROSOL OPTICAL DEPTH AT 550 NM
+ IF (aqf_on) THEN
+ IF (IGET(712).GT.0) THEN
+ DO J=JSTA,JEND
+ DO I=ISTA,IEND
+ grid1(i,j)=aqm_aod550(i,j)
+ ENDDO
+ ENDDO
+ if(grib=="grib2" )then
+ cfld=cfld+1
+ fld_info(cfld)%ifld=IAVBLFLD(IGET(712))
+ datapd(1:iend-ista+1,1:jend-jsta+1,cfld)=GRID1(ista:iend,jsta:jend)
+ endif
+ ENDIF
+ END IF !aqf_on
+
!2D AEROSOL OPTICAL DEPTH AT 550 NM
IF (IGET(715)>0) THEN
DO J=JSTA,JEND
diff --git a/sorc/ncep_post.fd/CTLBLK.f b/sorc/ncep_post.fd/CTLBLK.f
index 14fdb17ba..7e1ae9baf 100644
--- a/sorc/ncep_post.fd/CTLBLK.f
+++ b/sorc/ncep_post.fd/CTLBLK.f
@@ -11,6 +11,7 @@ module CTLBLK_mod
! 2011-12-23 SARAH LU - ADD NBIN FOR DU, SS, OC, BC, SU
! 2021-09-30 JESSE MENG- 2D DECOMPOSITION
! 2022-09-22 Li(Kate) Zhang- Add option for NASA GOCART as "nasa_on", add NBIN for NO3 and NH4
+! 2022-11-08 Kai Wang - Replace aqfcmaq_on with aqf_on
!-----------------------------------------------------------------------
!
implicit none
@@ -43,7 +44,7 @@ module CTLBLK_mod
real*8 :: gdsdegr
real,allocatable :: datapd(:,:,:)
!
- logical :: gocart_on, nasa_on, d3d_on, hyb_sigp, rdaod, aqfcmaq_on
+ logical :: gocart_on, nasa_on, d3d_on, hyb_sigp, rdaod, aqf_on
logical :: SIGMA,RUN,FIRST,RESTRT
logical :: global
logical :: SMFLAG
diff --git a/sorc/ncep_post.fd/DEALLOCATE.f b/sorc/ncep_post.fd/DEALLOCATE.f
index a419e9f17..658febca4 100644
--- a/sorc/ncep_post.fd/DEALLOCATE.f
+++ b/sorc/ncep_post.fd/DEALLOCATE.f
@@ -9,6 +9,7 @@
!> 2000-01-06 | Jim Tuccillo | Initial
!> 2001-10-25 | H Chuang | Modified to process hybrid model output
!> 2002-06-19 | Mike Baldwin | WRF version
+!> 2022-11-08 | Kai Wang | Replace aqfcmaq_on with aqf_on
!>
!> @author Jim Tuccillo IBM @date 2000-01-06
SUBROUTINE DE_ALLOCATE
@@ -558,9 +559,10 @@ SUBROUTINE DE_ALLOCATE
deallocate(uuavg)
! AQF
- if (aqfcmaq_on) then
- deallocate(ozcon)
- deallocate(pmtf)
+ if (aqf_on) then
+ deallocate(avgozcon)
+ deallocate(avgpmtf)
+ deallocate(aqm_aod550)
endif
end
diff --git a/sorc/ncep_post.fd/INITPOST_NETCDF.f b/sorc/ncep_post.fd/INITPOST_NETCDF.f
index 673871a35..a803ef6f9 100644
--- a/sorc/ncep_post.fd/INITPOST_NETCDF.f
+++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f
@@ -22,7 +22,10 @@
!> 2022-07-18 | Wen Meng | Read instant top of atmos ULWRF from model
!> 2022-09-18 | Li(Kate) Zhang| Add aerosol fileds for GEFS-Aerosols (gocart_on) and UFS-Aerosols(nasa_on) model
!> 2022-10-28 | Eric James | Modifications to allow passing through soil moisture availability field from RUC LSM for RRFS
+!> 2022-11-08 | Kai Wang | Read time averaged PM2.5 and O3 concentration from model
+!> 2022-11-08 | Wen Meng | Remove instant PM2.5 calculation
!> 2022-11-16 | Eric James | Read smoke, dust, biomass burning, and hourly wildfire potential from RRFS
+!> 2022-12-07 | Wen Meng | Read AOD from AQM model
!>
!> @author Hui-Ya Chuang @date 2016-03-04
SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d)
@@ -37,7 +40,7 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d)
vdiffmacce, mgdrag, cnvctvmmixing, ncnvctcfrac, cnvctumflx, cnvctdmflx, &
cnvctzgdrag, sconvmois, cnvctmgdrag, cnvctdetmflx, duwt, duem, dusd, dudp, &
dusv,ssem,sssd,ssdp,sswt,sssv,bcem,bcsd,bcdp,bcwt,bcsv,ocem,ocsd,ocdp,ocwt,ocsv, &
- wh, qqg, ref_10cm, qqnifa, qqnwfa, pmtf, ozcon, aextc55, taod5503d
+ wh, qqg, ref_10cm, qqnifa, qqnwfa, avgpmtf, avgozcon, aextc55, taod5503d
use vrbls2d, only: f, pd, fis, pblh, ustar, z0, ths, qs, twbs, qwbs, avgcprate, &
cprate, avgprec, prec, lspa, sno, si, cldefi, th10, q10, tshltr, pshltr, &
@@ -60,7 +63,7 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d)
alwoutc,alwtoac,aswoutc,aswtoac,alwinc,aswinc,avgpotevp,snoavg, &
ti,aod550,du_aod550,ss_aod550,su_aod550,oc_aod550,bc_aod550,prate_max,maod,dustpm10, &
dustcb,bccb,occb,sulfcb,sscb,dustallcb,ssallcb,dustpm,sspm,pp25cb,pp10cb,no3cb,nh4cb,&
- pwat, ebb, hwp
+ pwat, ebb, hwp, aqm_aod550
use soil, only: sldpth, sllevel, sh2o, smc, stc
use masks, only: lmv, lmh, htm, vtm, gdlat, gdlon, dx, dy, hbm2, sm, sice
use physcons_post, only: grav => con_g, fv => con_fvirt, rgas => con_rd, &
@@ -75,7 +78,7 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d)
jsta_2l, jend_2u, nsoil, lp1, icu_physics, ivegsrc, novegtype, nbin_ss, nbin_bc, &
nbin_oc, nbin_su, nbin_no3, nbin_nh4, gocart_on, nasa_on, pt_tbl, hyb_sigp, &
filenameFlux, fileNameAER, &
- iSF_SURFACE_PHYSICS,rdaod, aqfcmaq_on, modelname, &
+ iSF_SURFACE_PHYSICS,rdaod, modelname, aqf_on, &
ista, iend, ista_2l, iend_2u,iend_m
use gridspec_mod, only: maptype, gridtype, latstart, latlast, lonstart, lonlast, cenlon, &
dxval, dyval, truelat2, truelat1, psmapf, cenlat,lonstartv, lonlastv, cenlonv, &
@@ -188,197 +191,11 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d)
real :: dum_const
real, allocatable :: extsmoke(:,:,:), extdust(:,:,:)
-! AQF
-
- real, allocatable :: aacd(:,:,:), aalj(:,:,:) &
- ,aalk1j(:,:,:), aalk2j(:,:,:) &
- ,abnz1j(:,:,:), abnz2j(:,:,:), abnz3j(:,:,:) &
- ,acaj(:,:,:), acet(:,:,:) &
- ,acli(:,:,:), aclj(:,:,:), aclk(:,:,:) &
- ,acors(:,:,:), acro_primary(:,:,:) &
- ,acrolein(:,:,:), aeci(:,:,:) &
- ,aecj(:,:,:), afej(:,:,:) &
- ,aglyj(:,:,:) &
- ,ah2oi(:,:,:), ah2oj(:,:,:), ah2ok(:,:,:) &
- ,ah3opi(:,:,:), ah3opj(:,:,:), ah3opk(:,:,:) &
- ,aiso1j(:,:,:), aiso2j(:,:,:), aiso3j(:,:,:) &
- ,aivpo1j(:,:,:), akj(:,:,:) &
- ,ald2(:,:,:), ald2_primary(:,:,:) &
- ,aldx(:,:,:) &
- ,alvoo1i(:,:,:), alvoo1j(:,:,:) &
- ,alvoo2i(:,:,:), alvoo2j(:,:,:) &
- ,alvpo1i(:,:,:), alvpo1j(:,:,:) &
- ,amgj(:,:,:), amnj(:,:,:) &
- ,amgk(:,:,:), akk(:,:,:), acak(:,:,:) &
- ,anai(:,:,:), anaj(:,:,:), anak(:,:,:) &
- ,anh4i(:,:,:), anh4j(:,:,:), anh4k(:,:,:) &
- ,ano3i(:,:,:), ano3j(:,:,:), ano3k(:,:,:) &
- ,aolgaj(:,:,:), aolgbj(:,:,:), aorgcj(:,:,:) &
- ,aomi(:,:,:), aomj(:,:,:) &
- ,aothri(:,:,:), aothrj(:,:,:) &
- ,apah1j(:,:,:), apah2j(:,:,:), apah3j(:,:,:) &
- ,apomi(:,:,:), apomj(:,:,:) &
- ,apcsoj(:,:,:), aseacat(:,:,:), asij(:,:,:) &
- ,aso4i(:,:,:), aso4j(:,:,:), aso4k(:,:,:) &
- ,asoil(:,:,:), asqtj(:,:,:) &
- ,asomi(:,:,:), asomj(:,:,:) &
- ,asvoo1i(:,:,:), asvoo1j(:,:,:) &
- ,asvoo2i(:,:,:), asvoo2j(:,:,:) &
- ,asvoo3j(:,:,:) &
- ,asvpo1i(:,:,:), asvpo1j(:,:,:) &
- ,asvpo2i(:,:,:), asvpo2j(:,:,:) &
- ,asvpo3j(:,:,:) &
- ,atij(:,:,:) &
- ,atol1j(:,:,:), atol2j(:,:,:), atol3j(:,:,:) &
- ,atoti(:,:,:), atotj(:,:,:), atotk(:,:,:) &
- ,atrp1j(:,:,:), atrp2j(:,:,:) &
- ,axyl1j(:,:,:), axyl2j(:,:,:), axyl3j(:,:,:) &
- ,pm25ac(:,:,:), pm25at(:,:,:), pm25co(:,:,:)
-
-
if (modelname == 'FV3R') then
allocate(extsmoke(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
allocate(extdust(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
endif
- if (me == 0) print *,' aqfcmaq_on=', aqfcmaq_on
-
- if (aqfcmaq_on) then
-
- allocate(aacd(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aalj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aalk1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aalk2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(abnz1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(abnz2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(abnz3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(acaj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(acet(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(acli(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aclj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aclk(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(acors(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(acro_primary(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(acrolein(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aeci(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aecj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(afej(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aglyj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(ah2oi(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(ah2oj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(ah2ok(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(ah3opi(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(ah3opj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(ah3opk(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(aiso1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aiso2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aiso3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(aivpo1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(akj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(ald2(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(ald2_primary(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(aldx(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(alvoo1i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(alvoo1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(alvoo2i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(alvoo2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(alvpo1i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(alvpo1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(amgj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(amnj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(anai(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(anaj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(anak(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(anh4i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(anh4j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(anh4k(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(ano3i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(ano3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(ano3k(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(aolgaj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aolgbj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(aomi(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aomj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(aorgcj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(aothri(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aothrj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(apah1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(apah2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(apah3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(apcsoj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(apomi(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(apomj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(aseacat(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asij(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(aso4i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aso4j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(aso4k(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asoil(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(asomi(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asomj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(asqtj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(asvoo1i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asvoo1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asvoo2i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asvoo2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asvoo3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(asvpo1i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asvpo1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asvpo2i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asvpo2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(asvpo3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(atij(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(atol1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(atol2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(atol3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(atoti(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(atotj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(atotk(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(atrp1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(atrp2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(axyl1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(axyl2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(axyl3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- allocate(pm25ac(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(pm25at(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
- allocate(pm25co(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
-
- endif
-
!***********************************************************************
! START INIT HERE.
!
@@ -1078,489 +895,31 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d)
! ,cfr(isa,jsa,l),isa,jsa,l
! enddo
-!=============================
-! For AQF Chemical species
-!=============================
+!=====================================
+! For AQF Hourly average field PM2.5
+!=====================================
- if (aqfcmaq_on) then
+ if (aqf_on) then
! *********** VarName need to be in lower case ************
! === It will cause problem if not use the lower case =====
! *********************************************************
- !--------------------------------------------------------------
- !-- rename input o3 to NCO grib2 name ozcon -------------------
-
- VarName='o3'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ozcon(ista_2l,jsta_2l,1),lm)
-
- !--------------------------------------------------------------
-
- VarName='aacd'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aacd(ista_2l,jsta_2l,1),lm)
-
- VarName='aalj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aalj(ista_2l,jsta_2l,1),lm)
-
- VarName='aalk1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aalk1j(ista_2l,jsta_2l,1),lm)
-
- VarName='aalk2j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aalk2j(ista_2l,jsta_2l,1),lm)
-
- VarName='abnz1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,abnz1j(ista_2l,jsta_2l,1),lm)
-
- VarName='abnz2j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,abnz2j(ista_2l,jsta_2l,1),lm)
-
- VarName='abnz3j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,abnz3j(ista_2l,jsta_2l,1),lm)
-
- VarName='acaj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,acaj(ista_2l,jsta_2l,1),lm)
-
- VarName='acet'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,acet(ista_2l,jsta_2l,1),lm)
-
- VarName='acli'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,acli(ista_2l,jsta_2l,1),lm)
-
- VarName='aclj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aclj(ista_2l,jsta_2l,1),lm)
-
- VarName='aclk'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aclk(ista_2l,jsta_2l,1),lm)
-
- VarName='acors'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,acors(ista_2l,jsta_2l,1),lm)
-
- VarName='acro_primary'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,acro_primary(ista_2l,jsta_2l,1),lm)
-
- VarName='acrolein'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,acrolein(ista_2l,jsta_2l,1),lm)
-
- VarName='aeci'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aeci(ista_2l,jsta_2l,1),lm)
-
- VarName='aecj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aecj(ista_2l,jsta_2l,1),lm)
-
- VarName='afej'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,afej(ista_2l,jsta_2l,1),lm)
-
- VarName='aglyj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aglyj(ista_2l,jsta_2l,1),lm)
-
- VarName='ah2oi'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ah2oi(ista_2l,jsta_2l,1),lm)
-
- VarName='ah2oj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ah2oj(ista_2l,jsta_2l,1),lm)
-
- VarName='ah2ok'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ah2ok(ista_2l,jsta_2l,1),lm)
-
- VarName='ah3opi'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ah3opi(ista_2l,jsta_2l,1),lm)
-
- VarName='ah3opj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ah3opj(ista_2l,jsta_2l,1),lm)
-
- VarName='ah3opk'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ah3opk(ista_2l,jsta_2l,1),lm)
-
- VarName='aiso1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aiso1j(ista_2l,jsta_2l,1),lm)
-
- VarName='aiso2j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aiso2j(ista_2l,jsta_2l,1),lm)
-
- VarName='aiso3j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aiso3j(ista_2l,jsta_2l,1),lm)
-
- VarName='aivpo1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aivpo1j(ista_2l,jsta_2l,1),lm)
-
- VarName='akj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,akj(ista_2l,jsta_2l,1),lm)
-
- VarName='ald2'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ald2(ista_2l,jsta_2l,1),lm)
-
- VarName='ald2_primary'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ald2_primary(ista_2l,jsta_2l,1),lm)
-
- VarName='aldx'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aldx(ista_2l,jsta_2l,1),lm)
-
- VarName='alvoo1i'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,alvoo1i(ista_2l,jsta_2l,1),lm)
-
- VarName='alvoo1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,alvoo1j(ista_2l,jsta_2l,1),lm)
-
- VarName='alvoo2i'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,alvoo2i(ista_2l,jsta_2l,1),lm)
-
- VarName='alvoo2j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,alvoo2j(ista_2l,jsta_2l,1),lm)
-
- VarName='alvpo1i'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,alvpo1i(ista_2l,jsta_2l,1),lm)
+ !-- rename input o3_ave and pm25_ave to NCO grib2 name OZCON and PMTF
- VarName='alvpo1j'
+ VarName='o3_ave'
call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,alvpo1j(ista_2l,jsta_2l,1),lm)
+ spval,VarName,avgozcon(ista_2l,jsta_2l,1),lm)
- VarName='amgj'
+ VarName='pm25_ave'
call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,amgj(ista_2l,jsta_2l,1),lm)
+ spval,VarName,avgpmtf(ista_2l,jsta_2l,1),lm)
- VarName='amnj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,amnj(ista_2l,jsta_2l,1),lm)
-
- VarName='anai'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,anai(ista_2l,jsta_2l,1),lm)
-
- VarName='anaj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,anaj(ista_2l,jsta_2l,1),lm)
-
- VarName='anh4i'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,anh4i(ista_2l,jsta_2l,1),lm)
-
- VarName='anh4j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,anh4j(ista_2l,jsta_2l,1),lm)
-
- VarName='anh4k'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,anh4k(ista_2l,jsta_2l,1),lm)
-
- VarName='ano3i'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ano3i(ista_2l,jsta_2l,1),lm)
-
- VarName='ano3j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ano3j(ista_2l,jsta_2l,1),lm)
-
- VarName='ano3k'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,ano3k(ista_2l,jsta_2l,1),lm)
-
- VarName='aolgaj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aolgaj(ista_2l,jsta_2l,1),lm)
-
- VarName='aolgbj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aolgbj(ista_2l,jsta_2l,1),lm)
-
- VarName='aorgcj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aorgcj(ista_2l,jsta_2l,1),lm)
-
- VarName='aothri'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aothri(ista_2l,jsta_2l,1),lm)
-
- VarName='aothrj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aothrj(ista_2l,jsta_2l,1),lm)
-
- VarName='apah1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,apah1j(ista_2l,jsta_2l,1),lm)
-
- VarName='apah2j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,apah2j(ista_2l,jsta_2l,1),lm)
-
- VarName='apah3j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,apah3j(ista_2l,jsta_2l,1),lm)
-
- VarName='apcsoj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,apcsoj(ista_2l,jsta_2l,1),lm)
-
- VarName='aseacat'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aseacat(ista_2l,jsta_2l,1),lm)
-
- VarName='asij'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asij(ista_2l,jsta_2l,1),lm)
-
- VarName='aso4i'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aso4i(ista_2l,jsta_2l,1),lm)
-
- VarName='aso4j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aso4j(ista_2l,jsta_2l,1),lm)
-
- VarName='aso4k'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,aso4k(ista_2l,jsta_2l,1),lm)
-
- VarName='asoil'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asoil(ista_2l,jsta_2l,1),lm)
-
- VarName='asqtj'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asqtj(ista_2l,jsta_2l,1),lm)
-
- VarName='asvoo1i'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asvoo1i(ista_2l,jsta_2l,1),lm)
-
- VarName='asvoo1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asvoo1j(ista_2l,jsta_2l,1),lm)
-
- VarName='asvoo2i'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asvoo2i(ista_2l,jsta_2l,1),lm)
-
- VarName='asvoo2j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asvoo2j(ista_2l,jsta_2l,1),lm)
-
- VarName='asvoo3j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asvoo3j(ista_2l,jsta_2l,1),lm)
-
- VarName='asvpo1i'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asvpo1i(ista_2l,jsta_2l,1),lm)
-
- VarName='asvpo1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asvpo1j(ista_2l,jsta_2l,1),lm)
-
- VarName='asvpo2i'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asvpo2i(ista_2l,jsta_2l,1),lm)
-
- VarName='asvpo2j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asvpo2j(ista_2l,jsta_2l,1),lm)
-
- VarName='asvpo3j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,asvpo3j(ista_2l,jsta_2l,1),lm)
-
- VarName='atij'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,atij(ista_2l,jsta_2l,1),lm)
-
- VarName='atol1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,atol1j(ista_2l,jsta_2l,1),lm)
-
- VarName='atol2j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,atol2j(ista_2l,jsta_2l,1),lm)
-
- VarName='atol3j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,atol3j(ista_2l,jsta_2l,1),lm)
-
- VarName='atrp1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,atrp1j(ista_2l,jsta_2l,1),lm)
-
- VarName='atrp2j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,atrp2j(ista_2l,jsta_2l,1),lm)
-
- VarName='axyl1j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,axyl1j(ista_2l,jsta_2l,1),lm)
-
- VarName='axyl2j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,axyl2j(ista_2l,jsta_2l,1),lm)
-
- VarName='axyl3j'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,axyl3j(ista_2l,jsta_2l,1),lm)
-
- VarName='pm25ac'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,pm25ac(ista_2l,jsta_2l,1),lm)
-
- VarName='pm25at'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,pm25at(ista_2l,jsta_2l,1),lm)
-
- VarName='pm25co'
- call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
- spval,VarName,pm25co(ista_2l,jsta_2l,1),lm)
-
-!=========================
-! PM2.5 SPECIES
-!=========================
-
- ! do l=1,lm
- ! do j=jsta,jend
- ! do i=ista,iend
- ! pm25hp(i,j,l) = ( ah3opi(i,j,l)*pm25at(i,j,l) &
- ! + ah3opj(i,j,l)*pm25ac(i,j,l) &
- ! + ah3opk(i,j,l)*pm25co(i,j,l) ) / 19.0
-
- ! pm25cl(i,j,l) = acli(i,j,l)*pm25at(i,j,l) &
- ! + aclj(i,j,l)*pm25ac(i,j,l) &
- ! + aclk(i,j,l)*pm25co(i,j,l)
-
- ! pm25ec(i,j,l) = aeci(i,j,l)*pm25at(i,j,l) &
- ! + aecj(i,j,l)*pm25ac(i,j,l)
- ! enddo
- ! enddo
- ! enddo
-
-
- ! do l=1,lm
- ! do j=jsta,jend
- ! do i=ista,iend
-
- ! anak(i,j,l) = 0.8373 * aseacat(i,j,l) &
- ! + 0.0626 * asoil(i,j,l) &
- ! + 0.0023 * acors(i,j,l)
-
- ! pm25na(i,j,l) = anai(i,j,l)*pm25at(i,j,l) &
- ! + anaj(i,j,l)*pm25ac(i,j,l) &
- ! + anak(i,j,l)*pm25co(i,j,l)
- ! enddo
- ! enddo
- ! enddo
-
- do l=1,lm
- do j=jsta,jend
- do i=ista,iend
-
- apomi(i,j,l) = alvpo1i(i,j,l) &
- +asvpo1i(i,j,l) + asvpo2i(i,j,l)
-
- apomj(i,j,l) = alvpo1j(i,j,l) &
- +asvpo1j(i,j,l) + asvpo2j(i,j,l) + asvpo3j(i,j,l) &
- +aivpo1j(i,j,l)
-
- asomi(i,j,l) = alvoo1i(i,j,l) + alvoo2i(i,j,l) &
- +asvoo1i(i,j,l) + asvoo2i(i,j,l)
-
- asomj(i,j,l) = axyl1j(i,j,l) + axyl2j(i,j,l) + axyl3j(i,j,l) &
- +atol1j(i,j,l) + atol2j(i,j,l) + atol3j(i,j,l) &
- +abnz1j(i,j,l) + abnz2j(i,j,l) + abnz3j(i,j,l) &
- +aiso1j(i,j,l) + aiso2j(i,j,l) + aiso3j(i,j,l) &
- +atrp1j(i,j,l) + atrp2j(i,j,l) + asqtj(i,j,l) &
- +aalk1j(i,j,l) + aalk2j(i,j,l) &
- +apah1j(i,j,l) + apah2j(i,j,l) + apah3j(i,j,l) &
- +aorgcj(i,j,l) + aolgbj(i,j,l) + aolgaj(i,j,l) &
- +alvoo1j(i,j,l) + alvoo2j(i,j,l) &
- +asvoo1j(i,j,l) + asvoo2j(i,j,l) + asvoo3j(i,j,l) &
- +apcsoj(i,j,l)
-
- aomi(i,j,l) = apomi(i,j,l) + asomi(i,j,l)
- aomj(i,j,l) = apomj(i,j,l) + asomj(i,j,l)
-
- atoti(i,j,l) = aso4i(i,j,l) + ano3i(i,j,l) + anh4i(i,j,l) &
- + anai(i,j,l) + acli(i,j,l) + aeci(i,j,l) &
- + aomi(i,j,l) +aothri(i,j,l)
-
- atotj(i,j,l) = aso4j(i,j,l) + ano3j(i,j,l) + anh4j(i,j,l) &
- + anaj(i,j,l) + aclj(i,j,l) + aecj(i,j,l) &
- + aomj(i,j,l) +aothrj(i,j,l) &
- + afej(i,j,l) + asij(i,j,l) + atij(i,j,l) &
- + acaj(i,j,l) + amgj(i,j,l) + amnj(i,j,l) &
- + aalj(i,j,l) + akj(i,j,l)
-
- atotk(i,j,l) = asoil(i,j,l) + acors(i,j,l) + aseacat(i,j,l)&
- + aclk(i,j,l) &
- +aso4k(i,j,l) + ano3k(i,j,l) + anh4k(i,j,l)
-
- pmtf(i,j,l) = atoti(i,j,l)*pm25at(i,j,l) &
- + atotj(i,j,l)*pm25ac(i,j,l) &
- + atotk(i,j,l)*pm25co(i,j,l)
- enddo
- enddo
- enddo
-
- deallocate (aacd, aalj, aalk1j, aalk2j, abnz1j, abnz2j, abnz3j)
- deallocate (acaj, acet, acli, aclj, aclk)
- deallocate (acors, acro_primary, acrolein)
-
- deallocate (aeci, aecj, afej, aglyj, ah2oi, ah2oj, ah2ok)
- deallocate (ah3opi, ah3opj, ah3opk, aiso1j, aiso2j, aiso3j)
-
- deallocate (aivpo1j, akj, ald2, ald2_primary, aldx)
- deallocate (alvoo1i, alvoo1j, alvoo2i, alvoo2j, alvpo1i, alvpo1j)
-
- deallocate (amgj, amnj, anai, anaj, anak)
- deallocate (anh4i, anh4j, anh4k, ano3i, ano3j, ano3k)
-
- deallocate (aolgaj, aolgbj, aomi, aomj)
- deallocate (aorgcj, aothri, aothrj, apah1j, apah2j, apah3j)
-
- deallocate (apcsoj, apomi, apomj, aseacat, asij)
- deallocate (aso4i, aso4j, aso4k, asoil, asomi, asomj, asqtj)
-
- deallocate (asvoo1i, asvoo1j, asvoo2i, asvoo2j, asvoo3j)
- deallocate (asvpo1i, asvpo1j, asvpo2i, asvpo2j, asvpo3j)
-
- deallocate (atij, atol1j, atol2j, atol3j, atrp1j, atrp2j)
- deallocate (atoti, atotj, atotk, axyl1j, axyl2j, axyl3j)
-
- deallocate (pm25ac, pm25at, pm25co)
+ VarName='aod'
+ call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
+ spval,VarName,aqm_aod550(ista_2l,jsta_2l))
- endif ! -- aqfcmaq_on
+ endif ! -- aqf_on
!============================
! read for regional FV3
diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f
index 5cca14b8f..262085bd9 100644
--- a/sorc/ncep_post.fd/MDLFLD.f
+++ b/sorc/ncep_post.fd/MDLFLD.f
@@ -46,6 +46,7 @@
!! 21-07-07 J MENG - 2D DECOMPOSITION
!! 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)
!! 22-11-16 E James - Adding dust from RRFS
!!
!! USAGE: CALL MDLFLD
@@ -89,7 +90,7 @@ SUBROUTINE MDLFLD
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, &
rlwtt, train, tcucn, o3, rhomid, dpres, el_pbl, pint, icing_gfip, icing_gfis, &
- catedr,mwt,gtg, REF_10CM, pmtf, ozcon
+ catedr,mwt,gtg, REF_10CM, avgpmtf, avgozcon
use vrbls2d, only: slp, hbot, htop, cnvcfr, cprate, cnvcfr, sfcshx,sfclhx,ustar,z0,&
sr, prec, vis, czen, pblh, pblhgust, u10, v10, avgprec, avgcprate, &
@@ -102,7 +103,7 @@ SUBROUTINE MDLFLD
use ctlblk_mod, only: jsta_2l, jend_2u, lm, jsta, jend, grib, cfld, datapd,&
fld_info, modelname, imp_physics, dtq2, spval, icount_calmict,&
me, dt, avrain, theat, ifhr, ifmin, avcnvc, lp1, im, jm, &
- ista, iend, ista_2l, iend_2u, aqfcmaq_on, gocart_on, nasa_on
+ ista, iend, ista_2l, iend_2u, aqf_on, gocart_on, nasa_on
use rqstfld_mod, only: iget, id, lvls, iavblfld, lvlsxml
use gridspec_mod, only: gridtype,maptype,dxval
use upp_physics, only: CALRH, CALCAPE, CALVOR
@@ -2237,7 +2238,7 @@ SUBROUTINE MDLFLD
! AQF
!===============
- if (aqfcmaq_on) then
+ if (aqf_on) then
IF (IGET(994)>0) THEN
IF (LVLS(L,IGET(994))>0) THEN
@@ -2245,14 +2246,32 @@ SUBROUTINE MDLFLD
!$omp parallel do private(i,j)
DO J=JSTA,JEND
DO I=ISTA,IEND
- GRID1(I,J) = OZCON(I,J,LL)*1000. ! convert ppm to ppb
+ IF(AVGOZCON(I,J,LL)ug/m3
+ GRID1(I,J) = AVGPMTF(I,J,LL) !ug/m3
ENDDO
ENDDO
-
+ ID(1:25) = 0
+ ITHEAT = INT(THEAT)
+ ID(19) = IFHR
+ ID(20) = 3
+ IF (IFHR==0) THEN
+ ID(18) = 0
+ ELSE
+ ID(18) = IFHR-1
+ ENDIF
if(grib=="grib2") then
cfld=cfld+1
fld_info(cfld)%ifld=IAVBLFLD(IGET(995))
fld_info(cfld)%lvl=LVLSXML(L,IGET(995))
+ if(IFHR==0) then
+ fld_info(cfld)%ntrange=0
+ else
+ fld_info(cfld)%ntrange=1
+ endif
+ fld_info(cfld)%tinvstat=IFHR-ID(18)
!$omp parallel do private(i,j,ii,jj)
do j=1,jend-jsta+1
jj = jsta+j-1
diff --git a/sorc/ncep_post.fd/VRBLS2D_mod.f b/sorc/ncep_post.fd/VRBLS2D_mod.f
index c05aa0420..1f008f6cb 100644
--- a/sorc/ncep_post.fd/VRBLS2D_mod.f
+++ b/sorc/ncep_post.fd/VRBLS2D_mod.f
@@ -95,6 +95,9 @@ module vrbls2d
,DUSTCB(:,:),SSCB(:,:),OCCB(:,:),BCCB(:,:),SULFCB(:,:) &
,DUSTALLCB(:,:),SSALLCB(:,:),DUSTPM(:,:),SSPM(:,:),PP25CB(:,:) &
,DUSTPM10(:,:),PP10CB(:,:),NO3CB(:,:),NH4CB(:,:),maod(:,:)!lzhang, add for FV3-Chem
+
+! Add new field for AQM
+ real, allocatable :: aqm_aod550(:,:)
!
end module vrbls2d
diff --git a/sorc/ncep_post.fd/VRBLS3D_mod.f b/sorc/ncep_post.fd/VRBLS3D_mod.f
index f27428f3a..cfa22592e 100644
--- a/sorc/ncep_post.fd/VRBLS3D_mod.f
+++ b/sorc/ncep_post.fd/VRBLS3D_mod.f
@@ -82,6 +82,6 @@ module vrbls3d
,catedr(:,:,:),mwt(:,:,:),gtg(:,:,:) &
! AQF
- ,ozcon(:,:,:),pmtf(:,:,:)
+ ,avgozcon(:,:,:),avgpmtf(:,:,:)
end module vrbls3d
diff --git a/sorc/ncep_post.fd/WRFPOST.f b/sorc/ncep_post.fd/WRFPOST.f
index c06be8647..37e8d42f6 100644
--- a/sorc/ncep_post.fd/WRFPOST.f
+++ b/sorc/ncep_post.fd/WRFPOST.f
@@ -29,6 +29,7 @@
!> 2022-01-14 | W Meng | Remove interfaces INITPOST_GS_NEMS, INITPOST_NEMS_MPIIO, INITPOST_NMM and INITPOST_GFS_NETCDF
!> 2022-03-15 | W Meng | Unify FV3 based interfaces
!> 2022-09-22 | L Zhang | Add option of nasa_on to process ufs-aerosols
+!> 2022-11-08 | K Wang | Replace aqfamaq_on with aqf_on
!>
!> @author Mike Bladwin NSSL/SPC @date 2002-06-18
PROGRAM WRFPOST
@@ -116,7 +117,7 @@ PROGRAM WRFPOST
lsm, fld_info, etafld2_tim, eta2p_tim, mdl2sigma_tim, cldrad_tim, miscln_tim, &
mdl2agl_tim, mdl2std_tim, mdl2thandpv_tim, calrad_wcloud_tim,nasa_on, &
fixed_tim, time_output, imin, surfce2_tim, komax, ivegsrc, d3d_on, gocart_on,rdaod, &
- readxml_tim, spval, fullmodelname, submodelname, hyb_sigp, filenameflat, aqfcmaq_on,numx
+ readxml_tim, spval, fullmodelname, submodelname, hyb_sigp, filenameflat, aqf_on,numx
use grib2_module, only: gribit2,num_pset,nrecout,first_grbtbl,grib_info_finalize
!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
implicit none
@@ -142,7 +143,7 @@ PROGRAM WRFPOST
integer :: kpo,kth,kpv
real,dimension(komax) :: po,th,pv
namelist/nampgb/kpo,po,kth,th,kpv,pv,fileNameAER,d3d_on,gocart_on,nasa_on,popascal &
- ,hyb_sigp,rdaod,aqfcmaq_on,vtimeunits,numx
+ ,hyb_sigp,rdaod,aqf_on,vtimeunits,numx
integer :: itag_ierr
namelist/model_inputs/fileName,IOFORM,grib,DateStr,MODELNAME,SUBMODELNAME &
,fileNameFlux,fileNameFlat
@@ -261,7 +262,7 @@ PROGRAM WRFPOST
d3d_on = .false.
gocart_on = .false.
nasa_on = .false.
- aqfcmaq_on = .false.
+ aqf_on = .false.
popascal = .false.
fileNameAER = ''
rdaod = .false.