| 1 | 
function [b] = exch_c(a,o) | 
| 2 | 
 | 
| 3 | 
[nx ny nt]=size(a); | 
| 4 | 
if nt == 1 | 
| 5 | 
elseif nt ~= 6 | 
| 6 | 
 nt | 
| 7 | 
 error('Must be tiled array (NxNx6)') | 
| 8 | 
end | 
| 9 | 
if nt == 6 & nx ~= ny | 
| 10 | 
 [nx ny] | 
| 11 | 
 error('Tiles must be square (NxNx6)') | 
| 12 | 
end | 
| 13 | 
 | 
| 14 | 
 | 
| 15 | 
if nt == 6 | 
| 16 | 
b=NaN*ones(nx+2*o,ny+2*o,6); | 
| 17 | 
b(o+1:o+nx,o+1:o+ny,:)=a;                               % Interior | 
| 18 | 
b(o+1:o+nx,o+ny+(1:o),1)=a(1:o,ny:-1:1,3)';             % N-odd | 
| 19 | 
b(o+1:o+nx,o+ny+(1:o),3)=a(1:o,ny:-1:1,5)';             % N-odd | 
| 20 | 
b(o+1:o+nx,o+ny+(1:o),5)=a(1:o,ny:-1:1,1)';             % N-odd | 
| 21 | 
b(o+1:o+nx,1:o,[1 3 5])=a(:,ny-o+1:ny,[6 2 4]);         % S-odd | 
| 22 | 
b(o+nx+(1:o),o+1:o+ny,[1 3 5])=a(1:o,:,[2 4 6]);        % E-odd | 
| 23 | 
b(1:o,o+1:o+ny,3)=a(nx:-1:1,ny-o+1:ny,1)';              % W-odd | 
| 24 | 
b(1:o,o+1:o+ny,5)=a(nx:-1:1,ny-o+1:ny,3)';              % W-odd | 
| 25 | 
b(1:o,o+1:o+ny,1)=a(nx:-1:1,ny-o+1:ny,5)';              % W-odd | 
| 26 | 
b(o+1:o+nx,o+ny+(1:o),[2 4 6])=a(:,1:o,[3 5 1]);        % N-even | 
| 27 | 
b(o+1:o+nx,1:o,2)=a(nx-o+1:nx,ny:-1:1,6)';              % S-even | 
| 28 | 
b(o+1:o+nx,1:o,4)=a(nx-o+1:nx,ny:-1:1,2)';              % S-even | 
| 29 | 
b(o+1:o+nx,1:o,6)=a(nx-o+1:nx,ny:-1:1,4)';              % S-even | 
| 30 | 
b(o+nx+(1:o),o+1:o+ny,2)=a(nx:-1:1,1:o,4)';             % E-even | 
| 31 | 
b(o+nx+(1:o),o+1:o+ny,4)=a(nx:-1:1,1:o,6)';             % E-even | 
| 32 | 
b(o+nx+(1:o),o+1:o+ny,6)=a(nx:-1:1,1:o,2)';             % E-even | 
| 33 | 
b(1:o,o+1:o+ny,[2 4 6])=a(nx-o+1:nx,:,[1 3 5]);         % W-even | 
| 34 | 
elseif nt == 1 | 
| 35 | 
b=NaN*ones(nx+2*o,ny+2*o); | 
| 36 | 
b(o+1:o+nx,o+1:o+ny)=a;                         % Interior | 
| 37 | 
%b(o+1:o+nx,o+ny+(1:o))=a(:,ny:-1:ny-o+1);      % N | 
| 38 | 
%b(o+1:o+nx,1:o)=a(:,o:-1:1);                   % S | 
| 39 | 
b(o+nx+(1:o),:)=b(o+1:o+o,:);                   % E | 
| 40 | 
b(1:o,:)=b(o+nx-o+1:o+nx,:);                    % W | 
| 41 | 
end |