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

Annotation 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 - (hide 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 gforget 1.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 gforget 1.2 tmp1=mygrid.missVal*zeros(ii);
27 gforget 1.1 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 gforget 1.2 tmp1(ii,jj,:,:)=v0{iFace};
34 gforget 1.1 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 gforget 1.2 v0{iFace}=v0{iFace}(ii,jj,:,:);
45 gforget 1.1 end;
46     end;
47    
48     end;

  ViewVC Help
Powered by ViewVC 1.1.22