function Asignar_indice_lat(DataBase_Lat_Sorted, Linea_inicial, Linea_final, NewDatName)

%% ---------------------------------------------------------------------------------
% Version:      28/08/2015    
% (c):          Vicente Calabuig Simón
%               vicasim@etsid.upv.es
%
% 1.- Utilidad:
%
%       Sobre una base de datos ordenada según latitudes,  asignar un índice
%       de posición en dicha base a cada grado de latitud.
%
% 2.- Parámetros de entrada:
%
%       DataBase_Lat_Sorted: Archivo .txt/.dat con la base de datos ordenada según latitud creciente (.txt /.dat)
%
% 3.- Parámetros de salida:
%    
%       NewDatName.dat                : Archivo .dat que contiene los indices de posicion de cada grado de latitud   (.dat)
%
% 4.- Ejemplo de uso:
%
%   Asignar_indice_lat('Complete_DataBase_Lat_Sorted.dat', 1, 26590, 'LatIndex_Complete.dat')
%   Asignar_indice_lat('3_12_13_Database_Lat_Sorted.dat', 1, 9449, 'LatIndex_3_12_13.dat')
%
%% -------------------------------------------------------------------------------------------
[Database_Lat_Sorted] = Reading_Database(DataBase_Lat_Sorted, Linea_inicial, Linea_final);

%Bucle de lectura de la LATITUD (solo parte entera) del elemento i-ésimo:
Lat = [];
for i = Linea_inicial : Linea_final
    CompleteString  = Database_Lat_Sorted{i};
    Lat_i           = str2num(CompleteString(3:6));
    Lat             = [Lat, Lat_i];
end
% Bucle de busqueda de lat_buscada y asignacion del indice correspondiente:
lat_buscada         = -90;
indice_asignado     = [];
posicion            = Linea_inicial;
n_iteracion         = 0;
lat_posicion_array  = [];
LatIndex            = [0,0];
while(posicion <  Linea_final)
    n_iteracion    = n_iteracion + 1;
    lat_posicion   = Lat(posicion);
    check = 1;
    if (lat_buscada > lat_posicion)
        check = 0;
        posicion = posicion + 1;
        lat_posicion       = Lat(posicion);
    end
    if (lat_buscada == lat_posicion )
        indice_asignado = [posicion];
        LatIndex = [LatIndex ;lat_buscada, indice_asignado];
        lat_buscada = lat_buscada + 1;
        posicion = posicion + 1;
        
    elseif (lat_buscada ~= lat_posicion && lat_buscada~=LatIndex(end, 1) && check)
        lat_buscada = lat_buscada + 1;
    end
end
%Elminacion de la fila 0 0 inicial
LatIndex = LatIndex(2:end, 1:2);
% Conversion de array a cell:
for i = 1 : length(LatIndex)
    LatIndexCell(i, 1) = {LatIndex(i,1)};
    LatIndexCell(i, 2)  = {LatIndex(i, 2)};
end
%Escritura en un fichero .dat
CellArray2TextFile(NewDatName,LatIndexCell);
