From 86bab7816eb8d4e313284a838657e43c18c96496 Mon Sep 17 00:00:00 2001 From: "Jaymes.Kenyon" Date: Mon, 13 Jan 2025 20:49:14 +0000 Subject: [PATCH] Updates to read-in and output graupel number concentration on native levels --- parm/post_avblflds.xml | 8 ++++++ parm/postxconfig-NT-rrfs_mpas.txt | 44 ++++++++++++++++++++++++++++++- parm/rrfs_mpas_postcntrl.xml | 8 ++++++ sorc/ncep_post.fd/ALLOCATE_ALL.f | 3 +++ sorc/ncep_post.fd/DEALLOCATE.f | 2 ++ sorc/ncep_post.fd/INITPOST_MPAS.F | 16 ++++++++++- sorc/ncep_post.fd/MDLFLD.f | 32 +++++++++++++++++++++- sorc/ncep_post.fd/VRBLS3D_mod.f | 2 ++ 8 files changed, 112 insertions(+), 3 deletions(-) diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 7ba836815..7267ea5f8 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -8495,5 +8495,13 @@ 3.0 + + 1023 + NCGRAUP_ON_HYBRID_LVL + SPNCG + hybrid_lvl + 3.0 + + diff --git a/parm/postxconfig-NT-rrfs_mpas.txt b/parm/postxconfig-NT-rrfs_mpas.txt index 490af5258..d949e7756 100644 --- a/parm/postxconfig-NT-rrfs_mpas.txt +++ b/parm/postxconfig-NT-rrfs_mpas.txt @@ -1,5 +1,5 @@ 3 -22 +23 16 146 WRFTWO @@ -7484,6 +7484,48 @@ hybrid_lvl ? ? ? +1023 +NCGRAUP_ON_HYBRID_LVL +? +1 +tmpl4_0 +SPNCG +? +? +hybrid_lvl +0 +? +59 +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. +? +0 +? +0 +? +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? 766 NCWFA_ON_HYBRID_LVL ? diff --git a/parm/rrfs_mpas_postcntrl.xml b/parm/rrfs_mpas_postcntrl.xml index 3323aff6d..847f2b140 100644 --- a/parm/rrfs_mpas_postcntrl.xml +++ b/parm/rrfs_mpas_postcntrl.xml @@ -1136,6 +1136,14 @@ 5.0 + + NCGRAUP_ON_HYBRID_LVL + 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. + 3.0 + + NCWFA_ON_HYBRID_LVL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. diff --git a/sorc/ncep_post.fd/ALLOCATE_ALL.f b/sorc/ncep_post.fd/ALLOCATE_ALL.f index dc19d6de3..6ebafa2af 100644 --- a/sorc/ncep_post.fd/ALLOCATE_ALL.f +++ b/sorc/ncep_post.fd/ALLOCATE_ALL.f @@ -27,6 +27,8 @@ ! and 2D diag. output (d2d_chem) for GEFS-Aerosols and CCPP-Chem model. !! - 23-08-16 Yali Mao - Add CIT (Convectively-Induced Turbulence) for GTG4 !! - 23-08-16 Yali Mao - Make it optional to allocate GTG related fields only when gtg_on +!! - 25-01-13 Jaymes Kenyon - Add graupel number concentration (QQNG) + !! OUTPUT FILES: !! - STDOUT - RUN TIME STANDARD OUT. !! @@ -155,6 +157,7 @@ SUBROUTINE ALLOCATE_ALL() allocate(QQNW(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) allocate(QQNI(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) allocate(QQNR(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) + allocate(QQNG(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) allocate(QQNWFA(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) allocate(QQNIFA(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) allocate(TAOD5503D(ista_2l:iend_2u,jsta_2l:jend_2u,lm)) diff --git a/sorc/ncep_post.fd/DEALLOCATE.f b/sorc/ncep_post.fd/DEALLOCATE.f index f63fa9fe1..efa00567b 100644 --- a/sorc/ncep_post.fd/DEALLOCATE.f +++ b/sorc/ncep_post.fd/DEALLOCATE.f @@ -14,6 +14,7 @@ !> 2023-04-04 |Li(Kate Zhang)| Add namelist optoin for CCPP-Chem !(UFS-Chem) and 2D diag. output (d2d_chem) for GEFS-Aerosols and CCPP-Chem model. !> 2023-08-16 | Yali Mao | Add CIT to GTG fields. Add namelist optoin of gtg_on +!> 2025-01-13 | Jaymes Kenyon| Add graupel number conentration (QQNG) !> @author Jim Tuccillo IBM @date 2000-01-06 SUBROUTINE DE_ALLOCATE @@ -81,6 +82,7 @@ SUBROUTINE DE_ALLOCATE deallocate(QQNW) deallocate(QQNI) deallocate(QQNR) + deallocate(QQNG) deallocate(QQNWFA) deallocate(QQNIFA) deallocate(TAOD5503D) diff --git a/sorc/ncep_post.fd/INITPOST_MPAS.F b/sorc/ncep_post.fd/INITPOST_MPAS.F index e014b96f5..3e9888a69 100644 --- a/sorc/ncep_post.fd/INITPOST_MPAS.F +++ b/sorc/ncep_post.fd/INITPOST_MPAS.F @@ -24,6 +24,7 @@ !> 2024-10-28 | Jaymes Kenyon| Removing outdated processing for various "imp_physics" cases !> 2024-12-05 | Jaymes Kenyon| Temporary hard coding of imp_physics=8 for RRFS-MPAS (required for !> | brightness-temperature calculations in subroutine CALRAD_WCLOUD) +!> 2025-01-13 | Jaymes Kenyon| Add graupel number concentration (QQNG) !> !> @author Jaymes Kenyon (GSL) @date 2024-08-14 @@ -31,7 +32,7 @@ SUBROUTINE INITPOST_MPAS use vrbls4d, only: dust, smoke use vrbls3d, only: t, u, uh, v, vh, wh, q, pmid, t, omga, pint, alpint, & - qqr, qqs, qqi, qqg, qqnw, qqni,qqnr, cwm, qqw, qqi, qqr, qqs, extcof55,& + qqr, qqs, qqi, qqg, qqnw, qqni, qqnr, qqng, cwm, qqw, qqi, qqr, qqs, extcof55,& f_ice, f_rain, f_rimef, q2, zint, zmid, ttnd, cfr, cfr_raw, qc_bl, REF_10CM, & qqnwfa,qqnifa,taod5503d,aextc55 use vrbls2d, only: tmax, qrmax, htop, hbot, cuppt, fis, cfrach, cfracl, & @@ -576,6 +577,19 @@ SUBROUTINE INITPOST_MPAS end do end do + VarName='QNGRAUP' + call getVariable(fileName,DateStr,DataHandle,VarName,DUM3D, & + IM+1,1,JM+1,LM+1,IM, JS,JE,LM) + do l = 1, lm + do j = jsta_2l, jend_2u + do i = 1, im + qqng ( i, j, l ) = dum3d ( i, j, l ) + !if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNG= ', & + ! i,j,l,QQNG ( i, j, l ) + end do + end do + end do + ! For aerosol aware microphyscis VarName='QNCLOUD' call getVariable(fileName,DateStr,DataHandle,VarName,DUM3D, & diff --git a/sorc/ncep_post.fd/MDLFLD.f b/sorc/ncep_post.fd/MDLFLD.f index d0f1fe938..a38b34bf6 100644 --- a/sorc/ncep_post.fd/MDLFLD.f +++ b/sorc/ncep_post.fd/MDLFLD.f @@ -63,6 +63,7 @@ !! 24-02-20 | J Kenyon | Apply the PBLHGUST-related calculations to RRFS !! 24-04-23 | E James| Adding smoke emissions (ebb) from RRFS !! 24-10-07 | H Lin | Change inputs for gtg_algo from averaged (sfcshx, sfclhx) to instantaenous (twbs, qwbs) +!! 25-01-13 | J Kenyon | Add graupel number concentration (QQNG) !! !! USAGE: CALL MDLFLD !! INPUT ARGUMENT LIST: @@ -104,7 +105,7 @@ SUBROUTINE MDLFLD coarsepm, ebb use vrbls3d, only: zmid, t, pmid, q, cwm, f_ice, f_rain, f_rimef, qqw, qqi,& qqr, qqs, cfr, cfr_raw, dbz, dbzr, dbzi, dbzc, qqw, nlice, nrain, qqg, qqh, zint,& - qqni, qqnr, qqnw, qqnwfa, qqnifa, uh, vh, mcvg, omga, wh, q2, ttnd, rswtt, & + qqni, qqnr, qqng, qqnw, qqnwfa, qqnifa, uh, vh, mcvg, omga, wh, q2, ttnd, rswtt, & rlwtt, train, tcucn, o3, rhomid, dpres, el_pbl, pint, icing_gfip, icing_gfis, & catedr,mwt,gtg,cit, REF_10CM, avgpmtf, avgozcon @@ -1199,6 +1200,35 @@ SUBROUTINE MDLFLD endif ENDIF ENDIF +! +!--- QNGRAUP ON MDL SURFACE +! + IF (IGET(1023) > 0) THEN + IF (LVLS(L,IGET(1023)) > 0)THEN + LL=LM-L+1 +!$omp parallel do private(i,j) + DO J=JSTA,JEND + DO I=ista,iend + if(QQNG(I,J,LL) < 1.e-8) QQNG(I,J,LL) = 0. + GRID1(I,J) = QQNG(I,J,LL) + ENDDO + ENDDO + if(grib=="grib2" )then + cfld=cfld+1 + fld_info(cfld)%ifld=IAVBLFLD(IGET(1023)) + fld_info(cfld)%lvl=LVLSXML(L,IGET(1023)) +!$omp parallel do private(i,j,ii,jj) + do j=1,jend-jsta+1 + jj = jsta+j-1 + do i=1,iend-ista+1 + ii = ista+i-1 + datapd(i,j,cfld) = GRID1(ii,jj) + enddo + enddo + endif + ENDIF + ENDIF + ! QNWFA ON MDL SURFACE --tgs ! IF (IGET(766) > 0) THEN diff --git a/sorc/ncep_post.fd/VRBLS3D_mod.f b/sorc/ncep_post.fd/VRBLS3D_mod.f index ba2261b99..a1b5ddd50 100644 --- a/sorc/ncep_post.fd/VRBLS3D_mod.f +++ b/sorc/ncep_post.fd/VRBLS3D_mod.f @@ -12,6 +12,7 @@ !> 2015-07-02 | SARAH LU | MODIFIED TO INCLUDE SCATTERING AEROSOL OPTICAL THICKNESS !> 2023-03-22 | WM LEWIS | ADDED EFFECTIVE RADIUS ARRAYS !> 2023-08-16 | Yali Mao | Add CIT (Convectively-Induced Turbulence) for GTG4 +!> 2025-01-13 | J Kenyon | Add graupel number concentration (QQNG) module vrbls3d !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - implicit none @@ -46,6 +47,7 @@ module vrbls3d ,QQNW(:,:,:) & !< cloud water number concentration ,QQNI(:,:,:) & !< ice number concentration ,QQNR(:,:,:) & !< rain number concentration + ,QQNG(:,:,:) & !< graupel number concentration ,QC_BL(:,:,:) & !< cloud water mixing ratio in PBL schemes ,QRIMEF(:,:,:) & !< rime factor * ice mixing ratio ? ,CFR(:,:,:) & !< Instantaneous 3d cloud fraction