From 092125196a49e856ad760730edac01e398a84d8f Mon Sep 17 00:00:00 2001 From: jianjunj Date: Thu, 12 Dec 2024 14:00:37 -0500 Subject: [PATCH] Correct scattering index and enable error inflation in ATMS data, (#812) --- src/gsi/clw_mod.f90 | 16 +++++++++++++--- src/gsi/qcmod.f90 | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/gsi/clw_mod.f90 b/src/gsi/clw_mod.f90 index 49387f05eb..9d16ad64e1 100644 --- a/src/gsi/clw_mod.f90 +++ b/src/gsi/clw_mod.f90 @@ -1961,6 +1961,7 @@ subroutine ret_amsua(tb_obs,nchanl,tsavg5,zasat,clwp_amsua,ierrret,scat) ! Declare local variables real(r_kind) :: d0, d1, d2, coszat ! real(r_kind) :: c0, c1, c2 + real(r_kind) :: tb890 = zero coszat=cos(zasat) @@ -1979,9 +1980,18 @@ subroutine ret_amsua(tb_obs,nchanl,tsavg5,zasat,clwp_amsua,ierrret,scat) endif if (present(scat)) then - scat=-113.2_r_kind+(2.41_r_kind-0.0049_r_kind*tb_obs(1))*tb_obs(1) & - +0.454_r_kind*tb_obs(2)-tb_obs(15) - scat=max(zero,scat) + if (nchanl == 15) then +! AMSU-A + tb890 = tb_obs(15) + else if (nchanl == 22) then +! ATMS + tb890 = tb_obs(16) + endif + if (tb890 > zero) then + scat=-113.2_r_kind+(2.41_r_kind-0.0049_r_kind*tb_obs(1))*tb_obs(1) & + +0.454_r_kind*tb_obs(2)-tb890 + endif + scat=max(zero,scat) end if end subroutine ret_amsua diff --git a/src/gsi/qcmod.f90 b/src/gsi/qcmod.f90 index 86207a49fb..abd75108c3 100644 --- a/src/gsi/qcmod.f90 +++ b/src/gsi/qcmod.f90 @@ -3670,7 +3670,7 @@ subroutine qc_amsua(nchanl,is,ndat,nsig,npred,sea,land,ice,snow,mixed,luse, & ework = ework+min(0.002_r_kind*sfc_speed**2*error0(i), 0.5_r_kind*error0(i)) clwtmp=min(abs(clwp_amsua-clw_guess_retrieval), one) ework = ework+min(13.0_r_kind*clwtmp*error0(i), 3.5_r_kind*error0(i)) - if (scatp>9.0_r_kind .and. nchanl==15) then + if (scatp>9.0_r_kind) then ework = ework+min(1.5_r_kind*(scatp-9.0_r_kind)*error0(i), 2.5_r_kind*error0(i)) end if ework=ework**2