From be78562b67ca49cb861e2938793a8f4ce27156ce Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Sun, 13 Nov 2022 00:05:11 +0000 Subject: [PATCH 01/16] 1)Add new control file for AQM; 2)Output hourly averaged PM2.5 and O3 concentration; 3)Remove instant PM2.5 and O3 concentraction. --- parm/aqm.xml | 200 ++++++++ parm/postxconfig-NT-AQM.txt | 906 ++++++++++++++++++++++++++++++++++++ 2 files changed, 1106 insertions(+) create mode 100644 parm/aqm.xml create mode 100644 parm/postxconfig-NT-AQM.txt diff --git a/parm/aqm.xml b/parm/aqm.xml new file mode 100644 index 000000000..ceb2e4ec5 --- /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 + + + + 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 + + + + 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 + + + + diff --git a/parm/postxconfig-NT-AQM.txt b/parm/postxconfig-NT-AQM.txt new file mode 100644 index 000000000..018717c44 --- /dev/null +++ b/parm/postxconfig-NT-AQM.txt @@ -0,0 +1,906 @@ +1 +24 +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 +? +? +? +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 +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 +? +? +? From a382e3ba085f1dca602b853f161cbaf96932f2ec Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Mon, 14 Nov 2022 18:52:24 +0000 Subject: [PATCH 02/16] 1)output hourly averaged PM2.5 and O3; 2)Remove instant PM2.5 calculation. --- parm/fv3lam_cmaq.xml | 4 +- parm/makefile | 11 +- parm/post_avblflds.xml | 8 +- parm/postxconfig-NT-fv3lam_cmaq.txt | 12 +- sorc/ncep_post.fd/ALLOCATE_ALL.f | 13 +- sorc/ncep_post.fd/CTLBLK.f | 3 +- sorc/ncep_post.fd/DEALLOCATE.f | 7 +- sorc/ncep_post.fd/INITPOST_NETCDF.f | 673 +--------------------------- sorc/ncep_post.fd/MDLFLD.f | 51 ++- sorc/ncep_post.fd/VRBLS3D_mod.f | 2 +- sorc/ncep_post.fd/WRFPOST.f | 7 +- 11 files changed, 99 insertions(+), 692 deletions(-) diff --git a/parm/fv3lam_cmaq.xml b/parm/fv3lam_cmaq.xml index 4ef8bd0e9..d53d18931 100644 --- a/parm/fv3lam_cmaq.xml +++ b/parm/fv3lam_cmaq.xml @@ -20,7 +20,7 @@ lossless - PM25TOT_ON_HYBRID_LVL + 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. @@ -40,7 +40,7 @@ - OZCON_ON_HYBRID_LVL + 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. 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 9b151064e..588752ad7 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -7978,16 +7978,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-fv3lam_cmaq.txt b/parm/postxconfig-NT-fv3lam_cmaq.txt index 1eec84111..d71cdb699 100644 --- a/parm/postxconfig-NT-fv3lam_cmaq.txt +++ b/parm/postxconfig-NT-fv3lam_cmaq.txt @@ -17,13 +17,13 @@ complex_packing_spatial_diff fltng_pnt lossless 995 -PM25TOT_ON_HYBRID_LVL +AVE_PM25TOT_ON_HYBRID_LVL ? 1 -tmpl4_0 +tmpl4_8 PMTF NCEP -? +AVE hybrid_lvl 0 ? @@ -91,13 +91,13 @@ hybrid_lvl ? ? 994 -OZCON_ON_HYBRID_LVL +AVE_OZCON_ON_HYBRID_LVL ? 1 -tmpl4_0 +tmpl4_8 OZCON NCEP -? +AVE hybrid_lvl 0 ? diff --git a/sorc/ncep_post.fd/ALLOCATE_ALL.f b/sorc/ncep_post.fd/ALLOCATE_ALL.f index 9d7a4596c..979690df1 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. @@ -1369,19 +1370,19 @@ 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)) !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 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 4e6ba6ce3..0d3bfef72 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 @@ -557,9 +558,9 @@ SUBROUTINE DE_ALLOCATE deallocate(uuavg) ! AQF - if (aqfcmaq_on) then - deallocate(ozcon) - deallocate(pmtf) + if (aqf_on) then + deallocate(avgozcon) + deallocate(avgpmtf) endif end diff --git a/sorc/ncep_post.fd/INITPOST_NETCDF.f b/sorc/ncep_post.fd/INITPOST_NETCDF.f index 3115b57cc..d4b7b0f9e 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -22,6 +22,8 @@ !> 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 !> !> @author Hui-Ya Chuang @date 2016-03-04 SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) @@ -36,7 +38,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 + wh, qqg, ref_10cm, qqnifa, qqnwfa, avgpmtf, avgozcon 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, & @@ -74,7 +76,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, & @@ -185,191 +187,6 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) real(kind=4),allocatable :: vcrd(:,:) real :: dum_const -! 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 (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. @@ -1058,489 +875,27 @@ 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) - - VarName='alvpo1j' - 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) - - VarName='amgj' - 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) - - 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) + !-- rename input o3_ave and pm25_ave to NCO grib2 name OZCON and PMTF - VarName='pm25ac' + 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,pm25ac(ista_2l,jsta_2l,1),lm) + spval,VarName,avgozcon(ista_2l,jsta_2l,1),lm) - VarName='pm25at' + 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,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) + spval,VarName,avgpmtf(ista_2l,jsta_2l,1),lm) - 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 105658836..e9845c475 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 time averaged PM2.5 and O3 !! !! USAGE: CALL MDLFLD !! INPUT ARGUMENT LIST: @@ -88,7 +89,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, & @@ -101,7 +102,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 @@ -2235,7 +2236,7 @@ SUBROUTINE MDLFLD ! AQF !=============== - if (aqfcmaq_on) then + if (aqf_on) then IF (IGET(994)>0) THEN IF (LVLS(L,IGET(994))>0) THEN @@ -2243,14 +2244,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)*DENS ! ug/kg-->ug/m3 + ELSE + GRID1(I,J) = SPVAL + ENDIF 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/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. From e6997da0e92eaa33ae737e1e8947106812fcf8e6 Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Tue, 22 Nov 2022 14:22:16 +0000 Subject: [PATCH 03/16] Remove unit conversion for hourly pm2.5 --- sorc/ncep_post.fd/MDLFLD.f | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f index e9845c475..6341e521e 100644 --- a/sorc/ncep_post.fd/MDLFLD.f +++ b/sorc/ncep_post.fd/MDLFLD.f @@ -2291,12 +2291,7 @@ SUBROUTINE MDLFLD !$omp parallel do private(i,j) DO J=JSTA,JEND DO I=ISTA,IEND - IF(AVGPMTF(I,J,LL)ug/m3 - ELSE - GRID1(I,J) = SPVAL - ENDIF + GRID1(I,J) = AVGPMTF(I,J,LL) !ug/m3 ENDDO ENDDO ID(1:25) = 0 From 0293cde24fa796452ffbc79acec8dba2d3b6508d Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Fri, 2 Dec 2022 20:42:28 +0000 Subject: [PATCH 04/16] Remove O3MR from AQM control files --- parm/aqm.xml | 10 ---------- parm/postxconfig-NT-AQM.txt | 39 +------------------------------------ 2 files changed, 1 insertion(+), 48 deletions(-) diff --git a/parm/aqm.xml b/parm/aqm.xml index ceb2e4ec5..224e85e2b 100644 --- a/parm/aqm.xml +++ b/parm/aqm.xml @@ -29,16 +29,6 @@ 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 - - AVE_OZCON_ON_HYBRID_LVL OZCON diff --git a/parm/postxconfig-NT-AQM.txt b/parm/postxconfig-NT-AQM.txt index 018717c44..f2e20d25a 100644 --- a/parm/postxconfig-NT-AQM.txt +++ b/parm/postxconfig-NT-AQM.txt @@ -1,5 +1,5 @@ 1 -24 +23 CMAQ 32769 ncep_nco @@ -53,43 +53,6 @@ hybrid_lvl ? ? ? -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 AVE_OZCON_ON_HYBRID_LVL ? From 0da64862e516fd17f01ba759818e7c65be66564d Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Mon, 12 Dec 2022 13:53:20 +0000 Subject: [PATCH 05/16] 1)Add new variable entire atmosphere aod; 2)add entire atmosphere aod and HPBL in aqm control files; 3)remove fv3lam_cmaq control files. --- parm/aqm.xml | 9 ++ parm/fv3lam_cmaq.xml | 53 ------------ parm/post_avblflds.xml | 14 +++ parm/postxconfig-NT-AQM.txt | 76 +++++++++++++++- parm/postxconfig-NT-fv3lam_cmaq.txt | 129 ---------------------------- sorc/ncep_post.fd/ALLOCATE_ALL.f | 9 ++ sorc/ncep_post.fd/CLDRAD.f | 31 ++++++- sorc/ncep_post.fd/DEALLOCATE.f | 1 + sorc/ncep_post.fd/INITPOST_NETCDF.f | 7 +- sorc/ncep_post.fd/VRBLS2D_mod.f | 3 + 10 files changed, 146 insertions(+), 186 deletions(-) delete mode 100644 parm/fv3lam_cmaq.xml delete mode 100644 parm/postxconfig-NT-fv3lam_cmaq.txt diff --git a/parm/aqm.xml b/parm/aqm.xml index 224e85e2b..c7fa1f1b7 100644 --- a/parm/aqm.xml +++ b/parm/aqm.xml @@ -186,5 +186,14 @@ 3.0 + + AER_OPT_AQM_at550 + + + + HPBL_ON_SURFACE + 6.0 + + diff --git a/parm/fv3lam_cmaq.xml b/parm/fv3lam_cmaq.xml deleted file mode 100644 index d53d18931..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 - - - 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 - - - - 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 - - - - 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 - - - - diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 4cbb8cfe0..7b994b75a 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -6635,6 +6635,20 @@ 3.0 + + 712 + AER_OPT_AQM_at550 + tmpl4_48 + AOTK + AVE + entire_atmos_single_lyr + ozone + smaller_than_first_limit + 0 + 0 + 9.0 + + 719 INST_USWRF_ON_TOP_OF_ATMOS diff --git a/parm/postxconfig-NT-AQM.txt b/parm/postxconfig-NT-AQM.txt index f2e20d25a..ea740502a 100644 --- a/parm/postxconfig-NT-AQM.txt +++ b/parm/postxconfig-NT-AQM.txt @@ -1,5 +1,5 @@ 1 -23 +25 CMAQ 32769 ncep_nco @@ -867,3 +867,77 @@ spec_pres_above_grnd ? ? ? +712 +AER_OPT_AQM_at550 +? +1 +tmpl4_48 +AOTK +? +AVE +entire_atmos_single_lyr +0 +? +0 +? +? +0 +? +0 +? +ozone +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 +? +? +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 d71cdb699..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 -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 -? -? -? -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 -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 -? -? -? diff --git a/sorc/ncep_post.fd/ALLOCATE_ALL.f b/sorc/ncep_post.fd/ALLOCATE_ALL.f index b58af6249..429ccb21d 100644 --- a/sorc/ncep_post.fd/ALLOCATE_ALL.f +++ b/sorc/ncep_post.fd/ALLOCATE_ALL.f @@ -1377,6 +1377,7 @@ SUBROUTINE ALLOCATE_ALL() 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) @@ -1389,6 +1390,14 @@ SUBROUTINE ALLOCATE_ALL() 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..9118d011f 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 hourly 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,31 @@ 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 + 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(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/DEALLOCATE.f b/sorc/ncep_post.fd/DEALLOCATE.f index b7a4b5aed..658febca4 100644 --- a/sorc/ncep_post.fd/DEALLOCATE.f +++ b/sorc/ncep_post.fd/DEALLOCATE.f @@ -562,6 +562,7 @@ SUBROUTINE DE_ALLOCATE 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 4ad96b00f..d44957fd4 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -25,6 +25,7 @@ !> 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 hourly AOD for AQM !> !> @author Hui-Ya Chuang @date 2016-03-04 SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) @@ -62,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, & @@ -914,6 +915,10 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & spval,VarName,avgpmtf(ista_2l,jsta_2l,1),lm) + 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 ! -- aqf_on !============================ 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 From c680dd6e5a436a40c4dd424b490dbbd962d5798d Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Mon, 12 Dec 2022 18:38:21 +0000 Subject: [PATCH 06/16] Add some fixes for CI failture per Alex's suggestions. --- .github/workflows/gcc.yml | 2 +- .github/workflows/intel.yml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index da033fa71..442d61bc9 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -62,7 +62,7 @@ jobs: spack external find spack add mpich@3.4.2 spack concretize - spack install --dirty -v + spack install --fail-fast --dirty -v build: needs: setup diff --git a/.github/workflows/intel.yml b/.github/workflows/intel.yml index 97ab17caa..c02b6a404 100644 --- a/.github/workflows/intel.yml +++ b/.github/workflows/intel.yml @@ -67,6 +67,7 @@ jobs: - 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 @@ -75,7 +76,7 @@ jobs: spack external find spack add intel-oneapi-mpi spack concretize - spack install --dirty -v + spack install --dirty -v --fail-fast build: needs: setup From 8eb22f69752fd2b48db84a7d0e3d0b8a26b55baa Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Mon, 12 Dec 2022 19:26:45 +0000 Subject: [PATCH 07/16] Add gfortan 12 installed in ubuntu-latest --- .github/workflows/gcc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index 442d61bc9..d96bd33d8 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -58,6 +58,7 @@ jobs: source spack/share/spack/setup-env.sh spack env create upp-env UPP/ci/spack.yaml spack env activate upp-env + sudo apt install gfortran-12 spack compiler find spack external find spack add mpich@3.4.2 From aa3bd3bf304292266946a098f7300e4d818eb28e Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Mon, 12 Dec 2022 20:21:38 +0000 Subject: [PATCH 08/16] Add "sudo apt install cmake" --- .github/workflows/intel.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/intel.yml b/.github/workflows/intel.yml index c02b6a404..2838a6563 100644 --- a/.github/workflows/intel.yml +++ b/.github/workflows/intel.yml @@ -73,6 +73,7 @@ jobs: 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 From c44027dc0a664995990b377b279db3e425d73dd3 Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Mon, 12 Dec 2022 20:37:52 +0000 Subject: [PATCH 09/16] Add "sudo apt install cmake" in gcc.yml --- .github/workflows/gcc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index d96bd33d8..192c86e76 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -60,6 +60,7 @@ jobs: spack env activate upp-env sudo apt install gfortran-12 spack compiler find + sudo apt install cmake spack external find spack add mpich@3.4.2 spack concretize From 1887e70dd960cdf88cef4b17809484aad97185d8 Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Mon, 12 Dec 2022 22:34:24 +0000 Subject: [PATCH 10/16] Pick up the changes from Alex. --- .github/workflows/gcc.yml | 4 +--- ci/spack.yaml | 4 +++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index 192c86e76..b01eed37d 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -58,13 +58,11 @@ jobs: source spack/share/spack/setup-env.sh spack env create upp-env UPP/ci/spack.yaml spack env activate upp-env - sudo apt install gfortran-12 - spack compiler find sudo apt install cmake spack external find spack add mpich@3.4.2 spack concretize - spack install --fail-fast --dirty -v + spack install -v --fail-fast --dirty build: needs: setup 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 From 8c63c61d3e6efbe33e150fa126aa35ed80ed890e Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Mon, 12 Dec 2022 22:56:17 +0000 Subject: [PATCH 11/16] Add back "spack compiler find" --- .github/workflows/gcc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index b01eed37d..6543fd17a 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -58,6 +58,7 @@ 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 From 0f5b26642fd189e4e30dcccd40a62ebbfaa96fb2 Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Tue, 13 Dec 2022 02:31:06 +0000 Subject: [PATCH 12/16] tweaking gcc.yml --- .github/workflows/gcc.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index 6543fd17a..b01eed37d 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -58,7 +58,6 @@ 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 From f14475b98578ea74e79bb5ce154332b6cb881a46 Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Tue, 13 Dec 2022 17:20:43 +0000 Subject: [PATCH 13/16] 1) Add changes based on Kai's comments; 2) Pick up changes of CI from Alex. --- .github/workflows/gcc.yml | 4 ++-- .github/workflows/intel.yml | 4 ++-- parm/aqm.xml | 1 + parm/postxconfig-NT-AQM.txt | 2 +- sorc/ncep_post.fd/MDLFLD.f | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index b01eed37d..c07f58c59 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -42,7 +42,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: checkout-upp # This is for getting spack.yaml if: steps.cache-env.outputs.cache-hit != 'true' @@ -81,7 +81,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 2838a6563..60b30538e 100644 --- a/.github/workflows/intel.yml +++ b/.github/workflows/intel.yml @@ -45,7 +45,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: install-intel-compilers if: steps.cache-env.outputs.cache-hit != 'true' @@ -101,7 +101,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/parm/aqm.xml b/parm/aqm.xml index c7fa1f1b7..63f5e7513 100644 --- a/parm/aqm.xml +++ b/parm/aqm.xml @@ -192,6 +192,7 @@ HPBL_ON_SURFACE + NCEP 6.0 diff --git a/parm/postxconfig-NT-AQM.txt b/parm/postxconfig-NT-AQM.txt index ea740502a..8b9f459d7 100644 --- a/parm/postxconfig-NT-AQM.txt +++ b/parm/postxconfig-NT-AQM.txt @@ -910,7 +910,7 @@ HPBL_ON_SURFACE 1 tmpl4_0 HPBL -? +NCEP ? surface 0 diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f index 223cfc3ac..6b701ecfe 100644 --- a/sorc/ncep_post.fd/MDLFLD.f +++ b/sorc/ncep_post.fd/MDLFLD.f @@ -2247,7 +2247,7 @@ SUBROUTINE MDLFLD DO J=JSTA,JEND DO I=ISTA,IEND IF(AVGOZCON(I,J,LL) Date: Tue, 13 Dec 2022 19:05:36 +0000 Subject: [PATCH 14/16] 1)tweak aod ouput; 2)add latest changes of CI from Alex. --- .github/workflows/gcc.yml | 11 +++++------ .github/workflows/intel.yml | 13 ++++++------- parm/post_avblflds.xml | 3 +-- parm/postxconfig-NT-AQM.txt | 4 ++-- sorc/ncep_post.fd/CLDRAD.f | 9 --------- 5 files changed, 14 insertions(+), 26 deletions(-) diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index c07f58c59..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 @@ -44,12 +49,6 @@ jobs: ~/.spack key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('UPP/ci/spack.yaml') }} - - 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' diff --git a/.github/workflows/intel.yml b/.github/workflows/intel.yml index 60b30538e..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 @@ -48,7 +54,6 @@ jobs: 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,12 +62,6 @@ 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' diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 7b994b75a..42f61113d 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -6640,9 +6640,8 @@ AER_OPT_AQM_at550 tmpl4_48 AOTK - AVE entire_atmos_single_lyr - ozone + total_aerosol smaller_than_first_limit 0 0 diff --git a/parm/postxconfig-NT-AQM.txt b/parm/postxconfig-NT-AQM.txt index 8b9f459d7..54f199471 100644 --- a/parm/postxconfig-NT-AQM.txt +++ b/parm/postxconfig-NT-AQM.txt @@ -874,7 +874,7 @@ AER_OPT_AQM_at550 tmpl4_48 AOTK ? -AVE +? entire_atmos_single_lyr 0 ? @@ -885,7 +885,7 @@ entire_atmos_single_lyr ? 0 ? -ozone +total_aerosol smaller_than_first_limit 0 0 diff --git a/sorc/ncep_post.fd/CLDRAD.f b/sorc/ncep_post.fd/CLDRAD.f index 9118d011f..6c06e1574 100644 --- a/sorc/ncep_post.fd/CLDRAD.f +++ b/sorc/ncep_post.fd/CLDRAD.f @@ -4552,15 +4552,6 @@ SUBROUTINE CLDRAD grid1(i,j)=aqm_aod550(i,j) 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(712)) From f6b1d148fff936175f2205b62d09e200da3d7ba6 Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Wed, 14 Dec 2022 13:21:31 +0000 Subject: [PATCH 15/16] update change logs --- sorc/ncep_post.fd/CLDRAD.f | 2 +- sorc/ncep_post.fd/INITPOST_NETCDF.f | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sorc/ncep_post.fd/CLDRAD.f b/sorc/ncep_post.fd/CLDRAD.f index 6c06e1574..58bf95eb6 100644 --- a/sorc/ncep_post.fd/CLDRAD.f +++ b/sorc/ncep_post.fd/CLDRAD.f @@ -67,7 +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 hourly AOD for AQM +!> 2022-1207 | Wen Meng | Add AOD for AQM !> !> @author Russ Treadon W/NP2 @date 1993-08-30 SUBROUTINE CLDRAD diff --git a/sorc/ncep_post.fd/INITPOST_NETCDF.f b/sorc/ncep_post.fd/INITPOST_NETCDF.f index d44957fd4..a803ef6f9 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -25,7 +25,7 @@ !> 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 hourly AOD for AQM +!> 2022-12-07 | Wen Meng | Read AOD from AQM model !> !> @author Hui-Ya Chuang @date 2016-03-04 SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) From 34f82e09db083ab93b502c449a01109e261598cc Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Wed, 14 Dec 2022 16:36:56 +0000 Subject: [PATCH 16/16] update change log based on Huiya's comments --- sorc/ncep_post.fd/MDLFLD.f | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f index 6b701ecfe..262085bd9 100644 --- a/sorc/ncep_post.fd/MDLFLD.f +++ b/sorc/ncep_post.fd/MDLFLD.f @@ -46,7 +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 time averaged PM2.5 and O3 +!! 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