/[MITgcm]/MITgcm_contrib/gael/matlab_class/@gcmfaces/mk3D.m
ViewVC logotype

Annotation of /MITgcm_contrib/gael/matlab_class/@gcmfaces/mk3D.m

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


Revision 1.3 - (hide annotations) (download)
Sat Apr 24 22:08:10 2010 UTC (15 years, 2 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint65x, checkpoint65r, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, HEAD
Changes since 1.2: +11 -2 lines
adding help section and check third dimension of input fields

1 gforget 1.1 function a = mk3D(b,c)
2 gforget 1.3 %function a = mk3D(b,c)
3     % => makes a 3D field of the same format as c, based on b, which may be
4     % either [A] a 2D field consistent with c(:,:,1)
5     % or [B] a 1D vector concistent
6     %
7     % in case [A], if b has more that 2D, then the first 2D field is used
8     % in case [B], if the length of b is n3=size(c.f1,3), then we map b(k) to
9     % a(:,:,k). Otherwise we map b(1) to a(:,:,k) and issue a warning.
10 gforget 1.1
11     a=c;
12 gforget 1.3 n3=size(a.f1,3);
13 gforget 1.1
14     if isa(b,'gcmfaces');
15     %go from 2D field to 3D field
16     for iFace=1:a.nFaces;
17     iF=num2str(iFace);
18 gforget 1.2 eval(['tmp1=b.f' iF ';']); [n1,n2]=size(tmp1); tmp1=tmp1(:);
19     tmp1=tmp1*ones(1,size(a.f1,3)); tmp1=reshape(tmp1,[n1 n2 n3]);
20     eval(['a.f' iF '=tmp1;']);
21 gforget 1.1 end;
22     elseif isa(b,'double');
23 gforget 1.3 if length(b)~=1&length(b)~=n3; fprintf(' mk3D warning: b(1) is used \n'); end;
24     if length(b)~=n3; b=b(1)*ones(1,n3); end;
25 gforget 1.2 if size(b,1)~=1; b=b'; end;
26 gforget 1.1 for iFace=1:a.nFaces;
27     iF=num2str(iFace);
28 gforget 1.2 eval(['tmp1=c.f' iF ';']); tmp2=size(tmp1); n1=tmp2(1); n2=tmp2(2);
29     tmp1=reshape(ones(n1*n2,1)*b,[n1 n2 n3]);;
30     eval(['a.f' iF '=tmp1;']);
31 gforget 1.1 end;
32     else
33     error('indexing not supported by gcmfaces objects')
34     end
35    
36    

  ViewVC Help
Powered by ViewVC 1.1.22