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

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

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


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

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