1 |
function [FLD]=exch_Z_llc(fld); |
2 |
%[FLD]=exch_Z_llc(fld); |
3 |
%adds vorticity points (to north and east of center points) for |
4 |
%lat-lon cap grid |
5 |
|
6 |
gcmfaces_global; |
7 |
|
8 |
%missing corners : assume symmetry of the grid (that may be completly wrong!) |
9 |
global exch_Z_assume_sym; |
10 |
if isempty(exch_Z_assume_sym); |
11 |
exch_Z_assume_sym=0; |
12 |
end; |
13 |
|
14 |
%determine vertical and/or time dimensions |
15 |
n3=max(size(fld.f1,3),1); n4=max(size(fld.f1,4),1); |
16 |
|
17 |
%initialize FLD |
18 |
FLD=gcmfaces; |
19 |
for iF=1:mygrid.nFaces |
20 |
[n1,n2]=size(mygrid.XC{iF}); |
21 |
FLD{iF}=NaN*zeros([n1+1 n2+1 n3 n4]); |
22 |
end; |
23 |
|
24 |
for k3=1:n3; for k4=1:n4; |
25 |
|
26 |
for iF=1:mygrid.nFaces |
27 |
FLD{iF}(1:end-1,1:end-1,k3,k4)=fld{iF}(:,:,k3,k4); |
28 |
end |
29 |
|
30 |
%overlap in i+1 |
31 |
FLD.f1(end,1:end-1,k3,k4)=fld.f2(1,:,k3,k4); |
32 |
FLD.f2(end,2:end,k3,k4)=flipud(fld.f4(:,1,k3,k4)); |
33 |
FLD.f3(end,1:end-1,k3,k4)=fld.f4(1,:,k3,k4); |
34 |
FLD.f4(end,2:end,k3,k4)=NaN; |
35 |
FLD.f5(end,1:end-1,k3,k4)=NaN; |
36 |
|
37 |
%overlap in j+1 |
38 |
FLD.f1(2:end,end,k3,k4)=fliplr(fld.f3(1,:,k3,k4)); |
39 |
FLD.f2(1:end-1,end,k3,k4)=fld.f3(:,1,k3,k4); |
40 |
FLD.f3(2:end,end,k3,k4)=fliplr(fld.f5(1,:,k3,k4)); |
41 |
FLD.f4(1:end-1,end,k3,k4)=fld.f5(:,1,k3,k4); |
42 |
FLD.f5(2:end,end,k3,k4)=fliplr(fld.f1(1,:,k3,k4)); |
43 |
|
44 |
%missing corners : use the average value (from the 3 or 2 neighbours) |
45 |
zzC(1)=(fld.f1(1,end,k3,k4)+fld.f3(1,end,k3,k4)+fld.f5(1,end,k3,k4))/3; |
46 |
zzC(2)=(fld.f2(end,1,k3,k4)+fld.f4(end,1,k3,k4))/2; |
47 |
|
48 |
%missing corners : assume symmetry of the grid (that may be completly wrong!) |
49 |
if exch_Z_assume_sym; |
50 |
zzC(1)=fld.f4(1,1,k3,k4); |
51 |
zzC(2)=fld.f1(1,1,k3,k4); |
52 |
warning('exch_Z_llc filled 2 missing corners assuming uncertain symmetries!'); |
53 |
end |
54 |
|
55 |
%- 1rst = N.W corner of face 1 |
56 |
FLD.f1(1,end,k3,k4)=zzC(1); |
57 |
FLD.f3(1,end,k3,k4)=zzC(1); |
58 |
FLD.f5(1,end,k3,k4)=zzC(1); |
59 |
%- 2nd = S.E corner of face 2 |
60 |
FLD.f2(end,1,k3,k4)=zzC(2); |
61 |
FLD.f4(end,1,k3,k4)=zzC(2); |
62 |
|
63 |
end; |
64 |
end; |
65 |
|
66 |
1; |
67 |
|