Skip to content

Commit d8665db

Browse files
committed
check that CYGNSS daily and subdaily sm obs are not both assimilated; check that dtstep_assim<=6h for CYGNSS sm obs (clsm_ensupd_read_obs.F90, clsm_ensupd_upd_routines.F90)
1 parent 0599e29 commit d8665db

File tree

2 files changed

+43
-12
lines changed

2 files changed

+43
-12
lines changed

GEOSlandassim_GridComp/clsm_ensupd_read_obs.F90

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2156,19 +2156,20 @@ subroutine read_obs_sm_CYGNSS( &
21562156

21572157
!---------------------------------------------------------------------
21582158
!
2159-
! Routine to read in CYGNSS soil moisture obs from netCDF files and apply mask.
2159+
! Routine to read CYGNSS soil moisture obs from netCDF file and apply mask.
21602160
! https://podaac.jpl.nasa.gov/dataset/CYGNSS_L3_SOIL_MOISTURE_V3.2
2161-
! CYGNSS soil moisture obs are in volumetric units (m3 m-3) with a spatial
2162-
! resolution of 0.3 Decimal Degrees x 0.37 Decimal Degrees.
2163-
! They are daily files containing daily (obs_param_nml(.)%descr = CYGNSS_SM_daily)
2164-
! and subdaily SM estimates (obs_param_nml(.)%descr = CYGNSS_SM_6hr). The
2165-
! subdaily values are for 6 hr time intervals, 0-6hr, 6-12hr, 12-18hr, 18-24hr.
2166-
! The subdaily values are assimilated at 3z, 9z, 15z, 21z. If the assimilation
2167-
! window is more than 6 hr the code will error out. The daily values are assimilated
2168-
! at 12z. The assumption is that either the daily or subdaily values are assimilated,
2169-
! but the code will assimilate both if in the nml.
2170-
!
2171-
! A. Fox, Jan 2025
2161+
! CYGNSS soil moisture obs are in volumetric units (m3 m-3) on the
2162+
! 36-km EASEv2 global cylindrical grid.
2163+
! Obs are in files containing daily (obs_param_nml(.)%descr = CYGNSS_SM_daily)
2164+
! and subdaily SM estimates (obs_param_nml(.)%descr = CYGNSS_SM_6hr).
2165+
! Daily values are for 0-24z and assimilated at 12z.
2166+
! Subdaily values are for 6 hr time intervals, 0-6z, 6-12z, 12-18z, and 18-24z
2167+
! and assimilated at 3z, 9z, 15z, 21z.
2168+
! Assimilation window must not be longer than 6 hours.
2169+
! Subroutine read_ens_upd_inputs() ensures that only daily *or* subdaily
2170+
! obs are assimilated.
2171+
!
2172+
! A. Fox, reichle, Jan 2025
21722173
!
21732174
! --------------------------------------------------------------------
21742175

@@ -2265,6 +2266,13 @@ subroutine read_obs_sm_CYGNSS( &
22652266
if ( datetime_lt_refdatetime(date_time, date_time_obs_beg) .or. &
22662267
datetime_lt_refdatetime(date_time_obs_end, date_time) ) return
22672268

2269+
! make sure assimilation window is no longer than 6 hours
2270+
2271+
if (dtstep_assim>6*60*60) then
2272+
err_msg = 'dtstep_assim too long for CYGNSS soil moisture obs'
2273+
call ldas_abort(LDAS_GENERIC_ERROR, Iam, err_msg)
2274+
end if
2275+
22682276
! determine if reading daily or subdaily obs
22692277

22702278
if (trim(this_obs_param%descr) == 'CYGNSS_SM_daily') then

GEOSlandassim_GridComp/clsm_ensupd_upd_routines.F90

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,30 @@ subroutine read_ens_upd_inputs( &
617617

618618
end if
619619

620+
! make sure only sub-daily or daily CYGNSS sm obs are assimilated
620621

622+
k=0
623+
624+
do i=1,N_obs_param
625+
626+
if (obs_param(i)%assim) then
627+
628+
select case (trim(obs_param(i)%descr))
629+
630+
case('CYGNSS_SM_daily','CYGNSS_SM_6hr'); k=k+1
631+
632+
end select
633+
634+
end if
635+
636+
end do
637+
638+
if (k>1) then
639+
640+
err_msg = 'cannot assimilate CYGNSS_SM_daily *and* CYGNSS_SM_6hr'
641+
call ldas_abort(LDAS_GENERIC_ERROR, Iam, err_msg)
642+
643+
end if
621644

622645
! -------------------------------------------------------------
623646
!

0 commit comments

Comments
 (0)