From 2adf7c7498be92de09bfc943e72c0cf1605ed691 Mon Sep 17 00:00:00 2001 From: ronesy <rlt@nilu.no> Date: Fri, 6 Sep 2024 14:38:48 +0200 Subject: [PATCH] Bug fix to prep_satellite for case when no retrievals found within +/-2 SD of mean and update to prep_regions for satellites for compatability with new version of FPv10.4 for satellites --- prep_regions/get_surfinf.f90 | 3 ++- prep_satellite/average.f90 | 4 ++++ prep_satellite/get_bremen.f90 | 5 +++++ prep_satellite/get_tropomi.f90 | 6 ++++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/prep_regions/get_surfinf.f90 b/prep_regions/get_surfinf.f90 index 4b6eeb8..bd81909 100644 --- a/prep_regions/get_surfinf.f90 +++ b/prep_regions/get_surfinf.f90 @@ -216,7 +216,8 @@ subroutine get_surfinf(files, config, recs, cdryair, obstimes, avetimes, surfinf grid = grid/outheight(1) if ( lsatellite ) then ! convert from column SRR units to that consistent with mole fractions - grid = grid/cdryair(i) + ! no longer needed with new FP code +! grid = grid/cdryair(i) endif ! add to total surface influence surfinf(:,:) = surfinf(:,:) + sum(grid(ix1:ix2,jy1:jy2,:),dim=3) diff --git a/prep_satellite/average.f90 b/prep_satellite/average.f90 index 5ba267b..335590a 100644 --- a/prep_satellite/average.f90 +++ b/prep_satellite/average.f90 @@ -366,6 +366,10 @@ subroutine average(settings, idate, itime, xpoints, ypoints, zpoint1, zpoint2, v iretr_keep(nn) = iretr(n) endif end do + if (nn.eq.0) then + ! reject this box -> no retrievals within +/- 2SD + cycle + endif ! calculate mean of kept retrievals warea(:) = 0. do n = 1, nn diff --git a/prep_satellite/get_bremen.f90 b/prep_satellite/get_bremen.f90 index a9c8e23..5592546 100644 --- a/prep_satellite/get_bremen.f90 +++ b/prep_satellite/get_bremen.f90 @@ -284,6 +284,11 @@ subroutine get_bremen(settings) ! exclude retrievals if not for current day if ( floor(jdmeas).ne.jd ) cycle call caldate(jdmeas, jjjjmmdd, hhmiss) + ! check date and time + if (isnan(real(hhmiss)).or.(jjjjmmdd.lt.0)) then + write(logid,*) 'WARNING: problem with itime, idate for file, nmeas, jdmeas = ',trim(filereadlist(n)), nm, jdmeas + cycle + endif nretr = nretr + 1 idate(nretr) = jjjjmmdd itime(nretr) = hhmiss diff --git a/prep_satellite/get_tropomi.f90 b/prep_satellite/get_tropomi.f90 index 0462e7a..850d7c6 100644 --- a/prep_satellite/get_tropomi.f90 +++ b/prep_satellite/get_tropomi.f90 @@ -411,6 +411,12 @@ subroutine get_tropomi(settings) if ( floor(jdmeas).ne.jd ) cycle if ( vmr(np,nm,nt).ge.bignum ) cycle call caldate(jdmeas, jjjjmmdd, hhmiss) + ! check date and time + if (isnan(real(hhmiss)).or.(jjjjmmdd.lt.0)) then + write(logid,*) 'WARNING: problem with itime, idate for file, nmeas, npixel, jdmeas = ',& + trim(filereadlist(n)), nm, np, jdmeas + cycle + endif nretr = nretr + 1 idate(nretr) = jjjjmmdd itime(nretr) = hhmiss -- GitLab