anchor.diff:  C ==> EXIT PT IN THIS ELEMENT
   C
           DO I=1,NODE
  -          IF(DABS(DN(I)*DL).LT.ATOL)THEN
  +CMWF 9/30/10
  +C          IF(DABS(DN(I)*DL).LT.ATOL)THEN
  +C ALSO HAD ATOL IN DN_CHECK
  +           IF(DABS(DN(I)).LT.DN_SAFE)THEN
               CALL DN_CHECK
  -     I          (MAXND,NODE,NEQ, DL,ATOL,
  +     I          (MAXND,NODE,NEQ, DL,DN_SAFE,
        I           DN,
        O           I1,I2,I3)
  +            IF (IDEBUG.GT.1) THEN
   C MWF DEBUG
  -C            WRITE(6,*)' ELTRAK DN_CHECK ON BNDY STAYING IDSDT= ',IDSDT, 
  -C     &           ' I1= ',I1,' I2= ',I2,' I3= ',I3, 
  -C     &           ' DN_S= ',(DN_S(II),II=1,NODE)
  +               WRITE(6,*)' ELTRAK DN_CHECK ON BNDY STAYING IDSDT= ',
  +     &              IDSDT,' I1= ',I1,' I2= ',I2,' I3= ',I3 
  +               WRITE(6,*)'   DN_S= ',(DN_S(II),II=1,NODE)
  +               WRITE(6,*)'   DN= ',(DN(II),II=1,NODE)
  +               WRITE(6,*)'   XS= ',(XS(II),II=1,NEQ)
  +            ENDIF
               RETURN
             ENDIF
           ENDDO
  
positive.code:       ICOUNT=0
        IDSDT=1
        DT=DT0
  C
    100 CONTINUE
        ICOUNT=ICOUNT+1
        CALL RKCK_PT
       I    (MAXEQ,MAXND,NEQ,NODE, T,DT,T1,T2,
       I     XW,VT1W,VT2W,XS,
       M     AK1,AK2,AK3,AK4,AK5,AK6,XTEMP,
       O     XOUT5,XOUT4,XERR,DN_S)
  CMWF DEBUG
  C      WRITE(6,*)'ELTRAK AFTER RKCK_PT T= ',T,' DT= ',DT,
  C     &     ' T1= ',T1,' T2= ',T2
  C      WRITE(6,*)'XS= ',(XS(I),I=1,NEQ)
  C      WRITE(6,*)'DN_S= ',(DN_S(I),I=1,NODE)
  C
  C CHECK ERROR IN ALL THREE DIRECTIONS 
  C
  
negative.code: C      ==> TIMESTEP NEEDS TO BE REDUCED
  C
        IF(RATIO.GT.1.0E0)THEN
           IF (IDEBUG.GT.2) THEN
  CMWF DEBUG
              WRITE(6,*)'ELTRAK AFTER ERROR FAILURE T= ',T,' RATIO= ',
       &           RATIO,' DT= ',DT,' DTT= ',DT*SF*((RR)**(0.25E0)) 
           ENDIF
          DTT=DT*SF*((RR)**(0.25E0)) 
          DT=DTT
          GOTO 100
  