anchor.diff:  
       CALL ATUALIZAQ(H_, N, NPT, Q_, DELTA, Y_, X, F, t) 
   
  +    ! Test sufficient reduction of the objective function and filter
  +
   23  IF ( F .LE. FZ + 0.1D0 * (QX - QZ) ) THEN
   
  -       ! New criterium
  -
          FEAS = 0.0D0
  +
          do I = 1,M
  +
             CALL UEVALC(N,X,I,C,FLAG)
             IF ( FLAG .NE. 0 ) GOTO 31          
  +
             IF ( EQUATN(I) ) THEN
                FEAS = MAX(FEAS,ABS(C))
             ELSE
                FEAS = MAX(FEAS,MAX(0.0D0,C))
             END IF
  +
          end do
   
  +       ! Filter test
  +
          forbidden = filterTest(F,FEAS,ALPHA,nf,ffilter,hfilter)
   
          if ( .not. forbidden ) then
  -!!$          IF ((F-FOPT) .GE. (0.7D0*VQUAD)) THEN
  +
  +          ! Increase TR radius in case of high decrease
  +
             IF ( F - FZ .GE. 0.7D0 * (QX - QZ) .OR. &
                  DISTZ .LT. DELTA ) THEN
                DELTA = DELTA  
  
positive.code:           DO I=1, N
               XNOVO(I) = X(I)
            END DO
            FLAG = 0
            GO TO 31 
         end if
  
  
negative.code:     intent(inout) :: delta,f,x
  
      ! LOCAL ARRAYS
      REAL(8) :: D(n),XNOVO(n),VETOR1(NPT + N + 1),Z(n)
  
      ! LOCAL SCALARS
      logical :: forbidden
  