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

Contents of /MITgcm_contrib/timour_matlab/mscripts/DIAG.m

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


Revision 1.1 - (show annotations) (download)
Wed Sep 3 21:22:22 2003 UTC (21 years, 10 months ago) by edhill
Branch: MAIN
CVS Tags: HEAD
Error occurred while calculating annotation data.
initial checkin of Timour's MatLAB scripts

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

  ViewVC Help
Powered by ViewVC 1.1.22