/[MITgcm]/MITgcm_contrib/gael/matlab_class/ecco_v4/alldiag_load.m
ViewVC logotype

Annotation of /MITgcm_contrib/gael/matlab_class/ecco_v4/alldiag_load.m

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


Revision 1.2 - (hide annotations) (download)
Fri Jan 7 22:49:11 2011 UTC (14 years, 6 months ago) by gforget
Branch: MAIN
Changes since 1.1: +16 -1 lines
- alldiag_load.m : subtract monthly climatology --> alldiag_anom
- basic_diags_ecco_disp.m: use alldiag_anom for some fields

1 gforget 1.2 function [alldiag,alldiag_anom]=alldiag_load(dirIn,suffIn,timeStep);
2 gforget 1.1
3     %get list of files
4     listFiles=dir([dirIn '/diags_' suffIn '*.mat']);
5     %get time steps and sort listFiles
6     listSteps=[]; for tt=1:length(listFiles); listSteps=[listSteps;str2num(listFiles(tt).name(13:end-4))]; end;
7     [listSteps,ii]=sort(listSteps);
8     listFiles=listFiles(ii);
9     %compute actual times
10     nTimes=length(listSteps);
11     listTimes=listSteps*timeStep/86400;
12     %initialize alldiag
13     alldiag=open([dirIn listFiles(1).name]);
14     listDiags=fieldnames(alldiag);
15     %loop and concatenate
16     for tt=2:length(listSteps);
17     tmpdiag=open([dirIn listFiles(tt).name]);
18     for ii=1:length(listDiags);
19     %get data:
20     eval(['tmp1=tmpdiag.' listDiags{ii} '; tmp2=alldiag.' listDiags{ii} ';']);
21     %determine the time dimension:
22     if strcmp(class(tmp1),'gcmfaces'); nDim=size(tmp1{1}); else; nDim=size(tmp1); end;
23     if ~isempty(find(nDim==0)); nDim=0;
24     elseif nDim(end)==1; nDim=length(nDim)-1;
25     else; nDim=length(nDim);
26     end;
27     %concatenate along the time dimension:
28     if nDim>0; tmp2=cat(nDim+1,tmp2,tmp1); eval(['alldiag.' listDiags{ii} '=tmp2;']); end;
29     end;
30     end;
31     %clean empty diags up
32     for ii=1:length(listDiags);
33     eval(['tmp1=isempty(alldiag.' listDiags{ii} ');']);
34     if tmp1; alldiag=rmfield(alldiag,listDiags{ii}); end;
35     end;
36     %complement alldiag
37     listDiags=fieldnames(alldiag);
38     alldiag.listSteps=listSteps;
39     alldiag.listTimes=listTimes;
40     alldiag.listDiags=listDiags;
41 gforget 1.2 %subtract monthly climatology:
42     alldiag_anom=alldiag;
43     mm=mod([1:length(listSteps)],12); mm(mm==0)=12;
44     for ii=1:length(listDiags);
45     tmp1=getfield(alldiag,listDiags{ii});
46     if strcmp(class(tmp1),'gcmfaces'); nDim=size(tmp1{1}); else; nDim=size(tmp1); end;
47     nDim=length(nDim); tt=''; for jj=1:nDim-1; tt=[tt ':,']; end;
48     eval(['tmp2=tmp1(' tt '1:12);']);
49     for jj=1:12;
50     JJ=find(mm==jj); eval(['tmp2(' tt 'jj)=mean(tmp1(' tt 'JJ),nDim);']);
51     end;
52     eval(['tmp1=tmp1-tmp2(' tt 'mm);']);
53     eval(['alldiag_anom.' listDiags{ii} '=tmp1;']);
54     end;
55    
56 gforget 1.1

  ViewVC Help
Powered by ViewVC 1.1.22