1 |
function []=gcmfaces_global(varargin); |
function []=gcmfaces_global(varargin); |
2 |
%object: take care of path and global variables (mygrid and myenv), |
%object: take care of path and global variables (mygrid and myenv), |
3 |
% and sends global variables to caller routine workspace |
% and sends global variables to caller routine workspace |
4 |
%optional inputs: optional paramaters take the following form |
%optional inputs: optional paramaters take the following form |
5 |
% {'name',param1,param2,...}. Are currently active: |
% {'name',param1,param2,...}. Are currently active: |
6 |
% {'resetGrid',resetGrid} states that mygrid will be cleared |
% {'resetGrid',resetGrid} states that mygrid will be cleared |
7 |
% and re-loaded interactively (1), or not (0;default). |
% and re-loaded interactively (1), or not (0;default). |
8 |
% {'listVars',varName1,varName2} is a list of variables |
% {'listVars',varName1,varName2} is a list of variables |
9 |
% to check is in mygrid (empty by default). |
% to check is in mygrid (empty by default). |
10 |
%notes: - in any call, if this has not yet been done, |
%notes: - in any call, if this has not yet been done, |
11 |
% this routine also adds gcmfaces subdirectories |
% this routine also adds gcmfaces subdirectories |
12 |
% to the matlab path, and it defines myenv. |
% to the matlab path, and it defines myenv. |
13 |
% - calls to this routine will eventually replace |
% - calls to this routine will eventually replace |
14 |
% both gcmfaces_path and 'global mygrid' calls. |
% both gcmfaces_path and 'global mygrid' calls. |
15 |
|
|
16 |
%set optional paramaters to default values |
%set optional paramaters to default values |
17 |
resetGrid=0; listVars={}; |
resetGrid=0; listVars={}; |
18 |
%set more optional paramaters to user defined values |
%set more optional paramaters to user defined values |
19 |
for ii=1:nargin; |
for ii=1:nargin; |
20 |
if ~iscell(varargin{ii}); |
if ~iscell(varargin{ii}); |
32 |
' Type ''help gcmfaces_global'' for details.']); |
' Type ''help gcmfaces_global'' for details.']); |
33 |
else; |
else; |
34 |
if strcmp(varargin{ii}{1},'listVars'); |
if strcmp(varargin{ii}{1},'listVars'); |
35 |
eval([varargin{ii}{1} '={varargin{ii}{2:end}};']); |
eval([varargin{ii}{1} '={varargin{ii}{2:end}};']); |
36 |
elseif strcmp(varargin{ii}{1},'resetGrid'); |
elseif strcmp(varargin{ii}{1},'resetGrid'); |
37 |
eval([varargin{ii}{1} '=varargin{ii}{2};']); |
eval([varargin{ii}{1} '=varargin{ii}{2};']); |
38 |
else; |
else; |
94 |
|
|
95 |
%check available mygrid variables: |
%check available mygrid variables: |
96 |
for ii=1:length(listVars); |
for ii=1:length(listVars); |
97 |
if ~isfield(mygrid,listVars{ii}); |
if ~isfield(mygrid,listVars{ii}); |
98 |
error(['mygrid does not include ' listVars{ii}]); |
error(['mygrid does not include ' listVars{ii}]); |
99 |
end; |
end; |
100 |
end; |
end; |
101 |
|
|
102 |
%issue warning if mygrid is empty: |
%issue warning if mygrid is empty: |
103 |
test0=isfield(mygrid,'XC'); |
test0=~isfield(mygrid,'XC'); |
104 |
if ~test0&myenv.issueWarnings; |
[ST,I]=dbstack; ST={ST(:).name}'; |
105 |
|
test1=1; |
106 |
|
list1={'grid_load','startup','plot_one_field','plot_std_field',... |
107 |
|
'example_remap','example_griddata','example_interp','example_faces2latlon2faces',... |
108 |
|
'example_bin_average','example_transports','example_budget'}; |
109 |
|
for jj=1:length(list1); |
110 |
|
test1=test1&isempty(find(strcmp(ST,list1{jj}))); |
111 |
|
end; |
112 |
|
if test0&test1&myenv.issueWarnings; |
113 |
warning('mygrid has not yet been loaded to memory. To use gcmfaces please use grid_load.m first.'); |
warning('mygrid has not yet been loaded to memory. To use gcmfaces please use grid_load.m first.'); |
114 |
end; |
end; |
115 |
|
|