/[MITgcm]/MITgcm_contrib/timour_matlab/mscripts/DIAGtest.m
ViewVC logotype

Annotation of /MITgcm_contrib/timour_matlab/mscripts/DIAGtest.m

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


Revision 1.1 - (hide annotations) (download)
Wed Sep 3 21:22:22 2003 UTC (21 years, 10 months ago) by edhill
Branch: MAIN
CVS Tags: HEAD
initial checkin of Timour's MatLAB scripts

1 edhill 1.1 % PV diagnostics 'DIAGtest'
2    
3     sumM=zeros(Nx,Ny);
4     sumD=zeros(Nx,Ny);
5     sumW=zeros(Nx,Ny);
6    
7     dz=0.005;
8    
9     % DEFINE BOX OF INTEGRATION
10     Nx1=4;
11     Nx2=Nx-3;
12     Ny1=4;
13     % for single gyre
14     % Ny2=Ny-3;
15     % for double-gyre
16     Ny2=45;
17    
18     Nz1=5;
19     Nz2=Nz-4;
20    
21     %Nx1=30;
22     %Nx2=32;
23     %Ny1=30;
24     %Ny2=32;
25     %Nz1=10;
26     %Nz2=12;
27    
28     pv1=pv;
29     Mp1=Mp;
30     Dp1=Dp;
31    
32     % for kk=1:4
33     % pv1=smooth3(pv1);
34     % Mp1=smooth3(Mp1);
35     % Dp1=smooth3(Dp1);
36     % end
37    
38    
39     for k=Nz1:Nz2
40    
41     if k==Nz1
42     a=0.5;
43     elseif k==Nz2
44     a=0.5;
45     else
46     a=1;
47     end
48    
49     sumM(3:Nx-2,3:Ny-2)=sumM(3:Nx-2,3:Ny-2)+a*Mp1(3:Nx-2,3:Ny-2,k)*dz;
50     sumD(3:Nx-2,3:Ny-2)=sumD(3:Nx-2,3:Ny-2)+a*Dp1(3:Nx-2,3:Ny-2,k)*dz;
51     end
52     sumW(3:Nx-2,3:Ny-2)=meanw(3:Nx-2,3:Ny-2,Nz1).*pv1(3:Nx-2,3:Ny-2,Nz1);
53    
54     for k=1:3
55     sumM1(:,:,k)=sumM(:,:);
56     sumD1(:,:,k)=sumD(:,:);
57     sumW1(:,:,k)=sumW(:,:);
58     end
59    
60     for k=1:15
61    
62     sumM1=smooth3(sumM1);
63     sumD1=smooth3(sumD1);
64     sumW1=smooth3(sumW1);
65     end
66    
67     V=[0.25*min(min(sumW(Nx1+2:Nx2,Ny1:Ny2-4))) 0];
68    
69     % title='Vorticity input';
70     % imagesc(lat,long,sumW(Nx1:Nx2,Ny1:Ny2)');shading flat;caxis(V);axis image;colorbar('vertical');
71     % set(gca,'ydir','norm')
72     % text(0,110,title);
73     %figure
74     v=zeros(10,1);
75     v1=zeros(10,1);
76     for i=1:10
77     %v(i)=-0.1*(i-0.5)*7;
78     %v1(i)=0.1*(i-0.5)*7;
79     v(i)=-0.01*(i);
80     v1(i)=0.01*(i);
81     end
82    
83     % contour(squeeze(sumW1(Nx1:Nx2,Ny1:Ny2,1))',v)
84     % hold on
85     % contour(squeeze(sumW1(Nx1:Nx2,Ny1:Ny2,1))',v1,'--')
86     % hold off
87     % text(20,0,'countour interval is 0.7 in the non-dimensional units');
88     % text(20,95,'Vorticity input','Fontsize',16);
89    
90     %figure
91    
92     %V=[-0.5*max(max(abs(sumD(Nx1:Nx2,Ny1:Ny2-4)))) 0.5*max(max(abs(sumD(Nx1:Nx2,Ny1:Ny2-4))))];
93     % title='Buoyancy diffusion integral';
94     % imagesc(lat,long,sumD(Nx1:Nx2,Ny1:Ny2)');shading flat;caxis(V);axis image;colorbar('vertical');
95     % set(gca,'ydir','norm')
96     % text(0,110,title);
97    
98    
99     % figure
100     x=Nx1:Nx2;
101     y=Ny1:Ny-2;
102     subplot(2,1,1)
103     contourf(x,y,squeeze(sumD1(Nx1:Nx2,Ny1:Ny-2,1))',10);colorbar;
104     % contour(x,y,squeeze(sumD1(Nx1:Nx2,Ny1:Ny2,1))',v)
105     %hold on
106     % contour(x,y,squeeze(sumD1(Nx1:Nx2,Ny1:Ny2,1))',v1,'--')
107     text(10,Ny2+5,'Buoyancy eddy-transfer','Fontsize',13);
108     %hold off
109     xlabel('X (gridpoints)')
110     ylabel('Y (gridpoints)')
111     set(gca,'DataAspectRatio',[2,2,2])
112    
113     %figure
114     %V=[-0.5*max(max(abs(sumM(Nx1:Nx2,Ny1:Ny2-4)))) 0.5*max(max(abs(sumM(Nx1:Nx2,Ny1:Ny2-4))))];
115     % title='Momentum eddy-transfer';
116     % imagesc(lat,long,sumM(Nx1:Nx2,Ny1:Ny2)');shading flat;caxis(V);axis image;colorbar('vertical');
117     % set(gca,'ydir','norm')
118     % text(0,110,title);
119    
120     subplot(2,1,2)
121     contourf(x,y,squeeze(sumM1(Nx1:Nx2,Ny1:Ny-2,1))',10);colorbar;
122     % contour(x,y,squeeze(sumM1(Nx1:Nx2,Ny1:Ny2,1))',v)
123    
124     set(gca,'DataAspectRatio',[1,1,1])
125     text(10,Ny2+5,'Momentum eddy-transfer integral','Fontsize',13);
126     %hold on
127     % contour(x,y,squeeze(sumM1(Nx1:Nx2,Ny1:Ny2,1))',v1,'--')
128     %hold off
129     xlabel('X (gridpoints)')
130     ylabel('Y (gridpoints)')
131     % text(40,-20,'countour interval - 0.01 (non-dimensional units)','FontSize',7);
132     % text(40,-30,'negative values - solid line','FontSize',7);
133     % text(40,-35,'positive values - dashed line','FontSize',7);
134    
135    
136    
137     %-----TEST-------------------------------------------------
138    
139     dz
140    
141     bx=zeros(Nx,Ny,Nz);
142     by=zeros(Nx,Ny,Nz);
143     bz=zeros(Nx,Ny,Nz);
144     zetax=zeros(Nx,Ny,Nz);
145     zetay=zeros(Nx,Ny,Nz);
146     zetaz=zeros(Nx,Ny,Nz);
147    
148     bx(2:Nx-1,2:Ny-1,2:Nz-1)=(meantheta(3:Nx,2:Ny-1,2:Nz-1)-meantheta(1:Nx-2,2:Ny-1,2:Nz-1))/(2*dx);
149     by(2:Nx-1,2:Ny-1,2:Nz-1)=(meantheta(2:Nx-1,3:Ny,2:Nz-1)-meantheta(2:Nx-1,1:Ny-2,2:Nz-1))/(2*dy);
150     bz(2:Nx-1,2:Ny-1,2:Nz-1)=-(meantheta(2:Nx-1,2:Ny-1,3:Nz)-meantheta(2:Nx-1,2:Ny-1,1:Nz-2))/(2*abs(dz));
151    
152     zetax(2:Nx-1,2:Ny-1,2:Nz-1)=(meanv(2:Nx-1,2:Ny-1,3:Nz)-meanv(2:Nx-1,2:Ny-1,1:Nz-2))/(2*abs(dz));
153     zetay(2:Nx-1,2:Ny-1,2:Nz-1)=-(meanu(2:Nx-1,2:Ny-1,3:Nz)-meanu(2:Nx-1,2:Ny-1,1:Nz-2))/(2*abs(dz));
154     zetaz(2:Nx-1,2:Ny-1,2:Nz-1)=(meanv(3:Nx,2:Ny-1,2:Nz-1)/(2*dx)-meanv(1:Nx-2,2:Ny-1,2:Nz-1)/(2*dx) ...
155     -meanu(2:Nx-1,3:Ny,2:Nz-1)/(2*dy)+meanu(2:Nx-1,1:Ny-2,2:Nz-1)/(2*dy) ...
156     +ff(2:Nx-1,2:Ny-1,2:Nz-1));
157    
158    
159     sum=0;
160     sumT=0;
161     sumV=0;
162     sumY=0;
163     summ=0;
164     sumd=0;
165     for i=Nx1:Nx2
166     for j=Ny1:Ny2
167    
168     if i==Nx1
169     a=0.5;
170     elseif i==Nx2
171     a=0.5;
172     else
173     a=1;
174     end
175    
176     if j==Ny1
177     b=0.5;
178     elseif j==Ny2
179     b=0.5;
180     else
181     b=1;
182     end
183    
184    
185     summ=summ+a*b*(Mu(i,j,Nz1)*by(i,j,Nz1)-Mv(i,j,Nz1)*bx(i,j,Nz1))*dx*dy;
186     summ=summ-a*b*(Mu(i,j,Nz2)*by(i,j,Nz2)-Mv(i,j,Nz2)*bx(i,j,Nz2))*dx*dy;
187     sumd=sumd+a*b*zetaz(i,j,Nz1)*D(i,j,Nz1)*dx*dy;
188     sumd=sumd-a*b*zetaz(i,j,Nz2)*D(i,j,Nz2)*dx*dy;
189     sum=sum+a*b*meanw(i,j,Nz1)*pv(i,j,Nz1)*dx*dy;
190     sumT=sum-a*b*meanw(i,j,Nz2)*pv(i,j,Nz2)*dx*dy;
191     sumV=sumV+a*b*meanw(i,j,Nz1)*dx*dy;
192     sumV=sumV-a*b*meanw(i,j,Nz2)*dx*dy;
193     end
194     end
195    
196     'xy'
197     summ
198     sumV
199     sumd
200    
201     for j=Ny1:Ny2
202     for k=Nz1:Nz2
203    
204     if k==Nz1
205     a=0.5;
206     elseif k==Nz2
207     a=0.5;
208     else
209     a=1;
210     end
211    
212     if j==Ny1
213     b=0.5;
214     elseif j==Ny2
215     b=0.5;
216     else
217     b=1;
218     end
219    
220    
221    
222     summ=summ+a*b*Mv(Nx2,j,k)*bz(Nx2,j,k)*dz*dy;
223     summ=summ-a*b*Mv(Nx1,j,k)*bz(Nx1,j,k)*dz*dy;
224     sumd=sumd+a*b*zetax(Nx2,j,k)*D(Nx2,j,k)*dz*dy;
225     sumd=sumd-a*b*zetax(Nx1,j,k)*D(Nx1,j,k)*dz*dy;
226     sumT=sumT+a*b*meanu(Nx2,j,k)*pv(Nx2,j,k)*dz*dy;
227     sumT=sumT-a*b*meanu(Nx1,j,k)*pv(Nx1,j,k)*dz*dy;
228     sumV=sumV+a*b*meanu(Nx2,j,k)*dz*dy;
229     sumV=sumV-a*b*meanu(Nx1,j,k)*dz*dy;
230     end
231     end
232    
233     'xy+yz'
234     summ
235     sumd
236    
237     for i=Nx1:Nx2
238     for k=Nz1:Nz2
239    
240     if k==Nz1
241     a=0.5;
242     elseif k==Nz2
243     a=0.5;
244     else
245     a=1;
246     end
247    
248     if i==Nx1
249     b=0.5;
250     elseif i==Nx2
251     b=0.5;
252     else
253     b=1;
254     end
255    
256    
257     summ=summ-a*b*Mu(i,Ny2,k)*bz(i,Ny2,k)*dz*dx;
258     summ=summ+a*b*Mu(i,Ny1,k)*bz(i,Ny1,k)*dz*dx;
259     sumd=sumd+a*b*zetay(i,Ny2,k)*D(i,Ny2,k)*dz*dx;
260     sumd=sumd-a*b*zetay(i,Ny1,k)*D(i,Ny1,k)*dz*dx;
261     sumT=sumT+a*b*meanv(i,Ny2,k)*pv(i,Ny2,k)*dz*dx;
262     sumY=sumY+a*b*meanv(i,Ny2,k)*pv(i,Ny2,k)*dz*dx;
263     sumT=sumT-a*b*meanv(i,Ny1,k)*pv(i,Ny1,k)*dz*dx;
264     sumV=sumV+a*b*meanv(i,Ny2,k)*dz*dx;
265     sumV=sumV-a*b*meanv(i,Ny1,k)*dz*dx;
266     end
267     end
268     'TOTAL'
269     sum
270     sumY
271     sumT
272     sumV
273     summ
274     sumd
275    
276    
277     sum=0;
278     for i=Nx1:Nx2
279     for j=Ny1:Ny2
280    
281     if i==Nx1
282     a=0.5;
283     elseif i==Nx2
284     a=0.5;
285     else
286     a=1;
287     end
288    
289     if j==Ny1
290     b=0.5;
291     elseif j==Ny2
292     b=0.5;
293     else
294     b=1;
295     end
296    
297     sum=sum+a*b*sumD(i,j)*dx*dy;
298     end
299     end
300     'DISSIPATION BY EDDY-DIFFUSIVITY'
301     sum
302    
303     sum=0;
304     for i=Nx1:Nx2
305     for j=Ny1:Ny2
306    
307     if i==Nx1
308     a=0.5;
309     elseif i==Nx2
310     a=0.5;
311     else
312     a=1;
313     end
314    
315     if j==Ny1
316     b=0.5;
317     elseif j==Ny2
318     b=0.5;
319     else
320     b=1;
321     end
322    
323     sum=sum+a*b*sumM(i,j)*dx*dy;
324     end
325     end
326     'DISSIPATION BY EDDY-VISCOSITY'
327     sum
328    
329     'IMBALANCE'
330     (sumT-(summ+sumd))/sumd

  ViewVC Help
Powered by ViewVC 1.1.22