/[MITgcm]/MITgcm/utils/matlab/merccube.m
ViewVC logotype

Annotation of /MITgcm/utils/matlab/merccube.m

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


Revision 1.1 - (hide annotations) (download)
Mon Aug 13 18:10:28 2001 UTC (22 years, 9 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint40pre6, checkpoint40pre7
Some new/more scripts for plotting cube stuff.

1 adcroft 1.1 function [] = merccube(XX,YY,C)
2     % merccube(xg,yg,c)
3     %
4     % Plots cubed-sphere data in mercator projection. (xg,yg) are grid-corners
5     % coordinates, c is cell-centered scalar to be plotted.
6     %
7     % e.g.
8     %
9     % xg=rdmds('XG');
10     % yg=rdmds('YG');
11     % ps=rdmds('Eta.0000000000');
12     % mercube(xg,yg,ps);
13     % colorbar;xlabel('Longitude');ylabel('Latitude');
14    
15     if max(max(max(YY)))-min(min(min(YY))) < 3*pi
16     X=XX*180/pi;
17     Y=YY*180/pi;
18     else
19     X=XX;
20     Y=YY;
21     end
22     Q=C;
23    
24     if ndims(X)==2 & size(X,1)==6*size(X,2)
25     disp('1');
26     [nx ny nt]=size(X);
27     X=permute( reshape(X,[nx/6 6 ny]),[1 3 2]);
28     Y=permute( reshape(Y,[nx/6 6 ny]),[1 3 2]);
29     Q=permute( reshape(Q,[nx/6 6 ny]),[1 3 2]);
30     elseif ndims(X)==3 & size(X,2)==6
31     X=permute( X,[1 3 2]);
32     Y=permute( Y,[1 3 2]);
33     Q=permute( Q,[1 3 2]);
34     elseif ndims(X)==3 & size(X,3)==6
35     [nx ny nt]=size(X);
36     else
37     size(XX)
38     size(YY)
39     size(C)
40     error('Dimensions should be 2 or 3 dimensions: NxNx6, 6NxN or Nx6xN');
41     end
42    
43     if size(X,1)==size(Q,1)
44     whos
45     X(end+1,:,:)=NaN;
46     X(:,end+1,:)=NaN;
47     X(end,:,[1 3 5])=X(1,:,[2 4 6]);
48     X(:,end,[2 4 6])=X(:,1,[3 5 1]);
49     X(:,end,[1 3 5])=squeeze(X(1,end:-1:1,[3 5 1]));
50     X(end,:,[2 4 6])=squeeze(X(end:-1:1,1,[4 6 2]));
51     Y(end+1,:,:)=NaN;
52     Y(:,end+1,:)=NaN;
53     Y(end,:,[1 3 5])=Y(1,:,[2 4 6]);
54     Y(:,end,[2 4 6])=Y(:,1,[3 5 1]);
55     Y(:,end,[1 3 5])=squeeze(Y(1,end:-1:1,[3 5 1]));
56     Y(end,:,[2 4 6])=squeeze(Y(end:-1:1,1,[4 6 2]));
57     end
58     [nx ny nt]=size(X);
59    
60     Q(end+1,:,:)=0;
61     Q(:,end+1,:)=0;
62     Q(end,:,[1 3 5])=Q(1,:,[2 4 6]);
63     Q(:,end,[2 4 6])=Q(:,1,[3 5 1]);
64     Q(:,end,[1 3 5])=squeeze(Q(1,end:-1:1,[3 5 1]));
65     Q(end,:,[2 4 6])=squeeze(Q(end:-1:1,1,[4 6 2]));
66    
67     hnx=ceil(nx/2);
68     hny=ceil(ny/2);
69    
70     for k=1:6;
71     i=1:hnx;
72     x=longitude(X(i,:,k));
73     pcolor(x,Y(i,:,k),Q(i,:,k))
74     axis([-180 180 -90 90])
75     hold on
76     if max(max(max(x)))>180
77     pcolor(x-360,Y(i,:,k),Q(i,:,k))
78     end
79     i=hnx:nx;
80     x=longitude(X(i,:,k));
81     pcolor(x,Y(i,:,k),Q(i,:,k))
82     if max(max(max(x)))>180
83     pcolor(x-360,Y(i,:,k),Q(i,:,k))
84     end
85     end
86     hold off

  ViewVC Help
Powered by ViewVC 1.1.22