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

Annotation of /MITgcm_contrib/mitgcm_tools/mitgcmhistory.m

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


Revision 1.3 - (hide annotations) (download)
Mon Dec 10 05:28:50 2007 UTC (16 years, 5 months ago) by dimitri
Branch: MAIN
Changes since 1.2: +22 -1 lines
When output file is from an ongoing integration, one or more of
the diagnostics may be missing at the last available time step.
Routine modified to accomodate this difference in length.

1 adcroft 1.1 function [vals] = mitgcmhistory(file,varargin)
2     %vals = mitgcmhistory(FILE,EXPR1,...);
3     %
4     %Extracts the expressions "expr1","expr2",... from the file "file".
5     %This assumes output in the standard form defined by the MITgcm
6     %monitor package and is not a replacement for TEXTREAD.
7     %
8     %e.g.
9     %>> vals=mitgcmhistory('output.txt','time_secondsf','ke_mean','ke_max');
10     %>> plot(vals(:,1)/86400,vals(:,2:3));
11     %
12     % Written by adcroft@mit.edu, 2001
13     %$Header:
14    
15     if nargin<2
16     error('You must supply a filename and at least one search expression!')
17     end
18    
19     tfile=sprintf('/tmp/grepexpr%15.15f',rand);
20     for k=1:nargin-1;
21     try
22 dimitri 1.2 eval(['!grep ' varargin{k} ' ' file ' | sed s/.\*=// | sed s/NAN/1.23456789/ > ' tfile])
23 dimitri 1.3
24     % vals(:,k)=textread(tfile,'%f');
25    
26     % When output file is from an ongoing integration, one or more of
27     % the diagnostics may be missing at the last available time step.
28     % The code below accomodates this difference in length.
29    
30     if k==1
31     vals(:,k)=textread(tfile,'%f');
32     lngt=length(vals(:,k));
33     else
34     tmp=textread(tfile,'%f');
35     % allow
36     if abs(length(tmp)-lngt)>1
37     error(sprintf('An error occured while scanning for: %s',varargin{k}));
38     else
39     lngt=min(lngt,length(tmp));
40     vals(1:lngt,k)=tmp(1:lngt);
41     end
42    
43     end
44 adcroft 1.1 delete(tfile)
45     catch
46     delete(tfile)
47     error(sprintf('An error occured while scanning for: %s',varargin{k}));
48     end
49     end
50 dimitri 1.3 vals=vals(1:lngt,:);

  ViewVC Help
Powered by ViewVC 1.1.22