/[MITgcm]/MITgcm_contrib/mitgcm_tools/mitgcmhistory.m
ViewVC logotype

Diff of /MITgcm_contrib/mitgcm_tools/mitgcmhistory.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1.1.1 by adcroft, Thu Sep 25 13:42:11 2003 UTC revision 1.4 by dimitri, Wed Dec 12 23:42:46 2007 UTC
# Line 19  end Line 19  end
19  tfile=sprintf('/tmp/grepexpr%15.15f',rand);  tfile=sprintf('/tmp/grepexpr%15.15f',rand);
20  for k=1:nargin-1;  for k=1:nargin-1;
21   try   try
22    eval(['!grep ' varargin{k} ' ' file ' | sed s/.\*=// | sed s/NAN/1.23456789/ >! ' tfile])    eval(['!grep ' varargin{k} ' ' file ' | sed s/.\*=// | sed s/NAN/1.23456789/ > ' tfile])
23    vals(:,k)=textread(tfile,'%f');  
24      % vals(:,k)=textread(tfile,'%f');
25      % When output file is from an ongoing integration, one or more of
26      % the diagnostics may be missing at the last available time step.
27      % The code below accomodates this difference in length.
28    
29      if k==1
30       vals(:,k)=textread(tfile,'%f');
31       lngt=length(vals(:,k));
32      else
33       tmp=textread(tfile,'%f');
34       if abs(length(tmp)-lngt)>1
35        % try to read one line at a time in order to deal with special case
36        % of values like, e.g.: "  -2.9248686233802-321"
37        fid=fopen(tfile);
38        n=0;
39        while(~feof(fid))
40         n=n+1;
41         tmp2=fgetl(fid);
42         val=sscanf(tmp2,'%f');
43         if length(val)>1
44          tmp(n)=0;
45         else
46          tmp(n)=val;
47         end
48        end
49        fid=fclose(fid);
50        tmp=tmp(1:n);
51       end
52       if abs(length(tmp)-lngt)>1
53        error(sprintf('An error occured while scanning for: %s',varargin{k}));
54       else
55        lngt=min(lngt,length(tmp));
56        vals(1:lngt,k)=tmp(1:lngt);
57       end
58    
59      end
60    delete(tfile)    delete(tfile)
61   catch   catch
62    delete(tfile)    delete(tfile)
63    error(sprintf('An error occured while scanning for: %s',varargin{k}));    error(sprintf('An error occured while scanning for: %s',varargin{k}));
64   end   end
65  end  end
66    vals=vals(1:lngt,:);

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22