diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml
index d07cf3ddf..ba07a4e8a 100755
--- a/parm/fv3lam_rrfs.xml
+++ b/parm/fv3lam_rrfs.xml
@@ -370,8 +370,8 @@
- SOILM_ON_DEPTH_BEL_LAND_SFC
- SOILMOI
+ CISOILM_ON_DEPTH_BEL_LAND_SFC
+ CISOILM
3.0
@@ -2196,8 +2196,8 @@
- SOILM_ON_DEPTH_BEL_LAND_SFC
- SOILMOI
+ CISOILM_ON_DEPTH_BEL_LAND_SFC
+ CISOILM
3.0
@@ -2311,6 +2311,12 @@
4.0
+
+ ACM_SNOM_ON_SURFACE
+ SNOM
+ 4.0
+
+
GSD_INST_CRAIN_ON_SURFACE
CRAIN
diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml
index 6663dad6a..79f8c7da9 100755
--- a/parm/post_avblflds.xml
+++ b/parm/post_avblflds.xml
@@ -6599,6 +6599,14 @@
9.0
+
+ 713
+ CISOILM_ON_DEPTH_BEL_LAND_SFC
+ CISOILM
+ depth_bel_land_sfc
+ 3.0
+
+
719
INST_USWRF_ON_TOP_OF_ATMOS
diff --git a/parm/postcntrl_sfs.xml b/parm/postcntrl_sfs.xml
index 5ccae304e..790496a51 100644
--- a/parm/postcntrl_sfs.xml
+++ b/parm/postcntrl_sfs.xml
@@ -21,50 +21,50 @@
HGT_ON_ISOBARIC_SFC
- 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+ 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
6.0
TMP_ON_ISOBARIC_SFC
- 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+ 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
3.0
SPFH_ON_ISOBARIC_SFC
- 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+ 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
4.0
RH_ON_ISOBARIC_SFC
- 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+ 1. 2. 4. 7. 10. 20. 40. 70. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
3.0
UGRD_ON_ISOBARIC_SFC
- 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+ 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
4.0
VGRD_ON_ISOBARIC_SFC
- 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+ 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
4.0
ABSV_ON_ISOBARIC_SFC
- 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+ 1. 2. 4. 7. 10. 20. 40. 70. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
4.0
O3MR_ON_ISOBARIC_SFC
NCEP
- 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 12500. 15000. 20000. 25000. 30000. 35000. 40000.
+ 1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 12500. 15000. 20000. 25000. 30000. 35000. 40000.
5.0
@@ -633,6 +633,29 @@
4.0
+
+ HLCY_ON_SPEC_HGT_LVL_ABOVE_GRND
+ 3000.
+ 0.
+ 4.0
+
+
+
+ ACM_SSRUN_ON_SURFACE
+ 4.0
+
+
+
+ AVE_VBDSF_ON_SURFACE
+ NCEP
+ 6.0
+
+
+
+ AVE_NBDSF_ON_SURFACE
+ NCEP
+ 6.0
+
diff --git a/parm/postxconfig-NT-SFS.txt b/parm/postxconfig-NT-SFS.txt
index 29c1d2e9d..7b886ec09 100644
--- a/parm/postxconfig-NT-SFS.txt
+++ b/parm/postxconfig-NT-SFS.txt
@@ -1,5 +1,5 @@
1
-106
+110
GFSPRS
0
ncep_nco
@@ -27,8 +27,8 @@ HGT
isobaric_sfc
0
?
-31
-100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+39
+1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
?
0
?
@@ -64,8 +64,8 @@ TMP
isobaric_sfc
0
?
-31
-100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+39
+1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
?
0
?
@@ -101,8 +101,8 @@ SPFH
isobaric_sfc
0
?
-31
-100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+39
+1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
?
0
?
@@ -138,8 +138,8 @@ RH
isobaric_sfc
0
?
-26
-1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+34
+1. 2. 4. 7. 10. 20. 40. 70. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
?
0
?
@@ -175,8 +175,8 @@ UGRD
isobaric_sfc
0
?
-31
-100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+39
+1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
?
0
?
@@ -212,8 +212,8 @@ VGRD
isobaric_sfc
0
?
-31
-100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+39
+1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
?
0
?
@@ -249,8 +249,8 @@ ABSV
isobaric_sfc
0
?
-26
-1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
+34
+1. 2. 4. 7. 10. 20. 40. 70. 1000. 2000. 3000. 5000. 7000. 10000. 15000. 20000. 25000. 30000. 35000. 40000. 45000. 50000. 55000. 60000. 65000. 70000. 75000. 80000. 85000. 90000. 92500. 95000. 97500. 100000.
?
0
?
@@ -286,8 +286,8 @@ NCEP
isobaric_sfc
0
?
-18
-100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 12500. 15000. 20000. 25000. 30000. 35000. 40000.
+26
+1. 2. 4. 7. 10. 20. 40. 70. 100. 200. 300. 500. 700. 1000. 2000. 3000. 5000. 7000. 10000. 12500. 15000. 20000. 25000. 30000. 35000. 40000.
?
0
?
@@ -3938,3 +3938,151 @@ surface
?
?
?
+162
+HLCY_ON_SPEC_HGT_LVL_ABOVE_GRND
+?
+1
+tmpl4_0
+HLCY
+?
+?
+spec_hgt_lvl_above_grnd
+0
+?
+1
+3000.
+spec_hgt_lvl_above_grnd
+0
+?
+1
+0.
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+122
+ACM_SSRUN_ON_SURFACE
+?
+1
+tmpl4_8
+SSRUN
+?
+ACM
+surface
+0
+?
+0
+?
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+401
+AVE_VBDSF_ON_SURFACE
+averaged surface visible beam downward solar flux
+1
+tmpl4_8
+VBDSF
+NCEP
+AVE
+surface
+0
+?
+0
+?
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+6.0
+0
+0
+0
+?
+?
+?
+403
+AVE_NBDSF_ON_SURFACE
+averaged surface near IR beam downward solar flux
+1
+tmpl4_8
+NBDSF
+NCEP
+AVE
+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_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt
index 63ba5c32a..5770f555a 100644
--- a/parm/postxconfig-NT-fv3lam_rrfs.txt
+++ b/parm/postxconfig-NT-fv3lam_rrfs.txt
@@ -1,7 +1,7 @@
4
4
3
-235
+236
282
PRSLEV
32769
@@ -1832,12 +1832,12 @@ surface
?
?
?
-36
-SOILM_ON_DEPTH_BEL_LAND_SFC
+713
+CISOILM_ON_DEPTH_BEL_LAND_SFC
?
1
tmpl4_0
-SOILMOI
+CISOILM
?
?
depth_bel_land_sfc
@@ -1845,7 +1845,7 @@ depth_bel_land_sfc
?
0
?
-depth_bel_land_sfc
+?
0
?
0
@@ -12319,12 +12319,12 @@ spec_hgt_lvl_above_grnd
?
?
?
-36
-SOILM_ON_DEPTH_BEL_LAND_SFC
+713
+CISOILM_ON_DEPTH_BEL_LAND_SFC
?
1
tmpl4_0
-SOILMOI
+CISOILM
?
?
depth_bel_land_sfc
@@ -12332,7 +12332,7 @@ depth_bel_land_sfc
?
0
?
-depth_bel_land_sfc
+?
0
?
0
@@ -12948,6 +12948,43 @@ surface
?
?
?
+121
+ACM_SNOM_ON_SURFACE
+?
+1
+tmpl4_8
+SNOM
+?
+ACM
+surface
+0
+?
+0
+?
+?
+0
+?
+0
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
407
GSD_INST_CRAIN_ON_SURFACE
GSD_instant precipitation type on surface
diff --git a/sorc/ncep_post.fd/CALVIS_GSD.f b/sorc/ncep_post.fd/CALVIS_GSD.f
index c2795a6e5..2f0c005a6 100644
--- a/sorc/ncep_post.fd/CALVIS_GSD.f
+++ b/sorc/ncep_post.fd/CALVIS_GSD.f
@@ -92,12 +92,14 @@ SUBROUTINE CALVIS_GSD(CZEN,VIS)
! 2021-08 Wen Meng - Restrict divided by 0.
! 2021-10 Jesse Meng - 2D DECOMPOSITION
! 2023-11 Tim Corrie, Eric James - addition of attenuation for blowing snow
+! 2024-03 Eric James - removal of extcof55 factor in visibility
+! calculation (extcof55 is all zeroes)
!
!------------------------------------------------------------------
!
use vrbls2d, only: sno, si, ustar
- use vrbls3d, only: qqw, qqi, qqs, qqr, qqg, t, pmid, q, u, v, extcof55, aextc55
+ use vrbls3d, only: qqw, qqi, qqs, qqr, qqg, t, pmid, q, u, v, aextc55
use params_mod, only: h1, d608, rd, g
use ctlblk_mod, only: jm, im, jsta_2l, jend_2u, lm, modelname, spval, method_blsn,&
ista_2l, iend_2u
@@ -360,7 +362,7 @@ SUBROUTINE CALVIS_GSD(CZEN,VIS)
endif
! Calculation of visibility based on hydrometeor and aerosols. (RH effect not yet included.)
- VIS(I,J)=MIN(90.,CONST1/(BETAV+extcof55(i,j,lm))) ! max of 90km
+ VIS(I,J)=MIN(90.,CONST1/BETAV) ! max of 90km
if (vis(i,j) 2024-02-07 | Eric James | Adding reading of direct and diffuse irradiance and LAI
!> 2024-02-20 | Jaymes Kenyon | Add calculation of PBLHGUST (from INITPOST.F) to support RRFS 10-m wind gust diagnostic
!> 2024-03-15 | Wen Meng | Add option to read 3D soil-related variables
+!> 2024-03-25 | Eric James | Enabling reading of snow melt and surface albedo from RRFS
!>
!> @author Hui-Ya Chuang @date 2016-03-04
!----------------------------------------------------------------------
@@ -77,8 +78,8 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d)
use vrbls2d, only: f, pd, fis, pblh, ustar, z0, ths, qs, twbs, qwbs, avgcprate, &
cprate, avgprec, prec, lspa, sno, sndepac, si, cldefi, th10, q10, tshltr, pshltr, &
- tshltr, albase, avgalbedo, avgtcdc, czen, czmean, mxsnal, landfrac, radot, sigt4, &
- cfrach, cfracl, cfracm, avgcfrach, qshltr, avgcfracl, avgcfracm, cnvcfr, &
+ tshltr, albase, albedo, avgalbedo, avgtcdc, czen, czmean, mxsnal, landfrac, radot,&
+ sigt4,cfrach, cfracl, cfracm, avgcfrach, qshltr, avgcfracl, avgcfracm, cnvcfr, &
islope, cmc, grnflx, vegfrc, acfrcv, ncfrcv, acfrst, ncfrst, ssroff, &
bgroff, rlwin, rlwtoa, cldwork, alwin, alwout, alwtoa, rswin, rswinc, &
rswout, aswin, auvbin, auvbinc, aswout, aswtoa, sfcshx, sfclhx, subshx, &
@@ -1795,6 +1796,11 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d)
enddo
enddo
if(debugprint)print*,'sample ',VarName,' = ',avgalbedo(isa,jsa)
+! sfc albedo
+ VarName='sfalb'
+ call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
+ spval,VarName,albedo)
+ if(debugprint)print*,'sample ',VarName,' = ',albedo(isa,jsa)
! surface potential T using getgb
VarName='tmpsfc'
@@ -3106,13 +3112,31 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d)
endif
enddo
enddo
+ VarName='snom_land'
+ call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
+ spval,VarName,buf)
+ VarName='snom_ice'
+ call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
+ spval,VarName,buf2)
+!$omp parallel do private(i,j)
+ do j = jsta_2l, jend_2u
+ do i=ista,iend
+ if(buf(i,j) 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.
+!> 2024-03-25 | E James | Enabling output of column integrated soil moisture.
!>
!> @note
!> USAGE: CALL SURFCE
@@ -720,6 +721,32 @@ SUBROUTINE SURFCE
endif
ENDIF
!
+! TOTAL SOIL MOISTURE
+ IF (IGET(713)>0) THEN
+!$omp parallel do private(i,j)
+ DO J=JSTA,JEND
+ DO I=ISTA,IEND
+! IF(SMSTOT(I,J)/=SPVAL) THEN
+ GRID1(I,J) = SMSTOT(I,J)
+! ELSE
+! GRID1(I,J) = SPVAL
+! ENDIF
+ ENDDO
+ ENDDO
+ if(grib=='grib2') then
+ cfld=cfld+1
+ fld_info(cfld)%ifld=IAVBLFLD(IGET(713))
+!$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
+!
! PLANT CANOPY SURFACE WATER.
IF ( IGET(118)>0 ) THEN
IF(MODELNAME == 'RAPR') THEN