diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index 885c73734..b82c92f4d 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -399,6 +399,12 @@ 4.0 + + SOILM_ON_DEPTH_BEL_LAND_SFC + SOILMOI + 3.0 + + TSOIL_ON_DEPTH_BEL_LAND_SFC TSOIL @@ -1005,6 +1011,20 @@ 4.0 + + INST_SWDDNI_ON_SURFACE + VBDSF + NCEP + 4.0 + + + + INST_SWDDIF_ON_SURFACE + VDDSF + NCEP + 4.0 + + INST_CSDSF_ON_SURFACE CSDSF @@ -1997,7 +2017,6 @@ HWP_ON_SURFACE - FWINX 5.0 @@ -2419,6 +2438,12 @@ -2.0 + + SOILM_ON_DEPTH_BEL_LAND_SFC + SOILMOI + 3.0 + + TSOIL_ON_DEPTH_BEL_LAND_SFC TSOIL @@ -2684,6 +2709,14 @@ 6.0 + + COARSEPM_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. 60. 61. 62. 63. 64. 65. + 6.0 + + LCDC_ON_LOW_CLOUD_LYR LCDC @@ -2794,6 +2827,20 @@ 4.0 + + INST_SWDDNI_ON_SURFACE + VBDSF + NCEP + 4.0 + + + + INST_SWDDIF_ON_SURFACE + VDDSF + NCEP + 4.0 + + INST_CSDSF_ON_SURFACE CSDSF @@ -3569,7 +3616,7 @@ LAI_ON_SURFACE LAI NCEP - -3.0 + -3.0 diff --git a/parm/params_grib2_tbl_new b/parm/params_grib2_tbl_new index c3cdd17de..62c0935d2 100755 --- a/parm/params_grib2_tbl_new +++ b/parm/params_grib2_tbl_new @@ -147,7 +147,7 @@ 2 3 22 0 CISICE 2 3 20 0 CISOILM 2 0 23 0 CISOILW - 0 19 50 0 CITEDR + 0 19 50 0 CITEDR 0 19 207 1 CIVIS 3 2 9 0 CLDALB 3 2 10 0 CLDEMISS @@ -710,6 +710,8 @@ 0 1 226 1 PWTHER 0 1 219 1 QMAX 0 1 220 1 QMIN + 1 1 196 1 QPFARI + 1 1 197 1 QPFFFG 2 0 215 1 QREC 0 1 218 1 QZ0 0 16 201 1 RADARVIL @@ -1250,6 +1252,7 @@ 0 0 27 0 WETBT 0 18 11 0 WETDEP 0 20 75 0 WFIREFLX + 2 4 26 0 WFIREPOT 1 2 2 0 WFRACT 10 0 59 0 WFWFSWEL 10 0 60 0 WFWSSWEL diff --git a/parm/params_grib2_tbl_new.text b/parm/params_grib2_tbl_new.text index 5059b025c..694cd10fe 100755 --- a/parm/params_grib2_tbl_new.text +++ b/parm/params_grib2_tbl_new.text @@ -931,6 +931,8 @@ 1 1 193 1 CPOFP 1 1 194 1 PPFFG 1 1 195 1 CWR + 1 1 196 1 QPFARI + 1 1 197 1 QPFFFG ! ! GRIB2 - TABLE 4.2-1-2 PARAMETERS FOR DISCIPLINE 1 CATEGORY 2 ! @@ -1112,6 +1114,7 @@ 2 4 9 0 INFSINX 2 4 10 0 FBUPINX 2 4 11 0 FDSRTE + 2 4 26 0 WFIREPOT ! ! Added new Discipline 2 category 5 in 8/26/2015 ! diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 974f6ce1e..36987589e 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -6931,7 +6931,7 @@ 755 HWP_ON_SURFACE Hourly Wildfire Potential on surface - FWINX + WFIREPOT surface 5.0 @@ -7436,27 +7436,28 @@ 913 1H_FFG_EXCEEDANCE tmpl4_8 - FFLDRO + QPFFFG + NCEP ACM surface - 4.0 914 ACM_FFG_EXCEEDANCE tmpl4_8 - FFLDRO + QPFFFG + NCEP ACM surface - 4.0 915 1H_2YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7466,7 +7467,8 @@ 916 ACM_2YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7476,7 +7478,8 @@ 917 1H_5YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7486,7 +7489,8 @@ 918 ACM_5YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7496,7 +7500,8 @@ 919 1H_10YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7506,7 +7511,8 @@ 920 ACM_10YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7516,7 +7522,8 @@ 921 1H_100YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 @@ -7526,7 +7533,8 @@ 922 ACM_100YARI_EXCEEDANCE tmpl4_8 - GWLOWS + QPFARI + NCEP ACM surface 4.0 diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index 287aca351..918930a9c 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -1,8 +1,8 @@ 4 4 3 -250 -308 +254 +311 PRSLEV 32769 ncep_nco @@ -1980,6 +1980,43 @@ surface ? ? ? +36 +SOILM_ON_DEPTH_BEL_LAND_SFC +? +1 +tmpl4_0 +SOILMOI +? +? +depth_bel_land_sfc +0 +? +0 +? +depth_bel_land_sfc +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? 116 TSOIL_ON_DEPTH_BEL_LAND_SFC ? @@ -5347,6 +5384,80 @@ surface ? ? ? +772 +INST_SWDDNI_ON_SURFACE +? +1 +tmpl4_0 +VBDSF +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +773 +INST_SWDDIF_ON_SURFACE +? +1 +tmpl4_0 +VDDSF +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? 262 INST_CSDSF_ON_SURFACE ? @@ -10532,8 +10643,8 @@ isothermal ? 1 tmpl4_8 -FFLDRO -? +QPFFFG +NCEP ACM surface 0 @@ -10569,8 +10680,8 @@ ACM_FFG_EXCEEDANCE ? 1 tmpl4_8 -FFLDRO -? +QPFFFG +NCEP ACM surface 0 @@ -10606,8 +10717,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10643,8 +10754,8 @@ ACM_2YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10680,8 +10791,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10717,8 +10828,8 @@ ACM_5YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10754,8 +10865,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10791,8 +10902,8 @@ ACM_10YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10828,8 +10939,8 @@ surface ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -10865,8 +10976,8 @@ ACM_100YARI_EXCEEDANCE ? 1 tmpl4_8 -GWLOWS -? +QPFARI +NCEP ACM surface 0 @@ -11198,7 +11309,7 @@ HWP_ON_SURFACE Hourly Wildfire Potential on surface 1 tmpl4_0 -FWINX +WFIREPOT ? ? surface @@ -13392,6 +13503,43 @@ spec_hgt_lvl_above_grnd ? ? ? +36 +SOILM_ON_DEPTH_BEL_LAND_SFC +? +1 +tmpl4_0 +SOILMOI +? +? +depth_bel_land_sfc +0 +? +0 +? +depth_bel_land_sfc +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? 116 TSOIL_ON_DEPTH_BEL_LAND_SFC ? @@ -14724,6 +14872,43 @@ smaller_than_first_limit ? ? ? +1012 +COARSEPM_ON_HYBRID_LVL +? +1 +tmpl4_48 +MASSDEN +? +? +hybrid_lvl +0 +? +65 +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. 65. +? +0 +? +0 +? +dust_dry +between_first_second_limit_noincl2ndlmt +7 +25 +7 +100 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? 37 LCDC_ON_LOW_CLOUD_LYR ? @@ -15353,6 +15538,80 @@ surface ? ? ? +772 +INST_SWDDNI_ON_SURFACE +? +1 +tmpl4_0 +VBDSF +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +773 +INST_SWDDIF_ON_SURFACE +? +1 +tmpl4_0 +VDDSF +NCEP +? +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? 262 INST_CSDSF_ON_SURFACE ? diff --git a/sorc/ncep_post.fd/ALLOCATE_ALL.f b/sorc/ncep_post.fd/ALLOCATE_ALL.f index 2ade6e18c..96e0c183f 100644 --- a/sorc/ncep_post.fd/ALLOCATE_ALL.f +++ b/sorc/ncep_post.fd/ALLOCATE_ALL.f @@ -493,6 +493,7 @@ SUBROUTINE ALLOCATE_ALL() allocate(shdmin(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(shdmax(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(lai(ista_2l:iend_2u,jsta_2l:jend_2u)) + allocate(xlaixy(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(acsnow(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(acgraup(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(acfrain(ista_2l:iend_2u,jsta_2l:jend_2u)) @@ -524,6 +525,7 @@ SUBROUTINE ALLOCATE_ALL() shdmin(i,j)=spval shdmax(i,j)=spval lai(i,j)=spval + xlaixy(i,j)=spval acsnow(i,j)=spval acgraup(i,j)=spval acfrain(i,j)=spval diff --git a/sorc/ncep_post.fd/DEALLOCATE.f b/sorc/ncep_post.fd/DEALLOCATE.f index bf979f8c2..d16c6f2d4 100644 --- a/sorc/ncep_post.fd/DEALLOCATE.f +++ b/sorc/ncep_post.fd/DEALLOCATE.f @@ -166,6 +166,7 @@ SUBROUTINE DE_ALLOCATE deallocate(shdmin) deallocate(shdmax) deallocate(lai) + deallocate(xlaixy) deallocate(acsnow) deallocate(acgraup) deallocate(acfrain) diff --git a/sorc/ncep_post.fd/INITPOST_NETCDF.f b/sorc/ncep_post.fd/INITPOST_NETCDF.f index b14cbc316..20447d549 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -45,6 +45,7 @@ !> 2023-10-17 | Eric James | Including hail mixing ratio in calculation of hydrometeor VIL !> and cwm when present (NSSL microphysics) !> 2023-10-23 | Jaymes Kenyon | Read HAILCAST diagnostic output from RRFS +!> 2024-02-07 | Eric James | Adding reading of direct and diffuse irradiance and LAI !> !> @author Hui-Ya Chuang @date 2016-03-04 !---------------------------------------------------------------------- @@ -83,7 +84,7 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) uz0, vz0, ptop, htop, pbot, hbot, ptopl, pbotl, ttopl, ptopm, pbotm, ttopm, & ptoph, pboth, pblcfr, ttoph, runoff, tecan, tetran, tedir, twa, maxtshltr, & mintshltr, maxrhshltr, fdnsst, acgraup, graup_bucket, acfrain, frzrn_bucket, & - snow_acm, snow_bkt, snownc, graupelnc, qrmax, & + snow_acm, snow_bkt, snownc, graupelnc, qrmax, swddif, swddni, xlaixy, & minrhshltr, dzice, smcwlt, suntime, fieldcapa, htopd, hbotd, htops, hbots, & cuppt, dusmass, ducmass, dusmass25, ducmass25, aswintoa,rel_vort_maxhy1, & maxqshltr, minqshltr, acond, sr, u10h, v10h,refd_max, w_up_max, w_dn_max, & @@ -2679,6 +2680,21 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & spval,VarName,rswin) +! inst incoming direct beam sfc shortwave + VarName='visbmdi' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,swddni) + +! inst incoming diffuse sfc shortwave + VarName='visdfdi' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,swddif) + +! leaf area index + VarName='xlaixy' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,xlaixy) + ! inst incoming clear sky sfc shortwave ! FV3 do not output instant incoming clear sky sfc shortwave !$omp parallel do private(i,j) diff --git a/sorc/ncep_post.fd/SURFCE.f b/sorc/ncep_post.fd/SURFCE.f index 492f418e3..acbafa193 100644 --- a/sorc/ncep_post.fd/SURFCE.f +++ b/sorc/ncep_post.fd/SURFCE.f @@ -47,6 +47,7 @@ !> 2023-10-05 | E James | Correcting bug fix in GSL precip type for RRFS (was using 1000x 1h pcp) !> 2024-01-23 | E James | Using consistent snow ratio SR from history files throughout GSL precip type diagnosis. !> 2024-01-30 | A Jensen | Comment out graupel precipitation warning. +!> 2024-02-07 | E James | Enabling output of LAI and wilting point for RRFS. !> !> @note !> USAGE: CALL SURFCE @@ -99,7 +100,7 @@ SUBROUTINE SURFCE snow_bucket1, rainc_bucket1, graup_bucket1, & frzrn_bucket, snow_acm, snow_bkt, & shdmin, shdmax, lai, ch10,cd10,landfrac,paha,pahi, & - tecan,tetran,tedir,twa,IFI_APCP + tecan,tetran,tedir,twa,IFI_APCP,xlaixy use soil, only: stc, sllevel, sldpth, smc, sh2o use masks, only: lmh, sm, sice, htm, gdlat, gdlon use physcons_post,only: CON_EPS, CON_EPSM1 @@ -6193,12 +6194,15 @@ SUBROUTINE SURFCE ! LEAF AREA INDEX IF (MODELNAME == 'NCAR'.OR.MODELNAME=='NMM' .OR. & MODELNAME == 'FV3R' .OR. MODELNAME=='RAPR')THEN - IF (iSF_SURFACE_PHYSICS == 2 .OR. MODELNAME=='RAPR') THEN + IF (iSF_SURFACE_PHYSICS == 2 .OR. MODELNAME=='FV3R' .OR. MODELNAME=='RAPR') THEN IF (IGET(254)>0) THEN + if (me==0)print*,'starting LAI' DO J=JSTA,JEND DO I=ISTA,IEND IF (MODELNAME=='RAPR')THEN GRID1(I,J)=LAI(I,J) + ELSE IF (MODELNAME=='FV3R')THEN + GRID1(I,J)=XLAIXY(I,J) ELSE GRID1(I,J) = XLAI ENDIF @@ -6277,7 +6281,7 @@ SUBROUTINE SURFCE & .OR. IGET(237)>0 .OR. IGET(238)>0 & & .OR. IGET(239)>0 .OR. IGET(240)>0 & & .OR. IGET(241)>0 ) THEN - IF (iSF_SURFACE_PHYSICS == 2) THEN !NSOIL == 4 + IF (iSF_SURFACE_PHYSICS == 2 .OR. iSF_SURFACE_PHYSICS == 3) THEN !NSOIL == 4 ! if(me==0)print*,'starting computing canopy conductance' allocate(rsmin(ista:iend,jsta:jend), smcref(ista:iend,jsta:jend), gc(ista:iend,jsta:jend), & rcq(ista:iend,jsta:jend), rct(ista:iend,jsta:jend), rcsoil(ista:iend,jsta:jend), rcs(ista:iend,jsta:jend)) diff --git a/sorc/ncep_post.fd/VRBLS2D_mod.f b/sorc/ncep_post.fd/VRBLS2D_mod.f index 8e919dd98..c7f10ce25 100644 --- a/sorc/ncep_post.fd/VRBLS2D_mod.f +++ b/sorc/ncep_post.fd/VRBLS2D_mod.f @@ -62,7 +62,7 @@ module vrbls2d ,SWNORMmean(:,:),SNFDEN(:,:),SNDEPAC(:,:),SWDDNI(:,:),SWDDIF(:,:) & ,SWDNBC(:,:),SWDDNIC(:,:),SWDDIFC(:,:), SWUPBC(:,:), SWUPT(:,:) & ,TAOD5502D(:,:),AERASY2D(:,:),AERSSA2D(:,:),MEAN_FRP(:,:),EBB(:,:) & - ,HWP(:,:),LWP(:,:),IWP(:,:) & + ,HWP(:,:),LWP(:,:),IWP(:,:),XLAIXY(:,:) & ! add new fields for GFS ,SFCUX(:,:),SFCVX(:,:),SFCUXI(:,:), SFCVXI(:,:),AVGALBEDO(:,:),AVGCPRATE(:,:) & ,AVGPREC(:,:),PTOP(:,:),PBOT(:,:),AVGCFRACH(:,:) &