function varargout=load_tecplot(varargin) fname = varargin{1}; switch nargout case 0 data_output = 0; conn_output = 0; case 1 data_output = 1; conn_output = 0; case 2 data_output = 1; conn_output = 1; otherwise disp('Improper output count') return end disp(['Loading ',fname,' ...']) tsid = fopen(fname,'r'); header_loop = 1; var_loop = 0; vcount = 0; while header_loop if ~var_loop, buffer = fgetl(tsid); else, var_loop = 0; end len = length(buffer); if buffer(1:5) == 'TITLE' title = buffer(14:(len-1)); elseif buffer(1:9) == 'VARIABLES' var_loop = 1; vstart=14; V = struct('name',0,'data',0); disp('Variables Found:') while var_loop vcount = vcount+1; V(vcount).name = buffer(vstart:(len-1)); disp([' ',V(vcount).name]) buffer = fgetl(tsid); if buffer(1) ~= '"', break, end len = length(buffer); vstart=2; end elseif buffer(1:6) == 'ZONE T' ztitle = buffer(9:(len-1)); elseif buffer(1:2) == ' N' [a,b]=strread(buffer,'%c=%d, ',2); N = b(1); E = b(2); elseif buffer(1:3) == ' DT' header_loop = 0; end end fclose(tsid); disp(['Number of Data Points: ',num2str(N)]) disp(['Number of Element Connections: ',num2str(E)]) if data_output disp(['Loading Point Data... Estimate ',num2str(ceil(vcount*N*4.5951e-06)),'s']) start=vcount+6; eval(['!sed -n ',num2str(start),',+',num2str(N-1),'p ',fname,' > temp.dat']); load temp.dat len = size(temp,2); for ii = 1:len V(ii).data = temp(:,ii); end end if conn_output disp('Loading Connectivity') start = start+N; eval(['!sed -n ',num2str(start),',+',num2str(E-1),'p ',fname,' > temp.dat']); load temp.dat C = temp; end switch nargout case 0 varargout = {}; case 1 varargout = {V}; case 2 varargout = {V,C}; end