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

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

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


Revision 1.1 - (show annotations) (download)
Wed Nov 15 01:27:18 2006 UTC (18 years, 8 months ago) by heimbach
Branch: MAIN
CVS Tags: HEAD
Adding and modifying matlab scripts which hopefully are now
self-consistent in dealing with original grid shift and transposing bugs.

1 % Plot shifted cube fields in six panel layout
2 function [facet_list] = shift_lon()
3 global bdata
4 global facet_list
5 global xCshift
6 global nr nb ng
7
8 % "facet" sizes table
9 % llc
10 nr=90;
11 ng=90;
12 nb=360;
13 % cs32
14 %% nr=32;
15 %% ng=32;
16 %% nb=32;
17 facet_list=[];
18 clear facet_list;
19 facet_list(1).fsize=[nr nb];
20 facet_list(2).fsize=[ng nb];
21 facet_list(3).fsize=[nr ng];
22 facet_list(4).fsize=[nb nr];
23 facet_list(5).fsize=[nb ng];
24 facet_list(6).fsize=[ng nr];
25
26
27 % 1 - read in grid parameters from .mitgrid files
28 % (use .nc files later)
29 % llc
30 bdir='.';
31 % cs32
32 %% bdir='cs32';
33 fl=dir(bdir);
34 ngrid=0;
35 for f=1:length(fl)
36 n=fl(f).name;
37 a=regexp(n,'.*\.mitgrid$','match');
38 if length(a) == 1
39 ngrid=ngrid+1;
40 gl(ngrid)=a;
41 end
42 end
43 ngrid;
44
45 %
46 %
47 if length(gl) ~= length(facet_list)
48 fprintf(1,'ERROR: Number of .mitgrid files does not match number of expected facets\n');
49 return
50 end
51 for g=1:length(gl)
52 fn=sprintf('%s/%s',bdir,gl{g});
53 fid=fopen(fn,'r','ieee-be');
54 s1=facet_list(g).fsize(1);
55 s2=facet_list(g).fsize(2);
56 % Read the sixteen values
57 % xc, xg, yc, yg, dxC, dyC, dxF, dyF, dxG, dyG, dxV, dyU, rA, rAz, rAw, rAs, AngleCS, AngleSN
58 % xc, yc, dxF, dyF, rA, xG, yG, dxV, dyU, rAz, dxC, dyC, rAw, rAs, dxG, dyG, AngleCS, AngleSN
59 facet_list(g).xC = fread(fid,[s1+1 s2+1],'float64');
60 facet_list(g).yC = fread(fid,[s1+1 s2+1],'float64');
61 facet_list(g).dxF = fread(fid,[s1+1 s2+1],'float64');
62 facet_list(g).dyF = fread(fid,[s1+1 s2+1],'float64');
63 facet_list(g).rA = fread(fid,[s1+1 s2+1],'float64');
64 facet_list(g).xG = fread(fid,[s1+1 s2+1],'float64');
65 facet_list(g).yG = fread(fid,[s1+1 s2+1],'float64');
66 facet_list(g).dxV = fread(fid,[s1+1 s2+1],'float64');
67 facet_list(g).dyU = fread(fid,[s1+1 s2+1],'float64');
68 facet_list(g).rAz = fread(fid,[s1+1 s2+1],'float64');
69 facet_list(g).dxC = fread(fid,[s1+1 s2+1],'float64');
70 facet_list(g).dyC = fread(fid,[s1+1 s2+1],'float64');
71 facet_list(g).rAw = fread(fid,[s1+1 s2+1],'float64');
72 facet_list(g).rAs = fread(fid,[s1+1 s2+1],'float64');
73 facet_list(g).dxG = fread(fid,[s1+1 s2+1],'float64');
74 facet_list(g).dyG = fread(fid,[s1+1 s2+1],'float64');
75 facet_list(g).AngleCS = fread(fid,[s1+1 s2+1],'float64');
76 facet_list(g).AngleSN = fread(fid,[s1+1 s2+1],'float64');
77 fclose(fid);
78 end
79
80 % Make grid plots to check things look good so far
81 figure(1); clf
82 %%% mkcubeplot( 'xc',{facet_list(:).xC} , 1. );
83 %%% mkcubeplot( 'yc',{facet_list(:).yC} , 1. );
84 %%% mkcubeplot('dxF',{facet_list(:).dxF}, 1./1e3 );
85 %%% mkcubeplot('dyF',{facet_list(:).dyF}, 1./1e3 );
86 %%% mkcubeplot( 'rA',{facet_list(:).rA} , 1./1e6 )
87 %%% mkcubeplot( 'xg',{facet_list(:).xG} , 1. );
88 %%% mkcubeplot( 'yg',{facet_list(:).yG} , 1. );
89 %%% mkcubeplot('dxV',{facet_list(:).dxV}, 1./1e3 );
90 %%% mkcubeplot('dyU',{facet_list(:).dyU}, 1./1e3 );
91 %%% mkcubeplot('rAz',{facet_list(:).rAz}, 1./1e6 );
92 %%% mkcubeplot('dxC',{facet_list(:).dxC}, 1./1e3 );
93 %%% mkcubeplot('dyC',{facet_list(:).dyC}, 1./1e3 );
94 %%% mkcubeplot('rAw',{facet_list(:).rAw}, 1./1e6 );
95 %%% mkcubeplot('rAs',{facet_list(:).rAs}, 1./1e6 );
96 %%% mkcubeplot('dxG',{facet_list(:).dxG}, 1./1e3 );
97 %%% mkcubeplot('dyG',{facet_list(:).dyG}, 1./1e3 );
98
99 a={facet_list(:).xC};
100 size(a,2)
101 for ia=1:size(a,2)
102 phi=a{ia};
103 phi=phi-37.;
104 i180=find(phi>180.);
105 phi(i180)=phi(i180)-360.;
106 i180=find(phi<-180.);
107 phi(i180)=phi(i180)+360.;
108 a{ia}=phi;
109 xCshift=a;
110 end
111 mkcubeplot( 'xCshift',a , 1. );
112
113 a={facet_list(:).xG};
114 size(a,2)
115 for ia=1:size(a,2)
116 phi=a{ia};
117 phi=phi-37.;
118 i180=find(phi>180.);
119 phi(i180)=phi(i180)-360.;
120 i180=find(phi<-180.);
121 phi(i180)=phi(i180)+360.;
122 a{ia}=phi;
123 xGshift=a;
124 end
125 mkcubeplot( 'xGshift',a , 1. );
126
127 for g=1:6
128 fn=sprintf('%s_%d.mitgrid','llc90x90x360_lonshift',g);
129 fid=fopen(fn,'w','ieee-be');
130 s1=facet_list(g).fsize(1);
131 s2=facet_list(g).fsize(2);
132 %fwrite(fid,facet_list(g).xC, 'float64');
133 fwrite(fid,xCshift{g}, 'float64');
134 fwrite(fid,facet_list(g).yC, 'float64');
135 fwrite(fid,facet_list(g).dxF,'float64');
136 fwrite(fid,facet_list(g).dyF,'float64');
137 fwrite(fid,facet_list(g).rA, 'float64');
138 %fwrite(fid,facet_list(g).xG, 'float64');
139 fwrite(fid,xGshift{g}, 'float64');
140 fwrite(fid,facet_list(g).yG, 'float64');
141 fwrite(fid,facet_list(g).dxV,'float64');
142 fwrite(fid,facet_list(g).dyU,'float64');
143 fwrite(fid,facet_list(g).rAz,'float64');
144 fwrite(fid,facet_list(g).dxC,'float64');
145 fwrite(fid,facet_list(g).dyC,'float64');
146 fwrite(fid,facet_list(g).rAw,'float64');
147 fwrite(fid,facet_list(g).rAs,'float64');
148 fwrite(fid,facet_list(g).dxG,'float64');
149 fwrite(fid,facet_list(g).dyG,'float64');
150 fwrite(fid,facet_list(g).AngleCS,'float64');
151 fwrite(fid,facet_list(g).AngleSN,'float64');
152 % Read the sixteen values
153 % xc, xg, yc, yg, dxC, dyC, dxF, dyF, dxG, dyG, dxV, dyU, rA, rAz, rAw, rAs, AngleCS, AngleSN
154 % xc, yc, dxF, dyF, rA, xG, yG, dxV, dyU, rAz, dxC, dyC, rAw, rAs, dxG, dyG, AngleCS, AngleSN
155 %% facet_list(g).xC = fread(fid,[s1+1 s2+1],'float64');
156 %% facet_list(g).yC = fread(fid,[s1+1 s2+1],'float64');
157 %% facet_list(g).dxF = fread(fid,[s1+1 s2+1],'float64');
158 %% facet_list(g).dyF = fread(fid,[s1+1 s2+1],'float64');
159 %% facet_list(g).rA = fread(fid,[s1+1 s2+1],'float64');
160 %% facet_list(g).xG = fread(fid,[s1+1 s2+1],'float64');
161 %% facet_list(g).yG = fread(fid,[s1+1 s2+1],'float64');
162 %% facet_list(g).dxV = fread(fid,[s1+1 s2+1],'float64');
163 %% facet_list(g).dyU = fread(fid,[s1+1 s2+1],'float64');
164 %% facet_list(g).rAz = fread(fid,[s1+1 s2+1],'float64');
165 %% facet_list(g).dxC = fread(fid,[s1+1 s2+1],'float64');
166 %% facet_list(g).dyC = fread(fid,[s1+1 s2+1],'float64');
167 %% facet_list(g).rAw = fread(fid,[s1+1 s2+1],'float64');
168 %% facet_list(g).rAs = fread(fid,[s1+1 s2+1],'float64');
169 %% facet_list(g).dxG = fread(fid,[s1+1 s2+1],'float64');
170 %% facet_list(g).dyG = fread(fid,[s1+1 s2+1],'float64');
171 %% facet_list(g).AngleCS = fread(fid,[s1+1 s2+1],'float64');
172 %% facet_list(g).AngleSN = fread(fid,[s1+1 s2+1],'float64');
173 fclose(fid);
174 end
175
176 end
177
178 function [] = mkcubeplot(ptit,temp,sf)
179 ploc=[9 10 6 7 3 4];
180 phil=[];
181 for g=1:length(temp)
182 phi=temp{g}*sf;
183 phil=[ phil phi(:)'];
184 end
185 for g=1:length(temp)
186 phi=temp{g}*sf;
187 phi=flipud(phi');
188 subplot(3,4,ploc(g));
189 imagesc(phi);caxis([min(phil) max(phil)]);
190 end
191 subplot(3,4,1);
192 axis off
193 caxis([min(phil) max(phil)]);colorbar;
194 title(ptit);
195 drawnow
196
197 pnam=sprintf('%s.jpeg',ptit);
198 print('-djpeg100',pnam);
199
200 end

  ViewVC Help
Powered by ViewVC 1.1.22