function s=read_icq4_nomemleak(flnm);

fp=fopen(flnm,'r');
s.codename=deblank(fgetl(fp));
s.casename=deblank(fgetl(fp));
s.inqfilename=deblank(fgetl(fp));
s.initcondname=deblank(fgetl(fp));
l=fgetl(fp);
A=sscanf(l,'%d %d');
s.nn=A(1);s.nnv=A(2);
l=fgetl(fp);
A=sscanf(l,'%d %d %d %d');
s.day=A(1);s.month=A(2);s.year=A(3);s.curr_seconds=A(4);

s.HMID=zeros(s.nn,1);
s.UMID=zeros(s.nn,1);
s.VMID=zeros(s.nn,1);
s.HOLD=zeros(s.nn,1);
s.UOLD=zeros(s.nn,1);
s.VOLD=zeros(s.nn,1);
s.ZMID=zeros(s.nn,s.nnv);
s.ZOLD=zeros(s.nn,s.nnv);
s.UZMID=zeros(s.nn,s.nnv);
s.VZMID=zeros(s.nn,s.nnv);
s.WZMID=zeros(s.nn,s.nnv);
s.Q2MID=zeros(s.nn,s.nnv);
s.Q2LMID=zeros(s.nn,s.nnv);
s.TMPMID=zeros(s.nn,s.nnv);
s.SALMID=zeros(s.nn,s.nnv); 

A=fscanf(fp,'%f',[6,s.nn])';
s.HMID=A(:,1);
s.UMID=A(:,2);
s.VMID=A(:,3);
s.HOLD=A(:,4);
s.UOLD=A(:,5);
s.VOLD=A(:,6);

for nv=1:s.nnv,
   A=fscanf(fp,'%f',[9,s.nn])';
   s.ZMID(:,nv)=A(:,1);
   s.ZOLD(:,nv)=A(:,2);
   s.UZMID(:,nv)=A(:,3);
   s.VZMID(:,nv)=A(:,4);
   s.WZMID(:,nv)=A(:,5);
   s.Q2MID(:,nv)=A(:,6);
   s.Q2LMID(:,nv)=A(:,7);
   s.TMPMID(:,nv)=A(:,8);
   s.SALMID(:,nv)=A(:,9);
end
fclose(fp);