/[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.5 - (hide annotations) (download)
Sat Aug 27 21:12:47 2011 UTC (13 years, 11 months ago) by gforget
Branch: MAIN
Changes since 1.4: +4 -6 lines
- alldiag_load:
	remove time mean (not cycle) for anomaly diags.
- basic_diags_ecco:
	fix mer. FW transport for real fresh water,
	add mer. salt transport diagnostic,
	add etan and etanLeads to mean & std map diags, and zonal mean diags,
	fix list of fields to read from file, in accord with the previous points
	use UVELMASS (not UVEL) in transports diags
	fix list of factors for ADVx_TH etc.
- basic_diags_ecco_disp:
	set myYmean to 1992 2010
	rm redundant nRunMean (see myNmean)
	add plots of added diags: meridional salt transport, ETAN and ETANLEADS
	fix time axis
	fix a few color ranges since we use time mean (not cycle) in alldiag_load.m
	use proper time axis in ice vol/surf plots

1 gforget 1.4 function [alldiag,alldiag_anom]=alldiag_load(dirMat,nameMat,timeStep,varargin);
2 gforget 1.3 %object: load single record files off basic_diags_ecco, and assemble time records
3     %inputs: dirMat is the model run sub-directory where the matlab files are (e.g. 'mat/')
4 gforget 1.4 % nameMat is the mat files name (e.g. 'basic_diags_ecco_A_*.mat')
5     % timeStep is the model time step
6     %optional: nameDiag is the name of the diagnostic of interest
7    
8     if nargin>3; nameDiag=varargin{1}; else; nameDiag=''; end;
9 gforget 1.1
10     %get list of files
11 gforget 1.3 listFiles=dir([dirMat '/' nameMat]);
12 gforget 1.1 %get time steps and sort listFiles
13 gforget 1.3 listSteps=[]; for tt=1:length(listFiles);
14     nn=listFiles(tt).name; ii=strfind(nn,'_'); ii=ii(end); listSteps=[listSteps;str2num(nn(ii+1:end-4))]; end;
15 gforget 1.1 [listSteps,ii]=sort(listSteps);
16     listFiles=listFiles(ii);
17     %compute actual times
18     nTimes=length(listSteps);
19     listTimes=listSteps*timeStep/86400;
20     %initialize alldiag
21 gforget 1.3 alldiag=open([dirMat listFiles(1).name]);
22 gforget 1.1 listDiags=fieldnames(alldiag);
23 gforget 1.4 %restrict list of diags to load
24     if ~isempty(nameDiag); listDiags={nameDiag}; end;
25 gforget 1.1 %loop and concatenate
26     for tt=2:length(listSteps);
27 gforget 1.3 tmpdiag=open([dirMat listFiles(tt).name]);
28 gforget 1.1 for ii=1:length(listDiags);
29     %get data:
30     eval(['tmp1=tmpdiag.' listDiags{ii} '; tmp2=alldiag.' listDiags{ii} ';']);
31     %determine the time dimension:
32     if strcmp(class(tmp1),'gcmfaces'); nDim=size(tmp1{1}); else; nDim=size(tmp1); end;
33     if ~isempty(find(nDim==0)); nDim=0;
34     elseif nDim(end)==1; nDim=length(nDim)-1;
35     else; nDim=length(nDim);
36     end;
37     %concatenate along the time dimension:
38     if nDim>0; tmp2=cat(nDim+1,tmp2,tmp1); eval(['alldiag.' listDiags{ii} '=tmp2;']); end;
39     end;
40     end;
41     %clean empty diags up
42     for ii=1:length(listDiags);
43     eval(['tmp1=isempty(alldiag.' listDiags{ii} ');']);
44     if tmp1; alldiag=rmfield(alldiag,listDiags{ii}); end;
45     end;
46     %complement alldiag
47     alldiag.listSteps=listSteps;
48     alldiag.listTimes=listTimes;
49     alldiag.listDiags=listDiags;
50 gforget 1.2 %subtract monthly climatology:
51 gforget 1.5 if length(listSteps)>=36;
52     nFullYears=12*floor(length(listTimes)/12);
53 gforget 1.3 alldiag_anom=alldiag;
54 gforget 1.5 mm=ones(length(listTimes),1);
55 gforget 1.3 for ii=1:length(listDiags);
56     tmp1=getfield(alldiag,listDiags{ii});
57     if strcmp(class(tmp1),'gcmfaces'); nDim=size(tmp1{1}); else; nDim=size(tmp1); end;
58     nDim=length(nDim); tt=''; for jj=1:nDim-1; tt=[tt ':,']; end;
59 gforget 1.5 eval(['tmp2=mean(tmp1(' tt '1:nFullYears),nDim);']);
60 gforget 1.3 eval(['tmp1=tmp1-tmp2(' tt 'mm);']);
61     eval(['alldiag_anom.' listDiags{ii} '=tmp1;']);
62 gforget 1.2 end;
63 gforget 1.3 else;
64     for ii=1:length(listDiags); eval(['alldiag_anom.' listDiags{ii} '=alldiag.' listDiags{ii} ';']); end;
65 gforget 1.2 end;
66    
67 gforget 1.1
68 gforget 1.3
69    

  ViewVC Help
Powered by ViewVC 1.1.22