Opened 13 years ago

Closed 13 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.

Change History (1)

comment:1 by arango, 13 years ago

Resolution: Fixed
Status: newclosed
Note: See TracTickets for help on using tickets.