diff --git a/parm/fv3lam.xml b/parm/fv3lam.xml index 853973dd7..1ed55aab2 100755 --- a/parm/fv3lam.xml +++ b/parm/fv3lam.xml @@ -740,6 +740,36 @@ -4.0 + + ACM_GRAUPEL_ON_SURFACE + 6.0 + + + + BUCKET_GRAUPEL_ON_SURFACE + 6.0 + + + + ACM_FRAIN_ON_SURFACE + 6.0 + + + + BUCKET_FRAIN_ON_SURFACE + 6.0 + + + + ACM_SNOWFALL_ON_SURFACE + 6.0 + + + + BUCKET_SNOWFALL_ON_SURFACE + 6.0 + + ACM_NCPCP_ON_SURFACE NCPCP diff --git a/parm/fv3lam_rrfs.xml b/parm/fv3lam_rrfs.xml index 2cf4a76c6..2f961ff51 100755 --- a/parm/fv3lam_rrfs.xml +++ b/parm/fv3lam_rrfs.xml @@ -692,6 +692,36 @@ -4.0 + + ACM_GRAUPEL_ON_SURFACE + 6.0 + + + + BUCKET_GRAUPEL_ON_SURFACE + 6.0 + + + + ACM_FRAIN_ON_SURFACE + 6.0 + + + + BUCKET_FRAIN_ON_SURFACE + 6.0 + + + + ACM_SNOWFALL_ON_SURFACE + 6.0 + + + + BUCKET_SNOWFALL_ON_SURFACE + 6.0 + + ACM_NCPCP_ON_SURFACE NCPCP diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index 621b2d883..77675b46b 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -8160,5 +8160,36 @@ surface 3.0 + + + 1003 + BUCKET_FRAIN_ON_SURFACE + tmpl4_8 + FRZR + NCEP + ACM + surface + 4.0 + + + + 1004 + ACM_SNOWFALL_ON_SURFACE + tmpl4_8 + TSNOWP + ACM + surface + 4.0 + + + + 1005 + BUCKET_SNOWFALL_ON_SURFACE + tmpl4_8 + TSNOWP + ACM + surface + 4.0 + diff --git a/parm/postcntrl_gfs.xml b/parm/postcntrl_gfs.xml index 9d79cdbe9..8ad9f86ea 100755 --- a/parm/postcntrl_gfs.xml +++ b/parm/postcntrl_gfs.xml @@ -1159,6 +1159,36 @@ 3.0 + + ACM_GRAUPEL_ON_SURFACE + 6.0 + + + + BUCKET_GRAUPEL_ON_SURFACE + 6.0 + + + + ACM_FRAIN_ON_SURFACE + 4.0 + + + + BUCKET_FRAIN_ON_SURFACE + 4.0 + + + + ACM_SNOWFALL_ON_SURFACE + 4.0 + + + + BUCKET_SNOWFALL_ON_SURFACE + 4.0 + + AER_OPT_GFS_at550 9.0 diff --git a/parm/postcntrl_gfs_two.xml b/parm/postcntrl_gfs_two.xml index c3edbb94f..2c8613c6f 100755 --- a/parm/postcntrl_gfs_two.xml +++ b/parm/postcntrl_gfs_two.xml @@ -1159,6 +1159,36 @@ 3.0 + + ACM_GRAUPEL_ON_SURFACE + 6.0 + + + + BUCKET_GRAUPEL_ON_SURFACE + 6.0 + + + + ACM_FRAIN_ON_SURFACE + 4.0 + + + + BUCKET_FRAIN_ON_SURFACE + 4.0 + + + + ACM_SNOWFALL_ON_SURFACE + 4.0 + + + + BUCKET_SNOWFALL_ON_SURFACE + 4.0 + + AER_OPT_GFS_at550 9.0 diff --git a/parm/postxconfig-NT-GFS-TWO.txt b/parm/postxconfig-NT-GFS-TWO.txt index ea053e5f7..16ae86598 100644 --- a/parm/postxconfig-NT-GFS-TWO.txt +++ b/parm/postxconfig-NT-GFS-TWO.txt @@ -1,6 +1,6 @@ 2 112 -203 +209 GFSPRS 0 ncep_nco @@ -7306,6 +7306,228 @@ surface ? ? ? +746 +ACM_GRAUPEL_ON_SURFACE +? +1 +tmpl4_8 +FROZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +775 +BUCKET_GRAUPEL_ON_SURFACE +bucket graupel precipitation on surface +1 +tmpl4_8 +FROZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +782 +ACM_FRAIN_ON_SURFACE +? +1 +tmpl4_8 +FRZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +1003 +BUCKET_FRAIN_ON_SURFACE +? +1 +tmpl4_8 +FRZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +1004 +ACM_SNOWFALL_ON_SURFACE +? +1 +tmpl4_8 +TSNOWP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +1005 +BUCKET_SNOWFALL_ON_SURFACE +? +1 +tmpl4_8 +TSNOWP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? 600 AER_OPT_GFS_at550 ? diff --git a/parm/postxconfig-NT-GFS.txt b/parm/postxconfig-NT-GFS.txt index faf8aa0c3..ee9f0db08 100644 --- a/parm/postxconfig-NT-GFS.txt +++ b/parm/postxconfig-NT-GFS.txt @@ -1,5 +1,5 @@ 1 -203 +209 GFSPRS 0 ncep_nco @@ -7305,6 +7305,228 @@ surface ? ? ? +746 +ACM_GRAUPEL_ON_SURFACE +? +1 +tmpl4_8 +FROZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +775 +BUCKET_GRAUPEL_ON_SURFACE +bucket graupel precipitation on surface +1 +tmpl4_8 +FROZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +782 +ACM_FRAIN_ON_SURFACE +? +1 +tmpl4_8 +FRZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +1003 +BUCKET_FRAIN_ON_SURFACE +? +1 +tmpl4_8 +FRZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +1004 +ACM_SNOWFALL_ON_SURFACE +? +1 +tmpl4_8 +TSNOWP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? +1005 +BUCKET_SNOWFALL_ON_SURFACE +? +1 +tmpl4_8 +TSNOWP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +4.0 +0 +0 +0 +? +? +? 600 AER_OPT_GFS_at550 ? diff --git a/parm/postxconfig-NT-fv3lam.txt b/parm/postxconfig-NT-fv3lam.txt index baf81d216..db3ccdde6 100644 --- a/parm/postxconfig-NT-fv3lam.txt +++ b/parm/postxconfig-NT-fv3lam.txt @@ -1,6 +1,6 @@ 2 219 -258 +264 PRSLEV 32769 ncep_nco @@ -3643,6 +3643,228 @@ surface ? ? ? +746 +ACM_GRAUPEL_ON_SURFACE +? +1 +tmpl4_8 +FROZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +775 +BUCKET_GRAUPEL_ON_SURFACE +bucket graupel precipitation on surface +1 +tmpl4_8 +FROZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +782 +ACM_FRAIN_ON_SURFACE +? +1 +tmpl4_8 +FRZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +1003 +BUCKET_FRAIN_ON_SURFACE +? +1 +tmpl4_8 +FRZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +1004 +ACM_SNOWFALL_ON_SURFACE +? +1 +tmpl4_8 +TSNOWP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +1005 +BUCKET_SNOWFALL_ON_SURFACE +? +1 +tmpl4_8 +TSNOWP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? 34 ACM_NCPCP_ON_SURFACE ? diff --git a/parm/postxconfig-NT-fv3lam_rrfs.txt b/parm/postxconfig-NT-fv3lam_rrfs.txt index 273cc9c54..790bb1209 100644 --- a/parm/postxconfig-NT-fv3lam_rrfs.txt +++ b/parm/postxconfig-NT-fv3lam_rrfs.txt @@ -1,6 +1,6 @@ 2 241 -284 +290 PRSLEV 32769 ncep_nco @@ -3458,6 +3458,228 @@ surface ? ? ? +746 +ACM_GRAUPEL_ON_SURFACE +? +1 +tmpl4_8 +FROZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +775 +BUCKET_GRAUPEL_ON_SURFACE +bucket graupel precipitation on surface +1 +tmpl4_8 +FROZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +782 +ACM_FRAIN_ON_SURFACE +? +1 +tmpl4_8 +FRZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +1003 +BUCKET_FRAIN_ON_SURFACE +? +1 +tmpl4_8 +FRZR +NCEP +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +1004 +ACM_SNOWFALL_ON_SURFACE +? +1 +tmpl4_8 +TSNOWP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +1005 +BUCKET_SNOWFALL_ON_SURFACE +? +1 +tmpl4_8 +TSNOWP +? +ACM +surface +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? 34 ACM_NCPCP_ON_SURFACE ? diff --git a/sorc/ncep_post.fd/ALLOCATE_ALL.f b/sorc/ncep_post.fd/ALLOCATE_ALL.f index 429ccb21d..84c35bd5b 100644 --- a/sorc/ncep_post.fd/ALLOCATE_ALL.f +++ b/sorc/ncep_post.fd/ALLOCATE_ALL.f @@ -581,6 +581,9 @@ SUBROUTINE ALLOCATE_ALL() allocate(snow_bucket1(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(graup_bucket(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(graup_bucket1(ista_2l:iend_2u,jsta_2l:jend_2u)) + allocate(frzrn_bucket(ista_2l:iend_2u,jsta_2l:jend_2u)) + allocate(snow_acm(ista_2l:iend_2u,jsta_2l:jend_2u)) + allocate(snow_bkt(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(qrmax(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(tmax(ista_2l:iend_2u,jsta_2l:jend_2u)) allocate(snownc(ista_2l:iend_2u,jsta_2l:jend_2u)) diff --git a/sorc/ncep_post.fd/DEALLOCATE.f b/sorc/ncep_post.fd/DEALLOCATE.f index 658febca4..4c0c0d094 100644 --- a/sorc/ncep_post.fd/DEALLOCATE.f +++ b/sorc/ncep_post.fd/DEALLOCATE.f @@ -384,6 +384,9 @@ SUBROUTINE DE_ALLOCATE deallocate(snow_bucket1) deallocate(graup_bucket) deallocate(graup_bucket1) + deallocate(frzrn_bucket) + deallocate(snow_acm) + deallocate(snow_bkt) deallocate(qrmax) deallocate(tmax) deallocate(snownc) diff --git a/sorc/ncep_post.fd/INITPOST_NETCDF.f b/sorc/ncep_post.fd/INITPOST_NETCDF.f index 187067fc5..046753a84 100644 --- a/sorc/ncep_post.fd/INITPOST_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_NETCDF.f @@ -26,6 +26,7 @@ !> 2022-11-08 | Wen Meng | Remove instant PM2.5 calculation !> 2022-11-16 | Eric James | Read smoke, dust, biomass burning, and hourly wildfire potential from RRFS !> 2022-12-07 | Wen Meng | Read AOD from AQM model +!> 2022-12-23 | Eric Aligo | Read six winter weather diagnostics from model !> !> @author Hui-Ya Chuang @date 2016-03-04 SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) @@ -53,7 +54,8 @@ SUBROUTINE INITPOST_NETCDF(ncid2d,ncid3d) smstot, ivgtyp, isltyp, sfcevp, sfcexc, acsnow, acsnom, sst, thz0, qz0, & 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, & + mintshltr, maxrhshltr, fdnsst, acgraup, graup_bucket, acfrain, frzrn_bucket, & + snow_acm, snow_bkt, & 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, & @@ -1620,6 +1622,35 @@ 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,SFCEXC) +! accumulated snowfall + VarName='tsnowp' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,SNOW_ACM) +! snowfall bucket + VarName='tsnowpb' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,SNOW_BKT) + +! accumulated graupel/sleet + VarName='frozr' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,acgraup) + +! graupel/sleet bucket + VarName='frozrb' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,graup_bucket) + +! accumulated freezing rain + VarName='frzr' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,acfrain) + +! freezing rain bucket + VarName='frzrb' + call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & + spval,VarName,frzrn_bucket) + ! aerodynamic conductance VarName='acond' call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, & diff --git a/sorc/ncep_post.fd/SURFCE.f b/sorc/ncep_post.fd/SURFCE.f index bba111b86..d209b30b5 100644 --- a/sorc/ncep_post.fd/SURFCE.f +++ b/sorc/ncep_post.fd/SURFCE.f @@ -43,6 +43,7 @@ !! - 22-02-01 E JAMES - Cleaning up GRIB2 encoding for six variables !! that cause issues with newer wgrib2 builds in RRFS system. !! - 22-11-16 E JAMES - Adding dust from RRFS +!! - 22-12-23 E Aligo - Read six winter weather diagnostics from model. !! !! USAGE: CALL SURFCE !! INPUT ARGUMENT LIST: @@ -93,6 +94,7 @@ SUBROUTINE SURFCE acond,maxqshltr,minqshltr,avgpotevp,AVGPREC_CONT, & AVGCPRATE_CONT,sst,pcp_bucket1,rainnc_bucket1, & snow_bucket1, rainc_bucket1, graup_bucket1, & + frzrn_bucket, snow_acm, snow_bkt, & shdmin, shdmax, lai, ch10,cd10,landfrac,paha,pahi, & tecan,tetran,tedir,twa use soil, only: stc, sllevel, sldpth, smc, sh2o @@ -3413,6 +3415,7 @@ SUBROUTINE SURFCE fld_info(cfld)%ifld=IAVBLFLD(IGET(746)) fld_info(cfld)%ntrange=1 fld_info(cfld)%tinvstat=IFHR-ID(18) + if(MODELNAME=='FV3R' .OR. MODELNAME=='GFS')fld_info(cfld)%tinvstat=IFHR !$omp parallel do private(i,j,ii,jj) do j=1,jend-jsta+1 jj = jsta+j-1 @@ -3458,6 +3461,7 @@ SUBROUTINE SURFCE fld_info(cfld)%ifld=IAVBLFLD(IGET(782)) fld_info(cfld)%ntrange=1 fld_info(cfld)%tinvstat=IFHR-ID(18) + if(MODELNAME=='FV3R' .OR. MODELNAME=='GFS')fld_info(cfld)%tinvstat=IFHR !$omp parallel do private(i,j,ii,jj) do j=1,jend-jsta+1 jj = jsta+j-1 @@ -3468,6 +3472,54 @@ SUBROUTINE SURFCE enddo endif ENDIF + +! ACCUMULATED SNOWFALL. + IF (IGET(1004)>0) THEN +!$omp parallel do private(i,j) + DO J=JSTA,JEND + DO I=ISTA,IEND + GRID1(I,J) = SNOW_ACM(I,J) + ENDDO + ENDDO + ID(1:25) = 0 + ITPREC = NINT(TPREC) +!mp + if (ITPREC /= 0) then + IFINCR = MOD(IFHR,ITPREC) + IF(IFMIN >= 1)IFINCR= MOD(IFHR*60+IFMIN,ITPREC*60) + else + IFINCR = 0 + endif +!mp + ID(18) = 0 + ID(19) = IFHR + IF(IFMIN >= 1)ID(19)=IFHR*60+IFMIN + ID(20) = 4 + IF (IFINCR==0) THEN + ID(18) = IFHR-ITPREC + ELSE + ID(18) = IFHR-IFINCR + IF(IFMIN >= 1)ID(18)=IFHR*60+IFMIN-IFINCR + ENDIF + IF (ID(18)<0) ID(18) = 0 + if(grib=='grib2') then + cfld=cfld+1 + fld_info(cfld)%ifld=IAVBLFLD(IGET(1004)) + fld_info(cfld)%ntrange=1 + fld_info(cfld)%tinvstat=IFHR-ID(18) + if(MODELNAME=='FV3R' .or. MODELNAME=='GFS')fld_info(cfld)%tinvstat=IFHR +! print*,'id(18),tinvstat in acgraup= ',ID(18),fld_info(cfld)%tinvstat +!$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 + ! ! ACCUMULATED SNOW MELT. IF (IGET(121)>0) THEN @@ -4030,6 +4082,113 @@ SUBROUTINE SURFCE endif ENDIF +! 'BUCKET FREEZING RAIN ' + IF (IGET(1003)>0.) THEN +!$omp parallel do private(i,j) + DO J=JSTA,JEND + DO I=ISTA,IEND + GRID1(I,J) = FRZRN_BUCKET(I,J) + ENDDO + ENDDO + ID(1:25) = 0 + ITPREC = NINT(TPREC) +!mp + if (ITPREC /= 0) then + IFINCR = MOD(IFHR,ITPREC) + IF(IFMIN >= 1)IFINCR= MOD(IFHR*60+IFMIN,ITPREC*60) + else + IFINCR = 0 + endif +!mp + ID(18) = 0 + ID(19) = IFHR + IF(IFMIN >= 1)ID(19)=IFHR*60+IFMIN + ID(20) = 4 + IF (IFINCR==0) THEN + ID(18) = IFHR-ITPREC + ELSE + ID(18) = IFHR-IFINCR + IF(IFMIN >= 1)ID(18)=IFHR*60+IFMIN-IFINCR + ENDIF + IF (ID(18)<0) ID(18) = 0 +! print*,'maxval BUCKET FREEZING RAIN: ', maxval(GRID1) + if(grib=='grib2') then + cfld=cfld+1 + fld_info(cfld)%ifld=IAVBLFLD(IGET(1003)) + fld_info(cfld)%ntrange=1 + fld_info(cfld)%tinvstat=IFHR-ID(18) +! if(ITPREC>0) then +! fld_info(cfld)%ntrange=(IFHR-ID(18))/ITPREC +! else +! fld_info(cfld)%ntrange=0 +! endif +! fld_info(cfld)%tinvstat=ITPREC +! if(fld_info(cfld)%ntrange==0) then +! if (ifhr==0) then +! fld_info(cfld)%tinvstat=0 +! else +! fld_info(cfld)%tinvstat=1 +! endif +! fld_info(cfld)%ntrange=1 +! end if +!$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 + +! 'BUCKET SNOWFALL ' + IF (IGET(1005)>0.) THEN +!$omp parallel do private(i,j) + DO J=JSTA,JEND + DO I=ISTA,IEND + GRID1(I,J) = SNOW_BKT(I,J) + ENDDO + ENDDO + ID(1:25) = 0 + ITPREC = NINT(TPREC) +!mp + if (ITPREC /= 0) then + IFINCR = MOD(IFHR,ITPREC) + IF(IFMIN >= 1)IFINCR= MOD(IFHR*60+IFMIN,ITPREC*60) + else + IFINCR = 0 + endif +!mp + ID(18) = 0 + ID(19) = IFHR + IF(IFMIN >= 1)ID(19)=IFHR*60+IFMIN + ID(20) = 4 + IF (IFINCR==0) THEN + ID(18) = IFHR-ITPREC + ELSE + ID(18) = IFHR-IFINCR + IF(IFMIN >= 1)ID(18)=IFHR*60+IFMIN-IFINCR + ENDIF + IF (ID(18)<0) ID(18) = 0 +! print*,'maxval BUCKET FREEZING RAIN: ', maxval(GRID1) + if(grib=='grib2') then + cfld=cfld+1 + fld_info(cfld)%ifld=IAVBLFLD(IGET(1005)) + fld_info(cfld)%ntrange=1 + fld_info(cfld)%tinvstat=IFHR-ID(18) +!$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 + + ! ERIC JAMES: 10 JUN 2021 -- adding precip comparison to FFG ! thresholds. 913 is for 1h QPF, 914 for run total QPF. IF (IGET(913).GT.0) THEN diff --git a/sorc/ncep_post.fd/VRBLS2D_mod.f b/sorc/ncep_post.fd/VRBLS2D_mod.f index 1f008f6cb..d953325c9 100644 --- a/sorc/ncep_post.fd/VRBLS2D_mod.f +++ b/sorc/ncep_post.fd/VRBLS2D_mod.f @@ -51,6 +51,7 @@ module vrbls2d ,NCI_REFD(:,:),NCA_REFD(:,:),RAINC_BUCKET1(:,:),RAINNC_BUCKET1(:,:) & ,RAINC_BUCKET(:,:),RAINNC_BUCKET(:,:),SNOW_BUCKET(:,:) & ,GRAUP_BUCKET(:,:),PCP_BUCKET(:,:),ACGRAUP(:,:),ACFRAIN(:,:) & + ,FRZRN_BUCKET(:,:),SNOW_ACM(:,:),SNOW_BKT(:,:) & ,SNOW_BUCKET1(:,:),GRAUP_BUCKET1(:,:),PCP_BUCKET1(:,:) & ,SNOWNC(:,:),GRAUPELNC(:,:),TMAX(:,:),W_MEAN(:,:) & ,TSNOW(:,:),QVG(:,:),QV2m(:,:),QVl1(:,:) &