[Dart-dev] [6325] DART/trunk/models/CESM/matlab: Removing files that are actually from POP.

nancy at ucar.edu nancy at ucar.edu
Mon Jul 29 13:48:43 MDT 2013


Revision: 6325
Author:   thoar
Date:     2013-07-29 13:48:43 -0600 (Mon, 29 Jul 2013)
Log Message:
-----------
Removing files that are actually from POP. 
These have never been appropriate for CESM.
models/POP/matlab has the maintained versions of all of these.

Removed Paths:
-------------
    DART/trunk/models/CESM/matlab/Check_pop_to_dart.m
    DART/trunk/models/CESM/matlab/Check_ud.m
    DART/trunk/models/CESM/matlab/plot_evolution.m
    DART/trunk/models/CESM/matlab/plot_global_grid.m
    DART/trunk/models/CESM/matlab/plot_grid.m
    DART/trunk/models/CESM/matlab/plot_interp_diffs.m
    DART/trunk/models/CESM/matlab/plot_rmse_xxx_evolution.m
    DART/trunk/models/CESM/matlab/plot_spread_xxx_evolution.m
    DART/trunk/models/CESM/matlab/two_experiments_evolution.m

-------------- next part --------------
Deleted: DART/trunk/models/CESM/matlab/Check_pop_to_dart.m
===================================================================
--- DART/trunk/models/CESM/matlab/Check_pop_to_dart.m	2013-07-29 16:49:33 UTC (rev 6324)
+++ DART/trunk/models/CESM/matlab/Check_pop_to_dart.m	2013-07-29 19:48:43 UTC (rev 6325)
@@ -1,161 +0,0 @@
-function [dart pop] = Check_pop_to_dart(popfile,dartfile)
-%% Check_pop_to_dart : check pop_to_dart.f90 ... the conversion of a POP restart to a DART state vector file.
-%
-%  popfile = 'pop.r.nc';
-% dartfile = 'dart_ics';
-% x        = Check_pop_to_dart(popfile, dartfile);
-%
-%  popfile = '~DART/models/POP/work/cx3.dart.001.pop.r.0002-01-01-00000.nc';
-% dartfile = '~DART/models/POP/work/perfect_ics';
-% [dart pop] = Check_pop_to_dart(popfile, dartfile);
-
-%% DART software - Copyright 2004 - 2013 UCAR. This open source software is
-% provided by UCAR, "as is", without charge, subject to all terms of use at
-% http://www.image.ucar.edu/DAReS/DART/DART_download
-%
-% DART $Id$
-
-% Read the original POP file values.
-if (exist(popfile,'file') ~= 2)
-   error('POP file %s does not exist.',popfile)
-end
-if (exist(dartfile,'file') ~= 2)
-   error('DART file %s does not exist.',dartfile)
-end
-
-iyear   = nc_attget(popfile,nc_global,'iyear');
-imonth  = nc_attget(popfile,nc_global,'imonth');
-iday    = nc_attget(popfile,nc_global,'iday');
-ihour   = nc_attget(popfile,nc_global,'ihour');
-iminute = nc_attget(popfile,nc_global,'iminute');
-isecond = nc_attget(popfile,nc_global,'isecond');
-
-fprintf('POP year  month  day  hour  minute  second %d %d %d %d %d %d\n',  ...
-        iyear,imonth,iday,ihour,iminute,isecond);
-
-% The nc_varget() function returns the variables with the fastest 
-% varying dimension on the right. This is opposite to the Fortran
-% convention of the fastest varying dimension on the left ... so 
-% one of the variables must be permuted in order to be compared.
-
-S     = nc_varget(popfile,  'SALT_CUR'); pop.S     = permute(S,   [3 2 1]);
-T     = nc_varget(popfile,  'TEMP_CUR'); pop.T     = permute(T,   [3 2 1]);
-U     = nc_varget(popfile,  'UVEL_CUR'); pop.U     = permute(U,   [3 2 1]);
-V     = nc_varget(popfile,  'VVEL_CUR'); pop.V     = permute(V,   [3 2 1]);
-PSURF = nc_varget(popfile, 'PSURF_CUR'); pop.PSURF = permute(PSURF, [2 1]);
-
-disp(sprintf('pop.PSURF min/max are %0.8g %0.8g',min(pop.PSURF(:)),max(pop.PSURF(:))))
-
-[nx ny nz] = size(pop.U);
-fprintf('vert dimension size is %d\n',nz)
-fprintf('N-S  dimension size is %d\n',ny)
-fprintf('E-W  dimension size is %d\n',nx)
-
-modelsize = nx*ny*nz;
-
-% filesize = S,T,U,V * (nx*ny*nz) + SSH * (nx*ny)
-storage  = 8;
-size2d   = nx*ny;
-size3d   = nx*ny*nz;
-n2ditems = 1*size2d;
-n3ditems = 4*size3d;
-rec1size = 4+(4+4)+4;  % time stamps ... 
-rec2size = 4+(n3ditems*storage + n2ditems*storage)+4;
-
-fsize    = rec1size + rec2size;
-disp(sprintf('with a modelsize of %d the file size should be %d bytes', ...
-     modelsize,fsize))
-
-% Open and read timetag for state
-fid     = fopen(dartfile,'rb','ieee-le');
-trec1   = fread(fid,1,'int32');
-seconds = fread(fid,1,'int32');
-days    = fread(fid,1,'int32');
-trecN   = fread(fid,1,'int32');
-
-fprintf('need to know POP calendar for better comparison.\n', days,seconds);
-fprintf('DART days seconds %d %d\n', days,seconds);
-
-if (trec1 ~= trecN) 
-   error('first record mismatch')
-end
-
-% Successively read state vector variables.
-rec1     = fread(fid,     1,  'int32');
-dart.S   = get_data(fid, [nx ny nz], 'float64');
-dart.T   = get_data(fid, [nx ny nz], 'float64');
-dart.U   = get_data(fid, [nx ny nz], 'float64');
-dart.V   = get_data(fid, [nx ny nz], 'float64');
-dart.SSH = get_data(fid, [nx ny   ], 'float64');
-recN     = fread(fid,     1,  'int32');
-fclose(fid);
-
-fprintf(' shape of DART variables is %d \n',size(dart.S))
-
-% The POP restart file has PSURF ... DART drags around SSH
-% SSH = psurf/980.6;
-
-dart.PSURF = dart.SSH * 980.6;
-
-disp(sprintf('PSURF min/max are %0.8g %0.8g',min(dart.PSURF(:)),max(dart.PSURF(:))))
-disp(sprintf('SSH   min/max are %0.8g %0.8g',min(dart.SSH(:)),max(dart.SSH(:))))
-
-if (rec1 ~= recN) 
-   error('second record mismatch')
-end
-
-dart.dartfile = dartfile;
-dart.seconds  = seconds;
-dart.days     = days;
-
-% Find the range of the mismatch
-
-d = pop.S     - dart.S;     disp(sprintf('S     diffs are %0.8g %0.8g',min(d(:)),max(d(:))))
-d = pop.T     - dart.T;     disp(sprintf('T     diffs are %0.8g %0.8g',min(d(:)),max(d(:))))
-d = pop.U     - dart.U;     disp(sprintf('U     diffs are %0.8g %0.8g',min(d(:)),max(d(:))))
-d = pop.V     - dart.V;     disp(sprintf('V     diffs are %0.8g %0.8g',min(d(:)),max(d(:))))
-d = pop.PSURF - dart.PSURF; disp(sprintf('PSURF diffs are %0.8g %0.8g',min(d(:)),max(d(:))))
-
-% As an added bonus, we create an 'assim_model_state_ic' file with an 
-% advance-to-time one day in the future.
-% Add something known to each state variable to check dart_to_pop.f90
-
-S1     = dart.S     + 1.0;
-T1     = dart.T     + 2.0;
-U1     = dart.U     + 3.0;
-V1     = dart.V     + 4.0;
-SSH1   = dart.SSH + 5.0;
-
-datvec = [S1(:); T1(:); U1(:); V1(:); SSH1(:)];
-clear S1 T1 U1 V1 SSH1
-
-fid     = fopen('test.ic','wb','ieee-le');
-% Write the 'advance_to_time' FIRST
-fwrite(fid,  trec1,'int32');
-fwrite(fid,seconds,'int32');
-fwrite(fid,   days+1,'int32');
-fwrite(fid,  trecN,'int32');
-
-% Write the 'model_state_time' (close to the data)
-fwrite(fid,  trec1,'int32');
-fwrite(fid,seconds,'int32');
-fwrite(fid,   days,'int32');
-fwrite(fid,  trecN,'int32');
-
-% Write the (modified) model state ... 
-fwrite(fid,   rec1, 'int32');
-fwrite(fid, datvec, 'float64');
-fwrite(fid,   recN, 'int32');
-fclose(fid);
-
-% That's all folks ...
-
-function B = get_data(fid, shape, typestr)
-A = fread(fid, prod(shape), typestr);
-B = reshape(A, shape);
-
-% <next few lines under version control, do not edit>
-% $URL$
-% $Revision$
-% $Date$
-

