function create_crocoin(parent_name,child_name,rfac,lev)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  Create a croco.in.# child input file from a parent input file
%
%  Further Information:  
%  http://www.croco-ocean.org
%  
%  This file is part of CROCOTOOLS
%
%  CROCOTOOLS is free software; you can redistribute it and/or modify
%  it under the terms of the GNU General Public License as published
%  by the Free Software Foundation; either version 2 of the License,
%  or (at your option) any later version.
%
%  CROCOTOOLS is distributed in the hope that it will be useful, but
%  WITHOUT ANY WARRANTY; without even the implied warranty of
%  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%  GNU General Public License for more details.
%
%  You should have received a copy of the GNU General Public License
%  along with this program; if not, write to the Free Software
%  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
%  MA  02111-1307  USA
%
%  Copyright (c) 2006 by Pierrick Penven 
%  e-mail:Pierrick.Penven@ird.fr  
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp(['  Create : ',child_name])
fid1=fopen(parent_name,'r');
eval(['!rm -f ',child_name])
fid2=fopen(child_name,'w');
maxlen=0;
blankline=' ';
blankline=repmat(blankline,1,200);
lblank=length(blankline);
while 1==1
  tline=fgetl(fid1);
  ltline=length(tline);
  myline=blankline;
  if ltline>1
    myline(1:min([ltline,lblank]))=tline(1:min([ltline,lblank]));
  end
  if ltline>=maxlen
    maxlen=ltline;
  end
  if ~ischar(tline)
    break
  end
  fprintf(fid2,'%s\n',tline);
  
  %%
  
  if strcmp(myline(1:6),'title:');
    tline=fgetl(fid1);
    if isempty(lev)
      fprintf(fid2,'%s\n',[tline,' ZOOM LEVEL #1']);
    else
      warning off
      if str2num(tline(end))==lev
	tline(end)=num2str(lev+1);
      end
      fprintf(fid2,'%s\n',tline);
      warning on
    end
  end
  
  %%
  
  if strcmp(myline(1:11),'start_date:');
      tline=fgetl(fid1);
      fprintf(fid2,'%s\n',tline);
  end
  
