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

Diff of /MITgcm_contrib/gael/matlab_class/@gcmfaces/gcmfaces.m

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

revision 1.1 by gforget, Wed Feb 10 14:43:47 2010 UTC revision 1.2 by gforget, Tue Jun 21 21:17:31 2011 UTC
# Line 1  Line 1 
1  function s=gcmfaces(varargin);  function s=gcmfaces(varargin);
2    %object:    create a gcmfaces object
3    %input:     cell array (optional)
4    %
5    %note:      - the current format is determined based on the global mygrid.
6    %           - if no input is specified, create an empty gcmfaces object.
7    %           - otherwise each record of the cell array must provide the data for one face.
8    %           - this routine used to have several inputs of various types;
9    %           now only the first input is used, and only if it is a cell array.
10    
11  if nargin==0; fld=5; gridType='llc';  global mygrid;
12  elseif nargin==1; fld=varargin{1}; gridType='llc';  
13  elseif nargin==2; fld=varargin{1}; gridType=varargin{2};  nFaces=mygrid.nFaces;
14  else; error('wrong gcmfaces definition'); end;  
15    if nFaces==1; gridType='ll';
16    elseif nFaces==4; gridType='llpc';
17    elseif nFaces==5; gridType='llc';
18    elseif nFaces==6; gridType='cube';
19    else; error('wrong gcmfaces definition');
20    end;
21    
22  nFacesMax=6;  nFacesMax=6;
23    
24    if nargin>1; fld=varargin{1}; else; fld=[]; end;
25    
26  if iscell(fld);  if iscell(fld);
27     s.nFaces=length(fld);     s.nFaces=length(fld);
28     s.gridType=gridType;     s.gridType=gridType;
29     for iF=1:s.nFaces;     for iF=1:s.nFaces;
30        eval(['s.f' num2str(iF) '=fld{iF};']);        eval(['s.f' num2str(iF) '=fld{iF};']);
31     end;     end;
32     for iF=s.nFaces+1:nFacesMax;       for iF=s.nFaces+1:nFacesMax;
       eval(['s.f' num2str(iF) '=[];']);  
    end;  
 elseif isreal(fld);  
    s.nFaces=fld;  
    s.gridType=gridType;  
    for iF=1:nFacesMax;  
33        eval(['s.f' num2str(iF) '=[];']);        eval(['s.f' num2str(iF) '=[];']);
34     end;     end;
35  else;  else;
36     error('wrong gcmfaces definition');      s.nFaces=nFaces;
37        s.gridType=gridType;
38        for iF=1:nFacesMax;
39            eval(['s.f' num2str(iF) '=[];']);
40        end;
41  end;  end;
42    
43  s = class(s,'gcmfaces');  s = class(s,'gcmfaces');

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22