Opened 14 years ago
Closed 14 years ago
#490 closed bug (Fixed)
Corrected adjoint time management logic in get_cycle.F
Reported by: | arango | Owned by: | arango |
---|---|---|---|
Priority: | major | Milestone: | Adjoint Based Algorithms |
Component: | Adjoint | Version: | 3.4 |
Keywords: | Cc: |
Description
Corrected the lower time value (Tstr) in get_cycle.F for adjoint applications. Now we have the following statements around line 161:
tstart=Tmin IF (model.eq.iADM) THEN ! backward time logic DO i=2,ntime IF ((tstart.lt.mday).and.(mday.le.Tval(i))) THEN Tindex=i-1 Tstr=tstart EXIT END IF tstart=Tval(i) END DO ELSE ! forward time logic DO i=2,ntime IF ((tstart.le.mday).and.(mday.lt.Tval(i))) THEN Tindex=i-1 Tstr=tstart EXIT END IF tstart=Tval(i) END DO END IF
We need to have a different inequality in the IF-statement for backward time logic in adjoint applications. This was affecting the GST drivers when selecting the initial snapshot times to interpolate the forward trajectory. It is weird that we didn't noticed this problem in the 4D-Var algorithms. The reason for that is that the time window between the NLM and ADM is the same. In the GST algorithms, we can have smaller time-window from the forward trajectory and the bug appears...
I also initialized the local LwrtGST switch in the afte_ocean.h driver to allow check-pointing.
There is a parallel issue with the GST drivers. There is an MPI hang-on during the iterations. I am hunting for this elusive parallel (MPI) problem.