Skip to content

Commit

Permalink
Add surface albedo, accumulated snow melt, and total soil moisture ou…
Browse files Browse the repository at this point in the history
…tput in RRFS (#908)

* Updating CLDRAD and INITPOST_NETCDF

* Reverting change in CLDRAD.f

* Changes to output CISOILM and SNOM.

* Cleaning up syntax.

* Adding change logs.

* Small updates.

* Removing extcof55 from visibility calculation (it's all zeroes).

* Reverting change in INITPOST_NETCDF.f setting smstot to spval

* Using a single level "0 m underground" for CISOILM
  • Loading branch information
EricJames-NOAA committed Apr 1, 2024
1 parent 92b080d commit df9b16b
Show file tree
Hide file tree
Showing 6 changed files with 122 additions and 18 deletions.
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>
<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

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
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

0 comments on commit df9b16b

Please sign in to comment.