/[MITgcm]/MITgcm_contrib/high_res_cube/eddy_flux/split_Z_cub.m
ViewVC logotype

Annotation of /MITgcm_contrib/high_res_cube/eddy_flux/split_Z_cub.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (hide annotations) (download)
Wed Aug 18 22:08:19 2004 UTC (20 years, 11 months ago) by edhill
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +0 -0 lines
 o more routines for all of the {UV}(TSB} products

1 edhill 1.1 function [z6t] = split_Z_cub(z3d)
2     % [z6t] = split_Z_cub(z3d)
3     %---------------------------------------------
4     % split 2d/3d arrays Z to 2d/3d x 6 faces
5     % and add 1 column + 1 row
6     % output is z6t(ny+1,ny+1,[nr],6)
7     % take the average value (over the 3 neighbour) for the 2 missing corner
8     %----------------------------------------------
9     dim=length(size(z3d));
10     if dim == 2, nr=1; [nx ny]=size(z3d) ; else [nx ny nr]=size(z3d) ; end
11     nyp=ny+1;
12     %=================================================================
13    
14     if dim == 2,
15    
16     %- split on to 6 tile with overlap in i+1 & j+1 :
17     z6t=zeros(nyp,ny+1,6);
18    
19     for n=1:6,
20     z6t([1:ny],[1:ny],n)=z3d([(n-1)*ny+1:n*ny],[1:ny]);
21     end
22    
23     z6t(nyp,[1:ny], 1)=z3d(1+ny,[1:ny]);
24     z6t(nyp,[2:nyp],2)=z3d([4*ny:-1:1+(4-1)*ny],1);
25     z6t(nyp,[1:ny], 3)=z3d(1+3*ny,[1:ny]);
26     z6t(nyp,[2:nyp],4)=z3d([6*ny:-1:1+(6-1)*ny],1);
27     z6t(nyp,[1:ny], 5)=z3d(1+5*ny,[1:ny]);
28     z6t(nyp,[2:nyp],6)=z3d([2*ny:-1:1+(2-1)*ny],1);
29    
30     z6t([2:nyp],nyp,1)=z3d(1+2*ny,[ny:-1:1]);
31     z6t([1:ny], nyp,2)=z3d([(3-1)*ny+1:3*ny],1);
32     z6t([2:nyp],nyp,3)=z3d(1+4*ny,[ny:-1:1]);
33     z6t([1:ny], nyp,4)=z3d([(5-1)*ny+1:5*ny],1);
34     z6t([2:nyp],nyp,5)=z3d(1+0*ny,[ny:-1:1]);
35     z6t([1:ny], nyp,6)=z3d([(1-1)*ny+1:1*ny],1);
36    
37     %- missing corner :
38     zz1=z3d(2*ny,1)+z3d(4*ny,1)+z3d(6*ny,1);
39     zz1=zz1/3;
40     z6t(nyp,1,2)=zz1;
41     z6t(nyp,1,4)=zz1;
42     z6t(nyp,1,6)=zz1;
43    
44     zz2=z3d(1,ny)+z3d(1+2*ny,ny)+z3d(1+4*ny,ny);
45     zz2=zz2/3;
46     z6t(1,nyp,1)=zz2;
47     z6t(1,nyp,3)=zz2;
48     z6t(1,nyp,5)=zz2;
49    
50     else
51    
52     %- split on to 6 tile with overlap in i+1 & j+1 :
53     z6t=zeros(ny+1,ny+1,nr,6);
54    
55     for n=1:6,
56     z6t([1:ny],[1:ny],:,n)=z3d([(n-1)*ny+1:n*ny],[1:ny],:);
57     end
58    
59     z6t(nyp,[1:ny], :,1)=z3d(1+ny,[1:ny],:);
60     z6t(nyp,[2:nyp],:,2)=z3d([4*ny:-1:1+(4-1)*ny],1,:);
61     z6t(nyp,[1:ny], :,3)=z3d(1+3*ny,[1:ny],:);
62     z6t(nyp,[2:nyp],:,4)=z3d([6*ny:-1:1+(6-1)*ny],1,:);
63     z6t(nyp,[1:ny], :,5)=z3d(1+5*ny,[1:ny],:);
64     z6t(nyp,[2:nyp],:,6)=z3d([2*ny:-1:1+(2-1)*ny],1,:);
65    
66     z6t([2:nyp],nyp,:,1)=z3d(1+2*ny,[ny:-1:1],:);
67     z6t([1:ny], nyp,:,2)=z3d([(3-1)*ny+1:3*ny],1,:);
68     z6t([2:nyp],nyp,:,3)=z3d(1+4*ny,[ny:-1:1],:);
69     z6t([1:ny], nyp,:,4)=z3d([(5-1)*ny+1:5*ny],1,:);
70     z6t([2:nyp],nyp,:,5)=z3d(1+0*ny,[ny:-1:1],:);
71     z6t([1:ny], nyp,:,6)=z3d([(1-1)*ny+1:1*ny],1,:);
72    
73     %- missing corner :
74     zz1=zeros(1,nr); zz2=zeros(1,nr);
75     zz1=z3d(2*ny,1,:)+z3d(4*ny,1,:)+z3d(6*ny,1,:);
76     zz1=zz1/3;
77     z6t(nyp,1,:,2)=zz1;
78     z6t(nyp,1,:,4)=zz1;
79     z6t(nyp,1,:,6)=zz1;
80    
81     zz2=z3d(ny,1,:)+z3d(ny,1+2*ny,:)+z3d(ny,1+4*ny,:)+z3d(6*ny,1,:);
82     zz2=zz2/3;
83     z6t(1,nyp,:,1)=zz2;
84     z6t(1,nyp,:,3)=zz2;
85     z6t(1,nyp,:,5)=zz2;
86    
87     end
88    
89     return

  ViewVC Help
Powered by ViewVC 1.1.22