@@ -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