1 |
edhill |
1.1 |
% |
2 |
|
|
% Ed Hill |
3 |
|
|
% |
4 |
|
|
% Split a C32 grid along its faces and produce ASCII output. |
5 |
|
|
% |
6 |
|
|
|
7 |
|
|
|
8 |
|
|
nc = netcdf('rmp_CS32_to_LL128x64_conserv.nc','nowrite'); |
9 |
|
|
|
10 |
|
|
isrc = nc{'src_address'}(:); |
11 |
|
|
idst = nc{'dst_address'}(:); |
12 |
|
|
wts = nc{'remap_matrix'}(:); |
13 |
|
|
|
14 |
|
|
nc = close(nc); |
15 |
|
|
|
16 |
|
|
icull = find(wts(:,1) < 1.0e-18); |
17 |
|
|
ikeep = find(wts(:,1) > 1.0e-18); |
18 |
|
|
isrck = isrc(ikeep); |
19 |
|
|
idstk = idst(ikeep); |
20 |
|
|
wtsk = wts(ikeep,:); |
21 |
|
|
|
22 |
|
|
pface = {}; |
23 |
|
|
fi = 1; |
24 |
|
|
for fi = 1:6 |
25 |
|
|
fname = sprintf('CS32_LL128x64_%03d.regrid.ascii',fi); |
26 |
|
|
fid = fopen(fname,'wt'); |
27 |
|
|
imin = 32^2 * (fi - 1) + 1; |
28 |
|
|
imax = 32^2 * fi; |
29 |
|
|
pface(fi).inds = find(imin<=isrck & isrck<=imax); |
30 |
|
|
for j = 1:length(pface(fi).inds) |
31 |
|
|
ii = pface(fi).inds(j); |
32 |
|
|
fprintf(fid,' %10d %10d %28.22E\n', ... |
33 |
|
|
(isrck(ii) - imin + 1),idstk(ii),wtsk(ii,1)); |
34 |
|
|
end |
35 |
|
|
fclose(fid); |
36 |
|
|
end |
37 |
|
|
|