function [coord,conect,coordint,ccontag]=lee_msuite(Nombre)

% -------------------------------------------------------------------------
% Lee archivos de salida de msuite y lo convierte en un modelo de BEM
% En esta version de asignan condiciones de contorno tipo Robin a los
% agujeros en el dominio. Estos se identifican como los contornos con
% numeros mayores que uno por el msuite.
% -------------------------------------------------------------------------

% --------------------------------- Datos ---------------------------------
% Nombre: nombre del ejemplo
% paso: paso de optimizacion

% conect[]: conectividad de los elementos
% coord[]: coordenadas de los nodos
% coordint[]: coordenadas de los puntos internos

% Los archivos de salida del msuite son nombrados de acuerdo a la siguiente
% convencion
% red_0.dat  Contorno externo
% red_1.dat, red_2.dat, red_n.dat  Contorno de los n agujeros en el dominio

% ----------------------- Lee datos del contorno externo ------------------
% Abre archivo de datos
archivo=[Nombre,'_bdry.dat'];
fid = fopen(archivo,'r');

nnodos=fscanf(fid,'%i');  % Numero de nodos
nada=fscanf(fid,'%s',4);

% Lee coordenadas de los nodos
for i=1:nnodos
     nada=fscanf(fid,'%i',1);         % Numero de nodo
     coord(i,1)=fscanf(fid,'%f',1);   % Coordenada x
     coord(i,2)=fscanf(fid,'%f',1);   % Coordenada y
%     nada=fscanf(fid,'%f',1);         % Parametro h
end

% Lee conectividad
nelem=fscanf(fid,'%i');        % Numero de elementos
nada=fscanf(fid,'%s',3);

% Lee conectividad
for i=1:nelem
     nada=fscanf(fid,'%i',1);            % Numero de elemento
     conect(i,1)=fscanf(fid,'%i',1)+1;   % Primer nodo
     conect(i,2)=fscanf(fid,'%i',1)+1;   % Segundo nodo
     nada=fscanf(fid,'%f',1);            % Info auxiliar
end

status=fclose(fid)

% ------------------------- Lee datos de los agujeros ---------------------
% Lee la informacion de tantos contornos como archivos con el nombre 
% red_n.dat se encuentren en el directorio

fid=0;
agujeros=0;
ccontag=[];
ncontag=0;

while fid~=-1
      
      agujeros=agujeros+1;
      archivo=[Nombre,'_',num2str(agujeros),'.dat'];
      fid=fopen(archivo);    

      if fid==-1
         continue
      end
    
      nnodos_agujero=fscanf(fid,'%i');      % Numero de nodos
      nada=fscanf(fid,'%c',13);

      % Lee coordenadas de los nodos
      for i=1:nnodos_agujero
          nada=fscanf(fid,'%i',1);          % Numero de nodo
          coord(nnodos+i,1)=fscanf(fid,'%f',1);   % Coordenada x
          coord(nnodos+i,2)=fscanf(fid,'%f',1);   % Coordenada y
          nada=fscanf(fid,'%f',1);          % Parametro h
      end

      % Lee conectividad
      nelem_agujero=fscanf(fid,'%i');       % Numero de elementos
      nada=fscanf(fid,'%c',10);

      % Lee conectividad y asigna condiciones de contorno
      for i=1:nelem_agujero
          nada=fscanf(fid,'%i',1);                  % Numero de elemento
          conect(nelem+i,1)=nnodos+fscanf(fid,'%i',1)+1;   % Primer nodo
          conect(nelem+i,2)=nnodos+fscanf(fid,'%i',1)+1;  % Segundo nodo
          
      end
      
      nelem=nelem+nelem_agujero;
      nnodos=nnodos+nnodos_agujero;
      status=fclose(fid);
           
end

% ---------------------- Lee datos de puntos internos ---------------------
% Lee puntos en el interior del dominio 

archivo=[Nombre,'.xy'];
fid=fopen(archivo,'r');    
eofstat = feof(fid);

ninternos=0;
while eofstat~=1

     aux1=fscanf(fid,'%f',1);   % Coordenada x
     aux2=fscanf(fid,'%f',1);   % Coordenada y
     flag=fscanf(fid,'%i',1);   % Flag 0:interior 268435456:contorno

     if flag==0
        ninternos=ninternos+1; 
        coordint(ninternos,1)=aux1; 
        coordint(ninternos,2)=aux2; 
     end

     eofstat = feof(fid);     
end
status=fclose(fid);

% ----------------------------- Grafica BEM mesh --------------------------

figure(3);
hold off
%plot(coord(:,1),coord(:,2),'o','MarkerSize',1.5);     % Nodos
plot(coord(:,1),coord(:,2),'o',1.5);     % Nodos
%axis equal;
xmax=max(coord(:,1));
xmin=min(coord(:,1));
ymax=max(coord(:,2));
ymin=min(coord(:,2));
axis([xmin-0.1*(xmax-xmin) xmax+0.1*(xmax-xmin) ymin-0.1*(ymax-ymin) ...
      ymax+0.1*(ymax-ymin)]);
%axis off;      
title('BEM mesh'); 
hold on;

for i=1:nelem                       % Elementos
    plot([coord(conect(i,1),1) coord(conect(i,2),1)] ,[coord(conect(i,1),2) ...
         coord(conect(i,2),2)],'b')
end

% Grafica normales externas de los elementos
%  for i=1:nelem
%    tx=coord(conect(i,2),1)- coord(conect(i,1),1);  % Componentes del vector tangente
%    ty=coord(conect(i,2),2)- coord(conect(i,1),2);
%    nx=ty;                              % Componentes del vector normal
%    ny=-tx;
%    modn=sqrt(nx^2+ny^2);               % Modulo del vector normal
%    lx=xmax-xmin;
%    nx=0.03*lx*nx/modn;                 % Escala modulo para graficar
%    ny=0.03*lx*ny/modn;
%    xm=coord(conect(i,1),1)+(coord(conect(i,2),1)- coord(conect(i,1),1))/2; % Punto medio del elemento
%    ym=coord(conect(i,1),2)+(coord(conect(i,2),2)- coord(conect(i,1),2))/2;
%    plot([xm xm+nx],[ym ym+ny],'Color','red');
%  end

% Grafica puntos internos
plot(coordint(:,1),coordint(:,2),'o');
drawnow;
jjj=8787