Deleted: DART/trunk/models/CESM/matlab/Check_ud.m
===================================================================
--- DART/trunk/models/CESM/matlab/Check_ud.m	2013-07-29 16:49:33 UTC (rev 6324)
+++ DART/trunk/models/CESM/matlab/Check_ud.m	2013-07-29 19:48:43 UTC (rev 6325)
@@ -1,166 +0,0 @@
-function [dart pop] = Check_ud(popfile,dartfile)
-%% Check_ud : check pop_to_dart.f90 ... the conversion of a POP restart to a DART state vector file.
-%
-%  popfile = 'pop.r.nc' 
-% dartfile = 'dart_ics';
-% x        = Check_pop_to_dart(popfile, dartfile);
-%
-%  popfile = '~DART/models/POP/work/cx3.dart.001.pop.r.0002-01-01-00000.nc';
-% dartfile = '~DART/models/POP/work/perfect_ics';
-% [dart pop] = Check_pop_to_dart(popfile, dartfile);
-
-%% DART software - Copyright 2004 - 2013 UCAR. This open source software is
-% provided by UCAR, "as is", without charge, subject to all terms of use at
-% http://www.image.ucar.edu/DAReS/DART/DART_download
-%
-% DART $Id$
-
-% Read the original POP file values.
-if (exist(popfile,'file') ~= 2)
-   error('POP file %s does not exist.',popfile)
-end
-if (exist(dartfile,'file') ~= 2)
-   error('DART file %s does not exist.',dartfile)
-end
-
-iyear   = nc_attget(popfile,nc_global,'iyear');
-imonth  = nc_attget(popfile,nc_global,'imonth');
-iday    = nc_attget(popfile,nc_global,'iday');
-ihour   = nc_attget(popfile,nc_global,'ihour');
-iminute = nc_attget(popfile,nc_global,'iminute');
-isecond = nc_attget(popfile,nc_global,'isecond');
-
-fprintf('POP year  month  day  hour  minute  second %d %d %d %d %d %d\n',  ...
-        iyear,imonth,iday,ihour,iminute,isecond);
-
-pop.S     = nc_varget(popfile,  'SALT_CUR');
-pop.T     = nc_varget(popfile,  'TEMP_CUR');
-pop.U     = nc_varget(popfile,  'UVEL_CUR');
-pop.V     = nc_varget(popfile,  'VVEL_CUR');
-pop.PSURF = nc_varget(popfile, 'PSURF_CUR');
-
-[nz ny nx] = size(pop.U);
-fprintf('vert dimension size is %d\n',nz)
-fprintf('N-S  dimension size is %d\n',ny)
-fprintf('E-W  dimension size is %d\n',nx)
-
-modelsize = nz*ny*nx;
-
-% filesize = S,T,U,V * (nx*ny*nz) + SSH * (nx*ny)
-storage  = 8;
-size2d   = nx*ny;
-size3d   = nx*ny*nz;
-n2ditems = 1*size2d;
-n3ditems = 4*size3d;
-rec1size = 4+(4+4)+4;  % time stamps ... 
-rec2size = 4+(n3ditems*storage + n2ditems*storage)+4;
-
-fsize    = rec1size + rec2size;
-disp(sprintf('with a modelsize of %d the file size should be %d bytes', ...
-     modelsize,fsize))
-
-% Open and read timetag for state
-fid     = fopen(dartfile,'rb','ieee-le');
-trec1   = fread(fid,1,'int32');
-seconds = fread(fid,1,'int32');
-days    = fread(fid,1,'int32');
-trecN   = fread(fid,1,'int32');
-
-fprintf('need to know POP calendar for better comparison.\n', days,seconds);
-fprintf('DART days seconds %d %d\n', days,seconds);
-
-if (trec1 ~= trecN) 
-   error('first record mismatch')
-end
-
-% Successively read state vector variables.
-rec1     = fread(fid,     1,  'int32');
-dart.S   = get_3D_permuted(fid, [nx ny nz], 'float64');
-dart.T   = get_3D_permuted(fid, [nx ny nz], 'float64');
-dart.U   = get_3D_permuted(fid, [nx ny nz], 'float64');
-dart.V   = get_3D_permuted(fid, [nx ny nz], 'float64');
-dart.SSH = get_2D_permuted(fid, [nx ny   ], 'float64');
-recN     = fread(fid,     1,  'int32');
-fclose(fid);
-
-fprintf(' shape of DART variables is %d \n',size(dart.S))
-
-% The POP restart file has PSURF ... DART drags around SSH
-% SSH = psurf/980.6;
-
-dart.PSURF = dart.SSH * 980.6;
-
-if (rec1 ~= recN) 
-   error('second record mismatch')
-end
-
-dart.dartfile = dartfile;
-dart.seconds  = seconds;
-dart.days     = days;
-
-% Find the range of the mismatch
-
-d = pop.S     - dart.S;     disp(sprintf('S     diffs are %0.8g %0.8g',min(d(:)),max(d(:))))
-d = pop.T     - dart.T;     disp(sprintf('T     diffs are %0.8g %0.8g',min(d(:)),max(d(:))))
-d = pop.U     - dart.U;     disp(sprintf('U     diffs are %0.8g %0.8g',min(d(:)),max(d(:))))
-d = pop.V     - dart.V;     disp(sprintf('V     diffs are %0.8g %0.8g',min(d(:)),max(d(:))))
-d = pop.PSURF - dart.PSURF; disp(sprintf('PSURF diffs are %0.8g %0.8g',min(d(:)),max(d(:))))
-
-% As an added bonus, we create an 'assim_model_state_ic' file with an 
-% advance-to-time one day in the future.
-
-% Open and read timetag for state
-fid     = fopen(dartfile,'rb','ieee-le');
-trec1   = fread(fid,1,'int32');
-seconds = fread(fid,1,'int32');
-days    = fread(fid,1,'int32');
-trecN   = fread(fid,1,'int32');
-
-% read state vector variables.
-rec1     = fread(fid,     1,  'int32');
-datvec   = fread(fid, n3ditems+n2ditems, 'float64');
-recN     = fread(fid,     1,  'int32');
-fclose(fid);
-
-% Open and write advance_to_time
-fid     = fopen('test.ic','wb','ieee-le');
-fwrite(fid,  trec1,'int32');
-fwrite(fid,seconds,'int32');
-fwrite(fid,   days,'int32');
-fwrite(fid,  trecN,'int32');
-
-fwrite(fid,  trec1,'int32');
-fwrite(fid,seconds,'int32');
-fwrite(fid,   days+1,'int32');
-fwrite(fid,  trecN,'int32');
-
-% read state vector variables.
-fwrite(fid,   rec1, 'int32');
-fwrite(fid, datvec, 'float64');
-fwrite(fid,   recN, 'int32');
-fclose(fid);
-
-
-
-% The nc_varget() function returns the variables with the fastest 
-% varying dimension on the right. This is opposite to the Fortran
-% convention of the fastest varying dimension on the left ... so 
-% one of the variables must be permuted in order to be compared.
-
-function C = get_3D_permuted(fid, shape, typestr)
-datasize = prod(shape);
-A = fread(fid, prod(shape), typestr);
-B = reshape(A, shape);
-C = permute(B, [3 2 1]);
-
-function C = get_2D_permuted(fid, shape, typestr)
-datasize = prod(shape);
-A = fread(fid, prod(shape), typestr);
-B = reshape(A, shape);
-C = permute(B, [2 1]);
-
-% <next few lines under version control, do not edit>
-% $URL$
-% $Revision$
-% $Date$
-

