I am running an I4DVAR experiment, and NLM nudged to climatology u,v,temp,and salt field. my cycle_length is 365.25,and the climatology time sequence is (15, 345) with 30 intervels。my assimilation window is from 2015-12-1 to 2015-12-7. When the adjoint model set up the 3d field using set_3dfldr.F, the Tintrp(1,u,ng) and Tintrp(2,u,ng) are both smaller than time variable which makes interpolation failed. This happens because the get_cycle.F may be wrong in the job<0 case. As the following code shows, it gives the Tend minmum value 15, and Tstr=345, which may be not right. In case that the adjoint model read time backward, so the Tend should be 315 while Tstr=345,so i change the Tend value in the code. In addtion, I also comment out Tdelta=Tdelta+clength in get_3dfldr.F. Am i right?
Code: Select all
IF (Lmulti) THEN
IF (job.gt.0) THEN
Tstr=Finfo(2,ifield,ng) ! Tmax from previous file
ELSE
Tend=Finfo(1,ifield,ng) ! Tmin from previous file
END IF
ELSE
IF (Lcycle.and.(Tindex.eq.ntime)) THEN
! Tend=Tmin !comment out this line and give Tend and Tindex new value.
Tend=Tval(i-1)
Tindex=i-1
ELSE
IF (job.gt.0) THEN
i=MIN(ntime,Tindex+1)
Tend=Tval(i)
ELSE
i=MAX(1,Tindex-1)
Tend=Tval(i)
END IF
END IF
END IF