Skip to content

Commit 22feaf1

Browse files
Merge branch 'develop' into feature/amfox/update_ASCAT_obs_reader
2 parents b0555b3 + 930dc28 commit 22feaf1

File tree

4 files changed

+568
-72
lines changed

4 files changed

+568
-72
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
### Added
1313

14+
- New update_type for joint 3d soil moisture and 1d snow analysis (Tb+sfmc+sfds+SCF obs)
15+
1416
### Changed
1517

1618
- Updated read_obs_sm_ASCAT_EUMET to work with both new and old filename formats.

GEOSlandassim_GridComp/clsm_ensupd_enkf_update.F90

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1339,6 +1339,8 @@ subroutine apply_enkf_increments( N_catd, N_ens, update_type, &
13391339

13401340
cat_progn_has_changed = .false.
13411341

1342+
! ------------------------------------------------------------------
1343+
13421344
case (4,7) select_update_type ! Tskin/ght1 update
13431345

13441346
if (logit) write (logunit,*) &
@@ -1361,13 +1363,17 @@ subroutine apply_enkf_increments( N_catd, N_ens, update_type, &
13611363

13621364
cat_progn_has_changed = .true.
13631365

1366+
! ------------------------------------------------------------------
1367+
13641368
case (5) select_update_type ! Tskin/ght1 update
13651369

13661370
if (logit) write (logunit,*) &
13671371
'apply_enkf_increments(): NOT applying Tskin/ght1 increments'
13681372

13691373
cat_progn_has_changed = .false.
13701374

1375+
! ------------------------------------------------------------------
1376+
13711377
case (6,8,9,10,13) select_update_type ! soil moisture and temperature update
13721378

13731379
! some of the increments fields below may be zero by design
@@ -1395,20 +1401,23 @@ subroutine apply_enkf_increments( N_catd, N_ens, update_type, &
13951401
cat_progn(n,n_e)%tc4 + cat_progn_incr(n,n_e)%tc4
13961402

13971403
cat_progn(n,n_e)%ght(1) = &
1398-
cat_progn(n,n_e)%ght(1) + cat_progn_incr(n,n_e)%ght(1)
1399-
1404+
cat_progn(n,n_e)%ght(1) + cat_progn_incr(n,n_e)%ght(1)
14001405
end do
14011406
end do
14021407

14031408
cat_progn_has_changed = .true.
14041409

1405-
check_snow = .false. ! turn off for now to maintain 0-diff w/ SMAP Tb DA test case
1410+
if (update_type==10) check_snow = .false. ! turn off for now to maintain 0-diff w/ SMAP Tb DA test case
1411+
1412+
! ------------------------------------------------------------------
14061413

1407-
case(11) select_update_type ! empirical MODIS SCF update
1414+
case(11) select_update_type ! snow update
14081415

1409-
do n=1,N_catd ! for each tile
1416+
if (logit) write (logunit,*) 'apply_enkf_increments(): applying snow increments'
1417+
1418+
do n=1,N_catd ! for each tile
14101419

1411-
do n_e=1,N_ens ! for each ensemble member
1420+
do n_e=1,N_ens ! for each ensemble member
14121421

14131422
do ii=1,N_snow ! for each snow layer
14141423

@@ -1427,6 +1436,57 @@ subroutine apply_enkf_increments( N_catd, N_ens, update_type, &
14271436

14281437
cat_progn_has_changed = .true.
14291438

1439+
! ------------------------------------------------------------------
1440+
1441+
case (12) select_update_type ! soil moisture, temperature, and snow update
1442+
1443+
! some of the increments fields below may be zero by design
1444+
! (e.g., tc[X]=ght(1)=0 in update_type=13 when only sfmc or sfds obs are assimilated;
1445+
! or catdef=0 in update_type 10 or 13 when tile has mineral soil)
1446+
1447+
if (logit) write (logunit,*) &
1448+
'apply_enkf_increments(): applying soil moisture, Tskin/ght1 and snow increments'
1449+
1450+
do n=1,N_catd
1451+
do n_e=1,N_ens
1452+
1453+
cat_progn(n,n_e)%srfexc = &
1454+
cat_progn(n,n_e)%srfexc + cat_progn_incr(n,n_e)%srfexc
1455+
cat_progn(n,n_e)%rzexc = &
1456+
cat_progn(n,n_e)%rzexc + cat_progn_incr(n,n_e)%rzexc
1457+
cat_progn(n,n_e)%catdef = &
1458+
cat_progn(n,n_e)%catdef + cat_progn_incr(n,n_e)%catdef
1459+
1460+
cat_progn(n,n_e)%tc1 = &
1461+
cat_progn(n,n_e)%tc1 + cat_progn_incr(n,n_e)%tc1
1462+
cat_progn(n,n_e)%tc2 = &
1463+
cat_progn(n,n_e)%tc2 + cat_progn_incr(n,n_e)%tc2
1464+
cat_progn(n,n_e)%tc4 = &
1465+
cat_progn(n,n_e)%tc4 + cat_progn_incr(n,n_e)%tc4
1466+
1467+
cat_progn(n,n_e)%ght(1) = &
1468+
cat_progn(n,n_e)%ght(1) + cat_progn_incr(n,n_e)%ght(1)
1469+
1470+
do ii=1,N_snow ! for each snow layer
1471+
1472+
cat_progn(n,n_e)%wesn(ii) = &
1473+
cat_progn(n,n_e)%wesn(ii) + cat_progn_incr(n,n_e)%wesn(ii)
1474+
1475+
cat_progn(n,n_e)%sndz(ii) = &
1476+
cat_progn(n,n_e)%sndz(ii) + cat_progn_incr(n,n_e)%sndz(ii)
1477+
1478+
cat_progn(n,n_e)%htsn(ii) = &
1479+
cat_progn(n,n_e)%htsn(ii) + cat_progn_incr(n,n_e)%htsn(ii)
1480+
1481+
end do
1482+
1483+
end do
1484+
end do
1485+
1486+
cat_progn_has_changed = .true.
1487+
1488+
! ------------------------------------------------------------------
1489+
14301490
case default
14311491

14321492
call ldas_abort(LDAS_GENERIC_ERROR, Iam, 'unknown update_type')

0 commit comments

Comments
 (0)