function y = interpol2(x)
%
% Interpolación lineal.
%
% Suponemos que xt(i) < xt(i+1), i = 1, ..., n-1
%
global Ndatos Lastj;
global XIntTable YIntTable;
global XTableMin XTableMax;
global InterpolFueInicializado;

%
% Chequeo de variables globales
%
  if (InterpolFueInicializado ~= 998)
    y = 0;
    return;
  end
%
      
  if ((x >= XTableMin) && (x <= XTableMax))
    j = Lastj;
%
    while (1)  % Lazo incondicional.
%
fprintf('It: j=%d, x=%g, x(j)=%g\n', j, x, XIntTable(j));

      if (x > XIntTable(j))
          
        jplus1 = j + 1;
        if (x < XIntTable(jplus1))
          break;
        else
          j = jplus1;
        end
        
      elseif (x < XIntTable(j))
          
        jplus1 = j;
        j      = j - 1;
        if (x > XIntTable(j))
          break;
        end
        
      else
          
        y     = YIntTable(j);
        Lastj = j;
        return;

      end
    end
%
    Lastj = j;
    y = YIntTable(j) * (x - XIntTable(jplus1)) / ...
                       (XIntTable(j) - XIntTable(jplus1)) + ...
        YIntTable(jplus1) * (x - XIntTable(j)) / ...
                            (XIntTable(jplus1) - XIntTable(j));
%
  else
    y = 0;
  end
end
%
