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

Contents of /MITgcm_contrib/mitgcm_tools/mitgcmhistory.m

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


Revision 1.3 - (show 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 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 eval(['!grep ' varargin{k} ' ' file ' | sed s/.\*=// | sed s/NAN/1.23456789/ > ' tfile])
23
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 delete(tfile)
45 catch
46 delete(tfile)
47 error(sprintf('An error occured while scanning for: %s',varargin{k}));
48 end
49 end
50 vals=vals(1:lngt,:);

  ViewVC Help
Powered by ViewVC 1.1.22