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

Annotation of /MITgcm_contrib/timour_matlab/mscripts/DIAG2.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 clear path
2    
3     global Nx Ny Nz
4     global lat long dz dm mdep
5     global delt_su su_its t_su delt
6     global descriptor this_path
7     global f deltaf Q beta r_expt r_heat H
8     global time rots it
9     global g Cp rho_bar alpha
10     global u v t w
11     global iterations
12    
13    
14     param_file_name = ...
15     input(' Please enter the name of the m-file with the parameters for this run : ','s') ;
16     feval(param_file_name) ;
17    
18     % iterations
19    
20     itstart = input(' Please enter start iteration : ','s')
21     itend = input(' Please enter end iteration : ','s')
22    
23    
24     sizeit=size(iterations);
25     for i=1:sizeit(1)
26     iter(i)=eval(iterations(i,1:10));
27     end
28     nitstart=find(iter==eval(itstart))
29     nitend=find(iter==eval(itend))
30    
31     path = this_path
32     cmdstr=['cd ' path ];
33     eval(cmdstr);
34     path=pwd
35    
36     sumtheta=zeros(Nx,Ny,Nz);
37     sumu=zeros(Nx,Ny,Nz);
38     sumv=zeros(Nx,Ny,Nz);
39     sumw=zeros(Nx,Ny,Nz);
40     counter=0;
41    
42     for i=nitstart:nitend
43     i,0
44     tfilename=(['T.' iterations((i),1:10) ]) ;
45     t=rdmds(tfilename,'b');
46    
47     ufilename=(['U.' iterations((i),1:10) ]) ;
48     u=rdmds(ufilename,'b');
49     u(1:Nx-1,:,:)=0.5*(u(1:Nx-1,:,:)+u(2:Nx,:,:));
50    
51     vfilename=(['V.' iterations((i),1:10) ]) ;
52     v=rdmds(vfilename,'b');
53     v(:,1:Ny-1,:)=0.5*(v(:,1:Ny-1,:)+v(:,2:Ny,:));
54    
55     wfilename=(['W.' iterations((i),1:10) ]) ;
56     w=rdmds(wfilename,'b');
57    
58     sumtheta=sumtheta+t;
59     sumu=sumu+u;
60     sumv=sumv+v;
61     sumw=sumw+w;
62     counter=counter+1;
63     end
64    
65     meantheta=sumtheta/counter;
66     meanu=sumu/counter;
67     meanv=sumv/counter;
68     meanw=sumw/counter;
69    
70     sumut=zeros(Nx,Ny,Nz);
71     sumvt=zeros(Nx,Ny,Nz);
72     sumwt=zeros(Nx,Ny,Nz);
73    
74     sumuu=zeros(Nx,Ny,Nz);
75     sumvu=zeros(Nx,Ny,Nz);
76     sumwu=zeros(Nx,Ny,Nz);
77     sumvv=zeros(Nx,Ny,Nz);
78     sumwv=zeros(Nx,Ny,Nz);
79    
80     %meanu=smooth3(meanu);
81     %meanv=smooth3(meanv);
82     %meanw=smooth3(meanw);
83     %meantheta=smooth3(meantheta);
84    
85     for i=nitstart:nitend
86     i
87     tfilename=(['T.' iterations((i),1:10) ]) ;
88     t=rdmds(tfilename,'b');
89    
90     ufilename=(['U.' iterations((i),1:10) ]) ;
91     u=rdmds(ufilename,'b');
92     u(1:Nx-1,:,:)=0.5*(u(1:Nx-1,:,:)+u(2:Nx,:,:));
93    
94     vfilename=(['V.' iterations((i),1:10) ]) ;
95     v=rdmds(vfilename,'b');
96     v(:,1:Ny-1,:)=0.5*(v(:,1:Ny-1,:)+v(:,2:Ny,:));
97    
98     wfilename=(['W.' iterations((i),1:10) ]) ;
99     w=rdmds(wfilename,'b');
100    
101     t=t-meantheta;
102     u=u-meanu;
103     v=v-meanv;
104     w=w-meanw;
105    
106     sumut=sumut+u.*t;
107     sumvt=sumvt+v.*t;
108     sumwt=sumwt+w.*t;
109    
110     sumuu=sumuu+u.*u;
111     sumvu=sumvu+v.*u;
112     sumwu=sumwu+w.*u;
113     sumvv=sumvv+v.*v;
114     sumwv=sumwv+w.*v;
115     end
116    
117     sumut=sumut/counter;
118     sumvt=sumvt/counter;
119     sumwt=sumwt/counter;
120    
121     sumuu=sumuu/counter;
122     sumvu=sumvu/counter;
123     sumwu=sumwu/counter;
124     sumvv=sumvv/counter;
125     sumwv=sumwv/counter;
126    
127     Mu=zeros(Nx,Ny,Nz);
128     Mv=zeros(Nx,Ny,Nz);
129     D=zeros(Nx,Ny,Nz);
130    
131     dx=dm;
132     dy=dm;
133     dz=-dz;
134    
135     Mu(2:Nx-1,2:Ny-1,2:Nz-1)=-(sumuu(3:Nx,2:Ny-1,2:Nz-1)-sumuu(1:Nx-2,2:Ny-1,2:Nz-1))/(2*dx) ...
136     -(sumvu(2:Nx-1,3:Ny,2:Nz-1)-sumvu(2:Nx-1,1:Ny-2,2:Nz-1))/(2*dy) ...
137     -(sumwu(2:Nx-1,2:Ny-1,3:Nz)-sumwu(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz);
138    
139     Mv(2:Nx-1,2:Ny-1,2:Nz-1)=-(sumvu(3:Nx,2:Ny-1,2:Nz-1)-sumvu(1:Nx-2,2:Ny-1,2:Nz-1))/(2*dx) ...
140     -(sumvv(2:Nx-1,3:Ny,2:Nz-1)-sumvv(2:Nx-1,1:Ny-2,2:Nz-1))/(2*dy) ...
141     -(sumwv(2:Nx-1,2:Ny-1,3:Nz)-sumwv(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz);
142    
143     D(2:Nx-1,2:Ny-1,2:Nz-1)=-(sumut(3:Nx,2:Ny-1,2:Nz-1)-sumut(1:Nx-2,2:Ny-1,2:Nz-1))/(2*dx) ...
144     -(sumvt(2:Nx-1,3:Ny,2:Nz-1)-sumvt(2:Nx-1,1:Ny-2,2:Nz-1))/(2*dy) ...
145     -(sumwt(2:Nx-1,2:Ny-1,3:Nz)-sumwt(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz);
146    
147     pv=zeros(Nx,Ny,Nz);
148     ff=zeros(Nx,Ny,Nz);
149    
150    
151     for j=1:Ny
152     ff(:,j,:)=f+(j-1)*dy*beta;
153     end
154    
155     pv(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) ...
156     -meanu(2:Nx-1,3:Ny,2:Nz-1)/(2*dy)+meanu(2:Nx-1,1:Ny-2,2:Nz-1)/(2*dy) ...
157     +ff(2:Nx-1,2:Ny-1,2:Nz-1)) ...
158     .*(meantheta(2:Nx-1,2:Ny-1,3:Nz)-meantheta(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz) ...
159     -(meanv(2:Nx-1,2:Ny-1,3:Nz)-meanv(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz) ...
160     .*(meantheta(3:Nx,2:Ny-1,2:Nz-1)-meantheta(1:Nx-2,2:Ny-1,2:Nz-1))/(2*dx)+ ...
161     (meanu(2:Nx-1,2:Ny-1,3:Nz)-meanu(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz) ...
162     .*(meantheta(2:Nx-1,3:Ny,2:Nz-1)-meantheta(2:Nx-1,1:Ny-2,2:Nz-1))/(2*dy);
163    
164     Mp=zeros(Nx,Ny,Nz);
165     Dp=zeros(Nx,Ny,Nz);
166    
167     Mp(3:Nx-2,3:Ny-2,3:Nz-2)=((Mv(4:Nx-1,3:Ny-2,3:Nz-2)-Mv(2:Nx-3,3:Ny-2,3:Nz-2))/(2*dx)- ...
168     (Mu(3:Nx-2,4:Ny-1,3:Nz-2)-Mu(3:Nx-2,2:Ny-3,3:Nz-2))/(2*dy)).* ...
169     (meantheta(3:Nx-2,3:Ny-2,4:Nz-1)-meantheta(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz) ...
170     -(Mv(3:Nx-2,3:Ny-2,4:Nz-1)-Mv(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz).* ...
171     (meantheta(4:Nx-1,3:Ny-2,3:Nz-2)-meantheta(2:Nx-3,3:Ny-2,3:Nz-2))/(2*dx) ...
172     +(Mu(3:Nx-2,3:Ny-2,4:Nz-1)-Mu(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz).* ...
173     (meantheta(3:Nx-2,4:Ny-1,3:Nz-2)-meantheta(3:Nx-2,2:Ny-3,3:Nz-2))/(2*dy);
174    
175     Dp(3:Nx-2,3:Ny-2,3:Nz-2)=(D(3:Nx-2,3:Ny-2,4:Nz-1)-D(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz).* ...
176     (meanv(4:Nx-1,3:Ny-2,3:Nz-2)/(2*dx)-meanv(2:Nx-3,3:Ny-2,3:Nz-2)/(2*dx) ...
177     -meanu(3:Nx-2,4:Ny-1,3:Nz-2)/(2*dy)+meanu(3:Nx-2,2:Ny-3,3:Nz-2)/(2*dy)+ff(3:Nx-2,3:Ny-2,3:Nz-2)) ...
178     -(D(4:Nx-1,3:Ny-2,3:Nz-2)-D(2:Nx-3,3:Ny-2,3:Nz-2))/(2*dx).* ...
179     (meanv(3:Nx-2,3:Ny-2,4:Nz-1)-meanv(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz)+ ...
180     (D(3:Nx-2,4:Ny-1,3:Nz-2)-D(3:Nx-2,2:Ny-3,3:Nz-2))/(2*dy).* ...
181     (meanu(3:Nx-2,3:Ny-2,4:Nz-1)-meanu(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz);
182    
183    
184     sumM=zeros(Nx,Ny);
185     sumD=zeros(Nx,Ny);
186     sumW=zeros(Nx,Ny);
187    
188     dz=-dz;
189    
190     % DEFINE BOX OF INTEGRATION
191     Nx1=3;
192     Nx2=Nx-2;
193     Ny1=3;
194     %Ny2=Ny-2;
195     Ny2=Ny/2-2;
196     Nz1=5;
197     Nz2=Nz-4;
198    
199    
200     for k=Nz1:Nz2
201     sumM(3:Nx-2,3:Ny-2)=sumM(3:Nx-2,3:Ny-2)+Mp(3:Nx-2,3:Ny-2,k).*pv(3:Nx-2,3:Ny-2,k)*dz;
202     sumD(3:Nx-2,3:Ny-2)=sumD(3:Nx-2,3:Ny-2)+Dp(3:Nx-2,3:Ny-2,k).*pv(3:Nx-2,3:Ny-2,k)*dz;
203     end
204     sumW(3:Nx-2,3:Ny-2)=0.5*meanw(3:Nx-2,3:Ny-2,Nz1).*pv(3:Nx-2,3:Ny-2,Nz1).*pv(3:Nx-2,3:Ny-2,Nz1);
205    
206     %contourf(sumM',20);colorbar;
207     %figure
208     %contourf(sumD',20);colorbar;
209    
210     V=[0.25*min(min(sumW(Nx1:Nx2,Ny1:Ny2-4))) 0];
211    
212     title='Vorticity input';
213     imagesc(lat,long,sumW(Nx1:Nx2,Ny1:Ny2-4)');shading flat;caxis(V);axis image;colorbar('vertical');
214     set(gca,'ydir','norm')
215     text(0,110,title);
216     figure
217     V=[-0.5*max(max(abs(sumD(Nx1:Nx2,Ny1:Ny2-4)))) 0.5*max(max(abs(sumD(Nx1:Nx2,Ny1:Ny2-4))))]
218     title='Buoyancy eddy-transfer integral';
219     imagesc(lat,long,sumD(Nx1:Nx2,Ny1:Ny2-4)');shading flat;caxis(V);axis image;colorbar('vertical');
220     set(gca,'ydir','norm')
221     text(0,110,title);
222     figure
223     V=[-0.5*max(max(abs(sumM(Nx1:Nx2,Ny1:Ny2-4)))) 0.5*max(max(abs(sumM(Nx1:Nx2,Ny1:Ny2-4))))]
224     title='Momentum eddy-transfer integral';
225     imagesc(lat,long,sumM(Nx1:Nx2,Ny1:Ny2-4)');shading flat;caxis(V);axis image;colorbar('vertical');
226     set(gca,'ydir','norm')
227     text(0,110,title);
228    
229    
230     %-----TEST-------------------------------------------------
231    
232     sum=0;
233     sumT=0;
234     for i=Nx1:Nx2
235     for j=Ny1:Ny2
236     sum=sum+0.5*meanw(i,j,Nz1)*pv(i,j,Nz1)*pv(i,j,Nz1)*dx*dy;
237     sumT=sum-0.5*meanw(i,j,Nz2)*pv(i,j,Nz2)*pv(i,j,Nz2)*dx*dy;
238     end
239     end
240    
241     for j=Ny1:Ny2
242     for k=Nz1:Nz2
243     sumT=sumT+0.5*meanu(Nx2,j,k)*pv(Nx2,j,k)*pv(Nx2,j,k)*dz*dy;
244     sumT=sumT-0.5*meanu(Nx1,j,k)*pv(Nx1,j,k)*pv(Nx1,j,k)*dz*dy;
245     end
246     end
247    
248     for i=Nx1:Nx2
249     for k=Nz1:Nz2
250     sumT=sumT+0.5*meanv(i,Ny2,k)*pv(i,Ny2,k)*pv(i,Ny2,k)*dz*dx;
251     sumT=sumT-0.5*meanv(i,Ny1,k)*pv(i,Ny1,k)*pv(i,Ny1,k)*dz*dx;
252     end
253     end
254     'VORTICITY GENERATION'
255     sum
256     sumT
257    
258    
259     sum=0;
260     for i=Nx1:Nx2
261     for j=Ny1:Ny2
262     sum=sum+sumD(i,j)*dx*dy;
263     end
264     end
265     'DISSIPATION BY EDDY-DIFFUSIVITY'
266     sum
267    
268     sum=0;
269     for i=Nx1:Nx2
270     for j=Ny1:Ny2
271     sum=sum+sumM(i,j)*dx*dy;
272     end
273     end
274     'DISSIPATION BY EDDY-VISCOSITY'
275     sum

  ViewVC Help
Powered by ViewVC 1.1.22