function [u,v,w,p] = read_uvwp_complete_legacy(wkdir,fileid,nmyid,... x_periodic,y_periodic,z_periodic,ghost) % '_' if no ghost cells % 'g' if there are ghost cells but u dont want to read them % 'G' if there are ghost cells and u want to read them % some default properties --> this can be added to a parser later nparam = 10; precision = 'float64'; endian = 'a'; resdir = [wkdir '/result']; % load the domain fcurrent_domain = [wkdir 'current_domain.tmp']; [a,b,c,d,e,f] = read_domain_legacy(fcurrent_domain); % load the grid fcurrent_points = [wkdir 'current_points.tmp']; [ 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(fcurrent_domain,a,b,c,d,e,f,... x_periodic,y_periodic,z_periodic); % load the proc-grid data: fcurrent_proc_grid =[wkdir 'current_proc_grid.tmp']; [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(fcurrent_proc_grid); for ifile=1:length(fileid) ifield = fileid(ifile); % 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 file=[resdir 'uvwp_' sprintf('%04d',ifield) '.' sprintf('%04d',myid)]; [~,~,~,~,param]=read3dp4_partial(file,nparam,precision,endian,... 1,1,1,1,1,1,1,1,1,1,1,1,'i',ghost); mycol_vec = floor(param(3)); myrow_vec = floor(param(4)); mypln_vec = floor(param(5)); time=param(1); % the local array sizes for processor "myid,my_col,my_row,my_pln": [ibu,ieu,jbu,jeu,kbu,keu,ibv,iev,jbv,jev,kbv,kev,... ibw,iew,jbw,jew,kbw,kew,ibp,iep,jbp,jep,kbp,kep,... nxlu,nylu,nzlu,nxlv,nylv,nzlv,nxlw,nylw,nzlw,... nxlp,nylp,nzlp]=my_array_size(... ibegu,iendu,jbegu,jendu,kbegu,kendu,... ibegv,iendv,jbegv,jendv,kbegv,kendv,... ibegw,iendw,jbegw,jendw,kbegw,kendw,... ibegp,iendp,jbegp,jendp,kbegp,kendp,... mycol_vec,myrow_vec,mypln_vec); [utmp,vtmp,wtmp,ptmp,param]=read3dp4_partial(... file,nparam,precision,endian,nxlu,nylu,nzlu,... nxlv,nylv,nzlv,nxlw,nylw,nzlw,nxlp,nylp,nzlp,'_',ghost); 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; clear utmp vtmp wtmp ptmp; end end end