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(:,:) &