depth of assimilated data

Discussion about tangent linear and adjoint models, variational data assimilation, and other related issues.

Moderators: arango, robertson

Message
Author
xavierC
Posts: 12
Joined: Thu Jul 16, 2009 5:17 pm

depth of assimilated data

Hi all,
I am assimilating near surface current data with I4DVAR capability of ROMS. I noticed that the rejection of my data is strongly dependent from the depth i put them:
i.e
-pure surface (obs_depth=0) i get 100% data rejected
-obs_depth=-7 i get almost 100% of data accepted
-obs_depth=-1 i get around 30% of data rejected

My data are not particularly littoral with minimum depth of few 100 meters and 35 vertical levels.

I understood more or less the 0 case, but why such a difference between 7m and 1m ?

Thanks
Xavier

xavierC
Posts: 12
Joined: Thu Jul 16, 2009 5:17 pm

Re: depth of assimilated data

I guess it is zeta related and that obs_depth is absolute and not relative to zeta.

jivica
Posts: 127
Joined: Mon May 05, 2003 2:41 pm
Location: The University of Western Australia, Perth, Australia

Re: depth of assimilated data

ROMS is not black box model, and it is very well documented. In that sense you should dig into the source and, for example, have a look at the Utility/extract_obs.F

There you will find relevant part of the code:

Code: Select all

``````          p2=REAL(i2-i1,r8)*(Xobs(iobs)-REAL(i1,r8))
q2=REAL(j2-j1,r8)*(Yobs(iobs)-REAL(j1,r8))
p1=1.0_r8-p2
q1=1.0_r8-q2
w11=p1*q1
w21=p2*q1
w22=p2*q2
w12=p1*q2
IF (Zobs(iobs).gt.0.0_r8) THEN
k1=MAX(1,INT(Zobs(iobs)))          ! Positions in fractional
k2=MIN(INT(Zobs(iobs))+1,N(ng))    ! levels
r2=REAL(k2-k1,r8)*(Zobs(iobs)-REAL(k1,r8))
r1=1.0_r8-r2
ELSE
IF (Zobs(iobs).ge.Ztop) THEN
r1=0.0_r8                        ! If shallower, ignore.
r2=0.0_r8
ObsScale(iobs)=0.0_r8
ELSE IF (Zbot.ge.Zobs(iobs)) THEN
r1=0.0_r8                        ! If deeper, ignore.
r2=0.0_r8
ObsScale(iobs)=0.0_r8
ELSE
DO k=N(ng),2,-1                  ! Otherwise, interpolate
Ztop=Adepth(i1,j1,k  )         ! to fractional level
IF ((Ztop.gt.Zobs(iobs)).and.(Zobs(iobs).ge.Zbot)) THEN
k1=k-1
k2=k
END IF
END DO