-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy patheq2dist.m
More file actions
44 lines (36 loc) · 1.58 KB
/
Copy patheq2dist.m
File metadata and controls
44 lines (36 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
function [nsi,vs1i,Tsi,xgin,ns,vs1,Ts] = eq2dist(eqdir, simID, xg, outdir, realbits)
narginchk(3, 5)
validateattributes(eqdir, {'char', 'string'}, {'vector'})
validateattributes(simID, {'char', 'string'}, {'vector'})
validateattributes(xg, {'struct'}, {'scalar'})
if nargin < 4, outdir = []; end
if nargin < 5, realbits = 64; end
%% READ SIMULATION INFORMATION
[ymd0,UTsec0,tdur,dtout,flagoutput,mloc] = readconfig([eqdir, '/inputs']);
xgin = readgrid([eqdir, '/inputs']);
%% FIND THE DATE OF THE END FRAME OF THE SIMULATION
% PRESUMABLY THIS WILL BE THE STARTING point FOR another
[ymdend,UTsecend] = dateinc(tdur,ymd0,UTsec0);
%% LOAD THE FRAME
[ne,mlatsrc,mlonsrc,xgin,v1,Ti,Te,J1,v2,v3,J2,J3,filename,Phitop,ns,vs1,Ts] = ...
loadframe(eqdir,ymdend,UTsecend,flagoutput,mloc,xgin);
%% check input to interpolation
assert(all(isfinite(ns(:))), 'non-finite density')
assert(all(isfinite(vs1(:))), 'non-finite drift')
assert(all(isfinite(Ts(:))), 'non-finite temperature')
%% DO THE INTERPOLATION
[nsi,vs1i,Tsi] = model_resample(xgin, ns, vs1, Ts, xg);
%% check IF THE INTERPOLATION WENT WEIRD...
assert(all(isfinite(nsi(:))), 'non-finite interpolated density')
assert(all(isfinite(vs1i(:))), 'non-finite interpolated drift')
assert(all(isfinite(Tsi(:))), 'non-finite interpolated temperature')
%% WRITE OUT THE GRID
% this uses SIMID as output directory and filename tag
if isempty(outdir)
basedir = [eqdir,'/../input/'];
outdir = [basedir, simID];
end
writegrid(xg, outdir, realbits);
dmy=[ymdend(3),ymdend(2),ymdend(1)];
writedata(dmy,UTsecend,nsi,vs1i,Tsi,outdir,simID, realbits);
end % function eq2dist