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

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

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


Revision 1.4 - (show annotations) (download)
Thu Aug 30 14:00:21 2001 UTC (22 years, 9 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint48f_post, checkpoint46k_post, checkpoint51k_post, checkpoint47j_post, icebear2, checkpoint53b_pre, checkpoint48d_pre, checkpoint51l_post, checkpoint51j_post, branch-exfmods-tag, checkpoint47e_post, checkpoint44h_pre, release1_p12, checkpoint52l_pre, checkpoint48i_post, checkpoint52e_pre, hrcube4, hrcube5, release1_p10, release1_p16, checkpoint52j_post, release1_p15, release1_p11, checkpoint47f_post, ecco_c44_e16, checkpoint48d_post, checkpoint51o_pre, checkpoint46j_post, checkpoint47c_post, checkpoint50e_post, checkpoint52e_post, checkpoint50c_post, checkpoint46i_post, checkpoint51n_pre, checkpoint47d_post, ecco_c44_e21, ecco_c44_e26, ecco_c44_e27, ecco_c44_e24, icebear5, icebear4, checkpoint44f_pre, checkpoint47a_post, icebear3, checkpoint46f_post, checkpoint52d_pre, ecco_c50_e33a, checkpoint53c_post, checkpoint48a_post, checkpoint51f_pre, release1_p13_pre, checkpoint46d_pre, checkpoint48e_post, checkpoint46e_post, checkpoint48h_post, checkpoint50c_pre, release1-branch_tutorials, ecco_c50_e28, release1_p14, checkpoint44g_post, branchpoint-genmake2, checkpoint46h_pre, checkpoint44h_post, release1_p12_pre, checkpoint44e_post, checkpoint50b_pre, checkpoint52j_pre, checkpoint46e_pre, ecco-branch-mod4, checkpoint43a-release1mods, branch-netcdf, checkpoint50d_pre, checkpoint45d_post, checkpoint51r_post, checkpoint47i_post, checkpoint52b_pre, checkpoint52n_post, checkpoint46l_pre, checkpoint46j_pre, checkpoint45b_post, checkpoint46b_pre, checkpoint51i_post, checkpoint47h_post, checkpoint48c_post, checkpoint46l_post, chkpt44a_pre, release1-branch-end, release1_final_v1, ecco_c44_e19, checkpoint51e_post, checkpoint51b_post, checkpoint46, ecco_c44_e20, checkpoint51l_pre, checkpoint52m_post, checkpoint51c_post, ecco_c50_e32, checkpoint53a_post, ecco_c50_e31, checkpoint44, release1_p13, ecco_c44_e18, checkpoint48, checkpoint49, checkpoint44f_post, checkpoint47b_post, checkpoint53b_post, checkpoint51o_post, checkpoint48g_post, ecco_c44_e17, release1_p17, release1_b1, checkpoint44b_post, checkpoint51q_post, checkpoint52l_post, checkpoint52k_post, chkpt44c_post, ecco_c51_e34, chkpt44d_post, ecco_c50_e29, checkpoint42, release1_p9, checkpoint51, checkpoint50, checkpoint53, checkpoint52, release1_p8, checkpoint50d_post, checkpoint43, checkpoint52d_post, checkpoint46g_pre, release1_p2, release1_p3, release1_p4, checkpoint51b_pre, release1_p6, checkpoint52a_post, checkpoint46a_post, checkpoint47g_post, checkpoint52b_post, chkpt44a_post, checkpoint52f_post, checkpoint44b_pre, checkpoint52c_post, release1_p1, checkpoint46m_post, checkpoint51h_pre, checkpoint46a_pre, ecco_c51_e34e, ecco-branch-mod1, checkpoint50g_post, checkpoint45c_post, release1_p5, checkpoint44e_pre, checkpoint51g_post, ecco_c52_e35, chkpt44c_pre, checkpoint40pre9, release1_p7, ecco_ice2, ecco_ice1, checkpoint46b_post, checkpoint51f_post, checkpoint46d_post, ecco-branch-mod2, checkpoint48b_post, checkpoint50b_post, checkpoint46g_post, checkpoint45a_post, ecco_c51_e34d, ecco_c51_e34f, ecco_c51_e34g, ecco_c51_e34a, ecco_c51_e34b, ecco_c51_e34c, checkpoint50f_post, checkpoint50a_post, checkpoint46c_pre, checkpoint50f_pre, checkpoint52a_pre, ecco-branch-mod3, ecco_c50_e33, checkpoint47d_pre, checkpoint51d_post, ecco_c50_e30, checkpoint48c_pre, ecco-branch-mod5, ecco_c44_e22, release1_beta1, ecco_c44_e23, checkpoint51m_post, checkpoint51t_post, checkpoint53d_pre, release1-branch_branchpoint, checkpoint47, checkpoint46c_post, checkpoint50h_post, checkpoint52i_post, checkpoint51a_post, checkpoint40, checkpoint45, checkpoint46h_post, checkpoint50e_pre, checkpoint50i_post, checkpoint51p_post, checkpoint51n_post, release1_chkpt44d_post, ecco_c44_e25, checkpoint51i_pre, checkpoint52i_pre, checkpoint51u_post, checkpoint52h_pre, checkpoint41, checkpoint52f_pre, hrcube_1, hrcube_2, hrcube_3, checkpoint51s_post
Branch point for: c24_e25_ice, netcdf-sm0, ecco-branch, branch-genmake2, branch-nonh, release1_coupled, icebear, tg2-branch, release1_final, checkpoint51n_branch, release1-branch, release1, release1_50yr, branch-exfmods-curt
Changes since 1.3: +0 -1 lines
Removed disp('1'). More debugging.

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

  ViewVC Help
Powered by ViewVC 1.1.22