1 |
gforget |
1.1 |
function []=diags_diff_snapshots(dirModel,dirMat,fileStart); |
2 |
|
|
%object: compute time derivatives between snapshots that |
3 |
|
|
% will be compared with time mean flux terms in budgets |
4 |
|
|
%input: dirModel is the model directory |
5 |
|
|
% fileStart is the root of file names (e.g. budg2d_snap_set1) |
6 |
|
|
%result: create e.g. rate_budg2d_snap_set1 files |
7 |
|
|
|
8 |
|
|
fileList=dir([dirModel 'diags/BUDG/' fileStart '.*.data']); |
9 |
|
|
for ii=1:length(fileList)-1; |
10 |
|
|
|
11 |
|
|
%1) get the time of fld0 & fld1, & the data precision |
12 |
|
|
fileMeta=[dirModel 'diags/BUDG/' fileList(ii).name(1:end-5) '.meta']; |
13 |
|
|
time0={}; time1={}; |
14 |
|
|
fileMeta=[dirModel 'diags/BUDG/' fileList(ii).name(1:end-5) '.meta']; fid0=fopen(fileMeta); |
15 |
|
|
fileMeta=[dirModel 'diags/BUDG/' fileList(ii+1).name(1:end-5) '.meta']; fid1=fopen(fileMeta); |
16 |
|
|
while 1; |
17 |
|
|
tline = fgetl(fid0); |
18 |
|
|
if ~ischar(tline), break, end |
19 |
|
|
if isempty(time0); time0=tline; else; time0=[time0 ' ' tline]; end; |
20 |
|
|
tline = fgetl(fid1); |
21 |
|
|
if isempty(time1); time1=tline; else; time1=[time1 ' ' tline]; end; |
22 |
|
|
end |
23 |
|
|
fclose(fid0); fclose(fid1); |
24 |
|
|
|
25 |
|
|
eval(time0); time0=timeInterval; clear timeInterval; |
26 |
|
|
eval(time1); time1=timeInterval; clear timeInterval; |
27 |
|
|
dataprec=str2num(dataprec(end-1:end)); |
28 |
|
|
|
29 |
|
|
%2) get the binary data: |
30 |
|
|
fld0=read2memory([dirModel 'diags/BUDG/' fileList(ii).name],[],dataprec); |
31 |
|
|
fld1=read2memory([dirModel 'diags/BUDG/' fileList(ii+1).name],[],dataprec); |
32 |
|
|
|
33 |
|
|
%3) compute the tendency term: |
34 |
|
|
fld2=(fld1-fld0)/(time1-time0); |
35 |
|
|
|
36 |
|
|
%4) write to file: |
37 |
|
|
fileMetaOld=[dirModel 'diags/BUDG/' fileList(ii+1).name(1:end-5) '.meta']; |
38 |
|
|
fileMetaNew=[dirMat 'BUDG/rate_' fileList(ii+1).name(1:end-5) '.meta']; |
39 |
|
|
eval(['!\cp ' fileMetaOld ' ' fileMetaNew]); |
40 |
|
|
fileDataNew=[dirMat 'BUDG/rate_' fileList(ii+1).name(1:end-5) '.data']; |
41 |
|
|
write2file(fileDataNew,fld2,dataprec); |
42 |
|
|
|
43 |
|
|
end; |
44 |
|
|
|