From 6a3974505dd86c222e57b76bbf9524e8afd711cc Mon Sep 17 00:00:00 2001 From: Wen Meng Date: Tue, 26 May 2020 19:32:00 +0000 Subject: [PATCH 1/5] Add the changes of outputing ceiling height for global FV3. --- parm/global_1x1_paramlist_g2 | 1 + parm/global_1x1_paramlist_g2.f000 | 1 + parm/postcntrl_gfs.xml | 10 +++ parm/postcntrl_gfs_f00.xml | 10 +++ parm/postxconfig-NT-GFS-F00.txt | 76 +++++++++++++++++++- parm/postxconfig-NT-GFS.txt | 76 +++++++++++++++++++- sorc/ncep_post.fd/CLDRAD.f | 18 ++--- sorc/ncep_post.fd/INITPOST_GFS_NETCDF.f | 10 ++- sorc/ncep_post.fd/INITPOST_GFS_NETCDF_PARA.f | 10 ++- 9 files changed, 193 insertions(+), 19 deletions(-) diff --git a/parm/global_1x1_paramlist_g2 b/parm/global_1x1_paramlist_g2 index 25f4e136b..6d0ff3e56 100644 --- a/parm/global_1x1_paramlist_g2 +++ b/parm/global_1x1_paramlist_g2 @@ -156,6 +156,7 @@ HGT:0.01 mb HGT:0.02 mb HGT:0.04 mb HGT:0.07 mb +HGT:cloud ceiling HGT:highest tropospheric freezing level HGT:max wind HGT:PV=-2e-06 (Km^2/kg/s) surface diff --git a/parm/global_1x1_paramlist_g2.f000 b/parm/global_1x1_paramlist_g2.f000 index 57dfdfa24..bfc847c81 100644 --- a/parm/global_1x1_paramlist_g2.f000 +++ b/parm/global_1x1_paramlist_g2.f000 @@ -148,6 +148,7 @@ HGT:0.01 mb HGT:0.02 mb HGT:0.04 mb HGT:0.07 mb +HGT:cloud ceiling HGT:highest tropospheric freezing level HGT:max wind HGT:PV=-2e-06 (Km^2/kg/s) surface diff --git a/parm/postcntrl_gfs.xml b/parm/postcntrl_gfs.xml index 1ee82d8aa..ff5d052f1 100755 --- a/parm/postcntrl_gfs.xml +++ b/parm/postcntrl_gfs.xml @@ -1090,6 +1090,16 @@ 5.0 + + HGT_ON_CLOUD_CEILING + 6.0 + + + + INST_TCDC_ON_ENTIRE_ATMOS + 3.0 + + diff --git a/parm/postcntrl_gfs_f00.xml b/parm/postcntrl_gfs_f00.xml index 7093006d8..623aa0a4e 100755 --- a/parm/postcntrl_gfs_f00.xml +++ b/parm/postcntrl_gfs_f00.xml @@ -838,6 +838,16 @@ 5.0 + + HGT_ON_CLOUD_CEILING + 6.0 + + + + INST_TCDC_ON_ENTIRE_ATMOS + 3.0 + + diff --git a/parm/postxconfig-NT-GFS-F00.txt b/parm/postxconfig-NT-GFS-F00.txt index eb9f71131..36a56de0f 100644 --- a/parm/postxconfig-NT-GFS-F00.txt +++ b/parm/postxconfig-NT-GFS-F00.txt @@ -1,5 +1,5 @@ 1 -140 +142 GFSPRS 0 ncep_nco @@ -5196,3 +5196,77 @@ surface ? ? ? +260 +HGT_ON_CLOUD_CEILING +? +1 +tmpl4_0 +HGT +? +? +cloud_ceilng +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +161 +INST_TCDC_ON_ENTIRE_ATMOS +? +1 +tmpl4_0 +TCDC +? +? +entire_atmos +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? diff --git a/parm/postxconfig-NT-GFS.txt b/parm/postxconfig-NT-GFS.txt index e3cfa6cb9..586a9d073 100644 --- a/parm/postxconfig-NT-GFS.txt +++ b/parm/postxconfig-NT-GFS.txt @@ -1,5 +1,5 @@ 1 -187 +189 GFSPRS 0 ncep_nco @@ -6935,3 +6935,77 @@ surface ? ? ? +260 +HGT_ON_CLOUD_CEILING +? +1 +tmpl4_0 +HGT +? +? +cloud_ceilng +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +6.0 +0 +0 +0 +? +? +? +161 +INST_TCDC_ON_ENTIRE_ATMOS +? +1 +tmpl4_0 +TCDC +? +? +entire_atmos +0 +? +0 +? +? +0 +? +0 +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? diff --git a/sorc/ncep_post.fd/CLDRAD.f b/sorc/ncep_post.fd/CLDRAD.f index 51ab9f111..d2a2e5b45 100644 --- a/sorc/ncep_post.fd/CLDRAD.f +++ b/sorc/ncep_post.fd/CLDRAD.f @@ -968,7 +968,7 @@ SUBROUTINE CLDRAD ENDIF ! nmmb_clds1: IF ((MODELNAME=='NMM' .AND. GRIDTYPE=='B') .OR. & - MODELNAME=='FV3R') THEN + MODELNAME=='FV3R'.OR. MODELNAME=='GFS') THEN ! !-- Initialize low, middle, high, and total cloud cover; ! also a method for cloud ceiling height @@ -1274,18 +1274,8 @@ SUBROUTINE CLDRAD ! TOTAL CLOUD FRACTION (INSTANTANEOUS). IF ((IGET(161) > 0) .OR. (IGET(260) > 0)) THEN ! GRID1=SPVAL - IF(MODELNAME == 'GFS')THEN - IF (IGET(161) > 0) THEN + IF(MODELNAME=='NCAR' .OR. MODELNAME=='RAPR')THEN !$omp parallel do private(i,j) - DO J=JSTA,JEND - DO I=1,IM - GRID1(i,j) = SPVAL - EGRID1(i,j) = SPVAL - TCLD(i,j) = SPVAL - ENDDO - ENDDO - ENDIF - ELSE IF(MODELNAME .EQ. 'NCAR' .OR. MODELNAME == 'RAPR')THEN DO J=JSTA,JEND DO I=1,IM GRID1(i,j) = SPVAL @@ -1296,13 +1286,15 @@ SUBROUTINE CLDRAD ENDDO ENDDO - ELSE IF (MODELNAME.EQ.'NMM'.OR.MODELNAME.EQ.'FV3R')THEN + ELSE IF (MODELNAME=='NMM'.OR.MODELNAME=='FV3R' & + .OR. MODELNAME=='GFS')THEN DO J=JSTA,JEND DO I=1,IM ! EGRID1(I,J)=AMAX1(CFRACL(I,J), ! 1 AMAX1(CFRACM(I,J),CFRACH(I,J))) ! EGRID1(I,J)=1.-(1.-CFRACL(I,J))*(1.-CFRACM(I,J))* & ! & (1.-CFRACH(I,J)) + GRID1(i,j)=SPVAL EGRID1(I,J)=TCLD(I,J) ENDDO ENDDO diff --git a/sorc/ncep_post.fd/INITPOST_GFS_NETCDF.f b/sorc/ncep_post.fd/INITPOST_GFS_NETCDF.f index 203955766..ddc994ee8 100644 --- a/sorc/ncep_post.fd/INITPOST_GFS_NETCDF.f +++ b/sorc/ncep_post.fd/INITPOST_GFS_NETCDF.f @@ -458,6 +458,7 @@ SUBROUTINE INITPOST_GFS_NETCDF(ncid3d) end do lonstart = nint(glon1d(1)*gdsdegr) lonlast = nint(glon1d(im)*gdsdegr) + dxval = nint(abs(glon1d(1)-glon1d(2))*gdsdegr) else if(numDims==2)then Status=nf90_get_var(ncid3d,varid,dummy) if(maxval(abs(dummy))<2.0*pi)convert_rad_to_deg=.true. @@ -477,9 +478,11 @@ SUBROUTINE INITPOST_GFS_NETCDF(ncid3d) if(convert_rad_to_deg)then lonstart = nint(dummy(1,1)*gdsdegr)*180./pi lonlast = nint(dummy(im,jm)*gdsdegr)*180./pi + dxval = nint(abs(dummy(1,1)-dummy(2,1))*gdsdegr)*180./pi else lonstart = nint(dummy(1,1)*gdsdegr) lonlast = nint(dummy(im,jm)*gdsdegr) + dxval = nint(abs(dummy(1,1)-dummy(2,1))*gdsdegr) end if ! Jili Dong add support for regular lat lon (2019/03/22) start @@ -494,7 +497,7 @@ SUBROUTINE INITPOST_GFS_NETCDF(ncid3d) ! Jili Dong add support for regular lat lon (2019/03/22) end end if - print*,'lonstart,lonlast ',lonstart,lonlast + print*,'lonstart,lonlast,dxval ',lonstart,lonlast,dxval ! get latitude Status=nf90_inq_varid(ncid3d,'grid_yt',varid) Status=nf90_inquire_variable(ncid3d,varid,ndims = numDims) @@ -508,6 +511,7 @@ SUBROUTINE INITPOST_GFS_NETCDF(ncid3d) end do latstart = nint(glat1d(1)*gdsdegr) latlast = nint(glat1d(jm)*gdsdegr) + dyval = nint(abs(glat1d(1)-glat1d(2))*gdsdegr) else if(numDims==2)then Status=nf90_get_var(ncid3d,varid,dummy) if(maxval(abs(dummy))