From 3798f147a3987462fbe0c656ab3a4d42b25caa2b Mon Sep 17 00:00:00 2001 From: gmao-yzhu Date: Fri, 30 Jan 2026 22:52:40 -0500 Subject: [PATCH 1/2] commit changes for satwinds again --- .../GSI_GridComp/etc/gmao_global_convinfo.txt | 26 ++++++++--------- .../GSI_GridComp/etc/gsi.rc.tmpl | 2 +- .../GSI_GridComp/read_satwnd.f90 | 23 +++++++++++---- GEOSaana_GridComp/GSI_GridComp/setupw.f90 | 29 ++++++++++--------- 4 files changed, 47 insertions(+), 33 deletions(-) diff --git a/GEOSaana_GridComp/GSI_GridComp/etc/gmao_global_convinfo.txt b/GEOSaana_GridComp/GSI_GridComp/etc/gmao_global_convinfo.txt index b882207a..a876a624 100644 --- a/GEOSaana_GridComp/GSI_GridComp/etc/gmao_global_convinfo.txt +++ b/GEOSaana_GridComp/GSI_GridComp/etc/gmao_global_convinfo.txt @@ -136,13 +136,13 @@ uv 243 57 1 3.0 0 0 0 1.5 15.0 1.4 1.5 0.055000 1 200. 100. 0 0. 0. uv 243 70 1 3.0 0 0 0 1.5 15.0 1.4 1.5 0.055000 1 200. 100. 0 0. 0. uv 244 0 -1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. - uv 244 3 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. - uv 244 4 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. + uv 244 3 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 1 200. 100. 0 0. 0. + uv 244 4 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 1 200. 100. 0 0. 0. uv 244 5 -1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. uv 244 206 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. uv 244 207 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. - uv 244 209 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. - uv 244 223 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. + uv 244 209 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 1 125. 0. 0 0. 0. + uv 244 223 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 1 125. 0. 0 0. 0. uv 245 0 -1 3.0 0 0 0 2.5 20.0 1.4 1.3 0.005000 1 200. 100. 0 0. 0. uv 245 252 -1 3.0 0 0 0 2.5 20.0 1.4 1.3 0.005000 1 200. 100. 0 0. 0. uv 245 253 -1 3.0 0 0 0 2.5 20.0 1.4 1.3 0.005000 1 200. 100. 0 0. 0. @@ -175,8 +175,8 @@ uv 247 256 -1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. uv 247 257 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. uv 247 259 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. - uv 247 270 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. - uv 247 271 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. + uv 247 270 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 1 200. 100. 0 0. 0. + uv 247 271 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 1 200. 100. 0 0. 0. uv 247 272 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. uv 247 273 1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.005000 0 0. 0. 0 0. 0. uv 248 0 -1 3.0 0 0 0 2.5 20.0 1.4 2.5 0.000500 0 0. 0. 0 0. 0. @@ -218,22 +218,22 @@ uv 255 854 -1 3.0 0 0 0 1.5 20.0 1.4 1.5 0.050500 1 200. 100. 0 0. 0. uv 256 0 -1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.000500 0 0. 0. 0 0. 0. uv 257 0 -1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 0 0. 0. 0 0. 0. - uv 257 783 1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 0 0. 0. 0 0. 0. - uv 257 784 1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 0 0. 0. 0 0. 0. + uv 257 783 1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 1 75. 50. 0 0. 0. + uv 257 784 1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 1 100. 50. 0 0. 0. uv 258 0 -1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 0 0. 0. 0 0. 0. uv 258 783 1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 0 0. 0. 0 0. 0. - uv 258 784 1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 0 0. 0. 0 0. 0. + uv 258 784 1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 1 125. 0. 0 0. 0. uv 259 0 -1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 0 0. 0. 0 0. 0. uv 259 783 1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 0 0. 0. 0 0. 0. - uv 259 784 1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 0 0. 0. 0 0. 0. + uv 259 784 1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.005500 1 100. 0. 0 0. 0. uv 260 0 -1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.000500 0 0. 0. 0 0. 0. uv 260 224 -1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.000500 0 0. 0. 0 0. 0. uv 260 225 -1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.000500 0 0. 0. 0 0. 0. uv 260 226 -1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.000500 0 0. 0. 0 0. 0. uv 270 0 -1 3.0 0 0 0 2.5 20.1 1.4 2.5 0.000500 0 0. 0. 0 0. 0. uv 275 0 -1 3.0 0 0 0 8.0 6.1 1.4 8.0 0.000001 0 0. 0. 0 0. 0. - uv 280 0 1 3.0 0 0 0 6.0 6.1 1.4 6.0 0.005500 0 0. 0. 0 0. 0. - uv 280 1 1 3.0 0 0 0 6.0 6.1 1.4 6.0 0.005500 0 0. 0. 0 0. 0. + uv 280 0 1 3.0 0 0 0 6.0 6.1 1.4 6.0 0.005500 1 50. 0. 0 0. 0. + uv 280 1 1 3.0 0 0 0 6.0 6.1 1.4 6.0 0.005500 1 50. 0. 0 0. 0. uv 281 0 -1 3.0 0 0 0 6.0 6.1 1.4 6.0 0.005500 0 0. 0. 0 0. 0. uv 282 0 1 3.0 0 0 0 6.0 6.1 1.4 6.0 0.005500 0 0. 0. 0 0. 0. uv 284 0 -1 3.0 0 0 0 6.0 6.1 1.4 6.0 0.005500 0 0. 0. 0 0. 0. @@ -241,7 +241,7 @@ uv 286 0 -1 3.0 0 0 0 6.0 6.1 1.4 6.0 0.005500 0 0. 0. 0 0. 0. uv 287 0 -1 3.0 0 0 0 6.0 6.1 1.4 6.0 0.000500 0 0. 0. 0 0. 0. uv 289 0 1 3.0 0 0 0 5.0 6.1 1.4 5.0 0.000500 0 0. 0. 0 0. 0. - uv 290 4 -1 3.0 0 0 0 5.0 6.1 1.4 5.0 0.000500 1 100. 1200. 0 0. 0. + uv 290 4 -1 3.0 0 0 0 5.0 6.1 1.4 5.0 0.000500 1 150. 1200. 0 0. 0. uv 290 3 1 3.0 0 0 0 5.0 6.1 1.4 5.0 0.000500 1 100. 1200. 0 0. 0. uv 290 5 -1 3.0 0 0 0 5.0 6.1 1.4 5.0 0.000500 1 100. 1200. 0 0. 0. uv 291 0 1 3.0 0 0 0 5.0 6.1 1.4 5.0 0.000500 1 100. 1200. 0 0. 0. diff --git a/GEOSaana_GridComp/GSI_GridComp/etc/gsi.rc.tmpl b/GEOSaana_GridComp/GSI_GridComp/etc/gsi.rc.tmpl index dd1b8b24..1b5f18eb 100755 --- a/GEOSaana_GridComp/GSI_GridComp/etc/gsi.rc.tmpl +++ b/GEOSaana_GridComp/GSI_GridComp/etc/gsi.rc.tmpl @@ -61,7 +61,7 @@ / &OBSQC dfact=0.75,dfact1=3.0,noiqc=.false.,oberrflg=.true.,c_varqc=0.02,blacklst=.true., - use_poq7=.true.,qc_noirjaco3=.false.,qc_satwnds=.false.,cld_det_dec2bin=.true., + use_poq7=.true.,qc_noirjaco3=.false.,qc_satwnds=.true.,cld_det_dec2bin=.true., half_goesr_err=.false.,max_tail=15000, ! tcp_ermin=0.75,tcp_ermax=0.75, >>>AIRCFT_BIAS<<< diff --git a/GEOSaana_GridComp/GSI_GridComp/read_satwnd.f90 b/GEOSaana_GridComp/GSI_GridComp/read_satwnd.f90 index 4d7a87b2..306ba1d1 100644 --- a/GEOSaana_GridComp/GSI_GridComp/read_satwnd.f90 +++ b/GEOSaana_GridComp/GSI_GridComp/read_satwnd.f90 @@ -73,9 +73,10 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis ! or hilber curve downweighting ! 2021-06-21 Todling - Allow code to bypass hack to half-GOES-R errors ! 2020-05-04 wu - no rotate_wind for fv3_regional -! 2021-07-25 Genkova - added code for Metop-B/C winds in new BUFR,NC005081 ! -! 2022-01-20 Genkova - added missing station_id for polar winds -! 2022-01-20 Genkova - added code for Meteosat and Himawari AMVs in new BUFR +! 2021-07-25 Genkova - added code for Metop-B/C winds in new BUFR,NC005081 ! +! 2021-11-15 Eunhee - add QC for MSG IR winds and modified QC for IR winds over land and top air winds removal +! 2022-01-20 Genkova - added missing station_id for polar winds +! 2022-01-20 Genkova - added code for Meteosat and Himawari AMVs in new BUFR ! ! ! input argument list: @@ -144,6 +145,7 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis real(r_kind),parameter:: r105= 105.0_r_kind real(r_kind),parameter:: r110= 110.0_r_kind real(r_kind),parameter:: r125=125.0_r_kind + real(r_kind),parameter:: r150=150.0_r_kind real(r_kind),parameter:: r200=200.0_r_kind real(r_kind),parameter:: r250=250.0_r_kind real(r_kind),parameter:: r360 = 360.0_r_kind @@ -179,7 +181,7 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis integer(i_kind) nmind,lunin,idate,ilat,ilon,iret,k integer(i_kind) nreal,ithin,iout,ntmp,icount,iiout,ii integer(i_kind) itype,iosub,ixsub,isubsub,iobsub,itypey,ierr - integer(i_kind) qm + integer(i_kind) qm, hamd integer(i_kind) nlevp ! vertical level for thinning integer(i_kind) pflag integer(i_kind) ntest,nvtest @@ -637,6 +639,7 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis ee=r110 qifn=r110 qify=r110 + hamd=-1 ! Test for BUFR version using lat/lon mnemonics call ufbint(lunin,hdrdat_test,2,1,iret, 'CLAT CLON') @@ -653,7 +656,8 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis hdrdat(3) >100000000.0_r_kind .or. & obsdat(4) > 100000000.0_r_kind) cycle loop_readsb if(ppb >r10000) ppb=ppb/r100 - if (ppb 20.0_r_kind) then call deter_sfc_type(dlat_earth,dlon_earth,t4dv,isflg,tsavg) if(isflg /= 0) cycle loop_readsb + else + call deter_sfc_type(dlat_earth,dlon_earth,t4dv,isflg,tsavg) + if (isflg /= 0 .and. ppb > 700.0_r_kind) cycle loop_readsb ! low over land + endif + endif + if(itype ==253) then + if(hdrdat(2) >5.0_r_kind) then + call deter_sfc_type(dlat_earth,dlon_earth,t4dv,isflg,tsavg) + if(isflg /= 0 ) cycle loop_readsb endif endif endif diff --git a/GEOSaana_GridComp/GSI_GridComp/setupw.f90 b/GEOSaana_GridComp/GSI_GridComp/setupw.f90 index 59251118..db29d675 100644 --- a/GEOSaana_GridComp/GSI_GridComp/setupw.f90 +++ b/GEOSaana_GridComp/GSI_GridComp/setupw.f90 @@ -199,6 +199,7 @@ subroutine setupw(obsLL,odiagLL,lunin,mype,bwork,awork,nele,nobs,is,conv_diagsav ! 2018-04-09 pondeca - introduce duplogic to correctly handle the characterization of ! duplicate obs in twodvar_regional applications ! 2020-02-26 todling - reset obsbin from hr to min +! 2021-11-15 Eunhee - Remove the QC for ir winds in the mid atmospheric layer if qc_satwnds=true ! ! ! REMARKS: @@ -1054,20 +1055,20 @@ subroutine setupw(obsLL,odiagLL,lunin,mype,bwork,awork,nele,nobs,is,conv_diagsav if(itype ==242 .or. itype ==243 ) then ! visible winds from JMA and EUMETSAT if(presw <700.0_r_kind) error=zero ! no visible winds above 700mb endif - if(itype ==245 ) then - if( presw >399.0_r_kind .and. presw <801.0_r_kind) then !GOES IR winds - error=zero ! no data between 400-800mb - endif - endif - if(itype == 252 .and. presw >499.0_r_kind .and. presw <801.0_r_kind) then ! JMA IR winds - error=zero - endif - if(itype == 253 ) then - if(presw >401.0_r_kind .and. presw <801.0_r_kind) then ! EUMET IR winds - error=zero - endif - endif - if( itype == 246 .or. itype == 250 .or. itype == 254 ) then ! water vapor cloud top +! if(itype ==245 ) then +! if( presw >399.0_r_kind .and. presw <801.0_r_kind) then !GOES IR winds +! error=zero ! no data between 400-800mb +! endif +! endif +! if(itype == 252 .and. presw >499.0_r_kind .and. presw <801.0_r_kind) then ! JMA IR winds +! error=zero +! endif +! if(itype == 253 ) then +! if(presw >401.0_r_kind .and. presw <801.0_r_kind) then ! EUMET IR winds +! error=zero +! endif +! endif + if( itype == 246 .or. itype == 247 .or. itype == 250 .or. itype == 254 ) then ! water vapor cloud top if(presw >399.0_r_kind) error=zero endif if(itype ==257 .and. presw <249.0_r_kind) error=zero From 253940e4ae81b470f6b17b2d816acfdb7a08b884 Mon Sep 17 00:00:00 2001 From: Ricardo Todling Date: Mon, 2 Feb 2026 11:03:06 -0500 Subject: [PATCH 2/2] add for consistency w/ forward gsi --- GEOSaana_GridComp/GSI_GridComp/etc/gsi_sens.rc.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GEOSaana_GridComp/GSI_GridComp/etc/gsi_sens.rc.tmpl b/GEOSaana_GridComp/GSI_GridComp/etc/gsi_sens.rc.tmpl index 4fbc481b..dda88dc0 100755 --- a/GEOSaana_GridComp/GSI_GridComp/etc/gsi_sens.rc.tmpl +++ b/GEOSaana_GridComp/GSI_GridComp/etc/gsi_sens.rc.tmpl @@ -67,7 +67,7 @@ / &OBSQC dfact=0.75,dfact1=3.0,noiqc=.false.,oberrflg=.true.,c_varqc=0.02,blacklst=.true., - use_poq7=.true.,qc_noirjaco3=.false.,qc_satwnds=.false.,cld_det_dec2bin=.true., + use_poq7=.true.,qc_noirjaco3=.false.,qc_satwnds=.true.,cld_det_dec2bin=.true., half_goesr_err=.false.,max_tail=15000, ! tcp_ermin=0.75,tcp_ermax=0.75, >>>AIRCFT_BIAS<<<