ucftools/matlab/read_uvwp_complete_legacy.m

72 lines
2.2 KiB
Matlab

function [u,v,w,p] = read_uvwp_complete_legacy(wkdir,ifield,nmyid,...
x_periodic,y_periodic,z_periodic,...
ighost,varargin)
par = inputParser;
addParameter(par,'resdir',[wkdir 'result/']);
parse(par,varargin{:});
keepghost = 0; % see ToDo
resdir = par.Results.resdir;
% tmp files with simulation parameters
fdomain = [wkdir 'current_domain.tmp'];
fproc = [wkdir 'current_proc_grid.tmp'];
fpoints = [wkdir 'current_points.tmp'];
% read domain
[a,b,c,d,e,f] = read_domain_legacy(fdomain);
% load the grid
[ xu,yu,zu,xv,yv,zv ,...
xw,yw,zw,xp,yp,zp ,...
nxu,nyu,nzu,nxv,nyv ,...
nzv,nxw,nyw,nzw,nxp ,...
nyp,nzp] = read_grid_legacy(fpoints,a,b,c,d,e,f,...
x_periodic,y_periodic,z_periodic);
% initialize zero arrays
u = zeros(nxu,nyu,nzu);
v = zeros(nxv,nyv,nzv);
w = zeros(nxw,nyw,nzw);
p = zeros(nxp,nyp,nzp);
for myid = 0:nmyid-1
fuvwp=[resdir 'uvwp_' sprintf('%04d',ifield) '.' sprintf('%05d',myid)];
[utmp,ibu,jbu,kbu,nxul,nyul,nzul,...
vtmp,ibv,jbv,kbv,nxvl,nyvl,nzvl,...
wtmp,ibw,jbw,kbw,nxwl,nywl,nzwl,...
ptmp,ibp,jbp,kbp,nxpl,nypl,nzpl,~] = ...
read_uvwp_chunk_legacy(fuvwp,fproc,ighost,'ghost',keepghost);
ieu = ibu+nxul-1; iev = ibv+nxvl-1; iew = ibw+nxwl-1; iep = ibp+nxpl-1;
jeu = jbu+nyul-1; jev = jbv+nyvl-1; jew = jbw+nywl-1; jep = jbp+nypl-1;
keu = kbu+nzul-1; kev = kbv+nzvl-1; kew = kbw+nzwl-1; kep = kbp+nzpl-1;
u(ibu:ieu,jbu:jeu,kbu:keu) = utmp;
v(ibv:iev,jbv:jev,kbv:kev) = vtmp;
w(ibw:iew,jbw:jew,kbw:kew) = wtmp;
p(ibp:iep,jbp:jep,kbp:kep) = ptmp;
end
end
%-------------------------------------------------------------------------------
% ToDo!
%-------------------------------------------------------------------------------
% addParameter(par,'nparam',10);
% addParameter(par,'precision','float64');
% addParameter(par,'endian','a');
% addParameter(par,'reclen',4);
% nparam = par.Results.nparam;
% precision = par.Results.precision;
% endian = par.Results.endian;
% reclen = par.Results.reclen;
% addParameter(par,'keepghost',0); % for now we can only read the full field
% no ghosts..
% keepghost = par.Results.keepghost;