Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add update type 14 to jointly assimilate Tb, SM and SCF observations in single analysis #68

Draft
wants to merge 14 commits into
base: develop
Choose a base branch
from
Draft
52 changes: 50 additions & 2 deletions GEOSlandassim_GridComp/clsm_ensupd_enkf_update.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1395,8 +1395,7 @@ subroutine apply_enkf_increments( N_catd, N_ens, update_type, &
cat_progn(n,n_e)%tc4 + cat_progn_incr(n,n_e)%tc4

cat_progn(n,n_e)%ght(1) = &
cat_progn(n,n_e)%ght(1) + cat_progn_incr(n,n_e)%ght(1)

cat_progn(n,n_e)%ght(1) + cat_progn_incr(n,n_e)%ght(1)
end do
end do

Expand Down Expand Up @@ -1427,6 +1426,55 @@ subroutine apply_enkf_increments( N_catd, N_ens, update_type, &

cat_progn_has_changed = .true.

case (14) select_update_type ! soil moisture, temperature and snow cover update

! some of the increments fields below may be zero by design
! (e.g., tc[X]=ght(1)=0 in update_type=13 when only sfmc or sfds obs are assimilated;
! or catdef=0 in update_type 10 or 13 when tile has mineral soil)

if (logit) write (logunit,*) &
'apply_enkf_increments(): applying soil moisture, Tskin/ght1 and snow increments'

do n=1,N_catd
do n_e=1,N_ens

cat_progn(n,n_e)%srfexc = &
cat_progn(n,n_e)%srfexc + cat_progn_incr(n,n_e)%srfexc
cat_progn(n,n_e)%rzexc = &
cat_progn(n,n_e)%rzexc + cat_progn_incr(n,n_e)%rzexc
cat_progn(n,n_e)%catdef = &
cat_progn(n,n_e)%catdef + cat_progn_incr(n,n_e)%catdef

cat_progn(n,n_e)%tc1 = &
cat_progn(n,n_e)%tc1 + cat_progn_incr(n,n_e)%tc1
cat_progn(n,n_e)%tc2 = &
cat_progn(n,n_e)%tc2 + cat_progn_incr(n,n_e)%tc2
cat_progn(n,n_e)%tc4 = &
cat_progn(n,n_e)%tc4 + cat_progn_incr(n,n_e)%tc4

cat_progn(n,n_e)%ght(1) = &
cat_progn(n,n_e)%ght(1) + cat_progn_incr(n,n_e)%ght(1)

do ii=1,N_snow ! for each snow layer

cat_progn(n,n_e)%wesn(ii) = &
cat_progn(n,n_e)%wesn(ii) + cat_progn_incr(n,n_e)%wesn(ii)

cat_progn(n,n_e)%sndz(ii) = &
cat_progn(n,n_e)%sndz(ii) + cat_progn_incr(n,n_e)%sndz(ii)

cat_progn(n,n_e)%htsn(ii) = &
cat_progn(n,n_e)%htsn(ii) + cat_progn_incr(n,n_e)%htsn(ii)

end do

end do
end do

cat_progn_has_changed = .true.

check_snow = .false. ! turn off for now to maintain 0-diff w/ SMAP Tb DA test case

case default

call ldas_abort(LDAS_GENERIC_ERROR, Iam, 'unknown update_type')
Expand Down
Loading
Loading