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.