Deleted: DART/trunk/models/CESM/matlab/plot_evolution.m
===================================================================
--- DART/trunk/models/CESM/matlab/plot_evolution.m	2013-07-29 16:49:33 UTC (rev 6324)
+++ DART/trunk/models/CESM/matlab/plot_evolution.m	2013-07-29 19:48:43 UTC (rev 6325)
@@ -1,517 +0,0 @@
-function plotdat = plot_evolution(fname, copystring, varargin)
-%% plot_evolution plots the temporal evolution of the observation-space quantities for all possible levels, all possible variables.
-% Part of the observation-space diagnostics routines.
-%
-% 'obs_diag' produces a netcdf file containing the diagnostics.
-% obs_diag condenses the obs_seq.final information into summaries for a few specified
-% regions - on a level-by-level basis.
-%
-% USAGE: plotdat = plot_evolution(fname, copystring [,varargin]);
-%
-% fname         : netcdf file produced by 'obs_diag'
-% copystring    : 'copy' string == quantity of interest. These
-%                 can be any of the ones available in the netcdf 
-%                 file 'CopyMetaData' variable.
-%                 (ncdump -v CopyMetaData obs_diag_output.nc)
-% obstypestring : 'observation type' string. Optional.
-%                 Must match something in the netcdf 
-%                 file 'ObservationTypes' variable.
-%                 (ncdump -v ObservationTypes obs_diag_output.nc)
-%                 If specified, only this observation type will be plotted.
-%                 If not specified, all observation types incluced in the netCDF file
-%                 will be plotted.
-%
-% OUTPUT: two files will result for each observation type plotted. One is a 
-%         postscript file containing a page for each level - all regions.
-%         The other file is a simple text file containing summary information
-%         about how many observations were assimilated, how many were available, etc.
-%         Both of these filenames contain the observation type as part of the name.
-%
-% EXAMPLE 1 - plot the evolution of the bias for all observation types, all levels
-%
-% fname      = 'obs_diag_output.nc';   % netcdf file produced by 'obs_diag'
-% copystring = 'bias';                 % 'copy' string == quantity of interest
-% plotdat    = plot_evolution(fname, copystring);
-%
-%
-% EXAMPLE 2 - plot the evolution of the rmse for just the mooring temperature observations
-%             This requires that the 'MOORING_TEMPERATURE' is one of the known observation
-%             types in the netCDF file.
-%
-% fname      = 'obs_diag_output.nc';   % netcdf file produced by 'obs_diag'
-% copystring = 'rmse';                 % 'copy' string == quantity of interest
-% plotdat    = plot_evolution(fname, copystring, 'MOORING_TEMPERATURE');
-
-%% DART software - Copyright 2004 - 2013 UCAR. This open source software is
-% provided by UCAR, "as is", without charge, subject to all terms of use at
-% http://www.image.ucar.edu/DAReS/DART/DART_download
-%
-% DART $Id$
-
-if nargin == 2
-   nvars = 0;
-elseif nargin == 3
-   varname = varargin{1};
-   nvars = 1;
-else
-   error('wrong number of arguments ... ')
-end
-
-
-if (exist(fname,'file') ~= 2)
-   error('file/fname <%s> does not exist',fname)
-end
-
-% Harvest plotting info/metadata from netcdf file.
-
-plotdat.fname         = fname;
-plotdat.copystring    = copystring;
-plotdat.bincenters    = nc_varget(fname,'time');
-plotdat.binedges      = nc_varget(fname,'time_bounds');
-plotdat.mlevel        = nc_varget(fname,'mlevel');
-plotdat.plevel        = nc_varget(fname,'plevel');
-plotdat.plevel_edges  = nc_varget(fname,'plevel_edges');
-plotdat.hlevel        = nc_varget(fname,'hlevel');
-plotdat.hlevel_edges  = nc_varget(fname,'hlevel_edges');
-plotdat.ncopies       = length(nc_varget(fname,'copy'));
-plotdat.nregions      = length(nc_varget(fname,'region'));
-plotdat.region_names  = nc_varget(fname,'region_names');
-
-if (plotdat.nregions == 1)
-   plotdat.region_names = deblank(plotdat.region_names');
-end
-
-plotdat.binseparation      = nc_attget(fname, nc_global, 'bin_separation');
-plotdat.binwidth           = nc_attget(fname, nc_global, 'bin_width');
-time_to_skip               = nc_attget(fname, nc_global, 'time_to_skip');
-plotdat.lonlim1            = nc_attget(fname, nc_global, 'lonlim1');
-plotdat.lonlim2            = nc_attget(fname, nc_global, 'lonlim2');
-plotdat.latlim1            = nc_attget(fname, nc_global, 'latlim1');
-plotdat.latlim2            = nc_attget(fname, nc_global, 'latlim2');
-plotdat.biasconv           = nc_attget(fname, nc_global, 'bias_convention');
-
-% Coordinate between time types and dates
-
-calendar     = nc_attget(fname,'time','calendar');
-timeunits    = nc_attget(fname,'time','units');
-timebase     = sscanf(timeunits,'%*s%*s%d%*c%d%*c%d'); % YYYY MM DD
-timeorigin   = datenum(timebase(1),timebase(2),timebase(3));
-skip_seconds = time_to_skip(4)*3600 + time_to_skip(5)*60 + time_to_skip(6);
-iskip        = time_to_skip(3) + skip_seconds/86400;
-
-plotdat.bincenters = plotdat.bincenters + timeorigin;
-plotdat.binedges   = plotdat.binedges   + timeorigin;
-plotdat.Nbins      = length(plotdat.bincenters);
-plotdat.toff       = plotdat.bincenters(1) + iskip;
-
-% set up a structure with all static plotting components
-
-plotdat.linewidth = 2.0;
-
-if (nvars == 0)
-   [plotdat.allvarnames, plotdat.allvardims] = get_varsNdims(fname);
-   [plotdat.varnames,    plotdat.vardims]    = FindTemporalVars(plotdat);
-   plotdat.nvars       = length(plotdat.varnames);
-else
-   plotdat.varnames{1} = varname;
-   plotdat.nvars       = nvars;
-end
-
-
-plotdat.copyindex   = get_copy_index(fname,copystring); 
-plotdat.Npossindex  = get_copy_index(fname,'Nposs');
-plotdat.Nusedindex  = get_copy_index(fname,'Nused');
-plotdat.NQC4index   = get_copy_index(fname,'N_DARTqc_4');
-plotdat.NQC5index   = get_copy_index(fname,'N_DARTqc_5');
-plotdat.NQC6index   = get_copy_index(fname,'N_DARTqc_6');
-plotdat.NQC7index   = get_copy_index(fname,'N_DARTqc_7');
-
-%----------------------------------------------------------------------
-% Loop around (time-copy-level-region) observation types
-%----------------------------------------------------------------------
-
-for ivar = 1:plotdat.nvars
-    
-   % create the variable names of interest.
-    
-   plotdat.myvarname = plotdat.varnames{ivar};  
-   plotdat.guessvar  = sprintf('%s_guess',plotdat.varnames{ivar});
-   plotdat.analyvar  = sprintf('%s_analy',plotdat.varnames{ivar});
-
-   % remove any existing postscript file - will simply append each
-   % level as another 'page' in the .ps file.
-   
-   psfname = sprintf('%s_%s_evolution.ps',plotdat.varnames{ivar},plotdat.copystring);
-   disp(sprintf('Removing %s from the current directory.',psfname))
-   system(sprintf('rm %s',psfname));
-
-   % remove any existing log file - 
-   
-   lgfname = sprintf('%s_%s_obscount.txt',plotdat.varnames{ivar},plotdat.copystring);
-   disp(sprintf('Removing %s from the current directory.',lgfname))
-   system(sprintf('rm %s',lgfname));
-   logfid = fopen(lgfname,'wt');
-   fprintf(logfid,'%s\n',lgfname);
-
-   % get appropriate vertical coordinate variable
-
-   guessdims = nc_var_dims(fname, plotdat.guessvar);
-   analydims = nc_var_dims(fname, plotdat.analyvar);
-
-   if ( findstr('surface',guessdims{3}) > 0 )
-      plotdat.level       = 1;
-      plotdat.level_units = 'surface';
-   elseif ( findstr('undef',guessdims{3}) > 0 )
-      plotdat.level       = 1;
-      plotdat.level_units = 'undefined';
-   else
-      plotdat.level       = nc_varget(fname, guessdims{3});
-      plotdat.level_units = nc_attget(fname, guessdims{3}, 'units');
-   end
-   plotdat.nlevels = length(plotdat.level);
-
-   % Here is the tricky part. Singleton dimensions are auto-squeezed ... 
-   % single levels, single regions ...
-
-   guess_raw = nc_varget(fname, plotdat.guessvar);  
-   guess = reshape(guess_raw, plotdat.Nbins,   plotdat.ncopies, ...
-                              plotdat.nlevels, plotdat.nregions);
-
-   analy_raw = nc_varget(fname, plotdat.analyvar); 
-   analy = reshape(analy_raw, plotdat.Nbins,   plotdat.ncopies, ...
-                              plotdat.nlevels, plotdat.nregions);
-
-   % check to see if there is anything to plot
-   nextrap = sum(guess(:,plotdat.NQC4index  ,:,:)) + ...
-             sum(guess(:,plotdat.NQC6index  ,:,:));
-   nposs   = sum(guess(:,plotdat.Npossindex, :,:)) - nextrap;
-
-   if ( sum(nposs(:)) < 1 )
-      disp(sprintf('%s no obs for %s...  skipping', plotdat.varnames{ivar}))
-      continue
-   end
-   
-   for ilevel = 1:plotdat.nlevels
-
-      fprintf(logfid,'\nlevel %d %f %s\n',ilevel,plotdat.level(ilevel),plotdat.level_units);
-      plotdat.ges_Nqc4  = guess(:,plotdat.NQC4index  ,ilevel,:);
-      plotdat.anl_Nqc4  = analy(:,plotdat.NQC4index  ,ilevel,:);
-      fprintf(logfid,'DART QC == 4, prior/post %d %d\n',sum(plotdat.ges_Nqc4(:)), ...
-                                                 sum(plotdat.anl_Nqc4(:)));
-
-      plotdat.ges_Nqc5  = guess(:,plotdat.NQC5index  ,ilevel,:);
-      plotdat.anl_Nqc5  = analy(:,plotdat.NQC5index  ,ilevel,:);
-      fprintf(logfid,'DART QC == 5, prior/post %d %d\n',sum(plotdat.ges_Nqc5(:)), ...
-                                                 sum(plotdat.anl_Nqc5(:)));
-
-      plotdat.ges_Nqc6  = guess(:,plotdat.NQC6index  ,ilevel,:);
-      plotdat.anl_Nqc6  = analy(:,plotdat.NQC6index  ,ilevel,:);
-      fprintf(logfid,'DART QC == 6, prior/post %d %d\n',sum(plotdat.ges_Nqc6(:)), ...
-                                                 sum(plotdat.anl_Nqc6(:)));
-
-      plotdat.ges_Nqc7  = guess(:,plotdat.NQC7index  ,ilevel,:);
-      plotdat.anl_Nqc7  = analy(:,plotdat.NQC7index  ,ilevel,:);
-      fprintf(logfid,'DART QC == 7, prior/post %d %d\n',sum(plotdat.ges_Nqc7(:)), ...
-                                                 sum(plotdat.anl_Nqc7(:)));
-
-      plotdat.ges_Nposs = guess(:,plotdat.Npossindex, ilevel,:);
-      plotdat.anl_Nposs = analy(:,plotdat.Npossindex, ilevel,:);
-      fprintf(logfid,'# obs     ,   prior/post %d %d\n',sum(plotdat.ges_Nposs(:)), ...
-                                                        sum(plotdat.anl_Nposs(:)));
-
-      plotdat.ges_Nposs = plotdat.ges_Nposs - plotdat.ges_Nqc4 - plotdat.ges_Nqc6;
-      plotdat.anl_Nposs = plotdat.anl_Nposs - plotdat.anl_Nqc4 - plotdat.anl_Nqc6;
-      fprintf(logfid,'# obs poss,   prior/post %d %d\n',sum(plotdat.ges_Nposs(:)), ...
-                                                        sum(plotdat.anl_Nposs(:)));
-
-      plotdat.ges_Nused = guess(:,plotdat.Nusedindex, ilevel,:);
-      plotdat.anl_Nused = analy(:,plotdat.Nusedindex, ilevel,:);
-      fprintf(logfid,'# obs used,   prior/post %d %d\n',sum(plotdat.ges_Nused(:)), ...
-                                                        sum(plotdat.anl_Nused(:)));
-
-      plotdat.ges_copy  = guess(:,plotdat.copyindex,  ilevel,:);
-      plotdat.anl_copy  = analy(:,plotdat.copyindex,  ilevel,:);
-
-      plotdat.Yrange    = FindRange(plotdat);
-
-      % plot by region
-
-      if (plotdat.nregions > 2)
-         clf; orient tall
-      else 
-         clf; orient landscape
-      end
-
-      for iregion = 1:plotdat.nregions
-
-         plotdat.region   = iregion;  
-         plotdat.myregion = deblank(plotdat.region_names(iregion,:));
-         plotdat.title    = sprintf('%s @ %d %s',    ...
-                              plotdat.myvarname,     ...
-                              plotdat.level(ilevel), ...
-                              plotdat.level_units);
-
-         myplot(plotdat);
-      end
-
-      % create a postscript file
-      print(gcf,'-dpsc','-append',psfname);
-
-      % block to go slow and look at each one ...
-      % disp('Pausing, hit any key to continue ...')
-      % pause
-
-   end
-end
-
-%----------------------------------------------------------------------
-% 'Helper' functions
-%----------------------------------------------------------------------
-
-function myplot(plotdat)
-
-   % Interlace the [ges,anl] to make a sawtooth plot.
-   % By this point, the middle two dimensions are singletons.
-   cg = plotdat.ges_copy(:,:,:,plotdat.region);
-   ca = plotdat.anl_copy(:,:,:,plotdat.region);
-
-   g = plotdat.ges_Nposs(:,:,:,plotdat.region);
-   a = plotdat.anl_Nposs(:,:,:,plotdat.region);
-   nobs_poss = reshape([g a]',2*plotdat.Nbins,1);
-
-   g = plotdat.ges_Nused(:,:,:,plotdat.region);
-   a = plotdat.anl_Nused(:,:,:,plotdat.region);
-   nobs_used = reshape([g a]',2*plotdat.Nbins,1);
-
-   tg = plotdat.bincenters;
-   ta = plotdat.bincenters;
-   t = reshape([tg ta]',2*plotdat.Nbins,1);
-
-   % Determine some quantities for the legend
-   nobs = sum(nobs_used);
-   if ( nobs > 1 )
-      mean_prior = mean(cg(isfinite(cg))); 
-      mean_post  = mean(ca(isfinite(ca))); 
-   else
-      mean_prior = NaN;
-      mean_post  = NaN;
-   end
-
-   string_guess = sprintf('forecast: mean=%.5g', mean_prior);
-   string_analy = sprintf('analysis: mean=%.5g', mean_post);
-   plotdat.subtitle = sprintf('%s     %s     %s',plotdat.myregion, string_guess, string_analy);
-
-   % Plot the requested quantity on the left axis.
-   % The observation count will use the axis on the right.
-   % We want to suppress the 'auto' feature of the axis labelling, 
-   % so we manually set some values that normally
-   % don't need to be set.
-   
-   ax1 = subplot(plotdat.nregions,1,plotdat.region);
-
-   h1 = plot(tg,cg,'k+-',ta,ca,'ro-','LineWidth',plotdat.linewidth);
-   h = legend('forecast', 'analysis');
-   legend(h,'boxoff')
-
-   axlims = axis;
-   axlims = [axlims(1:2) plotdat.Yrange];
-   axis(axlims)
-
-   plotdat.ylabel{1} = plotdat.myregion;
-   switch lower(plotdat.copystring)
-      case 'bias'
-         % plot a zero-bias line
-         h4 = line(axlims(1:2),[0 0], 'Color','r','Parent',ax1);
-         set(h4,'LineWidth',1.5,'LineSTyle',':')
-         plotdat.ylabel{2} = sprintf('%s (%s)',plotdat.copystring,plotdat.biasconv);
-      otherwise
-         plotdat.ylabel{2} = sprintf('%s',plotdat.copystring);
-   end
-   
-   % hokey effort to decide to plot months/days vs. daynum vs.
-   ttot = plotdat.bincenters(plotdat.Nbins) - plotdat.bincenters(1) + 1;
-   
-   if ((plotdat.bincenters(1) > 1000) && (ttot > 5))
-      datetick('x',6,'keeplimits','keepticks');
-      monstr = datestr(plotdat.bincenters(1),21);
-      xlabelstring = sprintf('month/day - %s start',monstr);
-   elseif (plotdat.bincenters(1) > 1000)
-      datetick('x',15,'keeplimits','keepticks')
-      monstr = datestr(plotdat.bincenters(1),21);
-      xlabelstring = sprintf('%s start',monstr);
-   else
-      xlabelstring = 'days';
-   end
-
-   % only put x axis on last/bottom plot
-   if (plotdat.region == plotdat.nregions)
-      xlabel(xlabelstring)
-   end
-
-   % more annotation ...
-
-   if (plotdat.region == 1)
-      title({plotdat.title, plotdat.subtitle}, ...
-         'Interpreter', 'none', 'Fontsize', 12, 'FontWeight', 'bold')
-      BottomAnnotation(plotdat.fname)
-   else
-      title(plotdat.subtitle, 'Interpreter', 'none', ...
-         'Fontsize', 12, 'FontWeight', 'bold')
-   end
-   
-   % create a separate scale for the number of observations
-   ax2 = axes('position',get(ax1,'Position'), ...
-           'XAxisLocation','top', ...
-           'YAxisLocation','right',...
-           'Color','none',...
-           'XColor','b','YColor','b');
-   h2 = line(t,nobs_poss,'Color','b','Parent',ax2);
-   h3 = line(t,nobs_used,'Color','b','Parent',ax2);
-   set(h2,'LineStyle','none','Marker','o');
-   set(h3,'LineStyle','none','Marker','+');   
-
-   % use same X ticks - with no labels
-   set(ax2,'XTick',get(ax1,'XTick'),'XTickLabel',[])
- 
-   % use the same Y ticks, but find the right label values
-   [yticks, newticklabels] = matchingYticks(ax1,ax2);
-   set(ax2,'YTick', yticks, 'YTickLabel', newticklabels)
-
-   set(get(ax2,'Ylabel'),'String','# of obs : o=poss, +=used')
-   set(get(ax1,'Ylabel'),'String',plotdat.ylabel)
-   set(ax1,'Position',get(ax2,'Position'))
-   grid
-
-
-
-
-function BottomAnnotation(main)
-% annotates the directory containing the data being plotted
-subplot('position',[0.48 0.01 0.04 0.04])
-axis off
-fullname = which(main);   % Could be in MatlabPath
-if( isempty(fullname) )
-   if ( main(1) == '/' )  % must be a absolute pathname
-      string1 = sprintf('data file: %s',main);
-   else                   % must be a relative pathname
-      mydir = pwd;
-      string1 = sprintf('data file: %s/%s',mydir,main);
-   end
-else
-   string1 = sprintf('data file: %s',fullname);
-end
-
-h = text(0.0, 0.5, string1);
-set(h,'HorizontalAlignment','center', ...
-      'VerticalAlignment','middle',...
-      'Interpreter','none',...
-      'FontSize',10)
-
-
-
-function [y,ydims] = FindTemporalVars(x)
-% Returns UNIQUE (i.e. base) temporal variable names
-if ( ~(isfield(x,'allvarnames') && isfield(x,'allvardims')))
-   error('Doh! no ''allvarnames'' and ''allvardims'' components')
-end
-
-j = 0;
-
-for i = 1:length(x.allvarnames)
-   indx = findstr('time',x.allvardims{i});
-   if (indx > 0) 
-      j = j + 1;
-
-      basenames{j} = ReturnBase(x.allvarnames{i});
-      basedims{j}  = x.allvardims{i};
-   end
-end
-
-[b,i,j] = unique(basenames);
-y     = cell(length(i),1);
-ydims = cell(length(i),1);
-for j = 1:length(i)
-   disp(sprintf('%2d is %s',j,basenames{j}))
-    y{j} = basenames{j};
-ydims{j} = basedims{j};
-end
-
-
-
-function s = ReturnBase(string1)
-inds = findstr('_guess',string1);
-if (inds > 0 )
-   s = string1(1:inds-1);
-end
-
-inds = findstr('_analy',string1);
-if (inds > 0 )
-   s = string1(1:inds-1);
-end
-
-inds = findstr('_VPguess',string1);
-if (inds > 0 )
-   s = string1(1:inds-1);
-end
-
-inds = findstr('_VPanaly',string1);
-if (inds > 0 )
-   s = string1(1:inds-1);
-end
-
-
-
-function x = FindRange(y)
-% Trying to pick 'nice' limits for plotting.
-% Completely ad hoc ... and not well posed.
-%
-% In this scope, y is bounded from below by 0.0
-%
-% If the numbers are very small ... 
-
-bob  = [y.ges_copy(:) ; ...
-        y.anl_copy(:)];
-inds = find(isfinite(bob));
-
-if ( isempty(inds) )
-   x = [0 1];
-else
-   glommed = bob(inds);
-   ymin    = min(glommed);
-   ymax    = max(glommed);
-
-   if ( ymax > 1.0 ) 
-      ymin = floor(min(glommed));
-      ymax =  ceil(max(glommed));
-   elseif ( ymax < 0.0 & y.copystring == 'bias' )
-      ymax = 0.0;
-   end
-
-   Yrange = [ymin ymax];
-
-   x = [min([Yrange(1) 0.0]) Yrange(2)];
-end
-
-
-
-function [yticks newticklabels] = matchingYticks(ax1, ax2)
-%% This takes the existing Y ticks from ax1 (presumed nice)
-% and determines the matching labels for ax2 so we can keep
-% at least one of the axes looking nice.
-
-Dlimits = get(ax1,'YLim');
-DYticks = get(ax1,'YTick');
-nYticks = length(DYticks);
-ylimits = get(ax2,'YLim');
-
-slope   = (ylimits(2) - ylimits(1))/(Dlimits(2) - Dlimits(1));
-xtrcpt  = ylimits(2) -slope*Dlimits(2);
-
-yticks        = slope*DYticks + xtrcpt;
-newticklabels = num2str(round(10*yticks')/10);
-
-% <next few lines under version control, do not edit>
-% $URL$
-% $Revision$
-% $Date$
-

Deleted: DART/trunk/models/CESM/matlab/plot_global_grid.m
===================================================================
--- DART/trunk/models/CESM/matlab/plot_global_grid.m	2013-07-29 16:49:33 UTC (rev 6324)
+++ DART/trunk/models/CESM/matlab/plot_global_grid.m	2013-07-29 19:48:43 UTC (rev 6325)
@@ -1,60 +0,0 @@
-function plot_global_grid(ugrid_file, tgrid_file)
-%% plot_global_grid 
-% 
-% Example 1: plot the regular grid output
-%
-% ugrid_file = 'dipole_u_out_data';
-% tgrid_file = 'dipole_t_out_data';
-% plot_global_grid(ugrid_file, tgrid_file)
-%
-%
-% plot_global_grid(1); % to plot regular grid output
-% plot_global_grid(2); % to plot dipole x3 grid output
-% plot_global_grid(3); % to plot regular grid with same grid as x3 in SH
-
-%% DART software - Copyright 2004 - 2013 UCAR. This open source software is
-% provided by UCAR, "as is", without charge, subject to all terms of use at
-% http://www.image.ucar.edu/DAReS/DART/DART_download
-%
-% DART $Id$
-
-u = read_file(ugrid_file);
-t = read_file(tgrid_file);
-
-function chunk = read_file(fname)
-
-if (exist(fname,'file') ~=2 )
-   error('%s does not exist',fname) 
-end
-
-chunk.fname  = fname;
-mydata       = load(fname);
-chunk.lons   = mydata(:,1);
-chunk.lats   = mydata(:,2);
-chunk.vals   = mydata(:,3);
-chunk.nx     = sum(abs(diff(chunk.lats)) > 20) + 1;  % looking for big jumps
-chunk.ny     = length(chunk.lons) / chunk.nx;
-chunk.datmat = reshape(chunk.vals, chunk.ny, chunk.nx);
-chunk.string = sprintf('min/max is %f %f',min(chunk.vals), max(chunk.vals));
-
-figure;
-
-% imagesc(chunk.lons, chunk.lats, chunk.datmat)  ! dipole grids have lon(1) ~= 0
-imagesc(chunk.datmat) 
-set(gca,'YDir','normal'); colorbar
-h = title({chunk.fname, chunk.string}); set(h,'Interpreter','none')
-xlabel(sprintf('%d longitudes',chunk.nx))
-ylabel(sprintf('%d latitudes',chunk.ny))
-
-figure;
-
-h = plot(chunk.lons, chunk.lats,'.'); set(h,'MarkerSize',0.2)
-h = title(chunk.fname); set(h,'Interpreter','none')
-xlabel(sprintf('%d longitudes',chunk.nx))
-ylabel(sprintf('%d latitudes',chunk.ny))
-
-% <next few lines under version control, do not edit>
-% $URL$
-% $Revision$
-% $Date$
-

Deleted: DART/trunk/models/CESM/matlab/plot_grid.m
===================================================================
--- DART/trunk/models/CESM/matlab/plot_grid.m	2013-07-29 16:49:33 UTC (rev 6324)
+++ DART/trunk/models/CESM/matlab/plot_grid.m	2013-07-29 19:48:43 UTC (rev 6325)
@@ -1,112 +0,0 @@
-function plot_grid(fname)
-%% plot_grid ... plots the ULAT,ULON and TLAT,TLON variables from a netcdf file.
-% 
-% fname = 'h.A1.10.nc';
-% plot_grid(fname)
-%
-
-%% DART software - Copyright 2004 - 2013 UCAR. This open source software is
-% provided by UCAR, "as is", without charge, subject to all terms of use at
-% http://www.image.ucar.edu/DAReS/DART/DART_download
-%
-% DART $Id$
-
-ulat = nc_varget(fname,'ULAT') * 180/pi;;
-ulon = nc_varget(fname,'ULON') * 180/pi;;
-tlat = nc_varget(fname,'TLAT') * 180/pi;;
-tlon = nc_varget(fname,'TLON') * 180/pi;;
-
-Ulat = ulat(:);
-Ulon = ulon(:);
-Tlat = tlat(:);
-Tlon = tlon(:);
-
-inds = find(tlon <= 0);
-tlon(inds) = tlon(inds) + 360.0;
-inds = find(ulon <= 0);
-ulon(inds) = ulon(inds) + 360.0;
-
-np = 5;
-nx = size(ulat,1);
-ny = size(ulat,2);
-
-figure(1); clf; orient landscape
-   plot(Ulon,Ulat,'ko',Tlon,Tlat,'rx')
-   legend('U,V Grid','S,T Grid')
-   legend boxoff
-
-
-figure(2); clf; orient landscape
-
-   i1 =  1;
-   iN = np;
-   j1 = 1;
-   jN = np;
-
-   myplot(i1,iN,j1,jN,ulon,ulat,tlon,tlat)
-
-figure(3); clf; orient landscape
-
-   i1 =  1;
-   iN = np;
-   j1 = ny-np+1;
-   jN = ny;
-
-   myplot(i1,iN,j1,jN,ulon,ulat,tlon,tlat)
-
-figure(4); clf; orient landscape
-
-   i1 = nx-np+1;
-   iN = nx;
-   j1 = ny-np+1;
-   jN = ny;
-
-   myplot(i1,iN,j1,jN,ulon,ulat,tlon,tlat)
-
-figure(5); clf; orient landscape
-
-   i1 = nx-np+1;
-   iN = nx;
-   j1 = 1;
-   jN = np;
-
-   myplot(i1,iN,j1,jN,ulon,ulat,tlon,tlat)
-
-
-function myplot(i1,iN,j1,jN,ulon,ulat,tlon,tlat)
-
-   h = plot(ulon(i1:iN,j1:jN), ulat(i1:iN,j1:jN), 'ko', ...
-            tlon(i1:iN,j1:jN), tlat(i1:iN,j1:jN), 'rx');
-   set(h,'MarkerSize',1)
-
-   for i = i1:iN
-   for j = j1:jN
-   %  h = text(ulon(i,j),ulat(i,j), sprintf('%d,%d',i,j));
-      str   = sprintf('''%d,%d''',i,j);
-      mystr = sprintf('h1 = text(%f,%f,%s);',ulon(i,j),ulat(i,j),str);
-      eval(mystr)
-      set(h1,'HorizontalAlignment','center', ...
-            'VerticalAlignment','middle', ...
-            'FontSize',10,'Color','k')
-
-      mystr = sprintf('h2 = text(%f,%f,%s);',tlon(i,j),tlat(i,j),str);
-      eval(mystr)
-      set(h2,'HorizontalAlignment','center', ...
-            'VerticalAlignment','middle', ...
-            'FontSize',10,'Color','r')
-   end
-   end
-   title('POP grid layout')
-   xlabel('U,V grid in black; T,S grid in red')
-   set(gca,'box','off')
-
-%  set(h,'Visible','off'); % Get the domain right.
-%   h = [h1 h2];
-%  legend('U,V Grid','S,T Grid')
-%  legend boxoff
-
-% <next few lines under version control, do not edit>
-% $URL$
-% $Revision$
-% $Date$
-

Deleted: DART/trunk/models/CESM/matlab/plot_interp_diffs.m
===================================================================
--- DART/trunk/models/CESM/matlab/plot_interp_diffs.m	2013-07-29 16:49:33 UTC (rev 6324)
+++ DART/trunk/models/CESM/matlab/plot_interp_diffs.m	2013-07-29 19:48:43 UTC (rev 6325)
@@ -1,76 +0,0 @@
-function plot_interp_diffs(ugrid_file, tgrid_file)
-%% plot_interp_diffs - script to examine the interpolation tests.
-% 
-% Example 1: plot the regular grid output
-%--------------------------------------------------
-%    ugrid_file = 'regular_grid_u_data';
-%    tgrid_file = 'regular_grid_t_data';
-%    plot_interp_diffs(ugrid_file, tgrid_file)
-%
-% Example 2: plot the dipole grid output
-%--------------------------------------------------
-%    ugrid_file = 'dipole_grid_u_data';
-%    tgrid_file = 'dipole_grid_t_data';
-%    plot_interp_diffs(ugrid_file, tgrid_file)
-%
-% Example 3: plot the dipole grid output
-%--------------------------------------------------
-%    ugrid_file = 'regular_griddi_u_data';
-%    tgrid_file = 'regular_griddi_t_data';
-%    plot_interp_diffs(ugrid_file, tgrid_file)
-%
-
-%% DART software - Copyright 2004 - 2013 UCAR. This open source software is
-% provided by UCAR, "as is", without charge, subject to all terms of use at
-% http://www.image.ucar.edu/DAReS/DART/DART_download
-%
-% DART $Id$
-
-u_org = read_file(ugrid_file);
-t_org = read_file(tgrid_file);
-u_new = read_file(sprintf('%s.out',ugrid_file));
-t_new = read_file(sprintf('%s.out',tgrid_file));
-
-udif = u_org.datmat - u_new.datmat;
-tdif = t_org.datmat - t_new.datmat;
-
-umin = min(udif(:));
-umax = max(udif(:));
-str1 = sprintf('min/max of difference is %f %f',umin,umax);
-
-tmin = min(tdif(:));
-tmax = max(tdif(:));
-str2 = sprintf('min/max of difference is %f %f',tmin,tmax);
-
-figure(1); clf;
-imagesc(udif); set(gca,'YDir','normal')
-colorbar 
-title({'U Difference',str1})
-
-figure(2); clf;
-imagesc(tdif); set(gca,'YDir','normal')
-colorbar
-title({'T Difference',str2})
-
-
-function chunk = read_file(fname)
-
-if (exist(fname,'file') ~=2 )
-   error('%s does not exist',fname)
-end
-
-chunk.fname  = fname;
-mydata       = load(fname);
-chunk.lons   = mydata(:,1);
-chunk.lats   = mydata(:,2);
-chunk.vals   = mydata(:,3);
-chunk.nx     = sum(abs(diff(chunk.lats)) > 20) + 1;  % looking for big jumps
-chunk.ny     = length(chunk.lons) / chunk.nx;
-chunk.datmat = reshape(chunk.vals, chunk.ny, chunk.nx);
-chunk.string = sprintf('min/max is %f %f',min(chunk.vals), max(chunk.vals));
-
-% <next few lines under version control, do not edit>
-% $URL$
-% $Revision$
-% $Date$
-

Deleted: DART/trunk/models/CESM/matlab/plot_rmse_xxx_evolution.m
===================================================================
--- DART/trunk/models/CESM/matlab/plot_rmse_xxx_evolution.m	2013-07-29 16:49:33 UTC (rev 6324)
+++ DART/trunk/models/CESM/matlab/plot_rmse_xxx_evolution.m	2013-07-29 19:48:43 UTC (rev 6325)
@@ -1,529 +0,0 @@
-function plotdat = plot_rmse_xxx_evolution(fname, copystring, varargin)
-%% plot_rmse_xxx_evolution plots the temporal evolution of the observation-space quantity RMSE and any other for all possible levels, all possible variables.
-% Part of the observation-space diagnostics routines.
-%
-% 'obs_diag' produces a netcdf file containing the diagnostics.
-% obs_diag condenses the obs_seq.final information into summaries for a few specified
-% regions - on a level-by-level basis.
-%
-% USAGE: plotdat = plot_rmse_xxx_evolution(fname, copystring [,varargin]);
-%
-% fname         : netcdf file produced by 'obs_diag'
-% copystring    : 'copy' string == quantity of interest. These
-%                 can be any of the ones available in the netcdf 
-%                 file 'CopyMetaData' variable.
-%                 (ncdump -v CopyMetaData obs_diag_output.nc)
-% obstypestring : 'observation type' string. Optional.
-%                 Must match something in the netcdf 
-%                 file 'ObservationTypes' variable.
-%                 (ncdump -v ObservationTypes obs_diag_output.nc)
-%                 If specified, only this observation type will be plotted.
-%                 If not specified, all observation types incluced in the netCDF file
-%                 will be plotted.
-%
-% OUTPUT: two files will result for each observation type plotted. One is a 
-%         postscript file containing a page for each level - all regions.
-%         The other file is a simple text file containing summary information
-%         about how many observations were assimilated, how many were available, etc.
-%         Both of these filenames contain the observation type as part of the name.
-%
-%
-% EXAMPLE 1 - plot the RMSE and totalspread on the same axis.
-%
-% fname      = 'obs_diag_output.nc';   % netcdf file produced by 'obs_diag'
-% copystring = 'totalspread';          % 'copy' string == quantity of interest
-% plotdat    = plot_rmse_xxx_evolution(fname,copystring);
-%
-%
-% EXAMPLE 2 - plot the RMSE and spread on the same axis - for just one observation type.
-%
-% fname      = 'obs_diag_output.nc';
-% copystring = 'totalspread';
-% obstype    = 'MOORING_TEMPERATURE';
-% plotdat    = plot_rmse_xxx_evolution(fname, copystring, obstype);
-

@@ Diff output truncated at 40000 characters. @@


More information about the Dart-dev mailing list