source:
issm/oecreview/Archive/19101-20495/ISSM-20059-20060.diff@
20498
Last change on this file since 20498 was 20498, checked in by , 9 years ago | |
---|---|
File size: 1.8 KB |
-
../trunk-jpl/src/m/coordsystems/gmtmaskparallel.m
1 function 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.