/[MITgcm]/MITgcm_contrib/gael/matlab_class/gcmfaces_IO/convert2widefaces.m
ViewVC logotype

Contents of /MITgcm_contrib/gael/matlab_class/gcmfaces_IO/convert2widefaces.m

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


Revision 1.2 - (show annotations) (download)
Wed Jun 19 16:04:36 2013 UTC (12 years 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.1: +3 -3 lines
- convert2widefaces.m : use missVal as defined in grid_load (0 except for grid itself)
- convert2widefaces.m : add fourth dimension.
- grid_load.m : define missVal for use in convert2widefaces.m
- grid_load.m : fix cropped grid if needed.
- grid_load_native.m : add doWarn switch, allow interative spec of grid file names.

1 function [v0]=convert2widefaces(v0);
2 %object: when mygrid.facesSize is non standard (i.e.
3 % some faces were troncated in the files) this
4 % routine expands them back to dimensions that
5 % allow e.g. the exchanges to work
6
7 gcmfaces_global;
8
9 if ~isempty(mygrid.facesExpand);
10
11 nn=mygrid.facesExpand(1); mm=mygrid.facesExpand(2);
12 widefacesSize=[[nn mm];[nn mm];[nn nn];[mm nn];[mm nn]];
13
14 v0facesSize=[size(v0{1});size(v0{2});size(v0{3});size(v0{4});size(v0{5})];
15 v0facesSize=v0facesSize(:,1:2);
16
17 test0=0<sum(abs(prod(mygrid.facesSize,2)-prod(v0facesSize,2)));
18 test1=0<sum(abs(prod(widefacesSize,2)-prod(v0facesSize,2)));
19 if (test0&test1)|(~test0&~test1);
20 error('inconsitent size');
21 end;
22
23 if test1;%the expand faces
24 for iFace=1:mygrid.nFaces;
25 ii=size(v0{iFace}); ii(1:2)=widefacesSize(iFace,:);
26 tmp1=mygrid.missVal*zeros(ii);
27 if iFace==1|iFace==2;%fill the Northern part of faces 1 and 2
28 jj=[widefacesSize(iFace,2)-v0facesSize(iFace,2)+1:widefacesSize(iFace,2)];
29 else;
30 jj=[1:v0facesSize(iFace,2)];
31 end;
32 ii=[1:v0facesSize(iFace,1)];
33 tmp1(ii,jj,:,:)=v0{iFace};
34 v0{iFace}=tmp1;
35 end;
36 else;%then truncate faces
37 for iFace=1:mygrid.nFaces;
38 if iFace==1|iFace==2;%truncate the Southern part of faces 1 and 2
39 jj=[widefacesSize(iFace,2)-mygrid.facesSize(iFace,2)+1:widefacesSize(iFace,2)];
40 else;
41 jj=[1:mygrid.facesSize(iFace,2)];
42 end;
43 ii=[1:mygrid.facesSize(iFace,1)];
44 v0{iFace}=v0{iFace}(ii,jj,:,:);
45 end;
46 end;
47
48 end;

  ViewVC Help
Powered by ViewVC 1.1.22