/[MITgcm]/MITgcm_contrib/gael/bulkMatlab/averagesFields.m
ViewVC logotype

Annotation of /MITgcm_contrib/gael/bulkMatlab/averagesFields.m

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


Revision 1.1 - (hide annotations) (download)
Tue Feb 19 21:28:57 2008 UTC (17 years, 4 months ago) by gforget
Branch: MAIN
CVS Tags: HEAD
matlab script to compute bulk formulae forcing etc.

1 gforget 1.1 function []=averagesFields(doInitFiles,doWriteMean,rep_out,suff_out,varargin);
2     global averagesFields_count;
3    
4     %algorithm:
5     % first call (doInitFiles=1 doWriteMean=0) -> init files, arrays and set counter to 0
6     % loop calls (doInitFiles=0 doWriteMean=0) -> increment counter and arrays
7     % dump calls (doInitFiles=0 doWriteMean=1) -> write one record, re-initialize arrays and counter
8     % final call (doInitFiles=-1 doWriteMean=0) -> close files
9    
10     %input: varargin is a series of structures
11    
12     if doInitFiles==1&doWriteMean==0;
13     averagesFields_count=1;
14     for icur=1:length(varargin);
15     eval(['global struct' num2str(icur) '; struct' num2str(icur) '=varargin{icur}; ']);
16     vars_struct=fieldnames(varargin{icur});
17     eval(['global fid_struct' num2str(icur) '; fid_struct' num2str(icur) '=zeros(1,length(vars_struct));']);
18     for vcur=1:length(vars_struct);
19     tmp1=cell2mat(vars_struct(vcur)); tmp2=[rep_out tmp1 suff_out];
20     eval(['fid_struct' num2str(icur) '(vcur)=fopen(''' tmp2 ''',''w'',''b'');']);
21     end
22     end
23    
24     elseif doInitFiles==0&doWriteMean==0;
25     averagesFields_count=averagesFields_count+1;
26     for icur=1:length(varargin);
27     eval(['global struct' num2str(icur) ';']);
28     vars_struct=fieldnames(varargin{icur});
29     for vcur=1:length(vars_struct);
30     tmp1=cell2mat(vars_struct(vcur));
31     eval(['struct' num2str(icur) '.' tmp1 '=struct' num2str(icur) '.' tmp1 '+varargin{icur}.' tmp1 ';']);
32     end
33     end
34    
35     elseif doInitFiles==0&doWriteMean==1;
36     for icur=1:length(varargin);
37     eval(['global fid_struct' num2str(icur) ' struct' num2str(icur) ';']);
38     vars_struct=fieldnames(varargin{icur});
39     for vcur=1:length(vars_struct);
40     tmp1=cell2mat(vars_struct(vcur));
41     eval(['fwrite(fid_struct' num2str(icur) '(vcur),struct' num2str(icur) '.' tmp1 '/averagesFields_count,''float32'');']);
42     eval(['struct' num2str(icur) '.' tmp1 '(:)=0;']);
43     end
44     end
45     averagesFields_count=0;
46    
47     elseif doInitFiles==-1&doWriteMean==0;
48     for icur=1:length(varargin);
49     eval(['global fid_struct' num2str(icur) ' struct' num2str(icur) ';']);
50     vars_struct=fieldnames(varargin{icur});
51     for vcur=1:length(vars_struct); eval(['fclose(fid_struct' num2str(icur) '(vcur));']); end;
52     eval(['clear struct' num2str(icur) ';']);
53     end
54     averagesFields_count=[];
55    
56     else
57     fprintf('error in averagesFields \n');
58     averagesFields_count=[];
59     end
60    

  ViewVC Help
Powered by ViewVC 1.1.22