source: issm/oecreview/Archive/19101-20495/ISSM-20059-20060.diff@ 20498

Last change on this file since 20498 was 20498, checked in by Mathieu Morlighem, 9 years ago

CHG: done with Archive/19101-20495

File size: 1.8 KB
  • ../trunk-jpl/src/m/coordsystems/gmtmaskparallel.m

     
     1function mask = gmtmaskparallel(lat,long,ncores)
     2%GMTMASKPARALLEL- parallel driver for the gmtmask utility
     3%
     4%   Usage:
     5%      mask.ocean = gmtmaskparallel(md.mesh.lat,md.mesh.long,8);
     6%
     7
     8        %First, write our lat,long file for gmt:
     9        nv=length(lat);
     10
     11        %Split:
     12        nnv=1:floor(nv/ncores):nv;
     13        nnv(end)=nv+1;
     14
     15        %For each segment, write all vertices file:
     16        for i=1:length(nnv)-1,
     17                dlmwrite(['./all_vertices' num2str(i) '.txt'],[long(nnv(i):nnv(i+1)-1) lat(nnv(i):nnv(i+1)-1) (nnv(i):nnv(i+1)-1)'],'delimiter','\t');
     18        end
     19
     20        if ismac,
     21                dyld_library_path_old=getenv('DYLD_LIBRARY_PATH');
     22                setenv('DYLD_LIBRARY_PATH',[ issmdir '/externalpackages/curl/install/lib:' issmdir '/externalpackages/hdf5/install/lib:' issmdir '/externalpackages/netcdf/install/lib' ]);
     23        end
     24
     25        %Build xjobs script:
     26        fid=fopen('xjobs.script','w');
     27        for i=1:length(nnv)-1,
     28                fprintf(fid,'gmt gmtselect ./all_vertices%i.txt -h0 -Df -R0/360/-90/90  -A0 -JQ180/200 -Nk/s/s/k/s > ./oce_vertices%i.txt\n',i,i);
     29        end
     30        fclose(fid);
     31
     32        %Call xjobs:
     33        system(sprintf('xjobs -j %i -s ./xjobs.script',ncores));
     34
     35        %reset DYLD_LIBRARY_PATH to what it was:
     36        if ismac,
     37                setenv('DYLD_LIBRARY_PATH',dyld_library_path_old);
     38        end
     39
     40        %concatenate:
     41        system('cat oce_vertices*.txt | grep -v Command | awk ''{printf("%s\n",$3);}''> vertices.txt');
     42
     43        %read the vertices.txt file and flag our mesh vertices on the continent
     44        flags=dlmread('./vertices.txt');
     45
     46        mask=zeros(nv,1);
     47        mask(flags)=1;
     48       
     49        system('rm -rf ./all_vertices*.txt ./oce_vertices*.txt vertices.txt ./gmt.history');
Note: See TracBrowser for help on using the repository browser.