[Dart-dev] DART/branches Revision: 13176
dart at ucar.edu
dart at ucar.edu
Thu May 23 15:34:54 MDT 2019
thoar at ucar.edu
2019-05-23 15:34:54 -0600 (Thu, 23 May 2019)
122
Confirmed to be working with CESM2_1
The clm_get_var.m can be/should be extended to read the
already-gridded variables.
Modified: DART/branches/cesm_clm/models/clm/matlab/clm_get_var.m
===================================================================
--- DART/branches/cesm_clm/models/clm/matlab/clm_get_var.m 2019-05-16 20:12:36 UTC (rev 13175)
+++ DART/branches/cesm_clm/models/clm/matlab/clm_get_var.m 2019-05-23 21:34:54 UTC (rev 13176)
@@ -1,27 +1,18 @@
-function x = clm_get_var(fname,varname,copystring,levelindex,timeindex,clmfname)
+function x = clm_get_var(fname,varname,levelindex,timeindex,varargin)
%% DART clm_get_var - reads a variable from a CLM restart or DART diagnostic netCDF file and reconstitute a matrix.
%
% EXAMPLE 1:
-% fname = 'Prior_Diag.2000-01-05-00000.nc';
-% varname = 'frac_sno';
+% fname = 'clm_restart.nc';
+% varname = 'T_SOISNO';
% levelindex = 1;
% timeindex = 1;
-% copystring = 'ensemble member 3';
-% x = clm_get_var(fname,varname,copystring,levelindex,timeindex);
+% x = clm_get_var(fname,varname,levelindex,timeindex);
%
-% EXAMPLE 2: as above, compare to comparable field in CLM history file.
-% clmfname = '/glade/scratch/thoar/enstest_0907/enstest_0907.clm2_0003.r.2000-01-05-00000.nc';
-% x = clm_get_var(fname,varname,copystring,levelindex,timeindex,clmfname);
-%
-% fname = 'Prior_Diag.2000-01-06-00000.nc';
-% clmfname = '../clmruns/enstest_0906.clm2_0006.r.2000-01-06-00000.nc';
-%
-% % 'frac_sno', 'QTY_SNOWCOVER_FRAC',
-% % 'DZSNO', 'QTY_SNOW_THICKNESS',
-% % 'H2OSOI_LIQ', 'QTY_LIQUID_WATER',
-% % 'H2OSOI_ICE', 'QTY_ICE',
-% % 'T_SOISNO', 'QTY_SOIL_TEMPERATURE',
-%
+% 'frac_sno', 'QTY_SNOWCOVER_FRAC',
+% 'DZSNO', 'QTY_SNOW_THICKNESS',
+% 'H2OSOI_LIQ', 'QTY_LIQUID_WATER',
+% 'H2OSOI_ICE', 'QTY_ICE',
+% 'T_SOISNO', 'QTY_SOIL_TEMPERATURE',
%% DART software - Copyright UCAR. This open source software is provided
% by UCAR, "as is", without charge, subject to all terms of use at
@@ -29,67 +20,105 @@
%
% DART $Id$
-if (exist(fname,'file') ~= 2)
- error('%s does not exist.',fname)
+p = inputParser;
+
+addRequired(p,'fname', @ischar);
+addRequired(p,'varname', @ischar);
+addRequired(p,'levelindex', @isnumeric);
+addRequired(p,'timeindex', @isnumeric);
+
+default_verbosity = 'yes';
+
+if verLessThan('matlab','R2013b')
+ addParamValue(p,'verbose', default_verbosity, @ischar); %#ok<NVREPL>
+else
+ addParameter(p,'verbose', default_verbosity, @ischar);
end
-x.filename = fname;
-x.clmfile = [];
+p.parse(fname, varname, levelindex, timeindex, varargin{:});
-if (nargin == 6)
- if (exist(clmfname,'file') ~= 2)
- error('%s does not exist.',clmfname)
- else
- x.clmfile = clmfname;
- end
+if ~isempty(fieldnames(p.Unmatched))
+ disp('Extra inputs:')
+ disp(p.Unmatched)
end
-if (~nc_isvar(fname,varname))
- error('%s does not have a "%s" variable.',fname,varname)
+global verbose
+if (strncmpi(p.Results.verbose,'y',1))
+ verbose = 1;
+else
+ verbose = 0;
end
-x.varname = varname;
+if (exist(p.Results.fname,'file') ~= 2)
+ error('%s does not exist.',p.Results.fname)
+end
+
+if (~nc_isvar(p.Results.fname,p.Results.varname))
+ error('%s does not have a "%s" variable.',fname,varname)
+end
+
+x.filename = p.Results.fname;
+x.varname = p.Results.varname;
+x.levelindex = p.Results.levelindex;
+x.timeindex = p.Results.timeindex;
+
+
%% define and get the basic coordinate variables
More information about the Dart-dev
mailing list