From 70ed687f72e85f74fcf3092b3e12b04e71ff0644 Mon Sep 17 00:00:00 2001 From: TingLei-daprediction Date: Thu, 11 Jan 2024 12:08:24 +0000 Subject: [PATCH 1/5] Issue:A indexing out of bounds issue shown in the global_4denvar regression test in setuprad.f90 #676 --- src/gsi/setuprad.f90 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gsi/setuprad.f90 b/src/gsi/setuprad.f90 index 856715d4c..c00885aeb 100644 --- a/src/gsi/setuprad.f90 +++ b/src/gsi/setuprad.f90 @@ -1103,9 +1103,9 @@ subroutine setuprad(obsLL,odiagLL,lunin,mype,aivals,stats,nchanl,nreal,nobs,& predbias=zero abi2km_bc = zero - abi2km_bc(2) = 233.5_r_kind - abi2km_bc(3) = 241.7_r_kind - abi2km_bc(4) = 250.5_r_kind + if (2.le.size(abi2km_bc)) abi2km_bc(2) = 233.5_r_kind + if(3.le.size(abi2km_bc)) abi2km_bc(3) = 241.7_r_kind + if(4.le.size(abi2km_bc)) abi2km_bc(4) = 250.5_r_kind !$omp parallel do schedule(dynamic,1) private(i,mm,j,k,tlap,node,bias) do i=1,nchanl From df4a534ab525250f3c5c14b35d3bb5a5647b9839 Mon Sep 17 00:00:00 2001 From: TingLei-daprediction Date: Thu, 11 Jan 2024 21:00:23 +0000 Subject: [PATCH 2/5] Revert "Issue:A indexing out of bounds issue shown in the global_4denvar regression test in setuprad.f90 #676" This reverts commit 70ed687f72e85f74fcf3092b3e12b04e71ff0644. --- src/gsi/setuprad.f90 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gsi/setuprad.f90 b/src/gsi/setuprad.f90 index c00885aeb..856715d4c 100644 --- a/src/gsi/setuprad.f90 +++ b/src/gsi/setuprad.f90 @@ -1103,9 +1103,9 @@ subroutine setuprad(obsLL,odiagLL,lunin,mype,aivals,stats,nchanl,nreal,nobs,& predbias=zero abi2km_bc = zero - if (2.le.size(abi2km_bc)) abi2km_bc(2) = 233.5_r_kind - if(3.le.size(abi2km_bc)) abi2km_bc(3) = 241.7_r_kind - if(4.le.size(abi2km_bc)) abi2km_bc(4) = 250.5_r_kind + abi2km_bc(2) = 233.5_r_kind + abi2km_bc(3) = 241.7_r_kind + abi2km_bc(4) = 250.5_r_kind !$omp parallel do schedule(dynamic,1) private(i,mm,j,k,tlap,node,bias) do i=1,nchanl From e016262ee8dc627d7be1737954dfb929b1493a35 Mon Sep 17 00:00:00 2001 From: TingLei-daprediction Date: Thu, 11 Jan 2024 21:07:22 +0000 Subject: [PATCH 3/5] Issue:A indexing out of bounds issue shown in the global_4denvar regression test in setuprad.f90 #676, remove abc2km blocks --- src/gsi/setuprad.f90 | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/gsi/setuprad.f90 b/src/gsi/setuprad.f90 index 856715d4c..e63a9b226 100644 --- a/src/gsi/setuprad.f90 +++ b/src/gsi/setuprad.f90 @@ -376,7 +376,6 @@ subroutine setuprad(obsLL,odiagLL,lunin,mype,aivals,stats,nchanl,nreal,nobs,& logical in_curbin, in_anybin, save_jacobian logical account_for_corr_obs logical,dimension(nobs):: zero_irjaco3_pole - logical abi2km ! use 2km abi data (not CSR/ASR) ! Declare local arrays @@ -410,7 +409,6 @@ subroutine setuprad(obsLL,odiagLL,lunin,mype,aivals,stats,nchanl,nreal,nobs,& real(r_kind) :: clw_guess,clw_guess_retrieval,ciw_guess,rain_guess,snow_guess,clw_avg real(r_kind),dimension(:), allocatable :: rsqrtinv real(r_kind),dimension(:), allocatable :: rinvdiag - real(r_kind),dimension(nchanl) :: abi2km_bc !for GMI (dual scan angles) real(r_kind),dimension(nchanl):: emissivity2,ts2, emissivity_k2,tsim2 @@ -529,7 +527,6 @@ subroutine setuprad(obsLL,odiagLL,lunin,mype,aivals,stats,nchanl,nreal,nobs,& atms = obstype == 'atms' saphir = obstype == 'saphir' abi = obstype == 'abi' - abi2km = .false. ssmis=ssmis_las.or.ssmis_uas.or.ssmis_img.or.ssmis_env.or.ssmis @@ -1102,10 +1099,6 @@ subroutine setuprad(obsLL,odiagLL,lunin,mype,aivals,stats,nchanl,nreal,nobs,& endif predbias=zero - abi2km_bc = zero - abi2km_bc(2) = 233.5_r_kind - abi2km_bc(3) = 241.7_r_kind - abi2km_bc(4) = 250.5_r_kind !$omp parallel do schedule(dynamic,1) private(i,mm,j,k,tlap,node,bias) do i=1,nchanl @@ -1185,17 +1178,6 @@ subroutine setuprad(obsLL,odiagLL,lunin,mype,aivals,stats,nchanl,nreal,nobs,& end do end if - if (abi2km .and. regional) then - pred(:,i) = zero - if (i>=2 .and. i<=4) then - if (tb_obs(i) > 190.0_r_kind .and. tb_obs(i) < 300.0_r_kind) then - pred(1,i)=1.0_r_kind - pred(2,i)=tb_obs(i)-abi2km_bc(i) - pred(3,i)=(tb_obs(i)-abi2km_bc(i))**2 - pred(4,i)=(tb_obs(i)-abi2km_bc(i))**3 - end if - end if - end if do j = 1,npred predbias(j,i) = predchan(j,i)*pred(j,i) From 0b71af829b2a57dd37bbb132ff423369de50cbd3 Mon Sep 17 00:00:00 2001 From: Tinglei-daprediction Date: Fri, 19 Jan 2024 22:20:20 +0000 Subject: [PATCH 4/5] Issue:A indexing out of bounds issue shown in the global_4denvar regression test in setuprad.f90 #676, remove abc2km blocks And Issue: AMSR2 Retrieval Predictor Caculation Went Wrong #678, added test to abort with error message. --- src/gsi/clw_mod.f90 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gsi/clw_mod.f90 b/src/gsi/clw_mod.f90 index 512aaded0..9cace50de 100644 --- a/src/gsi/clw_mod.f90 +++ b/src/gsi/clw_mod.f90 @@ -983,6 +983,12 @@ subroutine retrieval_amsr2(tb,nchanl,clw,kraintype,ierr) ! ---------- Calculate predictors --------------------------- + if(.not.( (tb_use(7) - tb_use(8)) > 0_r_kind ).or. & + .not.( (tb_use(11) -tb_use(12)) > 0_r_kind ) ) then + write(6,*)'The issue (GSI#678) needs further investigation and be resolved if this kind of obs is used' + write(6,*)'Now, GSI would abort' + call stop2(72) + endif pred_var_clw(1) = log(tb_use(7) - tb_use(8)) !(tb18v - tb18h) pred_var_clw(2) = log(tb_use(11) - tb_use(12)) !(tb36v - tb36h) From dbf5bbb20202cd19fd51a5377e4538213b861cd7 Mon Sep 17 00:00:00 2001 From: TingLei-daprediction Date: Mon, 22 Jan 2024 17:13:25 +0000 Subject: [PATCH 5/5] revoke 'check and abort' change in clw_mod.f90 --- src/gsi/clw_mod.f90 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/gsi/clw_mod.f90 b/src/gsi/clw_mod.f90 index 9cace50de..512aaded0 100644 --- a/src/gsi/clw_mod.f90 +++ b/src/gsi/clw_mod.f90 @@ -983,12 +983,6 @@ subroutine retrieval_amsr2(tb,nchanl,clw,kraintype,ierr) ! ---------- Calculate predictors --------------------------- - if(.not.( (tb_use(7) - tb_use(8)) > 0_r_kind ).or. & - .not.( (tb_use(11) -tb_use(12)) > 0_r_kind ) ) then - write(6,*)'The issue (GSI#678) needs further investigation and be resolved if this kind of obs is used' - write(6,*)'Now, GSI would abort' - call stop2(72) - endif pred_var_clw(1) = log(tb_use(7) - tb_use(8)) !(tb18v - tb18h) pred_var_clw(2) = log(tb_use(11) - tb_use(12)) !(tb36v - tb36h)