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

Annotation of /MITgcm_contrib/timour_matlab/mscripts/DIAGP.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     tfilename=(['T.' iterations((i),1:10) ]) ;
44     t=rdmds(tfilename,'b');
45    
46     ufilename=(['U.' iterations((i),1:10) ]) ;
47     u=rdmds(ufilename,'b');
48    
49     vfilename=(['V.' iterations((i),1:10) ]) ;
50     v=rdmds(vfilename,'b');
51    
52     wfilename=(['W.' iterations((i),1:10) ]) ;
53     w=rdmds(wfilename,'b');
54    
55     sumtheta=sumtheta+t;
56     sumu=sumu+u;
57     sumv=sumv+v;
58     sumw=sumw+w;
59     counter=counter+1;
60     end
61    
62     meantheta=sumtheta/counter;
63     meanu=sumu/counter;
64     meanv=sumv/counter;
65     meanw=sumw/counter;
66    
67     sumut=zeros(Nx,Ny,Nz);
68     sumvt=zeros(Nx,Ny,Nz);
69     sumwt=zeros(Nx,Ny,Nz);
70    
71     sumuu=zeros(Nx,Ny,Nz);
72     sumvu=zeros(Nx,Ny,Nz);
73     sumwu=zeros(Nx,Ny,Nz);
74     sumvv=zeros(Nx,Ny,Nz);
75     sumwv=zeros(Nx,Ny,Nz);
76    
77     meanu=smooth3(meanu);
78     meanv=smooth3(meanv);
79     meanw=smooth3(meanw);
80     meantheta=smooth3(meantheta);
81    
82     for i=nitstart:nitend
83     i
84     tfilename=(['T.' iterations((i),1:10) ]) ;
85     t=rdmds(tfilename,'b');
86    
87     ufilename=(['U.' iterations((i),1:10) ]) ;
88     u=rdmds(ufilename,'b');
89    
90     vfilename=(['V.' iterations((i),1:10) ]) ;
91     v=rdmds(vfilename,'b');
92    
93     wfilename=(['W.' iterations((i),1:10) ]) ;
94     w=rdmds(wfilename,'b');
95    
96     t=t-meantheta;
97     u=u-meanu;
98     v=v-meanv;
99     w=w-meanw;
100    
101     sumut=sumut+u.*t;
102     sumvt=sumvt+v.*t;
103     sumwt=sumwt+w.*t;
104    
105     sumuu=sumuu+u.*u;
106     sumvu=sumvu+v.*u;
107     sumwu=sumwu+w.*u;
108     sumvv=sumvv+v.*v;
109     sumwv=sumwv+w.*v;
110     end
111    
112     sumut=sumut/counter;
113     sumvt=sumvt/counter;
114     sumwt=sumwt/counter;
115    
116     sumuu=sumuu/counter;
117     sumvu=sumvu/counter;
118     sumwu=sumwu/counter;
119     sumvv=sumvv/counter;
120     sumwv=sumwv/counter;
121    
122     Mu=zeros(Nx,Ny,Nz);
123     Mv=zeros(Nx,Ny,Nz);
124     Nu=zeros(Nx,Ny,Nz);
125     Nv=zeros(Nx,Ny,Nz);
126     D=zeros(Nx,Ny,Nz);
127    
128     dx=dm;
129     dy=dm;
130     dz=-dz;
131    
132     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) ...
133     -(sumvu(2:Nx-1,3:Ny,2:Nz-1)-sumvu(2:Nx-1,1:Ny-2,2:Nz-1))/(2*dy) ...
134     -(sumwu(2:Nx-1,2:Ny-1,3:Nz)-sumwu(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz);
135    
136     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) ...
137     -(sumvv(2:Nx-1,3:Ny,2:Nz-1)-sumvv(2:Nx-1,1:Ny-2,2:Nz-1))/(2*dy) ...
138     -(sumwv(2:Nx-1,2:Ny-1,3:Nz)-sumwv(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz);
139    
140     Nu(2:Nx-1,2:Ny-1,2:Nz-1)=-(meanu(3:Nx,2:Ny-1,2:Nz-1).*meanu(3:Nx,2:Ny-1,2:Nz-1) ...
141     -meanu(1:Nx-2,2:Ny-1,2:Nz-1).*meanu(1:Nx-2,2:Ny-1,2:Nz-1))/(2*dx) ...
142     -(meanv(2:Nx-1,3:Ny,2:Nz-1).*meanu(2:Nx-1,3:Ny,2:Nz-1) ...
143     -meanv(2:Nx-1,1:Ny-2,2:Nz-1).*meanu(2:Nx-1,1:Ny-2,2:Nz-1))/(2*dy) ...
144     -(meanw(2:Nx-1,2:Ny-1,3:Nz).*meanu(2:Nx-1,2:Ny-1,3:Nz) ...
145     -meanw(2:Nx-1,2:Ny-1,1:Nz-2).*meanu(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz);
146    
147     Nv(2:Nx-1,2:Ny-1,2:Nz-1)=-(meanv(3:Nx,2:Ny-1,2:Nz-1).*meanu(3:Nx,2:Ny-1,2:Nz-1) ...
148     -meanv(1:Nx-2,2:Ny-1,2:Nz-1).*meanu(1:Nx-2,2:Ny-1,2:Nz-1))/(2*dx) ...
149     -(meanv(2:Nx-1,3:Ny,2:Nz-1).*meanv(2:Nx-1,3:Ny,2:Nz-1) ...
150     -meanv(2:Nx-1,1:Ny-2,2:Nz-1).*meanv(2:Nx-1,1:Ny-2,2:Nz-1))/(2*dy) ...
151     -(meanw(2:Nx-1,2:Ny-1,3:Nz).*meanv(2:Nx-1,2:Ny-1,3:Nz) ...
152     -meanw(2:Nx-1,2:Ny-1,1:Nz-2).*meanv(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz);
153    
154     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) ...
155     -(sumvt(2:Nx-1,3:Ny,2:Nz-1)-sumvt(2:Nx-1,1:Ny-2,2:Nz-1))/(2*dy) ...
156     -(sumwt(2:Nx-1,2:Ny-1,3:Nz)-sumwt(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz);
157    
158     pv=zeros(Nx,Ny,Nz);
159     ff=zeros(Nx,Ny,Nz);
160    
161    
162     for j=1:Ny
163     ff(:,j,:)=f+(j-1)*dy*beta;
164     end
165    
166     pv(2:Nx-1,2:Ny-1,2:Nz-1)=(ff(2:Nx-1,2:Ny-1,2:Nz-1)) ...
167     .*(meantheta(2:Nx-1,2:Ny-1,3:Nz)-meantheta(2:Nx-1,2:Ny-1,1:Nz-2))/(2*dz);
168    
169     Mp=zeros(Nx,Ny,Nz);
170     Np=zeros(Nx,Ny,Nz);
171     Dp=zeros(Nx,Ny,Nz);
172    
173     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)- ...
174     (Mu(3:Nx-2,4:Ny-1,3:Nz-2)-Mu(3:Nx-2,2:Ny-3,3:Nz-2))/(2*dy)).* ...
175     (meantheta(3:Nx-2,3:Ny-2,4:Nz-1)-meantheta(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz) ...
176     -(Mv(3:Nx-2,3:Ny-2,4:Nz-1)-Mv(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz).* ...
177     (meantheta(4:Nx-1,3:Ny-2,3:Nz-2)-meantheta(2:Nx-3,3:Ny-2,3:Nz-2))/(2*dx) ...
178     +(Mu(3:Nx-2,3:Ny-2,4:Nz-1)-Mu(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz).* ...
179     (meantheta(3:Nx-2,4:Ny-1,3:Nz-2)-meantheta(3:Nx-2,2:Ny-3,3:Nz-2))/(2*dy);
180    
181     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).* ...
182     ff(3:Nx-2,3:Ny-2,3:Nz-2);
183    
184     Np(3:Nx-2,3:Ny-2,3:Nz-2)=((Nv(4:Nx-1,3:Ny-2,3:Nz-2)-Nv(2:Nx-3,3:Ny-2,3:Nz-2))/(2*dx)- ...
185     (Nu(3:Nx-2,4:Ny-1,3:Nz-2)-Nu(3:Nx-2,2:Ny-3,3:Nz-2))/(2*dy)).* ...
186     (meantheta(3:Nx-2,3:Ny-2,4:Nz-1)-meantheta(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz) ...
187     -(Nv(3:Nx-2,3:Ny-2,4:Nz-1)-Nv(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz).* ...
188     (meantheta(4:Nx-1,3:Ny-2,3:Nz-2)-meantheta(2:Nx-3,3:Ny-2,3:Nz-2))/(2*dx) ...
189     +(Nu(3:Nx-2,3:Ny-2,4:Nz-1)-Nu(3:Nx-2,3:Ny-2,2:Nz-3))/(2*dz).* ...
190     (meantheta(3:Nx-2,4:Ny-1,3:Nz-2)-meantheta(3:Nx-2,2:Ny-3,3:Nz-2))/(2*dy);
191    
192     sumM=zeros(Nx,Ny);
193     sumN=zeros(Nx,Ny);
194     sumD=zeros(Nx,Ny);
195     sumW=zeros(Nx,Ny);
196    
197     dz=-dz;
198    
199     % DEFINE BOX OF INTEGRATION
200     Nx1=3;
201     Nx2=Nx-2;
202     Ny1=3;
203     Ny2=Ny-2;
204     Nz1=5;
205     Nz2=Nz-4;
206    
207    
208     for k=Nz1:Nz2
209     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;
210     sumN(3:Nx-2,3:Ny-2)=sumN(3:Nx-2,3:Ny-2)+Np(3:Nx-2,3:Ny-2,k).*pv(3:Nx-2,3:Ny-2,k)*dz;
211     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;
212     end
213     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);
214    
215     %contourf(sumM',20);colorbar;
216     %figure
217     %contourf(sumD',20);colorbar;
218    
219     V=[-10 10];
220     title='Vorticity input';
221     imagesc(lat,long,sumW(Nx1:Nx2,Ny1:Ny2)');shading flat;axis image;colorbar('vertical');
222     set(gca,'ydir','norm')
223     text(0,110,title);
224     figure
225     title='Buoyancy diffusion integral';
226     imagesc(lat,long,sumD(Nx1:Nx2,Ny1:Ny2)');shading flat;axis image;colorbar('vertical');
227     set(gca,'ydir','norm')
228     text(0,110,title);
229     figure
230     title='Non-linear terms integral';
231     imagesc(lat,long,sumN(Nx1:Nx2,Ny1:Ny2)');shading flat;axis image;colorbar('vertical');
232     set(gca,'ydir','norm')
233     text(0,110,title);
234     figure
235     title='Momentum diffusion integral';
236     imagesc(lat,long,sumM(Nx1:Nx2,Ny1:Ny2)');shading flat;axis image;colorbar('vertical');
237     set(gca,'ydir','norm')
238     text(0,110,title);
239    
240    
241     %-----TEST-------------------------------------------------
242    
243     sum=0;
244     sumT=0;
245     for i=Nx1:Nx2
246     for j=Ny1:Ny2
247     sum=sum+0.5*meanw(i,j,Nz1)*pv(i,j,Nz1)*pv(i,j,Nz1)*dx*dy;
248     sumT=sum-0.5*meanw(i,j,Nz2)*pv(i,j,Nz2)*pv(i,j,Nz2)*dx*dy;
249     end
250     end
251    
252     for j=Ny1:Ny2
253     for k=Nz1:Nz2
254     sumT=sumT+0.5*meanu(Nx2,j,k)*pv(Nx2,j,k)*pv(Nx2,j,k)*dz*dy;
255     sumT=sumT-0.5*meanu(Nx1,j,k)*pv(Nx1,j,k)*pv(Nx1,j,k)*dz*dy;
256     end
257     end
258    
259     for i=Nx1:Nx2
260     for k=Nz1:Nz2
261     sumT=sumT+0.5*meanv(i,Ny2,k)*pv(i,Ny2,k)*pv(i,Ny2,k)*dz*dx;
262     sumT=sumT-0.5*meanv(i,Ny1,k)*pv(i,Ny1,k)*pv(i,Ny1,k)*dz*dx;
263     end
264     end
265     'VORTICITY GENERATION'
266     sum
267     sumT
268    
269    
270     sum=0;
271     for i=Nx1:Nx2
272     for j=Ny1:Ny2
273     sum=sum+sumD(i,j)*dx*dy;
274     end
275     end
276     'DISSIPATION BY EDDY-DIFFUSIVITY'
277     sum
278    
279     sum=0;
280     for i=Nx1:Nx2
281     for j=Ny1:Ny2
282     sum=sum+sumM(i,j)*dx*dy;
283     end
284     end
285     'DISSIPATION BY EDDY-VISCOSITY'
286     sum
287    
288     sum=0;
289     for i=Nx1:Nx2
290     for j=Ny1:Ny2
291     sum=sum+sumN(i,j)*dx*dy;
292     end
293     end
294     'NONLINEARITY'
295     sum

  ViewVC Help
Powered by ViewVC 1.1.22