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