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

Annotation 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 - (hide 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 heimbach 1.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