/[MITgcm]/MITgcm_contrib/eh3/llc/ecco-godae/climatology/plot_mesh.m
ViewVC logotype

Contents of /MITgcm_contrib/eh3/llc/ecco-godae/climatology/plot_mesh.m

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


Revision 1.3 - (show annotations) (download)
Fri May 4 15:31:38 2007 UTC (18 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +0 -0 lines
move those scripts back here (my mistake).

1 % Load six facet mesh *.mitgrid files
2 fn_in='llc90x90x360_lonshift';
3 fg=load_mitgrid_ct('.',fn_in,90,90,360);
4 fn_out='llc90x90x360_lonshift_correctedgevals';
5
6 % Now fix up facet edges to be correct mesh lengths
7 mg=fg;
8 a6=0.;
9 % o east-west face lhs
10 % dxV
11 mg(1).dxV( 1,1:end)=fg(1).dxV( 1,1:end)+fg(5).dyU(end:-1:1, end)';
12 mg(1).dxV(end,1:end)=fg(1).dxV(end,1:end)+fg(2).dxV( 1,1:end) ;
13 mg(2).dxV( 1,1:end)=fg(2).dxV( 1,1:end)+fg(1).dxV( end,1:end) ;
14 mg(2).dxV(end,1:end)=fg(2).dxV(end,1:end)+fg(4).dyU(end:-1:1, 1)';
15 mg(3).dxV( 1,1:end)=fg(3).dxV( 1,1:end)+fg(1).dyU(end:-1:1, 1)';
16 mg(3).dxV(end,1:end)=fg(3).dxV(end,1:end)+fg(4).dxV( end,1:end) ;
17 mg(4).dxV( 1,1:end)=fg(4).dxV( 1,1:end)+fg(3).dxV( end,1:end) ;
18 mg(4).dxV(end,1:end)=fg(4).dxV(end,1:end)+fg(6).dyU(end:-1:1, 1)'*a6;
19 mg(5).dxV( 1,1:end)=fg(5).dxV( 1,1:end)+fg(3).dyU(end:-1:1, end)';
20 mg(5).dxV(end,1:end)=fg(5).dxV(end,1:end)+fg(6).dxV( 1,1:end)*a6 ;
21 mg(6).dxV( 1,1:end)=fg(6).dxV( 1,1:end)+fg(5).dxV( end,1:end) ;
22 mg(6).dxV(end,1:end)=fg(6).dxV(end,1:end)+fg(2).dyU(end:-1:1, 1)';
23 % dxC
24 mg(1).dxC( 1,1:end-1)=fg(1).dxC( 1,1:end-1)+fg(5).dyC(end-1:-1:1, end)';
25 mg(1).dxC(end,1:end-1)=fg(1).dxC(end,1:end-1)+fg(2).dxC( 1,1:end-1) ;
26 mg(2).dxC( 1,1:end-1)=fg(2).dxC( 1,1:end-1)+fg(1).dxC( end,1:end-1) ;
27 mg(2).dxC(end,1:end-1)=fg(2).dxC(end,1:end-1)+fg(4).dyC(end-1:-1:1, 1)';
28 mg(3).dxC( 1,1:end-1)=fg(3).dxC( 1,1:end-1)+fg(1).dyC(end-1:-1:1, 1)';
29 mg(3).dxC(end,1:end-1)=fg(3).dxC(end,1:end-1)+fg(4).dxC( end,1:end-1) ;
30 mg(4).dxC( 1,1:end-1)=fg(4).dxC( 1,1:end-1)+fg(3).dxC( end,1:end-1) ;
31 mg(4).dxC(end,1:end-1)=fg(4).dxC(end,1:end-1)+fg(6).dyC(end-1:-1:1, 1)'*a6;
32 mg(5).dxC( 1,1:end-1)=fg(5).dxC( 1,1:end-1)+fg(3).dyC(end-1:-1:1, end)';
33 mg(5).dxC(end,1:end-1)=fg(5).dxC(end,1:end-1)+fg(6).dxC( 1,1:end-1)*a6 ;
34 mg(6).dxC( 1,1:end-1)=fg(6).dxC( 1,1:end-1)+fg(5).dxC( end,1:end-1) ;
35 mg(6).dxC(end,1:end-1)=fg(6).dxC(end,1:end-1)+fg(2).dyC(end-1:-1:1, 1)';
36 % rAw
37 mg(1).rAw( 1,1:end-1)=fg(1).rAw( 1,1:end-1)+fg(5).rAs(end-1:-1:1, end)';
38 mg(1).rAw(end,1:end-1)=fg(1).rAw(end,1:end-1)+fg(2).rAw( 1,1:end-1) ;
39 mg(2).rAw( 1,1:end-1)=fg(2).rAw( 1,1:end-1)+fg(1).rAw( end,1:end-1) ;
40 mg(2).rAw(end,1:end-1)=fg(2).rAw(end,1:end-1)+fg(4).rAs(end-1:-1:1, 1)';
41 mg(3).rAw( 1,1:end-1)=fg(3).rAw( 1,1:end-1)+fg(1).rAs(end-1:-1:1, 1)';
42 mg(3).rAw(end,1:end-1)=fg(3).rAw(end,1:end-1)+fg(4).rAw( end,1:end-1) ;
43 mg(4).rAw( 1,1:end-1)=fg(4).rAw( 1,1:end-1)+fg(3).rAw( end,1:end-1) ;
44 mg(4).rAw(end,1:end-1)=fg(4).rAw(end,1:end-1)+fg(6).rAs(end-1:-1:1, 1)'*a6;
45 mg(5).rAw( 1,1:end-1)=fg(5).rAw( 1,1:end-1)+fg(3).rAs(end-1:-1:1, end)';
46 mg(5).rAw(end,1:end-1)=fg(5).rAw(end,1:end-1)+fg(6).rAw( 1,1:end-1)*a6 ;
47 mg(6).rAw( 1,1:end-1)=fg(6).rAw( 1,1:end-1)+fg(5).rAw( end,1:end-1) ;
48 mg(6).rAw(end,1:end-1)=fg(6).rAw(end,1:end-1)+fg(2).rAs(end-1:-1:1, 1)';
49 % rAz (west-east faces only, not corners or north-south faces)
50 mg(1).rAz( 1,1:end)=fg(1).rAz( 1,1:end)+fg(5).rAz(end:-1:1, end)';
51 mg(1).rAz(end,1:end)=fg(1).rAz(end,1:end)+fg(2).rAz( 1,1:end) ;
52 mg(2).rAz( 1,1:end)=fg(2).rAz( 1,1:end)+fg(1).rAz( end,1:end) ;
53 mg(2).rAz(end,1:end)=fg(2).rAz(end,1:end)+fg(4).rAz(end:-1:1, 1)';
54 mg(3).rAz( 1,1:end)=fg(3).rAz( 1,1:end)+fg(1).rAz(end:-1:1, 1)';
55 mg(3).rAz(end,1:end)=fg(3).rAz(end,1:end)+fg(4).rAz( end,1:end) ;
56 mg(4).rAz( 1,1:end)=fg(4).rAz( 1,1:end)+fg(3).rAz( end,1:end) ;
57 mg(4).rAz(end,1:end)=fg(4).rAz(end,1:end)+fg(6).rAz(end:-1:1, 1)'*a6;
58 mg(5).rAz( 1,1:end)=fg(5).rAz( 1,1:end)+fg(3).rAz(end:-1:1, end)';
59 mg(5).rAz(end,1:end)=fg(5).rAz(end,1:end)+fg(6).rAz( 1,1:end)*a6 ;
60 mg(6).rAz( 1,1:end)=fg(6).rAz( 1,1:end)+fg(5).rAz( end,1:end) ;
61 mg(6).rAz(end,1:end)=fg(6).rAz(end,1:end)+fg(2).rAz(end:-1:1, 1)';
62 % o north-south face lhs
63 % dyU
64 mg(1).dyU(1:end,end)=fg(1).dyU(1:end,end)+fg(3).dxV( 1,end:-1:1)';
65 mg(1).dyU(1:end, 1)=fg(1).dyU(1:end, 1)+fg(6).dyU(1:end, end)*a6;
66 mg(2).dyU(1:end,end)=fg(2).dyU(1:end,end)+fg(3).dyU(1:end, 1);
67 mg(2).dyU(1:end, 1)=fg(2).dyU(1:end, 1)+fg(6).dxV( end,end:-1:1)'*a6;
68 mg(3).dyU(1:end,end)=fg(3).dyU(1:end,end)+fg(5).dxV( 1,end:-1:1)';
69 mg(3).dyU(1:end, 1)=fg(3).dyU(1:end, 1)+fg(2).dyU(1:end, end);
70 mg(4).dyU(1:end,end)=fg(4).dyU(1:end,end)+fg(5).dyU(1:end, 1);
71 mg(4).dyU(1:end, 1)=fg(4).dyU(1:end, 1)+fg(2).dxV( end,end:-1:1)';
72 mg(5).dyU(1:end,end)=fg(5).dyU(1:end,end)+fg(1).dxV( 1,end:-1:1)';
73 mg(5).dyU(1:end, 1)=fg(5).dyU(1:end, 1)+fg(4).dyU(1:end, end);
74 mg(6).dyU(1:end,end)=fg(6).dyU(1:end,end)+fg(1).dyU(1:end, 1);
75 mg(6).dyU(1:end, 1)=fg(6).dyU(1:end, 1)+fg(4).dxV( end,end:-1:1)';
76 % dyC
77 mg(1).dyC(1:end-1,end)=fg(1).dyC(1:end-1,end)+fg(3).dxC( 1,end-1:-1:1)';
78 mg(1).dyC(1:end-1, 1)=fg(1).dyC(1:end-1, 1)+fg(6).dyC(1:end-1, end)*a6;
79 mg(2).dyC(1:end-1,end)=fg(2).dyC(1:end-1,end)+fg(3).dyC(1:end-1, 1);
80 mg(2).dyC(1:end-1, 1)=fg(2).dyC(1:end-1, 1)+fg(6).dxC( end,end-1:-1:1)'*a6;
81 mg(3).dyC(1:end-1,end)=fg(3).dyC(1:end-1,end)+fg(5).dxC( 1,end-1:-1:1)';
82 mg(3).dyC(1:end-1, 1)=fg(3).dyC(1:end-1, 1)+fg(2).dyC(1:end-1, end);
83 mg(4).dyC(1:end-1,end)=fg(4).dyC(1:end-1,end)+fg(5).dyC(1:end-1, 1);
84 mg(4).dyC(1:end-1, 1)=fg(4).dyC(1:end-1, 1)+fg(2).dxC( end,end-1:-1:1)';
85 mg(5).dyC(1:end-1,end)=fg(5).dyC(1:end-1,end)+fg(1).dxC( 1,end-1:-1:1)';
86 mg(5).dyC(1:end-1, 1)=fg(5).dyC(1:end-1, 1)+fg(4).dyC(1:end-1, end);
87 mg(6).dyC(1:end-1,end)=fg(6).dyC(1:end-1,end)+fg(1).dyC(1:end-1, 1);
88 mg(6).dyC(1:end-1, 1)=fg(6).dyC(1:end-1, 1)+fg(4).dxC( end,end-1:-1:1)';
89 % rAs
90 mg(1).rAs(1:end-1,end)=fg(1).rAs(1:end-1,end)+fg(3).rAw( 1,end-1:-1:1)';
91 mg(1).rAs(1:end-1, 1)=fg(1).rAs(1:end-1, 1)+fg(6).rAs(1:end-1, end)*a6;
92 mg(2).rAs(1:end-1,end)=fg(2).rAs(1:end-1,end)+fg(3).rAs(1:end-1, 1);
93 mg(2).rAs(1:end-1, 1)=fg(2).rAs(1:end-1, 1)+fg(6).rAw( end,end-1:-1:1)'*a6;
94 mg(3).rAs(1:end-1,end)=fg(3).rAs(1:end-1,end)+fg(5).rAw( 1,end-1:-1:1)';
95 mg(3).rAs(1:end-1, 1)=fg(3).rAs(1:end-1, 1)+fg(2).rAs(1:end-1, end);
96 mg(4).rAs(1:end-1,end)=fg(4).rAs(1:end-1,end)+fg(5).rAs(1:end-1, 1);
97 mg(4).rAs(1:end-1, 1)=fg(4).rAs(1:end-1, 1)+fg(2).rAw( end,end-1:-1:1)';
98 mg(5).rAs(1:end-1,end)=fg(5).rAs(1:end-1,end)+fg(1).rAw( 1,end-1:-1:1)';
99 mg(5).rAs(1:end-1, 1)=fg(5).rAs(1:end-1, 1)+fg(4).rAs(1:end-1, end);
100 mg(6).rAs(1:end-1,end)=fg(6).rAs(1:end-1,end)+fg(1).rAs(1:end-1, 1);
101 mg(6).rAs(1:end-1, 1)=fg(6).rAs(1:end-1, 1)+fg(4).rAw( end,end-1:-1:1)';
102 % rAz
103 mg(1).rAz(1:end,end)=fg(1).rAz(1:end,end)+fg(3).rAz( 1,end:-1:1)';
104 mg(1).rAz(1:end, 1)=fg(1).rAz(1:end, 1)+fg(6).rAz(1:end, end)*a6;
105 mg(2).rAz(1:end,end)=fg(2).rAz(1:end,end)+fg(3).rAz(1:end, 1);
106 mg(2).rAz(1:end, 1)=fg(2).rAz(1:end, 1)+fg(6).rAz( end,end:-1:1)'*a6;
107 mg(3).rAz(1:end,end)=fg(3).rAz(1:end,end)+fg(5).rAz( 1,end:-1:1)';
108 mg(3).rAz(1:end, 1)=fg(3).rAz(1:end, 1)+fg(2).rAz(1:end, end);
109 mg(4).rAz(1:end,end)=fg(4).rAz(1:end,end)+fg(5).rAz(1:end, 1);
110 mg(4).rAz(1:end, 1)=fg(4).rAz(1:end, 1)+fg(2).rAz( end,end:-1:1)';
111 mg(5).rAz(1:end,end)=fg(5).rAz(1:end,end)+fg(1).rAz( 1,end:-1:1)';
112 mg(5).rAz(1:end, 1)=fg(5).rAz(1:end, 1)+fg(4).rAz(1:end, end);
113 mg(6).rAz(1:end,end)=fg(6).rAz(1:end,end)+fg(1).rAz(1:end, 1);
114 mg(6).rAz(1:end, 1)=fg(6).rAz(1:end, 1)+fg(4).rAz( end,end:-1:1)';
115 % o corner lhs
116 mg(1).rAz(1 , 1)=fg(1).rAz(1 , 1)+fg(5).rAz(end,end)+fg(6).rAz( 1,end)*a6;
117 mg(1).rAz(end, 1)=fg(1).rAz(end, 1)+fg(2).rAz( 1, 1)+fg(6).rAz(end,end)*a6;
118 mg(1).rAz(1 ,end)=fg(1).rAz(1 ,end)+fg(3).rAz( 1,end)+fg(5).rAz( 1,end);
119 mg(1).rAz(end,end)=fg(1).rAz(end,end)+fg(2).rAz( 1,end)+fg(3).rAz( 1, 1);
120 mg(2).rAz(1 , 1)=fg(2).rAz(1 , 1)+fg(1).rAz( 1,end)+fg(6).rAz(end,end)*a6;
121 mg(2).rAz(end, 1)=fg(2).rAz(end, 1)+fg(4).rAz(end, 1)+fg(6).rAz(end, 1)*a6;
122 mg(2).rAz(1 ,end)=fg(2).rAz(1 ,end)+fg(1).rAz(end,end)+fg(3).rAz( 1, 1);
123 mg(2).rAz(end,end)=fg(2).rAz(end,end)+fg(3).rAz(end, 1)+fg(4).rAz( 1, 1);
124 mg(3).rAz(1 , 1)=fg(3).rAz(1 , 1)+fg(1).rAz(end,end)+fg(2).rAz( 1,end);
125 mg(3).rAz(end, 1)=fg(3).rAz(end, 1)+fg(2).rAz(end,end)+fg(4).rAz( 1, 1);
126 mg(3).rAz(1 ,end)=fg(3).rAz(1 ,end)+fg(1).rAz( 1,end)+fg(5).rAz( 1,end);
127 mg(3).rAz(end,end)=fg(3).rAz(end,end)+fg(4).rAz( 1,end)+fg(5).rAz(end,end);
128 mg(4).rAz(1 , 1)=fg(4).rAz(1 , 1)+fg(2).rAz(end,end)+fg(3).rAz(end, 1);
129 mg(4).rAz(end, 1)=fg(4).rAz(end, 1)+fg(2).rAz(end, 1)+fg(6).rAz(end, 1)*a6;
130 mg(4).rAz(1 ,end)=fg(4).rAz(1 ,end)+fg(3).rAz(end,end)+fg(5).rAz( 1, 1);
131 mg(4).rAz(end,end)=fg(4).rAz(end,end)+fg(5).rAz(end, 1)+fg(6).rAz( 1, 1)*a6;
132 mg(5).rAz(1 , 1)=fg(5).rAz(1 , 1)+fg(3).rAz(end,end)+fg(4).rAz( 1,end);
133 mg(5).rAz(end, 1)=fg(5).rAz(end, 1)+fg(4).rAz(end,end)+fg(6).rAz( 1, 1);
134 mg(5).rAz(1 ,end)=fg(5).rAz(1 ,end)+fg(1).rAz( 1,end)+fg(3).rAz( 1,end);
135 mg(5).rAz(end,end)=fg(5).rAz(end,end)+fg(1).rAz( 1, 1)+fg(6).rAz( 1,end)*a6;
136 mg(6).rAz(1 , 1)=fg(6).rAz(1 , 1)+fg(4).rAz(end,end)+fg(5).rAz( 1,end);
137 mg(6).rAz(end, 1)=fg(6).rAz(end, 1)+fg(2).rAz(end, 1)+fg(4).rAz(end, 1);
138 mg(6).rAz(1 ,end)=fg(6).rAz(1 ,end)+fg(1).rAz( 1, 1)+fg(5).rAz(end,end);
139 mg(6).rAz(end,end)=fg(6).rAz(end,end)+fg(1).rAz(end, 1)+fg(2).rAz( 1, 1);
140
141 % mg=facets_to_mesh(fg);
142
143 clf
144 spnum=[9 10 6 7 3 4 1];
145 estr='local';
146 for i=1:6
147 subplot(3,4,spnum(i));imagesc(mg(i).xG');axis xy;colorbar
148 label_edges(i,mg,estr);
149 end
150
151 % Set xg and yg on edges of face 6 to their counterparts on faces
152 % 5, 4, 2, 1.
153 % This avoids the halo exchange causing problems by making xg and yg wrong in
154 % 5 and 4 when they are output in mnc.
155 mg(6).xG( 1, :)=mg(5).xG( end, :);
156 mg(6).xG( :, 1)=mg(4).xG( end,end:-1:1);
157 mg(6).xG(end, :)=mg(2).xG(end:-1:1, 1);
158 mg(6).xG( :,end)=mg(1).xG( :, 1);
159 mg(6).yG( 1, :)=mg(5).yG( end, :);
160 mg(6).yG( :, 1)=mg(4).yG( end,end:-1:1);
161 mg(6).yG(end, :)=mg(2).yG(end:-1:1, 1);
162 mg(6).yG( :,end)=mg(1).yG( :, 1);
163
164 % Now write out new mesh files with correct values at mesh points along facet edge
165 % (I hope).
166 for i=1:6
167 fn=sprintf('%s_%d.mitgrid',fn_out,i);
168 fid=fopen(fn,'w','ieee-be');
169 fwrite(fid,mg(i).xC,'float64');
170 fwrite(fid,mg(i).yC,'float64');
171 fwrite(fid,mg(i).dxF,'float64');
172 fwrite(fid,mg(i).dyF,'float64');
173 fwrite(fid,mg(i).rA,'float64');
174 fwrite(fid,mg(i).xG,'float64');
175 fwrite(fid,mg(i).yG,'float64');
176 fwrite(fid,mg(i).dxV,'float64');
177 fwrite(fid,mg(i).dyU,'float64');
178 fwrite(fid,mg(i).rAz,'float64');
179 fwrite(fid,mg(i).dxC,'float64');
180 fwrite(fid,mg(i).dyC,'float64');
181 fwrite(fid,mg(i).rAw,'float64');
182 fwrite(fid,mg(i).rAs,'float64');
183 fwrite(fid,mg(i).dxG,'float64');
184 fwrite(fid,mg(i).dyG,'float64');
185 fwrite(fid,mg(i).AngleCS,'float64');
186 fwrite(fid,mg(i).AngleSN,'float64');
187 fclose(fid);
188 end
189
190

  ViewVC Help
Powered by ViewVC 1.1.22