function [ibegu,iendu,jbegu,jendu,kbegu,kendu,... ibegv,iendv,jbegv,jendv,kbegv,kendv,... ibegw,iendw,jbegw,jendw,kbegw,kendw,... ibegp,iendp,jbegp,jendp,kbegp,kendp] = read_procgrid_ucf(file,varargin) % [ibegu,iendu,jbegu,jendu,kbegu,kendu,... % ibegv,iendv,jbegv,jendv,kbegv,kendv,... % ibegw,iendw,jbegw,jendw,kbegw,kendw,... % ibegp,iendp,jbegp,jendp,kbegp,kendp] = read_procgrid_ucf(file,varargin) % Reads processor grids. % Input % file file to be read % Optional input (key/value pair) % verbosity verbose output? (default: no) % % Output % ibegu,iendu,jbegu,jendu,kbegu,kendu processor grid u % ibegv,iendv,jbegv,jendv,kbegv,kendv processor grid v % ibegw,iendw,jbegw,jendw,kbegw,kendw processor grid w % ibegp,iendp,jbegp,jendp,kbegp,kendp processor grid p % Parse optional input arguments par = inputParser; addOptional(par,'verbosity',0,@isnumeric); addOptional(par,'debug',0,@isnumeric); parse(par,varargin{:}); % Define sets to be read sets = {'u','v','w','p'}; nset = numel(sets); % Open file obj = ucf('verbosity',par.Results.verbosity,'debug',par.Results.debug); obj.open(file); % Read raw data ibeg = cell(1,nset); iend = cell(1,nset); jbeg = cell(1,nset); jend = cell(1,nset); kbeg = cell(1,nset); kend = cell(1,nset); for iset=1:nset [data,params] = obj.readSet(1,iset); params = cast(params,'double'); nxprocs = params(1); nyprocs = params(2); nzprocs = params(3); ibeg{iset} = data(1:nxprocs); iend{iset} = data(nxprocs+1:2*nxprocs); jbeg{iset} = data(2*nxprocs+1:2*nxprocs+nyprocs); jend{iset} = data(2*nxprocs+nyprocs+1:2*nxprocs+2*nyprocs); kbeg{iset} = data(2*nxprocs+2*nyprocs+1:2*nxprocs+2*nyprocs+nzprocs); kend{iset} = data(2*nxprocs+2*nyprocs+nzprocs+1:2*nxprocs+2*nyprocs+2*nzprocs); end % Close UCF file obj.close(); % Reassign content from loop iset = find(strcmp(sets,'u')); ibegu = ibeg{iset}; iendu = iend{iset}; jbegu = jbeg{iset}; jendu = jend{iset}; kbegu = kbeg{iset}; kendu = kend{iset}; iset = find(strcmp(sets,'v')); ibegv = ibeg{iset}; iendv = iend{iset}; jbegv = jbeg{iset}; jendv = jend{iset}; kbegv = kbeg{iset}; kendv = kend{iset}; iset = find(strcmp(sets,'w')); ibegw = ibeg{iset}; iendw = iend{iset}; jbegw = jbeg{iset}; jendw = jend{iset}; kbegw = kbeg{iset}; kendw = kend{iset}; iset = find(strcmp(sets,'p')); ibegp = ibeg{iset}; iendp = iend{iset}; jbegp = jbeg{iset}; jendp = jend{iset}; kbegp = kbeg{iset}; kendp = kend{iset}; end