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 |
|