Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add surface albedo, accumulated snow melt, and total soil moisture output in RRFS #908

Merged
merged 12 commits into from
Apr 1, 2024
Merged
14 changes: 10 additions & 4 deletions parm/fv3lam_rrfs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -399,8 +399,8 @@
</param>

<param>
<shortname>SOILM_ON_DEPTH_BEL_LAND_SFC</shortname>
<pname>SOILMOI</pname>
<shortname>CISOILM_ON_DEPTH_BEL_LAND_SFC</shortname>
WenMeng-NOAA marked this conversation as resolved.
Show resolved Hide resolved
<pname>CISOILM</pname>
<scale>3.0</scale>
</param>

Expand Down Expand Up @@ -2411,8 +2411,8 @@
</param>

<param>
<shortname>SOILM_ON_DEPTH_BEL_LAND_SFC</shortname>
<pname>SOILMOI</pname>
<shortname>CISOILM_ON_DEPTH_BEL_LAND_SFC</shortname>
<pname>CISOILM</pname>
<scale>3.0</scale>
</param>

Expand Down Expand Up @@ -2544,6 +2544,12 @@
<scale>4.0</scale>
</param>

<param>
<shortname>ACM_SNOM_ON_SURFACE</shortname>
<pname>SNOM</pname>
<scale>4.0</scale>
</param>

<param>
<shortname>GSD_INST_CRAIN_ON_SURFACE</shortname>
<pname>CRAIN</pname>
Expand Down
8 changes: 8 additions & 0 deletions parm/post_avblflds.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6599,6 +6599,14 @@
<scale>9.0</scale>
</param>

<param>
<post_avblfldidx>713</post_avblfldidx>
<shortname>CISOILM_ON_DEPTH_BEL_LAND_SFC</shortname>
<pname>CISOILM</pname>
<fixed_sfc1_type>depth_bel_land_sfc</fixed_sfc1_type>
<scale>3.0</scale>
</param>

<param>
<post_avblfldidx>719</post_avblfldidx>
<shortname>INST_USWRF_ON_TOP_OF_ATMOS</shortname>
Expand Down
55 changes: 46 additions & 9 deletions parm/postxconfig-NT-fv3lam_rrfs.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
4
4
3
253
254
311
PRSLEV
32769
Expand Down Expand Up @@ -1980,20 +1980,20 @@ surface
?
?
?
36
SOILM_ON_DEPTH_BEL_LAND_SFC
713
CISOILM_ON_DEPTH_BEL_LAND_SFC
?
1
tmpl4_0
SOILMOI
CISOILM
?
?
depth_bel_land_sfc
0
?
0
?
depth_bel_land_sfc
?
0
?
0
Expand Down Expand Up @@ -13503,20 +13503,20 @@ 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
0
?
0
?
depth_bel_land_sfc
?
0
?
0
Expand Down Expand Up @@ -14243,6 +14243,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
Expand Down
6 changes: 4 additions & 2 deletions sorc/ncep_post.fd/CALVIS_GSD.f
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
WenMeng-NOAA marked this conversation as resolved.
Show resolved Hide resolved

if (vis(i,j)<vis_min) vis_min = vis(i,j)
if (visrh<visrh_min) visrh_min = visrh
Expand Down
30 changes: 27 additions & 3 deletions sorc/ncep_post.fd/INITPOST_NETCDF.f
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
!> 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
!----------------------------------------------------------------------
Expand Down Expand Up @@ -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, &
Expand Down Expand Up @@ -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'
Expand Down Expand Up @@ -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)<spval) then
acsnom(i,j) = buf(i,j)
elseif(buf2(i,j)<spval) then
acsnom(i,j) = buf2(i,j)
else
acsnom(i,j) = spval
endif
enddo
enddo
!$omp parallel do private(i,j)
do j=jsta_2l,jend_2u
do i=ista_2l,iend_2u
! smstav(i,j) = spval ! GFS does not have soil moisture availability
! smstot(i,j) = spval ! GFS does not have total soil moisture
sfcevp(i,j) = spval ! GFS does not have accumulated surface evaporation
acsnom(i,j) = spval ! GFS does not have snow melt
! acsnom(i,j) = spval ! GFS does not have snow melt
! sst(i,j) = spval ! GFS does not have sst????
thz0(i,j) = ths(i,j) ! GFS does not have THZ0, use THS to substitute
qz0(i,j) = spval ! GFS does not output humidity at roughness length
Expand Down
27 changes: 27 additions & 0 deletions sorc/ncep_post.fd/SURFCE.f
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
!> 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
Expand Down Expand Up @@ -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
WenMeng-NOAA marked this conversation as resolved.
Show resolved Hide resolved
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
Expand Down
Loading