ucftools/matlab/read_procgrid_legacy.m

84 lines
2.9 KiB
Matlab

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,...
nxprocs,nyprocs,nzprocs] = read_procgrid_legacy(file)
% [ibegu,iendu,jbegu,jendu,kbegu,kendu,...
% ibegv,iendv,jbegv,jendv,kbegv,kendv,...
% ibegw,iendw,jbegw,jendw,kbegw,kendw,...
% ibegp,iendp,jbegp,jendp,kbegp,kendp,...
% nxprocs,nyprocs,nzprocs] = read_procgrid_legacy(file)
% Reads processor grids from 'current_proc_grid.tmp'.
% Input
% file path to 'current_proc_grid.tmp'
% 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
% nxprocs,nyprocs,nzprocs number of processors
proc_grid=load(file);
nxprocs = proc_grid(1,1);
nyprocs = proc_grid(1,2);
nzprocs = proc_grid(1,3);
ibegu = zeros(nxprocs,1);
iendu = zeros(nxprocs,1);
ibegv = zeros(nxprocs,1);
iendv = zeros(nxprocs,1);
ibegw = zeros(nxprocs,1);
iendw = zeros(nxprocs,1);
ibegp = zeros(nxprocs,1);
iendp = zeros(nxprocs,1);
jbegu = zeros(nyprocs,1);
jendu = zeros(nyprocs,1);
jbegv = zeros(nyprocs,1);
jendv = zeros(nyprocs,1);
jbegw = zeros(nyprocs,1);
jendw = zeros(nyprocs,1);
jbegp = zeros(nyprocs,1);
jendp = zeros(nyprocs,1);
kbegu = zeros(nzprocs,1);
kendu = zeros(nzprocs,1);
kbegv = zeros(nzprocs,1);
kendv = zeros(nzprocs,1);
kbegw = zeros(nzprocs,1);
kendw = zeros(nzprocs,1);
kbegp = zeros(nzprocs,1);
kendp = zeros(nzprocs,1);
for ii=1:nxprocs
ibegu(ii)=proc_grid(1+ii,1);
iendu(ii)=proc_grid(1+ii,2);
ibegv(ii)=proc_grid(1+ii,3);
iendv(ii)=proc_grid(1+ii,4);
ibegw(ii)=proc_grid(1+ii,5);
iendw(ii)=proc_grid(1+ii,6);
ibegp(ii)=proc_grid(1+ii,7);
iendp(ii)=proc_grid(1+ii,8);
end
for ii=1:nyprocs
jbegu(ii)=proc_grid(1+nxprocs+ii,1);
jendu(ii)=proc_grid(1+nxprocs+ii,2);
jbegv(ii)=proc_grid(1+nxprocs+ii,3);
jendv(ii)=proc_grid(1+nxprocs+ii,4);
jbegw(ii)=proc_grid(1+nxprocs+ii,5);
jendw(ii)=proc_grid(1+nxprocs+ii,6);
jbegp(ii)=proc_grid(1+nxprocs+ii,7);
jendp(ii)=proc_grid(1+nxprocs+ii,8);
end
for ii=1:nzprocs
kbegu(ii)=proc_grid(1+nxprocs+nyprocs+ii,1);
kendu(ii)=proc_grid(1+nxprocs+nyprocs+ii,2);
kbegv(ii)=proc_grid(1+nxprocs+nyprocs+ii,3);
kendv(ii)=proc_grid(1+nxprocs+nyprocs+ii,4);
kbegw(ii)=proc_grid(1+nxprocs+nyprocs+ii,5);
kendw(ii)=proc_grid(1+nxprocs+nyprocs+ii,6);
kbegp(ii)=proc_grid(1+nxprocs+nyprocs+ii,7);
kendp(ii)=proc_grid(1+nxprocs+nyprocs+ii,8);
end
end