/[MITgcm]/MITgcm_contrib/high_res_cube/eddy_flux/from_Dimitris/meanslices.m
ViewVC logotype

Annotation of /MITgcm_contrib/high_res_cube/eddy_flux/from_Dimitris/meanslices.m

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


Revision 1.1 - (hide annotations) (download)
Tue Aug 3 15:54:26 2004 UTC (20 years, 11 months ago) by edhill
Branch: MAIN
CVS Tags: HEAD
 o sanitizing and checking in parts of the eddy flux diagnostics

1 edhill 1.1 function m = meanslices(fpat, ilist, ns, nps)
2    
3     % Function m = meanslices(ilist, ns, nps)
4     %
5     %
6     % INPUTS
7     % fpat string containing file pattern
8     % ilist list of iteration values
9     % ns number of slices to process at at time
10     % nps number of values per slice
11     %
12     % OUTPUTS
13     % m output array of dimension ns*nps
14    
15    
16     if nargin ~= 4
17     disp('Error: wrong number of arguments')
18     end
19    
20     deltatT = 1200; % model time step size (s)
21     tavefreq = 259200; % averaging period (s)
22     startDate = datenum(1992,1,1); % model integration starting date
23    
24     oldyear = -1;
25     newyear = oldyear;
26    
27     is = 1;
28     for is = 1:ns
29    
30     disp(['Processing slice: ' sprintf('%d',is)]);
31     nm = 0;
32     m = zeros(nps,1);
33    
34     i = 1;
35     for i = 1:length(ilist)
36    
37     iter = ilist(i);
38     str = datestr(startDate + (iter*deltatT-tavefreq/2)/60/60/24);
39     dv = datevec(startDate + (iter*deltatT-tavefreq/2)/60/60/24);
40     newyear = dv(1);
41    
42     fname = sprintf(fpat, ilist(i));
43     disp([' ' fname ' ' str]);
44     fid = fopen(fname, 'r', 'ieee-be');
45     offset = (is - 1)*nps*4;
46     fseek(fid, offset, 'bof');
47     tmp = fread(fid, nps, 'real*4');
48     fclose(fid);
49    
50     if (newyear ~= oldyear) && (nm > 0)
51     fnout = sprintf('ave-%d', oldyear);
52     disp([' ==> Writing file "' fnout '"']);
53     fido = fopen(fnout, 'a', 'ieee-be');
54     % fseek(fido, offset, 'bof');
55     m = m / nm;
56     fwrite(fido, m, 'real*4');
57     fclose(fido);
58     m = zeros(nps,1);
59     nm = 0;
60     end
61     m = m + tmp;
62     nm = nm + 1;
63    
64     oldyear = newyear;
65    
66     end
67     end

  ViewVC Help
Powered by ViewVC 1.1.22