[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