%   %%  this time stepping section DO NOT WORk PROPERLY
%   
%   if strcmp(myline(1:14),'time_stepping:');
%     tline=fgetl(fid1);
% %    A=sscanf(tline,'%f'); % %f if float %s string
%     A=textscan(tline,'%f %s %s %f')
%     if isempty(A{1})
%        disp('Warning: Fist argument is not an integer...')
%        A=textscan(tline,'%s %s %s %f');
%        ntimes=A{1}{1};
%     else
%        disp('In here')
%        ntimes=A{1}
%        disp('nocrash')
%     end
%     ntimes=A{1}{1};
%     dt=A{2}{1};
%     ndtfast=A{3}{1};
%     ninfo=A{4};
% %    if rem(dt,rfac)~=0
% %      disp('Warning: child time step is not an integer...')
% %    end
%     if class(dt)=='char'
%       disp('Warning: child time step is not an integer...')
%     else   
%       dt=dt/rfac;
%     end
%     ntimes=1;
%     fprintf(fid2,'%s\n',['            ',num2str(ntimes),...
% 		    '        ',num2str(dt),...
% 		    '        ',num2str(ndtfast),...
% 		    '        ',num2str(ninfo)]);
%     
%   end
  
  %%
  
  if strcmp(myline(1:14),'time_stepping:');
      tline=fgetl(fid1);
      A=textscan(tline,'%f %f %f %f');
      ntimes=A{1};
      dt=A{2};
      ndtfast=A{3};
      ninfo=A{4};
      if rem(dt,rfac)~=0
          disp('Warning: child time step is not an integer...')
      else
          dt=dt/rfac;
      end
      ntimes=1;
      fprintf(fid2,'%s\n',['            ',num2str(ntimes),...
          '        ',num2str(dt),...
          '        ',num2str(ndtfast),...
          '        ',num2str(ninfo)]);
      
  end
  
  
  %%
  
  if strcmp(myline(1:5),'grid:') | ...
	strcmp(myline(1:8),'forcing:') | ...
	strcmp(myline(1:13),'bulk_forcing:')
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:12),'climatology:') | ...
	strcmp(myline(1:9),'boundary:')
    tline=fgetl(fid1);
    fprintf(fid2,'%s\n','  XXXXXXXXX');
  end
  
  %%
  
  if strcmp(myline(1:8),'initial:')
    tline=fgetl(fid1);
    A=sscanf(tline,'%f');
    nrrec=A(1);
    fprintf(fid2,'%s\n',['          ',num2str(nrrec)]);
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:8),'restart:')
    tline=fgetl(fid1);
    A=textscan(tline,'%f %f');
    if isempty(A{1})
      disp('Warning: Fist argument is not an integer...')
      A=textscan(tline,'%s %f');
      nrst=A{1}{1};
    else
      nrst=A{1};
      nrst=rfac*nrst; 
    end
    nrpfrst=A{2};
    fprintf(fid2,'%s\n',['                 ',num2str(nrst),...
		    '   ',num2str(nrpfrst)]);
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:8),'history:')
    tline=fgetl(fid1);
    A=textscan(tline,'%s %f %f');
    if isempty(A{2})
      disp('Warning: History time step is not an integer...')
      A=textscan(tline,'%s %s %f');
      nwrt=A{2}{1};
    else
      nwrt=A{2};
      nwrt=rfac*nwrt;
    end

    ldefhis=A{1}{1};
    nrpfhis=A{3};
    fprintf(fid2,'%s\n',['            ',ldefhis,...
		    '     ',num2str(nwrt),...
		    '     ',num2str(nrpfhis)]);
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  if strcmp(myline(1:9),'averages:')
    tline=fgetl(fid1);
    A=textscan(tline,'%f %f %f');
    if isempty(A{2})
      disp('Warning: Average time step is not an integer...')
      A=textscan(tline,'%f %s %f');
      navg=A{2}{1};
    else
      navg=A{2};
      navg=rfac*navg;
    end
    ntsavg=A{1};
    nrpfavg=A{3};
    fprintf(fid2,'%s\n',['            ',num2str(ntsavg),...
		    '     ',num2str(navg),...
		    '     ',num2str(nrpfavg)]);
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:12),'diagnostics:')
    tline=fgetl(fid1);
    A=textscan(tline,'%s %f %f');
    if isempty(A{2})
      A=textscan(tline,'%s %s %f');
      nwrtdia=A{2}{1};
    else
      nwrtdia=A{2};
      nwrtdia=rfac*nwrtdia;
    end
    ldefdia=A{1}{1};
    nrpfdia=A{3};
    fprintf(fid2,'%s\n',['            ',ldefdia,...
		    '     ',num2str(nwrtdia),...
		    '     ',num2str(nrpfdia)]);
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:9),'diag_avg:')
    tline=fgetl(fid1);
    A=textscan(tline,'%s %f %f %f %f');
    if isempty(A{3})
      A=textscan(tline,'%s %f %s %f %f');
      nwrtdia_avg=A{3}{1};
    else 
      nwrtdia_avg=A{3};
      nwrtdia_avg=rfac*nwrtdia_avg;
    end
    ldefdia_avg=A{1}{1};
    ntsdia_avg=A{2};
    nrpfdia_avg=A{4};
    fprintf(fid2,'%s\n',['    ',ldefdia_avg,...
		    '     ',num2str(ntsdia_avg),...
		    '     ',num2str(nwrtdia_avg),...
		    '     ',num2str(nrpfdia_avg)]);
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:13),'diagnosticsM:')
    tline=fgetl(fid1);
    A=textscan(tline,'%s %f %f');
    if isempty(A{2})
      A=textscan(tline,'%s %s %f');
      nwrtdiaM=A{2}{1};
    else
      nwrtdiaM=A{2};
      nwrtdiaM=rfac*nwrtdiaM;
    end
    ldefdiaM=A{1}{1};
    nrpfdiaM=A{3};
    fprintf(fid2,'%s\n',['    ',ldefdiaM,...
		    '    ',num2str(nwrtdiaM),...
		    '    ',num2str(nrpfdiaM)]);
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:10),'diagM_avg:')
    tline=fgetl(fid1);
    A=textscan(tline,'%s %f %f %f');
    if isempty(A{3})
      A=textscan(tline,'%s %f %s %f');
      nwrtdiaM_avg=A{3}{1};
    else
      nwrtdiaM_avg=A{3};
      nwrtdiaM_avg=rfac*nwrtdiaM_avg;
    end
    ldefdiaM_avg=A{1}{1};
    ntsdiaM_avg=A{2};
    nrpfdiaM_avg=A{4};
    fprintf(fid2,'%s\n',['     ',ldefdiaM_avg,...
		    '     ',num2str(ntsdiaM_avg),...
		    '     ',num2str(nwrtdiaM_avg),...
		    '     ',num2str(nrpfdiaM_avg)]);
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:16),'diagnostics_bio:')
    tline=fgetl(fid1);
    A=textscan(tline,'%s %f %f');
    if isempty(A{2})
      A=textscan(tline,'%s %s %f');
      nwrtdiabio=A{2}{1};
    else
      nwrtdiabio=A{2};
      nwrtdiabio=rfac*nwrtdiabio;
    end
    ldefdiabio=A{1}{1};
    nrpfdiabio=A{3};
    fprintf(fid2,'%s\n',['    ',ldefdiabio,...
		    '    ',num2str(nwrtdiabio),...
		    '    ',num2str(nrpfdiabio)]);
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:12),'diagbio_avg:')
    tline=fgetl(fid1);
    A=textscan(tline,'%s %f %f %f');
    if isempty(A{3})
      A=textscan(tline,'%s %f %s %f');
      nwrtdiabio_avg=A{3}{1};
    else
      nwrtdiabio_avg=A{3};
      nwrtdiabio_avg=rfac*nwrtdiabio_avg;
    end
    ldefdiabio_avg=A{1}{1};
    ntsdiabio_avg=A{2};
    nrpfdiabio_avg=A{4};
    fprintf(fid2,'%s\n',['     ',ldefdiabio_avg,...
		    '     ',num2str(ntsdiabio_avg),...
		    '     ',num2str(nwrtdiabio_avg),...
		    '     ',num2str(nrpfdiabio_avg)]);
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:8),'biology:')
    tline=fgetl(fid1);
    fname=rem_blanks(tline);
    if isempty(lev)
      fprintf(fid2,'%s\n',['  ',fname,'.1']);
    else
      fname(end)=num2str(lev+1);
      fprintf(fid2,'%s\n',['  ',fname]);
    end
  end
  
  %%
  
  if strcmp(myline(1:7),'sponge:')
    tline=fgetl(fid1);
     fprintf(fid2,'%s\n','                   XXX              XXX');
%     A=sscanf(tline,'%f');
%     xsponge=A(1);
%     xsponge=round(xsponge/rfac);
%     vsponge=A(2);
%     vsponge=round(vsponge/(rfac^2));
%     fprintf(fid2,'%s\n',['                   ',num2str(xsponge,3),...
% 		    '           ',num2str(vsponge,3)]);
  end
end
fclose(fid1);
fclose(fid2);
return
%
function lineout=rem_blanks(line)
len=length(line);
n=0;
for i=1:len
  if line(i)~=' '
    n=n+1;
    lineout(n)=line(i);
  end
end
return
