[pyferret] 106/110: pyferret 7.2 release

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Jul 28 08:42:28 UTC 2017


This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to branch debian/master
in repository pyferret.

commit 2d8f620eabe24763aeed55b4419f433a9f97741a
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Sat Jul 22 17:12:33 2017 +0100

    pyferret 7.2 release
---
 README.md                                          |    4 +-
 bench/Makefile                                     |   26 +-
 bench/RUN_TESTS.sh                                 |   88 +-
 bench/TEST_SCRIPTS                                 |    7 +-
 bench/TRASH_FILES                                  |    1 +
 bench/ansley_official.rhel5_32_err                 |  258 +-
 bench/ansley_official.rhel5_32_log                 | 1672 +++--
 bench/ansley_official.rhel6-64_err                 |  471 +-
 bench/ansley_official.rhel6-64_log                 | 4356 ++++++++-----
 bench/bn710_bug_fixes.jnl                          |    5 +-
 bench/bn720_bug_fixes.jnl                          |   40 +-
 bench/bn_DQ.jnl                                    |    3 +
 bench/bn_aggregate_tef.jnl                         |    3 +-
 bench/bn_all.jnl                                   |    7 +-
 bench/bn_cache_management.jnl                      |    3 +-
 bench/bn_cancel_axes.jnl                           |   11 +
 bench/bn_color_wire.jnl                            |   13 +
 bench/bn_contourcolor.jnl                          |    8 +
 bench/bn_dot_product.jnl                           |  114 +
 bench/bn_dynamic_gather.jnl                        |    3 +-
 bench/bn_gif.jnl                                   |   12 +
 bench/bn_iin_regrid.jnl                            |  291 +
 bench/bn_let_remote.jnl                            |   32 +-
 bench/bn_strings.jnl                               |    2 +-
 bench/bn_vtree_regrid.jnl                          |    1 +
 bench/co_emac.nc                                   |  Bin 0 -> 1260 bytes
 bench/err71_2d_ave_miss0.jnl                       |   16 +
 bench/err71_colorlevs.jnl                          |   15 +
 bench/err71_expr_w_const.jnl                       |   23 +
 bench/err71_isready_unknown.jnl                    |   17 +
 bench/err71_plotvs_mode_label.jnl                  |    6 +-
 bench/err71_point_average.jnl                      |   54 +
 bench/err71_ppl_sho_empty.jnl                      |   26 +
 bench/err71_read_delim.jnl                         |   31 +
 bench/err71_repeat_paren.jnl                       |   15 +
 bench/err71_string_and_if.jnl                      |   47 +
 bench/err71_vs_lon_over.jnl                        |   11 +
 bench/shorttest.dat                                |   11 +
 bench/test_results/axticlabel.pdf                  |  Bin 7161 -> 7163 bytes
 bench/test_results/bluewire.png                    |  Bin 0 -> 117077 bytes
 bench/test_results/bn_axis_vs.gif                  |  Bin 4559 -> 6645 bytes
 bench/test_results/bn_axis_vs.png                  |  Bin 33774 -> 37810 bytes
 bench/test_results/bn_contour_conset.gif           |  Bin 17361 -> 17361 bytes
 bench/test_results/bn_hovmuller_overlays.gif       |  Bin 51920 -> 51920 bytes
 bench/test_results/bn_inf2missing.pdf              |  Bin 7913 -> 7915 bytes
 bench/test_results/bn_labels_on_taxis.gif          |  Bin 35123 -> 35123 bytes
 bench/test_results/bn_labels_on_taxis.pdf          |  Bin 69653 -> 69655 bytes
 bench/test_results/bn_ribbon_vlog.gif              |  Bin 12580 -> 12468 bytes
 bench/test_results/bn_ribbon_vlog.png              |  Bin 86991 -> 85145 bytes
 bench/test_results/bn_subspan_mod_strides.gif      |  Bin 24061 -> 24061 bytes
 bench/test_results/bn_vs_const_value.gif           |  Bin 7729 -> 10917 bytes
 bench/test_results/bn_vs_const_value.png           |  Bin 40943 -> 50114 bytes
 bench/test_results/bnplot.pdf                      |  Bin 171689 -> 171691 bytes
 bench/test_results/bnplot_2.gif                    |  Bin 56113 -> 56113 bytes
 bench/test_results/bnplot_3.gif                    |  Bin 27755 -> 27755 bytes
 bench/test_results/bnplot_4.eps                    |    7 +-
 bench/test_results/bnplot_4.pdf                    |  Bin 327422 -> 327424 bytes
 bench/test_results/bnplot_4.ps                     |    7 +-
 bench/test_results/closed_lev.pdf                  |  Bin 36861 -> 36863 bytes
 bench/test_results/contourcolor_blue.pdf           |  Bin 22729 -> 22731 bytes
 bench/test_results/contourcolor_depth.pdf          |  Bin 0 -> 14295 bytes
 bench/test_results/contourcolor_green.pdf          |  Bin 22454 -> 22390 bytes
 bench/test_results/contourcolor_puce.pdf           |  Bin 22508 -> 22432 bytes
 bench/test_results/dashbug.pdf                     |  Bin 10045 -> 10047 bytes
 bench/test_results/degC_axlab.pdf                  |  Bin 6863 -> 6865 bytes
 bench/test_results/dots.pdf                        |  Bin 5198 -> 5200 bytes
 bench/test_results/err700_key.gif                  |  Bin 32596 -> 32596 bytes
 bench/test_results/ferret_run_tests_err            |  481 +-
 bench/test_results/ferret_run_tests_log            | 5822 +++++++++++-------
 bench/test_results/ferret_run_tests_ncdump         |  195 +-
 bench/test_results/flowlines.pdf                   |  Bin 54090 -> 54092 bytes
 bench/test_results/forecast_actual.gif             |  Bin 15839 -> 15839 bytes
 bench/test_results/forecast_diagview.gif           |  Bin 14385 -> 14385 bytes
 bench/test_results/forecast_leadview.gif           |  Bin 12293 -> 12293 bytes
 bench/test_results/gif_dashbug.gif                 |  Bin 1625 -> 1625 bytes
 bench/test_results/graticules.pdf                  |  Bin 18575 -> 18577 bytes
 bench/test_results/legend_1d_plots.gif             |  Bin 10422 -> 10422 bytes
 bench/test_results/levels_one_level.gif            |  Bin 17452 -> 17452 bytes
 bench/test_results/linecolors.pdf                  |  Bin 16518 -> 16520 bytes
 bench/test_results/lon_lat_label_controls.gif      |  Bin 7538 -> 10898 bytes
 bench/test_results/lon_lat_label_controls.png      |  Bin 57284 -> 72405 bytes
 bench/test_results/multi_line_labels.pdf           |  Bin 31259 -> 31260 bytes
 bench/test_results/outline_poly.pdf                |  Bin 8604 -> 8606 bytes
 bench/test_results/polygon_plot.pdf                |  Bin 12269 -> 12271 bytes
 bench/test_results/pyferret_run_tests_err          |  501 +-
 bench/test_results/pyferret_run_tests_log          | 6451 ++++++++++++--------
 bench/test_results/pyferret_run_tests_ncdump       |  196 +-
 bench/test_results/red10wire.png                   |  Bin 0 -> 83457 bytes
 bench/test_results/red25wire.png                   |  Bin 0 -> 99457 bytes
 bench/test_results/redwire.png                     |  Bin 0 -> 28657 bytes
 bench/test_results/startup_tests2.pdf              |  Bin 8938 -> 8940 bytes
 bench/test_results/testbackground.gif              |  Bin 46738 -> 46738 bytes
 bench/test_results/testfermethods_contour.pdf      |  Bin 23231 -> 18890 bytes
 bench/test_results/testfermethods_fill.pdf         |  Bin 72362 -> 67996 bytes
 bench/test_results/testfermethods_lineplot.pdf     |  Bin 14684 -> 14691 bytes
 bench/test_results/testfermethods_pointplot.pdf    |  Bin 15019 -> 15026 bytes
 bench/test_results/testfermethods_shade.pdf        |  Bin 16768 -> 16773 bytes
 bench/test_results/testferpyvar.pdf                |  Bin 19342 -> 19324 bytes
 bench/test_results/timetics.pdf                    |  Bin 15037 -> 15039 bytes
 bench/test_results/timetics2.pdf                   |  Bin 27708 -> 27710 bytes
 bench/test_results/vec_curv.pdf                    |  Bin 14773 -> 14775 bytes
 bench/test_results/vec_curv2.pdf                   |  Bin 28929 -> 28931 bytes
 bench/test_results/viewaxes.pdf                    |  Bin 8098 -> 8100 bytes
 bench/test_results/vs_lon_over.gif                 |  Bin 0 -> 11380 bytes
 bench/test_results/vs_lon_over.png                 |  Bin 0 -> 22003 bytes
 external_functions/ef_utility/site_specific.mk     |    4 +-
 external_functions/examples/dates.F                |   10 +-
 fer/ccr/EF_InternalUtil.c                          | 1025 ++--
 fer/common/errmsg.parm                             |   13 +-
 fer/common/ferret.parm                             |    5 +-
 fer/common/grid_chg_fcns.parm                      |    7 +-
 fer/common/slash.parm                              |    8 +
 fer/common/xprog_state.cmn                         |   13 +-
 fer/ctx/merge_grid.F                               |   14 +-
 fer/dat/xalgebra_data.F                            |   16 +-
 fer/dat/xcommand_data.F                            |    9 +-
 fer/dat/xgfdl_error_text_data.F                    |   10 +
 fer/dat/xgrid_chg_fcns_data.F                      |   85 +-
 fer/dat/xprog_state_data.F                         |    6 +-
 fer/dat/xrevision_data.F                           |    5 +-
 fer/doo/SOURCE_FILES                               |    2 +
 fer/doo/do_4d_trans.F                              |   27 +-
 fer/doo/do_ave_int.F                               |    9 +-
 ppl/plot/spwn.F => fer/doo/do_iin_regrid.F         |   41 +-
 fer/doo/finalize_ave_int.F                         |    8 +-
 fer/doo/iin_regrid.F                               |  327 +
 fer/efi/SOURCE_FILES                               |   27 +-
 fer/efi/bcompressi.F                               |  283 -
 fer/efi/bin_index_wt.F                             |    4 +-
 fer/efi/bxcat.F                                    |  326 -
 fer/efi/bxsequence.F                               |  241 -
 fer/efi/bxsequence_str.F                           |  245 -
 fer/efi/dot_e.F                                    |  204 +
 fer/efi/dot_f.F                                    |  205 +
 fer/efi/dot_t.F                                    |  204 +
 fer/efi/dot_x.F                                    |  170 +
 fer/efi/dot_y.F                                    |  203 +
 fer/efi/dot_z.F                                    |  204 +
 fer/efi/expnd_by_len.F                             |    3 +
 fer/efi/expndi_by_m_counts.F                       |  112 +-
 ...pndi_by_m_counts.F => expndi_by_m_counts_str.F} |  136 +-
 fer/efi/gridding_subs.F                            |  277 +
 fer/efi/is_element_of.F                            |    4 +-
 fer/efi/is_element_of_str.F                        |    2 +-
 fer/efi/sample_fast_i.F                            |    2 +-
 fer/efi/sample_fast_i_str.F                        |    2 +-
 fer/efi/samplem_multi.F                            |  255 +
 fer/efi/samplen_multi.F                            |  250 +
 fer/efi/samplexy_closest.F                         |    3 +-
 fer/efi/{samplexy_closest.F => samplexy_nrst.F}    |   10 +-
 fer/efi/scat2grid_minmax_xyt.F                     |  502 ++
 fer/efi/scat2grid_std_xyt.F                        |  570 ++
 fer/efi/test_opendap.F                             |   16 +-
 fer/efi/tracks2grid_mask_ave_xyt.F                 |  685 +++
 fer/efi/tracks2grid_std_xyt.F                      |  787 +++
 fer/efi/unique_str2int.F                           |    2 +-
 fer/fmt/full_uvar_name.F                           |   10 +-
 fer/fmt/full_uvar_name_xml.F                       |    9 +-
 fer/gnl/cdf_list.F                                 |   15 +-
 fer/gnl/cdf_list_global_atts.F                     |   12 +-
 fer/gnl/define_ef_aggregate_grid.F                 |   15 +-
 fer/gnl/edit_attribute.F                           |   12 +-
 fer/gnl/init_ef_aggregate_dset.F                   |    3 +-
 fer/gnl/init_memory.F                              |   15 +-
 fer/gnl/parse_command.F                            |    7 +
 fer/gnl/redefine_ax_att.F                          |   10 +-
 fer/gnl/repl_exprns.F                              |   15 +-
 fer/gnl/reset_ax_att.F                             |   12 +-
 fer/gnl/set_agg_var_atts.F                         |   15 +-
 fer/gnl/set_var.F                                  |   10 +-
 fer/gnl/show_1_uvar_xml.F                          |   10 +-
 fer/gnl/show_data_files.F                          |    5 +-
 fer/gnl/show_data_set_vars.F                       |   13 +-
 fer/gnl/show_line_xml.F                            |   13 +-
 fer/gnl/special_symbol.F                           |   36 +-
 fer/plt/axis_ends.F                                |    2 +
 fer/plt/plot_set_up.F                              |   61 +-
 fer/stk/is_algebra.F                               |    2 +-
 fer/stk/is_do_gc_fcn.F                             |    4 +-
 fer/stk/is_regrid.F                                |   10 +
 fer/stk/is_uvar_grid.F                             |   13 +-
 fer/stk/rcvd_regrid.F                              |    4 +-
 fer/stk/rqst_regrid.F                              |    5 +-
 fer/utl/SOURCE_FILES                               |    1 +
 fer/utl/inherit_attrs.F                            |   19 +-
 fer/utl/save_uvar_grid.F                           |   18 +-
 fer/utl/{save_uvar_grid.F => save_uvar_type.F}     |   20 +-
 fer/utl/store_dependency.F                         |    8 +-
 fer/utl/update_attributes.F                        |   17 +-
 fer/xeq/xeq_annotate.F                             |    1 -
 fer/xeq/xeq_cancel.F                               |    8 +-
 fer/xeq/xeq_define.F                               |   16 +-
 fer/xeq/xeq_plot.F                                 |    2 +-
 fer/xeq/xeq_spawn.F                                |   32 +-
 fer/xeq/xeq_wire.F                                 |   63 +-
 fmt/cmn/netcdf_declareUnderscore.inc               |    2 +-
 fmt/src/NCF_Util.c                                 |   28 +-
 fmt/src/SOURCE_FILES                               |    6 +
 .../{cd_get_var_outflag.F => cd_get_id_varname.F}  |   49 +-
 fmt/src/cd_get_time_units.F                        |    0
 .../{cd_get_var_info.F => cd_get_var_dims_info.F}  |   36 +-
 fmt/src/cd_get_var_info.F                          |   25 +
 .../{cd_get_var_outflag.F => cd_get_var_natts.F}   |   52 +-
 fmt/src/cd_get_var_outflag.F                       |   48 +-
 .../{cd_get_var_outflag.F => cd_get_var_type.F}    |   37 +-
 .../{cd_get_var_outflag.F => cd_get_var_varname.F} |   51 +-
 fmt/src/{cd_get_var_info.F => cd_isit_coordvar.F}  |   62 +-
 fmt/src/ez_delimited_read.c                        |   26 +-
 fmt/src/ez_init_dset.F                             |   27 +-
 jnls/examples/color_cover.jnl                      |  196 +
 jnls/examples/my_ocean_stripmap_tn.jnl             |  141 +
 jnls/go/frequency_histogram2.jnl                   |    3 +
 palettes/inverse_rainbow.spk                       |    6 +
 palettes/pale_green_blue_rev.spk                   |    9 +
 palettes/purple_blue_orange.spk                    |   14 +
 palettes/range_of_blues.spk                        |    2 +
 palettes/ten_reordered_levels.spk                  |   13 +
 palettes/woce2_test.spk                            |    7 +
 ppl/complot/symbel_hershey.F                       |    3 +-
 ppl/plot/plotz.F                                   |   16 +-
 ppl/plot/spwn.F                                    |   10 +-
 ppl/plot/view.F                                    |   24 +-
 ppl/plotlib/contur.F                               |   47 +-
 ppl/symlib/cmderr.F                                |   42 +-
 ppl/tmap_inc/taxis_inc.decl                        |   18 +-
 ppl/tmapadds/fillpol.F                             |   17 +-
 ppl/tmapadds/key.F                                 |    7 +-
 ppl/tmapadds/set_levels_shade_fill.F               |    9 +-
 ppl/tmapadds/setlab_syms.F                         |   45 +-
 pyfermod/libpyferret.c                             |    2 +-
 pyfermod/pyferret.h                                |    3 +-
 setup.py                                           |   14 +-
 site_specific.mk                                   |   26 +-
 233 files changed, 20212 insertions(+), 10395 deletions(-)

diff --git a/README.md b/README.md
index 9662547..45dc7ad 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,9 @@ using git-svn.
 
 The latest ferretmagic module from Patrick Brockmann for using PyFerret 
 with the iPython notebook can be obtained using `pip install ferretmagic`, or see
-[http://pypi.python.org/pypi/ferretmagic](http://pypi.python.org/pypi/ferretmagic)
+[http://pypi.python.org/pypi/ferretmagic](http://pypi.python.org/pypi/ferretmagic).
+Note that this only installs the ferretmagic module for PyFerret;
+it does not install PyFerret.
 
 ## Anaconda Installation - Linux, OS X, and Windows 10/bash
 
diff --git a/bench/Makefile b/bench/Makefile
index bb799b4..554b435 100644
--- a/bench/Makefile
+++ b/bench/Makefile
@@ -1,5 +1,5 @@
 #
-# Makefile for the PyFerret source bench subdirectory
+# Makefile for the PyFerret bench subdirectory
 #
 
 # include platform specific macro definitions for make_stream_file
@@ -13,21 +13,29 @@ run_tests:
 	    echo "*** PyFerret must be installed and the ferret_paths script must have sourced for these tests ***" ; \
 	    exit 1 ; \
 	fi
-	./RUN_TESTS.sh `which pyferret` "$(PYFER_EXTERNAL_FUNCTIONS)" "RUN_TESTS.sh test results for PyFerret"
-	@echo 'Differences in the generated bench PDF and PNG files versus against those in test_results'
+	./RUN_TESTS.sh `which pyferret` "$(PYFER_EXTERNAL_FUNCTIONS)"
+	@echo 'Differences in the generated bench PDF and PNG files versus those in bench/test_results'
 	- at for img in *.pdf *.png ; \
 	do \
-	    diff -q $$img test_results/$$img ; \
+	    if diff -q $$img test_results/$$img ; then \
+	        echo "Files $$img and test_results/$$img are identical"; \
+	    else \
+	        compare $$img test_results/$$img "$$img"_diff.png ; \
+	    fi \
 	done
+	-@( datetag=`date +'%d%h%yAT'|tr '[A-Z]' '[a-z]'` ; \
+	    diff all_$${datetag}*_ncdump test_results/pyferret_run_tests_ncdump 1> pyferret_run_tests_ncdump.diff 2>&1 ; \
+	    diff all_$${datetag}*_err test_results/pyferret_run_tests_err 1> pyferret_run_tests_err.diff 2>&1 ; \
+	    diff all_$${datetag}*_log test_results/pyferret_run_tests_log 1> pyferret_run_tests_log.diff 2>&1 \
+	)
 	@echo ''
-	@echo 'Inspect the bench/all_*_ncdump, bench/all_*_err, and bench/all_*_log files just created '
-	@echo 'against bench/test_results/pyferret_run_tests_ncdump, bench/test_results/pyferret_run_test_err, '
-	@echo 'and bench/test_results/pyferret_run_tests_log'
+	@echo 'Inspect the *_diff.png files for actual differences in the images'
+	@echo 'Inspect the pyferret_run_tests_*.diff files for actual differences in the output'
 
 .PHONY: clean
 clean:
-	rm -f all_*_ncdump all_*_err all_*_log
-	rm -f *.plt* *.gif* *.ps* *.eps* *.png* *.pdf* ferret.jnl*
+	rm -f all_*_ncdump all_*_err all_*_log all_*_ncdump_orig all_*_err_orig all_*_log_orig cleanups.sed
+	rm -f *.ps* *.eps* *.png* *.pdf* *.diff* ferret.jnl*
 	rm -f `cat TRASH_FILES`
 	rm -f all_ncdump.out fort.41 make_stream_file
 	rm -fr subdir tmp
diff --git a/bench/RUN_TESTS.sh b/bench/RUN_TESTS.sh
index 9aec8ee..2f2c70b 100755
--- a/bench/RUN_TESTS.sh
+++ b/bench/RUN_TESTS.sh
@@ -1,24 +1,19 @@
 #! /bin/sh -f
 # run individually each of the benchmark tests listed in TEST_SCRIPTS
 
-if [ $# -lt 2 ]; then
+if [ $# -ne 2 ]; then
    echo ""
-   echo "Usage:  $0  Ferret  ExtFuncsDir  [ ... ]"
+   echo "Usage:  $0  Ferret  ExtFuncsDir"
    echo "where:"
    echo "       Ferret is the ferret executable or pyferret script to use"
    echo "       ExtFuncsDir is the external functions directory to use"
    echo "           (if '.', bn_all_ef.jnl will not be run)"
-   echo "       Any remaining arguments are used as comments in the log files"
    echo ""
    exit 1
 fi
 
 fver="$1"
-shift
-efdir="$1"
-shift
-bmarker="$USER"
-bcomment="$*"
+efdir="$2"
 
 PS1='$ '
 export PS1
@@ -86,12 +81,6 @@ echo "Testing log output in $log_file"
 echo "Testing errors in $err_file" 
 echo "Testing ncdump output in $ncdump_file"
 
-echo "Using FERRET $fver" >> $log_file
-ls -l $fver >> $log_file
-echo "Using external functions from $efdir" >> $log_file
-echo "Benchmark run by $bmarker" >> $log_file
-echo "Note: $bcomment" >> $log_file
-
 if ! echo "$fver" | grep -q "pyferret"; then
    ispyferret=0
 #  command-line options for ferret
@@ -108,7 +97,7 @@ else
    export PYFER_EXTERNAL_FUNCTIONS
 fi
 
-#set up a generic data environment
+# set up a generic data environment
 echo "****** Restricting Ferret paths to bench directory ******" >> $log_file
 FER_DATA="."
 export FER_DATA
@@ -122,7 +111,6 @@ FER_GRIDS="."
 export FER_GRIDS
 FER_DIR="."
 export FER_DIR
-Fenv >> $log_file
 
 # always replace $HOME/.ferret with default.ferret so results are consistent
 rm -f keep.ferret
@@ -142,11 +130,6 @@ if [ "$ispyferret" -ne 0 ]; then
    done
 fi
 
-now=`date`
-echo "Beginning at $now" >> $log_file
-cp $log_file $err_file
-echo "Beginning at $now"
-
 # run each of the scripts in the list
 rm -f all_ncdump.out
 for script in $jnl_scripts; do
@@ -212,12 +195,65 @@ if [ -f keep.ferret ]; then
    mv keep.ferret $HOME/.ferret
 fi
 
+# Replace insignificant differences with constant values
+cleanups="cleanups.sed"
+
+builddir=`dirname $PWD | sed -e 's/\\//\\\\\\//g'`
+echo "s/$builddir/....../g" > $cleanups
+
+exebindir=`dirname $fver`
+exeferdir=`dirname $exebindir | sed -e 's/\\//\\\\\\//g'`
+echo "s/$exeferdir/....../g" >> $cleanups
+
+timeregex=`date +%_d.%h.%Y`
+echo "s/$timeregex/DD-MON-YYYY/g" >> $cleanups
+# If date assigned to symbol and then symbol used elsewhere, any beginning space is dropped
+timeregex=`date +%-d.%h.%Y`
+echo "s/$timeregex/DD-MON-YYYY/g" >> $cleanups
+
+timeregex=`date +%_d.%h.%y`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM/g" >> $cleanups
+echo "s/$timeregex/DD-MON-YY/g" >> $cleanups
+# If date assigned to symbol and then symbol used elsewhere, any beginning space is dropped
+timeregex=`date +%-d.%h.%y`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM/g" >> $cleanups
+echo "s/$timeregex/DD-MON-YY/g" >> $cleanups
+
+timeregex=`date +%m.%d.%y`
+echo "s/$timeregex/MM-DD-YY/g" >> $cleanups
+
+timeregex=`date | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/'`
+echo "s/$timeregex/WKD MON DD HH:MM:SS ZZZ YYYY/g" >> $cleanups
+
+timeregex=`date +%a.%h.%_d.%T.%Y | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/'`
+echo "s/$timeregex/WKD MON DD HH:MM:SS YYYY/g" >> $cleanups
+
+echo 's/^randu2_randn2 [0-9 .-]+$/randu2_randn2      ....../' >> $cleanups
+echo 's/the_time = [0-9][0-9]:[0-9][0-9]/the_time = HH:MM/g' >> $cleanups
+echo 's/\(AX[0-9][0-9][0-9]\)/(AX###)/g' >> $cleanups
+echo 's/\(G[0-9][0-9][0-9]\)/(G###)/g' >> $cleanups
+echo 's/CURRENT_TIME = "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]"/CURRENT_TIME = "HH:MM:SS"/g' >> $cleanups
+echo 's/SESSION_TIME = "[0-9][0-9]:[0-9][0-9]"/SESSION_TIME = "HH:MM"/g' >> $cleanups
+echo 's/SESSION_PID = "[0-9]+"/SESSION_PID = "#####"/g' >> $cleanups
+echo 's/DELTA_CPU = "[0-9]\.[0-9E-]+"/DELTA_CPU = "######"/g' >> $cleanups
+echo 's/CLOCK_SECS = "[0-9]\.[0-9E-]+"/CLOCK_SECS = "######"/g' >> $cleanups
+echo 's/^\[\?1034h//' >> $cleanups
+echo 's/Second 10K LET commands LET a = 0 takes  [0-4]\.[0-9]+  seconds/Second 10K LET commands LET a = 0 takes [0-5] seconds/' >> $cleanups
+echo 's/10K LET commands LET a = 0 takes  [0-2]\.[0-9]+  seconds/10K LET commands LET a = 0 takes [0-3] seconds/' >> $cleanups
+echo 's/5K LOAD with transform takes  [0-8]\.[0-9]+  seconds/5K LOAD with transform takes [0-9] seconds/' >> $cleanups
+echo 's/DEFINE VARIABLE ten_plots = 0\.[0-9]+/DEFINE VARIABLE ten_plots = 0.######/' >> $cleanups
+echo 's/DEFINE VARIABLE dt = 0\.[0-9]+/DEFINE VARIABLE dt = 0.######/' >> $cleanups
+echo 's/DEFINE VARIABLE sumcpu =[ ]?0\.[0-9]+/DEFINE VARIABLE sumcpu = 0.######/' >> $cleanups
+echo '/say `sumcpu`/,+1 s/^ !-> MESSAGE\/CONTINUE 0\.[0-9]+$/ !-> MESSAGE\/CONTINUE 0.######/' >> $cleanups
+echo '/say `sumcpu`/,+2 s/^0\.[0-9]+$/0.######/' >> $cleanups
+
+sed -r -i_orig -f $cleanups $log_file
+sed -r -i_orig -f $cleanups $err_file
+sed -r -i_orig -f $cleanups $ncdump_file
+
+rm -f $cleanups
+
 # Clean-up
 rm -f `cat TRASH_FILES`
 rm -fr subdir tmp
 
-now=`date`
-echo  "Ended at $now" >> $err_file
-echo  "Ended at $now" >> $log_file
-echo  "Ended at $now"
-
diff --git a/bench/TEST_SCRIPTS b/bench/TEST_SCRIPTS
index 439db0d..8a37c51 100644
--- a/bench/TEST_SCRIPTS
+++ b/bench/TEST_SCRIPTS
@@ -273,9 +273,10 @@ bn_compressed_gather.jnl
 bn_dynamic_gather.jnl
 bn_stat_precision.jnl
 bn_plot_vs_with_time.jnl
-bn_inner.jnl
+bn_dot_product.jnl
 bn_cache_management.jnl
 bn_transp_choose.jnl
+bn_iin_regrid.jnl
 !
 ! bn_gif, bn_all_ef, and bn_startupfile at end
 !
@@ -284,9 +285,11 @@ bn_ps.jnl
 bn_all_ef.jnl
 bn_startupfile.jnl
 !
-! Test SOCAT decimation script (not part of normal benchmark tests)
+! Test SOCAT decimation script and color wire plots
+! (not part of normal benchmark tests)
 !
 err700_decimate.jnl
+bn_color_wire.jnl
 ! PyFerret-only Ferret scripts
 bn_outline_poly.jnl
 bn_contourcolor.jnl
diff --git a/bench/TRASH_FILES b/bench/TRASH_FILES
index ae1ce72..a88ad1c 100644
--- a/bench/TRASH_FILES
+++ b/bench/TRASH_FILES
@@ -89,6 +89,7 @@ justh.nc
 layerz_test_data.txt
 list_of_numbers.dat
 longax.dat
+longaxspace.dat
 longtitle.nc
 longvname.nc
 lonlat.dat
diff --git a/bench/ansley_official.rhel5_32_err b/bench/ansley_official.rhel5_32_err
index 3cb47b0..a639cd8 100644
--- a/bench/ansley_official.rhel5_32_err
+++ b/bench/ansley_official.rhel5_32_err
@@ -1,10 +1,10 @@
 Procedure run_all to run all FERRET benchmarks
 Running FERRET version /home/users/ansley/build/linux/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 120880848 Apr 11 16:25 /home/users/ansley/build/linux/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 120937210 May 11 10:23 /home/users/ansley/build/linux/FERRET/fer/ferret_c
 Using external functions from /home/users/ansley/build/linux/FERRET/external_functions/ext_func
 Running the tests of external functions y
 Benchmark run by ansley
-Note: with CANCEL MODE STUPID in bn_reset
+Note: fix to dot-product axis merging 
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -20,7 +20,7 @@ FER_LIBS=/home/users/tmap/ferret/linux/lib
 FER_PALETTE=. /home/users/tmap/ferret/linux/ppl
 PWD=/home/users/ansley/build/linux/FERRET/bench
 PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/linux/ext_func/pylibs
-Beginning at Tue Apr 11 16:46:42 PDT 2017
+Beginning at Thu May 11 10:26:09 PDT 2017
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -1647,6 +1647,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+rm: cannot remove `input.txt': No such file or directory
 ls: input.txt: No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -4510,7 +4511,7 @@ Starting test: bn_let_remote
            *** NOTE: Bounds definition "lat_bnds" points to no existing axis
            *** NOTE: Ignoring BOUNDS attribute
 syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 500; message = "Error processing XML header file /usr/local/src/apache-tomcat-7.0.34/content/NVODS/conf/server/temp/D1D5FD4B2FB7337E19977C571F94C6FF/header.xml (No such file or directory)"^;};
+context: Error { code = 500; message = "Error processing XML header file /usr/local/src/nvods/tomcat/content/las/conf/server/temp/B181CF84342A76391141817212F0F4D2/header.xml (No such file or directory)"^;};
            *** NOTE: netCDF bounds variable definition error
            *** NOTE: Bounds definition "lon_bnds" points to no existing axis
            *** NOTE: Ignoring BOUNDS attribute
@@ -4527,18 +4528,18 @@ context: Error { code = 500; message = "Error processing XML header file /usr/lo
            *** NOTE: Bounds definition "lon_bnds" points to no existing axis
            *** NOTE: Ignoring BOUNDS attribute
  **ERROR: command syntax: /REMOTE variable expression may not contain [d=
-DEFINE VARIABLE/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+DEFINE VARIABLE/D=1/remote rvar = t00an1[d=1,z=1:100 at ave]
  **ERROR: command syntax: /REMOTE variable definition must also specify /D=
-DEFINE VARIABLE/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+DEFINE VARIABLE/remote rvar = t00an1[d=1,z=1:100 at ave]
  **netCDF error
              Unable to open URL with REMOTE variable definitions:
-             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
  **TMAP ERR: attribute reading error
              Unable to get bad-value for LET/REMOTE variable: NetCDF: Attribute not found (OPeNDAP/netCDF Error code -43)
-             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
  **netCDF error
              NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
-             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
 list/x=300/y=15 avar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -4678,6 +4679,7 @@ list substring("hello",1,-3)
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_append_dsg
+rm: cannot remove `test_save_dsg.nc': No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -4992,6 +4994,7 @@ def anno/nou/user/xpos=0/ypos=0 "My Lab"
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_auxiliary
+rm: cannot remove `layerz_test_data.txt': No such file or directory
 Replacing definition of axis ZAX
  LISTing to file layerz_test_data.txt
  **ERROR: variable unknown or not in data set: (data set ok ?): noexist
@@ -5394,6 +5397,178 @@ DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_aggregate_tef
+ls: tmp/f04_e3_t3_1v.nc: No such file or directory
+Replacing definition of axis YAX
+Replacing definition of axis ZAX
+Replacing definition of axis TRUEMONTH
+ LISTing to file tmp/f01_e1_t1.nc
+ LISTing to file tmp/f01_e1_t2.nc
+ LISTing to file tmp/f01_e1_t3.nc
+ LISTing to file tmp/f01_e2_t1.nc
+ LISTing to file tmp/f01_e2_t2.nc
+ LISTing to file tmp/f01_e2_t3.nc
+ LISTing to file tmp/f01_e3_t1.nc
+ LISTing to file tmp/f01_e3_t2.nc
+ LISTing to file tmp/f01_e3_t3.nc
+ LISTing to file tmp/f01_e4_t1.nc
+ LISTing to file tmp/f01_e4_t2.nc
+ LISTing to file tmp/f01_e4_t3.nc
+ LISTing to file tmp/f01_e5_t1.nc
+ LISTing to file tmp/f01_e5_t2.nc
+ LISTing to file tmp/f01_e5_t3.nc
+ LISTing to file tmp/f02_e1_t1.nc
+ LISTing to file tmp/f02_e1_t2.nc
+ LISTing to file tmp/f02_e1_t3.nc
+ LISTing to file tmp/f02_e2_t1.nc
+ LISTing to file tmp/f02_e2_t2.nc
+ LISTing to file tmp/f02_e2_t3.nc
+ LISTing to file tmp/f02_e3_t1.nc
+ LISTing to file tmp/f02_e3_t2.nc
+ LISTing to file tmp/f02_e3_t3.nc
+ LISTing to file tmp/f02_e4_t1.nc
+ LISTing to file tmp/f02_e4_t2.nc
+ LISTing to file tmp/f02_e4_t3.nc
+ LISTing to file tmp/f02_e5_t1.nc
+ LISTing to file tmp/f02_e5_t2.nc
+ LISTing to file tmp/f02_e5_t3.nc
+ LISTing to file tmp/f03_e1_t1.nc
+ LISTing to file tmp/f03_e1_t2.nc
+ LISTing to file tmp/f03_e1_t3.nc
+ LISTing to file tmp/f03_e2_t1.nc
+ LISTing to file tmp/f03_e2_t2.nc
+ LISTing to file tmp/f03_e2_t3.nc
+ LISTing to file tmp/f03_e3_t1.nc
+ LISTing to file tmp/f03_e3_t2.nc
+ LISTing to file tmp/f03_e3_t3.nc
+ LISTing to file tmp/f03_e4_t1.nc
+ LISTing to file tmp/f03_e4_t2.nc
+ LISTing to file tmp/f03_e4_t3.nc
+ LISTing to file tmp/f03_e5_t1.nc
+ LISTing to file tmp/f03_e5_t2.nc
+ LISTing to file tmp/f03_e5_t3.nc
+ LISTing to file tmp/f04_e1_t1.nc
+ LISTing to file tmp/f04_e1_t2.nc
+ LISTing to file tmp/f04_e1_t3.nc
+ LISTing to file tmp/f04_e2_t1.nc
+ LISTing to file tmp/f04_e2_t2.nc
+ LISTing to file tmp/f04_e2_t3.nc
+ LISTing to file tmp/f04_e3_t1.nc
+ LISTing to file tmp/f04_e3_t2.nc
+ LISTing to file tmp/f04_e3_t3.nc
+ LISTing to file tmp/f04_e4_t1.nc
+ LISTing to file tmp/f04_e4_t2.nc
+ LISTing to file tmp/f04_e4_t3.nc
+ LISTing to file tmp/f04_e5_t1.nc
+ LISTing to file tmp/f04_e5_t2.nc
+ LISTing to file tmp/f04_e5_t3.nc
+ LISTing to file tmp/f05_e1_t1.nc
+ LISTing to file tmp/f05_e1_t2.nc
+ LISTing to file tmp/f05_e1_t3.nc
+ LISTing to file tmp/f05_e2_t1.nc
+ LISTing to file tmp/f05_e2_t2.nc
+ LISTing to file tmp/f05_e2_t3.nc
+ LISTing to file tmp/f05_e3_t1.nc
+ LISTing to file tmp/f05_e3_t2.nc
+ LISTing to file tmp/f05_e3_t3.nc
+ LISTing to file tmp/f05_e4_t1.nc
+ LISTing to file tmp/f05_e4_t2.nc
+ LISTing to file tmp/f05_e4_t3.nc
+ LISTing to file tmp/f05_e5_t1.nc
+ LISTing to file tmp/f05_e5_t2.nc
+ LISTing to file tmp/f05_e5_t3.nc
+ LISTing to file tmp/f06_e1_t1.nc
+ LISTing to file tmp/f06_e1_t2.nc
+ LISTing to file tmp/f06_e1_t3.nc
+ LISTing to file tmp/f06_e2_t1.nc
+ LISTing to file tmp/f06_e2_t2.nc
+ LISTing to file tmp/f06_e2_t3.nc
+ LISTing to file tmp/f06_e3_t1.nc
+ LISTing to file tmp/f06_e3_t2.nc
+ LISTing to file tmp/f06_e3_t3.nc
+ LISTing to file tmp/f06_e4_t1.nc
+ LISTing to file tmp/f06_e4_t2.nc
+ LISTing to file tmp/f06_e4_t3.nc
+ LISTing to file tmp/f06_e5_t1.nc
+ LISTing to file tmp/f06_e5_t2.nc
+ LISTing to file tmp/f06_e5_t3.nc
+ LISTing to file tmp/f07_e1_t1.nc
+ LISTing to file tmp/f07_e1_t2.nc
+ LISTing to file tmp/f07_e1_t3.nc
+ LISTing to file tmp/f07_e2_t1.nc
+ LISTing to file tmp/f07_e2_t2.nc
+ LISTing to file tmp/f07_e2_t3.nc
+ LISTing to file tmp/f07_e3_t1.nc
+ LISTing to file tmp/f07_e3_t2.nc
+ LISTing to file tmp/f07_e3_t3.nc
+ LISTing to file tmp/f07_e4_t1.nc
+ LISTing to file tmp/f07_e4_t2.nc
+ LISTing to file tmp/f07_e4_t3.nc
+ LISTing to file tmp/f07_e5_t1.nc
+ LISTing to file tmp/f07_e5_t2.nc
+ LISTing to file tmp/f07_e5_t3.nc
+ LISTing to file tmp/f08_e1_t1.nc
+ LISTing to file tmp/f08_e1_t2.nc
+ LISTing to file tmp/f08_e1_t3.nc
+ LISTing to file tmp/f08_e2_t1.nc
+ LISTing to file tmp/f08_e2_t2.nc
+ LISTing to file tmp/f08_e2_t3.nc
+ LISTing to file tmp/f08_e3_t1.nc
+ LISTing to file tmp/f08_e3_t2.nc
+ LISTing to file tmp/f08_e3_t3.nc
+ LISTing to file tmp/f08_e4_t1.nc
+ LISTing to file tmp/f08_e4_t2.nc
+ LISTing to file tmp/f08_e4_t3.nc
+ LISTing to file tmp/f08_e5_t1.nc
+ LISTing to file tmp/f08_e5_t2.nc
+ LISTing to file tmp/f08_e5_t3.nc
+ LISTing to file tmp/f09_e1_t1.nc
+ LISTing to file tmp/f09_e1_t2.nc
+ LISTing to file tmp/f09_e1_t3.nc
+ LISTing to file tmp/f09_e2_t1.nc
+ LISTing to file tmp/f09_e2_t2.nc
+ LISTing to file tmp/f09_e2_t3.nc
+ LISTing to file tmp/f09_e3_t1.nc
+ LISTing to file tmp/f09_e3_t2.nc
+ LISTing to file tmp/f09_e3_t3.nc
+ LISTing to file tmp/f09_e4_t1.nc
+ LISTing to file tmp/f09_e4_t2.nc
+ LISTing to file tmp/f09_e4_t3.nc
+ LISTing to file tmp/f09_e5_t1.nc
+ LISTing to file tmp/f09_e5_t2.nc
+ LISTing to file tmp/f09_e5_t3.nc
+ LISTing to file tmp/f10_e1_t1.nc
+ LISTing to file tmp/f10_e1_t2.nc
+ LISTing to file tmp/f10_e1_t3.nc
+ LISTing to file tmp/f10_e2_t1.nc
+ LISTing to file tmp/f10_e2_t2.nc
+ LISTing to file tmp/f10_e2_t3.nc
+ LISTing to file tmp/f10_e3_t1.nc
+ LISTing to file tmp/f10_e3_t2.nc
+ LISTing to file tmp/f10_e3_t3.nc
+ LISTing to file tmp/f10_e4_t1.nc
+ LISTing to file tmp/f10_e4_t2.nc
+ LISTing to file tmp/f10_e4_t3.nc
+ LISTing to file tmp/f10_e5_t1.nc
+ LISTing to file tmp/f10_e5_t2.nc
+ LISTing to file tmp/f10_e5_t3.nc
+ LISTing to file tmp/f11_e1_t1.nc
+ LISTing to file tmp/f11_e1_t2.nc
+ LISTing to file tmp/f11_e1_t3.nc
+ LISTing to file tmp/f11_e2_t1.nc
+ LISTing to file tmp/f11_e2_t2.nc
+ LISTing to file tmp/f11_e2_t3.nc
+ LISTing to file tmp/f11_e3_t1.nc
+ LISTing to file tmp/f11_e3_t2.nc
+ LISTing to file tmp/f11_e3_t3.nc
+ LISTing to file tmp/f11_e4_t1.nc
+ LISTing to file tmp/f11_e4_t2.nc
+ LISTing to file tmp/f11_e4_t3.nc
+ LISTing to file tmp/f11_e5_t1.nc
+ LISTing to file tmp/f11_e5_t2.nc
+ LISTing to file tmp/f11_e5_t3.nc
+ LISTing to file tmp/f04_e3_t1_1v.nc
+ LISTing to file tmp/f04_e3_t2_1v.nc
+ LISTing to file tmp/f04_e3_t3_1v.nc
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
  **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis X of agg member 3
 list/x=150E/y=15n/L=10 fcst_2
@@ -5545,9 +5720,6 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAXIS
 Replacing definition of axis XAXIS
 Replacing definition of axis YAXIS
@@ -5683,7 +5855,6 @@ Replacing definition of axis tax
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
-Replacing definition of axis TRUEMONTH
  LISTing to file tmp/f01_e1_tu1.nc
  LISTing to file tmp/f01_e1_tu2.nc
  LISTing to file tmp/f01_e1_tu3.nc
@@ -5839,9 +6010,6 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  LISTing to file a.nc
  PERMANENT data cleared from memory
@@ -5910,6 +6078,15 @@ Replacing definition of axis tax
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_dynamic_gather
+ls: tmp/test_dyn_mem.nc: No such file or directory
+Replacing definition of axis z2
+Replacing definition of grid GG
+ LISTing to file tmp/test_dyn_mem.nc
+Replacing definition of axis x10
+Replacing definition of axis z4
+ LISTing to file tmp/test_dyn_mem.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
  **ERROR: request exceeds memory setting: Requested result is larger than the available memory
 stat/brief v[i=101:200,j=101:200,k=1,l=1:10 at ave], v[i=101:200,j=101:200,k=2,l=1:10 at ave], v[l=1:10 at ave]
  PERMANENT data cleared from memory
@@ -6419,13 +6596,38 @@ Replacing definition of axis time
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-Starting test: bn_inner
+Starting test: bn_dot_product
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_cache_management
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ls: tmp/test_auto_cache_20.nc: No such file or directory
+Replacing definition of axis x10
+ LISTing to file tmp/test_auto_cache_1.nc
+ LISTing to file tmp/test_auto_cache_2.nc
+ LISTing to file tmp/test_auto_cache_3.nc
+ LISTing to file tmp/test_auto_cache_4.nc
+ LISTing to file tmp/test_auto_cache_5.nc
+ LISTing to file tmp/test_auto_cache_6.nc
+ LISTing to file tmp/test_auto_cache_7.nc
+ LISTing to file tmp/test_auto_cache_8.nc
+ LISTing to file tmp/test_auto_cache_9.nc
+ LISTing to file tmp/test_auto_cache_10.nc
+ LISTing to file tmp/test_auto_cache_11.nc
+ LISTing to file tmp/test_auto_cache_12.nc
+ LISTing to file tmp/test_auto_cache_13.nc
+ LISTing to file tmp/test_auto_cache_14.nc
+ LISTing to file tmp/test_auto_cache_15.nc
+ LISTing to file tmp/test_auto_cache_16.nc
+ LISTing to file tmp/test_auto_cache_17.nc
+ LISTing to file tmp/test_auto_cache_18.nc
+ LISTing to file tmp/test_auto_cache_19.nc
+ LISTing to file tmp/test_auto_cache_20.nc
  LISTing to file test_auto_cache.out
  LISTing to file test_auto_cache.out
  LISTing to file test_auto_cache.out
@@ -6449,6 +6651,11 @@ Starting test: bn_cache_management
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_transp_choose
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -6521,6 +6728,21 @@ ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Re-defining viewport LL6
+Re-defining viewport UL6
+Re-defining viewport LM6
+Re-defining viewport UM6
+Re-defining viewport LR6
+Re-defining viewport UR6
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
 plot/i=1:10/j=1:20/nolabel i+j
@@ -6552,4 +6774,4 @@ vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
 Re-defining viewport LM6
 Re-defining viewport UM6
            *** NOTE: Cannot create new windows when batch mode set
-Ended at Tue Apr 11 16:55:55 PDT 2017
+Ended at Thu May 11 10:36:34 PDT 2017
diff --git a/bench/ansley_official.rhel5_32_log b/bench/ansley_official.rhel5_32_log
index 590af43..5e762d0 100644
--- a/bench/ansley_official.rhel5_32_log
+++ b/bench/ansley_official.rhel5_32_log
@@ -1,10 +1,10 @@
 Procedure run_all to run all FERRET benchmarks
 Running FERRET version /home/users/ansley/build/linux/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 120880848 Apr 11 16:25 /home/users/ansley/build/linux/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 120937210 May 11 10:23 /home/users/ansley/build/linux/FERRET/fer/ferret_c
 Using external functions from /home/users/ansley/build/linux/FERRET/external_functions/ext_func
 Running the tests of external functions y
 Benchmark run by ansley
-Note: with CANCEL MODE STUPID in bn_reset
+Note: fix to dot-product axis merging 
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -20,7 +20,7 @@ FER_LIBS=/home/users/tmap/ferret/linux/lib
 FER_PALETTE=. /home/users/tmap/ferret/linux/ppl
 PWD=/home/users/ansley/build/linux/FERRET/bench
 PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/linux/ext_func/pylibs
-Beginning at Tue Apr 11 16:46:42 PDT 2017
+Beginning at Thu May 11 10:26:09 PDT 2017
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
 ! - ordered (more or less) from least to most complex
@@ -776,12 +776,12 @@ SHOW MEMORY
     SET MEMORY/SIZE: 25.6 megawords
     Peak demand: 18 words
     Current cache: 15 words
-    Permamnent: 5 words
+    Permanent: 5 words
 SHOW MEMORY/FREE
     SET MEMORY/SIZE: 25.6 megawords
     Peak demand: 18 words
     Current cache: 15 words
-    Permamnent: 5 words
+    Permanent: 5 words
     Total table slots: 500
     Free table slots: 497
     Un-cached variables: 0
@@ -10457,18 +10457,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
+FERRET_VERSION = "7.11"
 FERRET_PLATFORM = "Linux 2.6.18-419.el5PAE 32-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "11-Apr-17"
-SESSION_TIME = "16:46"
-SESSION_PID = "10604"
-DELTA_CPU = "9.89449"
-CLOCK_SECS = "15.579"
-CURRENT_DATE = "11-Apr-17"
-CURRENT_TIME = "16:46:58"
+SESSION_DATE = "11-May-17"
+SESSION_TIME = "10:26"
+SESSION_PID = "17872"
+DELTA_CPU = "9.90649"
+CLOCK_SECS = "15.65"
+CURRENT_DATE = "11-May-17"
+CURRENT_TIME = "10:26:24"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
@@ -10488,18 +10488,18 @@ show symbol/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
+FERRET_VERSION = "7.11"
 FERRET_PLATFORM = "Linux 2.6.18-419.el5PAE 32-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "11-Apr-17"
-SESSION_TIME = "16:46"
-SESSION_PID = "10604"
-DELTA_CPU = "0.014998"
-CLOCK_SECS = "15.593"
-CURRENT_DATE = "11-Apr-17"
-CURRENT_TIME = "16:46:58"
+SESSION_DATE = "11-May-17"
+SESSION_TIME = "10:26"
+SESSION_PID = "17872"
+DELTA_CPU = "0.013998"
+CLOCK_SECS = "15.665"
+CURRENT_DATE = "11-May-17"
+CURRENT_TIME = "10:26:24"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
@@ -10511,9 +10511,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "11-Apr-17"
-SESSION_TIME = "16:46"
-SESSION_PID = "10604"
+SESSION_DATE = "11-May-17"
+SESSION_TIME = "10:26"
+SESSION_PID = "17872"
 SPAWN_STATUS = "1"
 S1 = "hello"
 S2 = ""hello""
@@ -10524,16 +10524,16 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "11-Apr-17"
-SESSION_TIME = "16:46"
-SESSION_PID = "10604"
+SESSION_DATE = "11-May-17"
+SESSION_TIME = "10:26"
+SESSION_PID = "17872"
 SPAWN_STATUS = "1"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "11-Apr-17"
-SESSION_TIME = "16:46"
-SESSION_PID = "10604"
+SESSION_DATE = "11-May-17"
+SESSION_TIME = "10:26"
+SESSION_PID = "17872"
 SPAWN_STATUS = "1"
 S1 = "hello"
 S3 = "hello and goodbye"
@@ -10568,9 +10568,9 @@ Q23456789012345678901234567XXXAAAAA = "6"
 ! show the upper left coordinate limits labels as symbols
 plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
 show symbol lab*
-LAB1 = "FERRET (beta/debug) Ver.7.1"
+LAB1 = "FERRET (beta/debug) Ver.7.11"
 LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "11-APR-2017 16:46:58"
+LAB3 = "11-MAY-2017 10:26:24"
 LABX = "X"
 LAB4 = "Y : 10"
 LABNUM_Y = "4"
@@ -10665,18 +10665,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
+FERRET_VERSION = "7.11"
 FERRET_PLATFORM = "Linux 2.6.18-419.el5PAE 32-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "11-Apr-17"
-SESSION_TIME = "16:46"
-SESSION_PID = "10604"
-DELTA_CPU = "0.028995"
-CLOCK_SECS = "15.623"
-CURRENT_DATE = "11-Apr-17"
-CURRENT_TIME = "16:46:58"
+SESSION_DATE = "11-May-17"
+SESSION_TIME = "10:26"
+SESSION_PID = "17872"
+DELTA_CPU = "0.029995"
+CLOCK_SECS = "15.695"
+CURRENT_DATE = "11-May-17"
+CURRENT_TIME = "10:26:24"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "201"
@@ -25345,7 +25345,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Tue Apr 11 16:47:14 PDT 2017
+Thu May 11 10:26:42 PDT 2017
  
 GO bn_reset
 cancel mode verify
@@ -48074,11 +48074,11 @@ ppl list labels
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/debug) Ver.7.1
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/debug) Ver.7.11
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
  LAB 2  8.000E+00  7.100E+00 0.060    0  SYSTEM  @ASNOAA/PMEL TMAP
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS11-APR-2017 16:48:07
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS11-MAY-2017 10:27:41
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
  LAB 4  0.000E+00  6.800E+00 0.120    0  SYSTEM  @ASLONGITUDE : 179E
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
@@ -49393,7 +49393,7 @@ GO bn_long_revision_num.jnl
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "7.1"
+FERRET_VERSION = "7.11"
  
 ! history attribute
 let a = 12
@@ -49411,7 +49411,7 @@ LAB1 = "X : 0.5 to 314.5"
  
 ! show commands without an argument, lists version number at the top
 sho command
- Commands in Program FERRET (beta/debug) version7.1:
+ Commands in Program FERRET (beta/debug) version7.11:
  SET
  SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
  SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
@@ -49521,7 +49521,7 @@ sho command
         /DEGMINSE/HALFSPAC
  SPAWN
  WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
-       /TRANPOSE/NOLABEL/ZSCALE/TITLE
+       /TRANPOSE/NOLABEL/ZSCALE/COLOR/TITLE
  QUERY/ALL/FILE/IGNORE
  IF
  ELSE
@@ -49551,7 +49551,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "11-Apr-17:16:46"
+WIN_TITLE = "11-May-17:10:26"
  
 set win/title="set the title"
 sho sym win_title
@@ -49569,7 +49569,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="11-Apr-17:16:46"
+ !-> set win/title="11-May-17:10:26"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -49578,16 +49578,16 @@ set win/title="($session_date):($session_time)"
 ! If so substitute another string.
  
 DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 11-Apr-17
+ !-> DEFINE SYMBOL the_date = 11-May-17
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 16:46
+ !-> DEFINE SYMBOL the_time = 10:26
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="11-Apr-17:16:46"
+ !-> SET WIN/TITLE="11-May-17:10:26"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "11-Apr-17:16:46"
+WIN_TITLE = "11-May-17:10:26"
  
 GO bn_reset bn_last_error.jnl
 cancel mode verify
@@ -54088,7 +54088,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -54137,7 +54137,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -55633,7 +55633,8 @@ DNCASE(STR)
 STRCAT(STR1,STR2)
 SUBSTRING(STR,OFFSET,LENGTH)
 STRFLOAT(STR)
-INNERPRODUCT(VAR1,VAR2,IDIM)
+DOT(VAR1,VAR2,IDIM)
+TRANSPOSE(VAR,DIM1,DIM2)
  
 Externally defined functions available to Ferret:
 AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
@@ -55828,12 +55829,12 @@ SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
 STR_NOBLANKS(STR)
 STR_REPLACE(INSTRING,S1,S2)
 EXPNDI_TO_ET(var data,time data,Rowsize (E direction),Result T)
-INNERPRODUCT_X(VAR1,VAR2)
-INNERPRODUCT_Y(VAR1,VAR2)
-INNERPRODUCT_Z(VAR1,VAR2)
-INNERPRODUCT_T(VAR1,VAR2)
-INNERPRODUCT_E(VAR1,VAR2)
-INNERPRODUCT_F(VAR1,VAR2)
+DOT_X(VAR1,VAR2)
+DOT_Y(VAR1,VAR2)
+DOT_Z(VAR1,VAR2)
+DOT_T(VAR1,VAR2)
+DOT_E(VAR1,VAR2)
+DOT_F(VAR1,VAR2)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -60158,10 +60159,10 @@ ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_clock_syms
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "88.9245"
-CLOCK_SECS = "128.14"
-CURRENT_DATE = "11-Apr-17"
-CURRENT_TIME = "16:48:51"
+DELTA_CPU = "89.6144"
+CLOCK_SECS = "142.243"
+CURRENT_DATE = "11-May-17"
+CURRENT_TIME = "10:28:31"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60170,8 +60171,8 @@ CURRENT_TIME = "16:48:51"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.05899"
-CLOCK_SECS = "128.308"
+DELTA_CPU = "0.064991"
+CLOCK_SECS = "142.426"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -60185,60 +60186,60 @@ repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=9
 !-> REPEAT: K=10
 let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.280958
+ !-> DEFINE VARIABLE ten_plots = 0.291956
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.001"
-CLOCK_SECS = "129.611"
+DELTA_CPU = "0"
+CLOCK_SECS = "143.723"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "129.612"
+CLOCK_SECS = "143.724"
 repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
 let sumcpu =`sumcpu + dt`)
  !-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
 !-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.028995
- !-> DEFINE VARIABLE sumcpu =0.028995
+ !-> DEFINE VARIABLE dt = 0.030995
+ !-> DEFINE VARIABLE sumcpu =0.030995
 !-> REPEAT: K=2
  !-> DEFINE VARIABLE dt = 0.031995
- !-> DEFINE VARIABLE sumcpu =0.06099
+ !-> DEFINE VARIABLE sumcpu =0.06299
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.029996
- !-> DEFINE VARIABLE sumcpu =0.090986
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.095985
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.033994
- !-> DEFINE VARIABLE sumcpu =0.12498
+ !-> DEFINE VARIABLE dt = 0.032994
+ !-> DEFINE VARIABLE sumcpu =0.128979
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.030996
- !-> DEFINE VARIABLE sumcpu =0.155976
+ !-> DEFINE VARIABLE dt = 0.032996
+ !-> DEFINE VARIABLE sumcpu =0.161975
 !-> REPEAT: K=6
  !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.188971
+ !-> DEFINE VARIABLE sumcpu =0.19497
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.028995
- !-> DEFINE VARIABLE sumcpu =0.217966
+ !-> DEFINE VARIABLE dt = 0.035995
+ !-> DEFINE VARIABLE sumcpu =0.230965
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.038995
- !-> DEFINE VARIABLE sumcpu =0.256961
+ !-> DEFINE VARIABLE dt = 0.034994
+ !-> DEFINE VARIABLE sumcpu =0.265959
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.030995
- !-> DEFINE VARIABLE sumcpu =0.287956
+ !-> DEFINE VARIABLE dt = 0.034995
+ !-> DEFINE VARIABLE sumcpu =0.300954
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.033994
- !-> DEFINE VARIABLE sumcpu =0.32195
+ !-> DEFINE VARIABLE dt = 0.031994
+ !-> DEFINE VARIABLE sumcpu =0.332948
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.32195
-0.32195
+ !-> MESSAGE/CONTINUE 0.332948
+0.332948
 sh sym CLOCK_SECS
-CLOCK_SECS = "131.798"
+CLOCK_SECS = "145.962"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "11-Apr-17"
-SESSION_TIME = "16:46"
-CURRENT_DATE = "11-Apr-17"
-CURRENT_TIME = "16:48:54"
+SESSION_DATE = "11-May-17"
+SESSION_TIME = "10:26"
+CURRENT_DATE = "11-May-17"
+CURRENT_TIME = "10:28:35"
  
  
 ! ******** V6.3 Additions below ***********
@@ -62944,11 +62945,11 @@ save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
 sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
 Bytes: 197528
 sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
-Bytes: 4315436
+Bytes: 4315437
 sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
-Bytes: 4314796
+Bytes: 4314797
 sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
-Bytes: 4309089
+Bytes: 4309090
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -62965,9 +62966,9 @@ save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
 sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
 Bytes: 60560
 sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32175
+Bytes: 32176
 sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32331
+Bytes: 32332
  
 cancel list/all
 set list/ncformat=classic
@@ -64151,9 +64152,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 45 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v7.1 (beta/debug)"                                                
- 3    /  3:" ! Linux 2.6.18-419.el5PAE 32-bit - 04/11/17"                               
- 4    /  4:" ! 11-Apr-17 16:46     "                                                    
+ 2    /  2:" ! FERRET v7.11 (beta/debug)"                                               
+ 3    /  3:" ! Linux 2.6.18-419.el5PAE 32-bit - 05/11/17"                               
+ 4    /  4:" ! 11-May-17 10:26     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -66704,40 +66705,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.040
-randu2_randn2       0.212
-randu2_randn2       0.483
-randu2_randn2       0.139
-randu2_randn2       0.794
+randu2_randn2       0.916
+randu2_randn2       0.259
+randu2_randn2       0.317
+randu2_randn2       0.711
+randu2_randn2       0.766
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.689
-randu2_randn2       0.913
-randu2_randn2       0.690
-randu2_randn2       0.860
-randu2_randn2       0.988
+randu2_randn2       0.564
+randu2_randn2       0.960
+randu2_randn2       0.788
+randu2_randn2       0.963
+randu2_randn2       0.186
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.809
-randu2_randn2       0.133
-randu2_randn2       0.522
-randu2_randn2       0.615
-randu2_randn2       0.138
-randu2_randn2       0.298
+randu2_randn2       0.240
+randu2_randn2       0.294
+randu2_randn2       0.463
+randu2_randn2       0.724
+randu2_randn2       0.994
+randu2_randn2       0.189
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.987
-randu2_randn2       0.557
-randu2_randn2       0.810
-randu2_randn2       0.130
-randu2_randn2       0.935
-randu2_randn2       0.239
+randu2_randn2       0.985
+randu2_randn2       0.206
+randu2_randn2       0.226
+randu2_randn2       0.839
+randu2_randn2       0.373
+randu2_randn2       0.900
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66762,40 +66763,40 @@ randu2_randn2       0.900
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.372
-randu2_randn2       1.269
-randu2_randn2      -0.672
-randu2_randn2       0.228
-randu2_randn2      -1.020
+randu2_randn2       0.556
+randu2_randn2       0.820
+randu2_randn2      -0.955
+randu2_randn2       0.631
+randu2_randn2       0.930
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -1.683
-randu2_randn2      -1.797
-randu2_randn2      -0.797
-randu2_randn2       3.543
-randu2_randn2      -1.074
+randu2_randn2       0.528
+randu2_randn2      -0.587
+randu2_randn2      -0.355
+randu2_randn2      -2.410
+randu2_randn2      -1.040
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -1.332
-randu2_randn2       0.392
-randu2_randn2       0.434
-randu2_randn2      -1.260
-randu2_randn2      -0.460
-randu2_randn2      -0.412
+randu2_randn2       0.707
+randu2_randn2      -0.611
+randu2_randn2       0.955
+randu2_randn2       0.005
+randu2_randn2      -0.077
+randu2_randn2       0.280
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.371
-randu2_randn2      -1.030
-randu2_randn2      -0.872
-randu2_randn2       1.215
-randu2_randn2       0.925
-randu2_randn2       0.018
+randu2_randn2       0.572
+randu2_randn2      -0.151
+randu2_randn2      -0.386
+randu2_randn2      -0.715
+randu2_randn2      -1.644
+randu2_randn2       1.301
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66820,14 +66821,14 @@ randu2_randn2      -0.124
  Column  1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
  Column  2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
  Column  3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2       1.948       1.948       1.076
-randu2_randn2       1.598       1.598       1.076
-randu2_randn2       1.076       1.076       0.325
-randu2_randn2       0.325       0.325       0.515
-randu2_randn2      -0.498      -0.498       0.515
-randu2_randn2      -0.884      -0.498       0.515
-randu2_randn2       0.195       0.195       0.515
-randu2_randn2       0.515       0.515       0.515
+randu2_randn2       1.424       1.424       1.202
+randu2_randn2       1.394       1.394       1.202
+randu2_randn2       1.202       1.202       0.230
+randu2_randn2       0.080       0.080       0.374
+randu2_randn2      -0.813      -0.813       0.374
+randu2_randn2      -0.919      -0.813       0.374
+randu2_randn2       0.230       0.230       0.374
+randu2_randn2       0.374       0.374       0.374
  
 GO bn_reset bn_axis_cf
 cancel mode verify
@@ -72663,7 +72664,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72716,7 +72717,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72758,7 +72759,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72800,7 +72801,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72833,7 +72834,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72867,7 +72868,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72930,7 +72931,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72978,7 +72979,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73035,7 +73036,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73073,7 +73074,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73111,7 +73112,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73149,7 +73150,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73183,7 +73184,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73421,7 +73422,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73455,7 +73456,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73499,7 +73500,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73540,7 +73541,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73566,7 +73567,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73592,7 +73593,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -74049,7 +74050,7 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74078,7 +74079,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74129,7 +74130,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74708,8 +74709,8 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Tue Apr 11 16:49:33 2017: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "Thu May 11 10:29:16 2017: ncks -h -A -h z1.nc append_to_this.nc\n",
+			"FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
@@ -74745,7 +74746,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74776,7 +74777,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74839,7 +74840,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74867,7 +74868,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76602,7 +76603,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76625,7 +76626,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76856,7 +76857,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76886,7 +76887,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76907,7 +76908,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76928,7 +76929,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76950,7 +76951,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -77383,7 +77384,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -77400,7 +77401,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -77417,7 +77418,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -77453,50 +77454,52 @@ GO bn_let_remote
 ! Tests of the F-TDS LET/REMOTE
 ! 6/2016 installed NVODS on new-bock server
 ! 9/2016 load smaller subsets of the data
-! 4/2017 Use the THREDDS server at http://ferret.pmel.noaa.gov/pmel/thredds
+! 4/2017 Update thredds server urls. To find the right URL, go to the dataset
+!        in the NVODS server, and hit the "Export to Desktop Application"
+!        button. The .jnl address is the correct F-TDS URL.
  
 ! See if the F-TDS is working and bail if not.
-let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
 load status
 if `status NE 0` then EXIT/SCRIPT
  !-> if 0 then EXIT/SCRIPT
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
-let/D=1/remote myvar = t0112mn1[k=1:5 at sum]
-let/D=1/remote ave_z = t0112mn1[z=0:20 at ave]
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+let/D=1/remote myvar = t00an1[k=1:5 at sum]
+let/D=1/remote ave_z = t00an1[z=0:20 at ave]
 sh var
  Created by DEFINE VARIABLE:
-     AVE_Z[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[Z=0:20 at AVE]
-     MYVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[K=1:5 at SUM]
+     AVE_Z[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[Z=0:20 at AVE]
+     MYVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[K=1:5 at SUM]
  >>> Definitions that replace any file variable of same name:
-     STATUS = TEST_OPENDAP("http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+     STATUS = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
 set view ul; shade/l=7/x=180:200/y=20:30 myvar
 set view ur; shade/l=3/x=180:200/y=20:30 ave_z
  
 list/l=7/x=300:310/y=15 myvar, ave_z
-             DATA SET: http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
              LONGITUDE: 60W to 50W
              LATITUDE: 15N (interpolated)
-             TIME: 14-JUL 12:00
- Column  1: MYVAR is T0112MN1[K=1:5 at SUM]
- Column  2: AVE_Z is T0112MN1[Z=0:20 at AVE]
+             TIME: 02-JUL-0003 05:27
+ Column  1: MYVAR is T00AN1[K=1:5 at SUM]
+ Column  2: AVE_Z is T00AN1[Z=0:20 at AVE]
              MYVAR   AVE_Z
-59.5W / 301:  138.8  27.89
-58.5W / 302:  139.2  27.91
-57.5W / 303:  139.4  27.95
-56.5W / 304:  140.4  28.14
-55.5W / 305:  137.4  27.62
-54.5W / 306:  135.3  27.32
-53.5W / 307:  134.0  27.07
-52.5W / 308:  136.4  27.34
-51.5W / 309:   ....   ....
-50.5W / 310:  135.1  27.19
- 
-let/D=1/remote ave_t = t0112mn1[L=1:12 at ave]
+59.5W / 301:  136.6  27.41
+58.5W / 302:  136.4  27.37
+57.5W / 303:  136.2  27.31
+56.5W / 304:  135.8  27.24
+55.5W / 305:  135.3  27.15
+54.5W / 306:  134.9  27.05
+53.5W / 307:  134.4  26.95
+52.5W / 308:  133.8  26.84
+51.5W / 309:  133.3  26.72
+50.5W / 310:  132.7  26.60
+ 
+let/D=1/remote ave_t = t00an1[L=1:12 at ave]
 set view ll; shade/z=0/x=180:200/y=20:30 ave_t
  
-let/D=1/remote/units="`t0112mn1,ret=units`"/title="Summer average Temperature" ave_summer = t0112mn1[t=15-jun:15-sep at ave]
- !-> DEFINE VARIABLE/D=1/remote/units="deg C"/title="Summer average Temperature" ave_summer = t0112mn1[t=15-jun:15-sep at ave]
+let/D=1/remote/units="`t00an1,ret=units`"/title="Summer average Temperature" ave_summer = t00an1[t=15-jun:15-sep at ave]
+ !-> DEFINE VARIABLE/D=1/remote/units="deg C"/title="Summer average Temperature" ave_summer = t00an1[t=15-jun:15-sep at ave]
 set view lr; shade/z=0/x=180:200/y=20:30 ave_summer
  
 can view
@@ -77504,17 +77507,17 @@ can data/all; can var/all
  
 ! open another dataset, define more remote variables
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
 let/D=2/remote sstsum = sst[L=1:5 at sum]
 let/D=2/remote airtsum = airt[L=1:5 at sum]
 sh dat
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
  name     title                             I         J         K         L
- T0112MN1 Temperature                      1:360     1:180     1:24      1:12
+ T00AN1   Temperature                      1:360     1:180     1:33      1:1
  
-    2> http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl  (default)
+    2> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:12
  AIRT     AIR TEMPERATURE                  1:180     1:90      ...       1:12
@@ -77531,7 +77534,7 @@ sh dat
 set view ul; plot/y=-10/x=50:150 sstsum
 set view ur; plot/y=-10/x=50:150 airtsum
 list/y=-10/x=50:59 sstsum,airtsum
-             DATA SET: http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
              LONGITUDE: 50E to 59E
              LATITUDE: 10S (interpolated)
  Column  1: SSTSUM is SST[L=1:5 at SUM]
@@ -77546,7 +77549,7 @@ list/y=-10/x=50:59 sstsum,airtsum
 let both = sstsum + airtsum
 set view lower; plot/y=-10/x=50:150 both
 list/y=-10/x=50:59 sstsum, airtsum, both
-             DATA SET: http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
              LONGITUDE: 50E to 59E
              LATITUDE: 10S (interpolated)
  Column  1: SSTSUM is SST[L=1:5 at SUM]
@@ -77562,7 +77565,7 @@ list/y=-10/x=50:59 sstsum, airtsum, both
 can dat/all; can var/all
  
 ! make several remote definitions. They can be used together in an expression.
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
 let/D=1/remote sstsum = sst[L=1:5 at sum]
 let/D=1/remote airtsum = airt[L=1:5 at sum]
 let/D=1/remote factor = 12
@@ -77570,7 +77573,7 @@ let/D=1/remote combo = factor*(airtsum - sstsum)
 list/y=-5/x=130w:110w combo
              VARIABLE : FACTOR*(AIRTSUM - SSTSUM)
              FILENAME : data_coads_climatology.jnl
-             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/
              SUBSET   : 10 points (LONGITUDE)
              LATITUDE : 5S
                  5S    
@@ -77589,10 +77592,10 @@ list/y=-5/x=130w:110w combo
  
 can dat/all; can var/all
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
  
 ! This is ok let/remote/D=
-let/D=1/remote myvar = t0112mn1[z=1:100 at ave]
+let/D=1/remote myvar = t00an1[z=1:100 at ave]
  
 ! Intentional errors:
  
@@ -77600,17 +77603,17 @@ let/D=1/remote myvar = t0112mn1[z=1:100 at ave]
 ! the remote server so the same datsets are not open there.
  
 set mode ignore
-let/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+let/D=1/remote rvar = t00an1[d=1,z=1:100 at ave]
  
  
 ! But, require LET/D= with /REMOTE
-let/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+let/remote rvar = t00an1[d=1,z=1:100 at ave]
  
 ! If expressions involve local variables not defined in the remote dset,
 ! then the variable can be computed but not as a remote-var.
  
 let a = 12
-let/D=1/remote avar = a*t0112mn1[L=@ave]
+let/D=1/remote avar = a*t00an1[L=@ave]
 list/x=300/y=15 avar
  
 SET MODE/LAST ignore
@@ -77619,29 +77622,29 @@ SET MODE/LAST ignore
 let/D=1/remote a = 12
 sho dat
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl  (default)
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl  (default)
  name     title                             I         J         K         L
- T0112MN1 Temperature                      1:360     1:180     1:24      1:12
+ T00AN1   Temperature                      1:360     1:180     1:33      1:1
  ------------------------------
- A[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = 12
- AVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = A*T0112MN1[L=@AVE]
- MYVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[Z=1:100 at AVE]
+ A[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = 12
+ AVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = A*T00AN1[L=@AVE]
+ MYVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[Z=1:100 at AVE]
  
 list/x=300/y=15/z=0:100 avar
-             VARIABLE : A*T0112MN1[L=@AVE]
-             FILENAME : data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
-             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/
+             VARIABLE : A*T00AN1[L=@AVE]
+             FILENAME : data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/
              SUBSET   : 7 points (DEPTH (m))
              LONGITUDE: 60W (interpolated)
              LATITUDE : 15N (interpolated)
-             TIME     : 01-JAN 12:00 to 30-DEC 06:00
- 0      / 1:  329.8
- 10     / 2:  329.4
- 20     / 3:  329.2
- 30     / 4:  328.7
- 50     / 5:  325.1
- 75     / 6:  315.3
- 100    / 7:  302.9
+             TIME     : 01-JUL 00:00 to 02-JUL 00:00
+ 0      / 1:  329.3
+ 10     / 2:  329.1
+ 20     / 3:  328.8
+ 30     / 4:  328.2
+ 50     / 5:  324.4
+ 75     / 6:  313.9
+ 100    / 7:  300.0
  
 can dat/all; can var/all
  
@@ -78673,7 +78676,7 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 }
  
 set mode/last upcase
@@ -78771,7 +78774,7 @@ variables:
 		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V7.11 (beta/debug) 11-May-17" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -78798,7 +78801,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V7.1 (beta/debug) 11-Apr-17 
+ FERRET V7.11 (beta/debug) 11-May-17 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -78833,7 +78836,7 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V7.1 (beta/debug) 11-Apr-17 
+ ..history = The history of the fileFERRET V7.11 (beta/debug) 11-May-17 
  ..Conventions = Conventions for variables named V2CF-1.6 
  
 GO bn_reset bn_center_key_labels
@@ -80734,8 +80737,8 @@ plot/ribbon/key var,color
 ! should be -82 to -80
 sh sym yaxis*
 YAXIS_REVERSED = "0"
-YAXIS_MIN = "-82.0000000"
-YAXIS_MAX = "-80.0000000"
+YAXIS_MIN = "-72.9000000"
+YAXIS_MAX = "-89.1000000"
  
 GO bn_reset
 cancel mode verify
@@ -87631,20 +87634,20 @@ GO err696_time_overlay
 def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=noleap tax_nlp
 def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=julian tax_jul
 sp date
-Tue Apr 11 16:50:08 PDT 2017
+Thu May 11 10:29:53 PDT 2017
 set view upper
 plot t[gt=tax_nlp]
 plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
 sp date
-Tue Apr 11 16:50:08 PDT 2017
+Thu May 11 10:29:53 PDT 2017
  
 sp date
-Tue Apr 11 16:50:08 PDT 2017
+Thu May 11 10:29:53 PDT 2017
 set view lower
 plot t[gt=tax_jul]
 plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
 sp date
-Tue Apr 11 16:50:08 PDT 2017
+Thu May 11 10:29:54 PDT 2017
  
 GO bn_reset
 cancel mode verify
@@ -87701,7 +87704,7 @@ variables:
 		var:long_name = "0*TT + X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -88603,7 +88606,7 @@ variables:
 		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -92870,8 +92873,6 @@ GO bn_aggregate_tef
 ! do not bother to echo the creation of files and the definitions of the
 ! many time aggregations
 CANCEL MODE VERIFY
-tmp/f04_e3_t3_1v.nc
-*** NOT RE-CREATING bn_aggregate_tef.jnl test files. They already exist.
  
 show data/members/br
      currently SET data sets:
@@ -93217,14 +93218,14 @@ show grid fcst[d=t_f01_e1]
     GRID GFA1
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
- YAX1      LATITUDE            11 r   10N                  20N                 full
+ YAX       LATITUDE            11 r   10N                  20N                 full
  ZAX1      Z (m)                1 r   250                  250                 full
  TRUEMONTH3 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
 show grid fcst[d=t_f01_e2]
     GRID GFA1
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
- YAX1      LATITUDE            11 r   10N                  20N                 full
+ YAX       LATITUDE            11 r   10N                  20N                 full
  ZAX1      Z (m)                1 r   250                  250                 full
  TRUEMONTH3 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
  
@@ -93428,7 +93429,7 @@ SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug)  3-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (XAX)                  DOUBLE    point_spacing   CHAR        4    T       even
@@ -93439,7 +93440,7 @@ SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
                                  orig_file_axname
                                                  CHAR        3    F       XAX
   
-(YAX1)                 DOUBLE    point_spacing   CHAR        4    T       even
+(YAX)                  DOUBLE    point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  units           CHAR        13   T       degrees_north
                                  standard_name   CHAR        8    F       latitude
@@ -93713,7 +93714,7 @@ SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
   
  FCST                  FLOAT     long_name       CHAR        13   T       some variable
                                  missing_value   FLOAT       1    T       -1.E+34
-                                 coordinates     CHAR        33   T       RUN TIME16 TF_TIMES ZAX1 YAX1 XAX
+                                 coordinates     CHAR        32   T       RUN TIME16 TF_TIMES ZAX1 YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
@@ -93728,7 +93729,7 @@ SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
   
  FCST_2                FLOAT     long_name       CHAR        16   T       another variable
                                  missing_value   FLOAT       1    T       -1.E+34
-                                 coordinates     CHAR        39   T       TF_CAL_F1 TIME16 TF_TIMES ZAX1 YAX1 XAX
+                                 coordinates     CHAR        38   T       TF_CAL_F1 TIME16 TF_TIMES ZAX1 YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
@@ -93926,7 +93927,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7.1 (beta/debug) 11-Apr-17 
+ ..history = FERRET V7.11 (beta/debug) 11-May-17 
  ..Conventions = CF-1.6 
  ..dt_internal = 15
 sh att elev
@@ -93947,7 +93948,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7.1 (beta/debug) 11-Apr-17 
+ ..history = FERRET V7.11 (beta/debug) 11-May-17 
  ..Conventions = CF-1.6 
 sh att elev
      attributes for dataset: ./a.nc
@@ -93971,7 +93972,7 @@ show grid
     GRID (G200)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX114)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX110)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  
@@ -94073,9 +94074,9 @@ GO bn_speedtest
 ! bn_speedtest.jnl
 ! issue large numbers of commands, timing with clock time
 can mode verify
-10K LET commands LET a = 0 takes  1.82  seconds
-Second 10K LET commands LET a = 0 takes  4.041  seconds
-5K LOAD with transform takes  6.664  seconds
+10K LET commands LET a = 0 takes  1.884999999999991  seconds
+Second 10K LET commands LET a = 0 takes  4.168  seconds
+5K LOAD with transform takes  6.682  seconds
  
 GO bn_reset bn_show_noupcase
 cancel mode verify
@@ -96094,7 +96095,7 @@ sho command/brief v
  
 ! All the commands, no subcommands, no qualifiers
 SHOW COMMAND/BRIEF
- Commands in Program FERRET (beta/debug) version7.1:
+ Commands in Program FERRET (beta/debug) version7.11:
  SET
  SHOW
  CANCEL
@@ -97069,20 +97070,9 @@ list/nohead strindex(..title, "file")
  
  
 ! Bug 2477 plot axes are not fully drawn, some /VS plots
-go bn_reset
-cancel mode verify
-ooooooooooooooooooooooooooooooooooooooooooo
-go err700_vs_plot_axes
-! err700_vs_plot_axes.jnl
-! See ticket 2477, in some cases the plot axes are not fully drawn
-! 11/2016 ACM
- 
- 
-USE err700_vs_data.nc
- 
-! only with PLOT/VS plots, only with SYMBOLS not PLOT/VS/LINE
-PLOT/VS/THICK/COLOR=red/SIZ=0.2 lon,lat
-FRAME/FILE=bn_axis_vs.gif
+! move this to bn_gif.jnl
+! go bn_reset
+! go err700_vs_plot_axes
  
 ! Bug 2483. Fixing axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
 go bn_reset
@@ -97805,7 +97795,7 @@ variables:
 		VAR:long_name = "X[GX=XLON]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 go bn_reset
@@ -97864,7 +97854,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -97911,7 +97901,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -97985,7 +97975,7 @@ SHOW GRID actual
     GRID (G181)
  name       axis              # pts   start                end                 subset
  XAX1      LONGITUDE            7mr   140W                 110W                full
- YAX2      LATITUDE             4 r   45N                  60N                 full
+ YAX1      LATITUDE             4 r   45N                  60N                 full
  ZAX3      Z (meter)            3 i   50                   1000                full
  TF_LAG_T  MODEL ELAPSED TIME (25 r   15.217               745.62              full
  normal    E
@@ -98016,7 +98006,7 @@ SHOW GRID diagview
     GRID (G181)
  name       axis              # pts   start                end                 subset
  XAX1      LONGITUDE            7mr   140W                 110W                full
- YAX2      LATITUDE             4 r   45N                  60N                 full
+ YAX1      LATITUDE             4 r   45N                  60N                 full
  ZAX3      Z (meter)            3 i   50                   1000                full
  TF_CAL_T  TIME                34 r   17-OCT-2010 02:48    17-JUL-2013 10:00   full
  normal    E
@@ -98046,7 +98036,7 @@ SHOW GRID leadview
     GRID (G201)
  name       axis              # pts   start                end                 subset
  XAX1      LONGITUDE            7mr   140W                 110W                full
- YAX2      LATITUDE             4 r   45N                  60N                 full
+ YAX1      LATITUDE             4 r   45N                  60N                 full
  ZAX3      Z (meter)            3 i   50                   1000                full
  TF_CAL_T  TIME                34 r   17-OCT-2010 02:48    17-JUL-2013 10:00   full
  normal    E
@@ -98751,14 +98741,14 @@ show grid fcst[d=t_f01_e1]
     GRID GEM1
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
- YAX1      LATITUDE            11 r   10N                  20N                 full
+ YAX       LATITUDE            11 r   10N                  20N                 full
  ZAX1      Z (m)                1 r   250                  250                 full
  TRUEMONTH3 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
 show grid fcst_3[d=t_f_u01_e2]
     GRID GEM1
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
- YAX1      LATITUDE            11 r   10N                  20N                 full
+ YAX       LATITUDE            11 r   10N                  20N                 full
  ZAX1      Z (m)                1 r   250                  250                 full
  TRUEMONTH3 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
  
@@ -98915,17 +98905,17 @@ SHOW DATA/brief/files
 16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_tu3.nc
  
    13> t_f_u01_e1     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u01_e1
- 
+          Member datasets:
+      13.1: t_f01_e1
+      13.2: t_f01_e1_3
    14> t_f_u01_e2     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u01_e2
- 
+          Member datasets:
+      14.1: t_f01_e2
+      14.2: t_f01_e2_3
    16> t_f_u02_e2     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u02_e2
- 
+          Member datasets:
+      16.1: t_f02_e2
+      16.2: t_f02_e2_3
    22> tuef  (default)  Forecast aggregation
           Member datasets:
       22.1: tue_f01
@@ -98978,7 +98968,7 @@ sh grid fcst
     GRID (G174)  Forecast Aggregation Grid
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
- YAX1      LATITUDE            11 r   10N                  20N                 full
+ YAX       LATITUDE            11 r   10N                  20N                 full
  ZAX1      Z (m)                1 r   250                  250                 full
  TF_LAG_T  MODEL ELAPSED TIME  36 r   15.214               1080.2              full
  ENSEMBLE  E (realization)      2 r   1                    2                   full
@@ -98987,7 +98977,7 @@ sh grid fcst_3
     GRID (G174)  Forecast Aggregation Grid
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
- YAX1      LATITUDE            11 r   10N                  20N                 full
+ YAX       LATITUDE            11 r   10N                  20N                 full
  ZAX1      Z (m)                1 r   250                  250                 full
  TF_LAG_T  MODEL ELAPSED TIME  36 r   15.214               1080.2              full
  ENSEMBLE  E (realization)      2 r   1                    2                   full
@@ -99076,7 +99066,7 @@ variables:
 		abc:history = "From abc.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -99137,24 +99127,24 @@ sav/file=a.nc/clobber var,longitude,latitude
 sp ncdump -h a.nc
 netcdf a {
 dimensions:
-	AX103 = 6 ;
+	AX104 = 6 ;
 variables:
-	double AX103(AX103) ;
-		AX103:point_spacing = "even" ;
-		AX103:axis = "X" ;
-	float var(AX103) ;
+	double AX104(AX104) ;
+		AX104:point_spacing = "even" ;
+		AX104:axis = "X" ;
+	float var(AX104) ;
 		var:missing_value = -1.e+34f ;
 		var:_FillValue = -1.e+34f ;
 		var:long_name = "var" ;
 		var:history = "From bn_delimited_read_1.dat" ;
-	float longitude(AX103) ;
+	float longitude(AX104) ;
 		longitude:missing_value = -1.e+34f ;
 		longitude:_FillValue = -1.e+34f ;
 		longitude:long_name = "longitude" ;
 		longitude:units = "degrees_east" ;
 		longitude:long_name_mod = "Longitude" ;
 		longitude:history = "From bn_delimited_read_1.dat" ;
-	float latitude(AX103) ;
+	float latitude(AX104) ;
 		latitude:missing_value = -1.e+34f ;
 		latitude:_FillValue = -1.e+34f ;
 		latitude:long_name = "latitude" ;
@@ -99163,7 +99153,7 @@ variables:
 		latitude:history = "From bn_delimited_read_1.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -99410,6 +99400,37 @@ set mode/last ignore
 cancel data/all
 cancel var/all
  
+! Union datasets and SHOW DATA/MEMBERS
+union tmp/uagg_1.nc,tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+show data/members
+     currently SET data sets:
+    5> ./bn_agg_member_syntax.jnl  (default)  Union aggregation
+ name     title                             I         J         K         L
+ SST      sst                              1:5       1:4       ...       1:10
+ TEMP     temp                             1:5       1:4       ...       1:10
+ U        U                                1:5       1:4       ...       1:10
+ V        V                                1:5       1:4       ...       1:10
+ 
+          Member datasets:
+      5.1: tmp/uagg_1.nc
+      5.2: tmp/uagg_2.nc
+      5.3: tmp/uagg_3.nc
+      5.4: tmp/uagg_4.nc
+show data 5.2
+     currently SET data sets:
+    2> tmp/uagg_2.nc
+ name     title                             I         J         K         L
+ TEMP     temp                             1:5       1:4       ...       1:10
+ 
+show data 5.3
+     currently SET data sets:
+    3> tmp/uagg_3.nc
+ name     title                             I         J         K         L
+ U        U                                1:5       1:4       ...       1:10
+ 
+ 
+cancel data/all
+ 
 ! Tests for Ensembles
 let files = SPAWN("ls -1 ens*.nc")
 ensemble my_ens = files
@@ -99497,6 +99518,7 @@ stat sst[d=5] - sst[d=5.3]   ! ensemble minus member #3
  Mean    value: 13.481 (unweighted average)
  Standard deviation: 30.317
  
+ 
 ! deliberate errors
 set mode ignore
  
@@ -99840,7 +99862,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -99909,7 +99931,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -99980,7 +100002,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        35   T       FERRET V7.11 (beta/debug) 11-May-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -100397,7 +100419,7 @@ variables:
 		VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -100428,88 +100450,9 @@ show grid vart
  TAX3      TIME                 7 i   09-NOV-2015 02:24    13-NOV-2015 02:24   full
  
  
-GO bn_reset
-cancel mode verify
-ooooooooooooooooooooooooooooooooooooooooooo
-GO err71_plotvs_mode_label
-! err71_plotVS_mode_label.jnl
-!  *acm*3/17/17 Ticket 2517:
-! MODE LONG_LABEL, MODE LATIT_LABEL need to apply
-! to PLOT/VS plots.
- 
-can mode logo
- 
-set mode long_lab
-set mode latit_lab
- 
-let/title="|Roll|"/units="degree" abscissa_roll = {0, 20}
-let/title="Wind Speed"/units="kn" ordinate_spd  = {0, 0}
- 
-! labeled lon/lat axes. Units of "degrees" is taken to be degrees
-! east or north depending on which plot axis it is drawn on.
- 
-set view ul
-plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
-set view ur
-plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
- 
-! These modes turn off lon/lat axis labeling
- 
-cancel mode long_lab
-cancel mode latit_lab
- 
-set view ll
-plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
-set view lr
-plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
- 
-! Explicit units units of degrees_east and degrees_north:
-! degrees_east draws longitude labeling on whichever plot axis
-! the associated variable is drawn, and likewise for degrees_north.
-! Setting or cancelling the label modes applies to the variable
-! units not the plot-axis direction.
- 
-cancel view
-set mode long_lab
-set mode latit_lab
- 
-let/title="East"/units="degrees_east" lon = {10,20,30}
-let/title="North"/units="degrees_north" lat = {-10,0,10}
- 
-! longitude axis on the horizontal, latitude axis on the vertical
- 
-set view ul; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit TRUE"
- 
-! latitude axis on the horizontal, longitude axis on the vertical
- 
-set view ur; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long vertical  latit horizontal"
- 
-! longitude axis on the horizontal, latitude axis on the vertical
-! but with latitude labeling turned off
- 
-set mode long_lab
-cancel mode latit_lab
-set view ll; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit FALSE"
- 
-! latitude axis on the horizontal, longitude axis on the vertical
-! but with longitude labeling turned off
- 
-cancel mode long_lab
-set mode latit_lab
-set view lr; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long FALSE  latit TRUE"
- 
-frame/file=lon_lat_label_controls.gif
- 
- 
-! Restore default settings
-set mode long_lab
-set mode latit_lab
- 
-set mode/last logo
+! move this to bn_gif.jnl
+! GO bn_reset
+! GO err71_plotvs_mode_label
  
 GO bn_reset
 cancel mode verify
@@ -100640,7 +100583,7 @@ list a[i=2]
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    A        C:  6 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
- attrib_val attr     M:237 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ attrib_val attr     M:234 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SST[D=coads_climatology].DIMNAMES
              FILENAME : coads_climatology.cdf
              X        : 2
@@ -100650,9 +100593,9 @@ list a[i=2]
 GO bn_reset
 cancel mode verify
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
- -DELETE A        M:218 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:237 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
- -DELETE attr     M:237 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE attr     M:234 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  canceling dset ./coads_climatology.cdf
 ooooooooooooooooooooooooooooooooooooooooooo
 GO err71_user_var_attrib
@@ -100682,6 +100625,10 @@ use write_int_att.nc
 cancel mode upcase
 save/file=a.nc/clobber mhchla
  
+! move this to bn_gif.jnl
+! GO bn_reset
+! GO err71_vs_constant
+ 
 GO bn_reset bn_compressed_gather
 cancel mode verify
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -101416,12 +101363,29 @@ spawn "mkdir -p tmp"     ! tmp directory to store files
  
 ! see if the test file already exists
 SPAWN "ls tmp/test_dyn_mem.nc"
-tmp/test_dyn_mem.nc
 IF ($SPAWN_STATUS) THEN
- !-> IF 1 THEN
-  say test files already exist.  not re-creating them
-test files already exist.  not re-creating them
+ !-> IF 0 THEN
 ELSE
+  define symbol saved_memory_size = ($FERRET_MEMORY)
+ !-> define symbol saved_memory_size = 2
+  set mem/size=50
+  define axis/x=1:1000:1 x1000
+  define axis/y=1:1000:1 y1000
+  define axis/z=1:2:1 z2
+  define axis/t=1:10:1 t10
+  define grid/x=x1000/y=y1000/z=z2/t=t10 gg
+  let v = x[g=gg]+y[g=gg]+z[g=gg]+t[g=gg]
+  save/clobber/file="tmp/test_dyn_mem.nc" v
+  define axis/t=1:1000:1 t1000
+  define axis/x=1:10:1   x10
+  define axis/y=1:100:1  y100
+  define axis/z=1:4:1 z4
+  let v1000 = x[gx=x10]+y[gy=y100]+z[gz=z4]+t[gt=t1000]
+  save/append/file="tmp/test_dyn_mem.nc" v1000
+  cancel variable/all
+  cancel mem/all
+  set memory/size=($saved_memory_size)
+ !-> set memory/size=2
 ENDIF
  
 ! ************************************
@@ -101431,8 +101395,8 @@ show data
      currently SET data sets:
     1> tmp/test_dyn_mem.nc  (default)
  name     title                             I         J         K         L
- V        X[G=GG]+Y[G=GG]+Z[G=GG]+T[G=GG]  1:1000    1:1000    1:2       1:10
- V1000    X[GX=X10]+Y[GY=Y100]+Z[GZ=Z4]+T  1:10      1:100     1:4       1:1000
+ v        X[G=GG]+Y[G=GG]+Z[G=GG]+T[G=GG]  1:1000    1:1000    1:2       1:10
+ v1000    X[GX=X10]+Y[GY=Y100]+Z[GZ=Z4]+T  1:10      1:100     1:4       1:1000
  
  
 ! excercise under the least strict memory management
@@ -102027,14 +101991,14 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
 >     Peak demand: 4.184 megawords
 >     Current cache: 4.524 megawords
 68c68
-<  V[D=test_dyn_mem]                 XYZ   mr:220 size:4000000
+<  V[D=test_dyn_mem]                 XYZ   mr:226 size:4000000
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:208 size:2000000
+>  V[D=test_dyn_mem]                 XYZ   mr:212 size:2000000
 72,73c72,77
 <  V[D=test_dyn_mem]                 XYZ   mr:243 size:2000000
 <          1/0.5                 1/0.5                 1/0.5                10/9.5
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:220 size:360000
+>  V[D=test_dyn_mem]                 XYZ   mr:226 size:360000
 >          1/0.5               911/910.5               1/0.5              ... /0.5
 >       1000/1001             1000/1000.5              2/2.5              ... /10.5
 >                                                               AVE
@@ -102091,7 +102055,7 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
 <  V[D=test_dyn_mem]                 XZT   mr:243 size:20000
 <          1/0.5              1000/999.5               1/0.5                 1/0.5
 ---
->  V[D=test_dyn_mem]                 XZT   mr:208 size:8000
+>  V[D=test_dyn_mem]                 XZT   mr:212 size:8000
 >          1/0.5              1000/999.5               1/0.5                 7/6.5
 164a174,177
 >  V[D=test_dyn_mem]                 XZT   mr:243 size:12000
@@ -102315,45 +102279,45 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >     Peak demand: 2.384 megawords
 >     Current cache: 5.712 megawords
 68c68
-<  V[D=test_dyn_mem]                 XYZ   mr:220 size:4000000
+<  V[D=test_dyn_mem]                 XYZ   mr:226 size:4000000
 ---
 >  V[D=test_dyn_mem]                 XYZ   mr:242 size:2000000
 72,73c72,77
 <  V[D=test_dyn_mem]                 XYZ   mr:243 size:2000000
 <          1/0.5                 1/0.5                 1/0.5                10/9.5
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:228 size:32000
+>  V[D=test_dyn_mem]                 XYZ   mr:230 size:32000
 >          1/0.5               993/992.5               1/0.5              ... /0.5
 >       1000/1001             1000/1000.5              2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:178 size:160000
+>  V[D=test_dyn_mem]                 XYZT  mr:184 size:160000
 >          1/0.5               993/992.5               1/0.5                 1/0.5
 75a80,155
->  V[D=test_dyn_mem]                 XYZ   mr:176 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:180 size:64000
 >          1/0.5               977/976.5               1/0.5              ... /0.5
 >       1000/1001              992/992.5               2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:192 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:196 size:320000
 >          1/0.5               977/976.5               1/0.5                 1/0.5
 >       1000/1001              992/992.5               2/2.5                10/10.5
 >  
->  V[D=test_dyn_mem]                 XYZ   mr:184 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:188 size:64000
 >          1/0.5               961/960.5               1/0.5              ... /0.5
 >       1000/1001              976/976.5               2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:208 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:212 size:320000
 >          1/0.5               961/960.5               1/0.5                 1/0.5
 >       1000/1001              976/976.5               2/2.5                10/10.5
 >  
->  V[D=test_dyn_mem]                 XYZ   mr:194 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:200 size:64000
 >          1/0.5               945/944.5               1/0.5              ... /0.5
 >       1000/1001              960/960.5               2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:220 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:226 size:320000
 >          1/0.5               945/944.5               1/0.5                 1/0.5
 >       1000/1001              960/960.5               2/2.5                10/10.5
 >  
->  V[D=test_dyn_mem]                 XYZ   mr:218 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:224 size:64000
 >          1/0.5               929/928.5               1/0.5              ... /0.5
 >       1000/1001              944/944.5               2/2.5              ... /10.5
 >                                                               AVE
@@ -102361,7 +102325,7 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >          1/0.5               929/928.5               1/0.5                 1/0.5
 >       1000/1001              944/944.5               2/2.5                10/10.5
 >  
->  V[D=test_dyn_mem]                 XYZ   mr:226 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:229 size:64000
 >          1/0.5               913/912.5               1/0.5              ... /0.5
 >       1000/1001              928/928.5               2/2.5              ... /10.5
 >                                                               AVE
@@ -102397,7 +102361,7 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >          1/0.5               849/848.5               1/0.5              ... /0.5
 >       1000/1001              864/864.5               2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:224 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:228 size:320000
 >          1/0.5               849/848.5               1/0.5                 1/0.5
 >       1000/1001              864/864.5               2/2.5                10/10.5
 >  
@@ -102873,16 +102837,396 @@ set v lr; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
  
 set mode/last logo
  
-GO bn_reset bn_inner
-cancel mode verify
-ooooooooooooooooooooooooooooooooooooooooooo
-Starting test: bn_inner
-GO bn_inner
-! bn_inner.jnl
-! 3/2017 *acm*  Inner product function for matrix multiply operation
+GO bn_reset bn_dot_product
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dot_product
+GO bn_dot_product
+sh func dot*
+DOT(VAR1,VAR2,IDIM)
+    Compute the inner product of two variables along given dimension
+    VAR1: Variable 1
+    VAR2: Variable 2
+    IDIM: Dimension (e.g.1,2,...)
+DOT_X(VAR1,VAR2)
+    Compute the inner product of two variables along X-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+DOT_Y(VAR1,VAR2)
+    Compute the inner product of two variables along Y-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+DOT_Z(VAR1,VAR2)
+    Compute the inner product of two variables along Z-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+DOT_T(VAR1,VAR2)
+    Compute the inner product of two variables along T-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+DOT_E(VAR1,VAR2)
+    Compute the inner product of two variables along E-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+DOT_F(VAR1,VAR2)
+    Compute the inner product of two variables along F-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+ 
+! A call to dot(var1, var2, dir) translates into call to
+! function dot_q(var1,var2) where q is the pax direction
+! corresponding to dir=1,2,...,6
+ 
+set list/pre=7
+ 
+define axis/x=1:5:1 xpax
+define axis/y=0.1:0.3:0.1 ypax
+define axis/z=0.01:0.04:0.01 zpax
+define axis/e=-3:-1:1 epax
+define axis/f=-0.4:-0.1:0.1 fpax
+ 
+let var1 = x[gx=xpax]
+let var2 = 1+0*x[gx=xpax]
+list var1, var2
+             X: 0.5 to 5.5
+ Column  1: VAR1 is X[GX=XPAX]
+ Column  2: VAR2 is 1+0*X[GX=XPAX]
+             VAR1     VAR2
+1   / 1:  1.000000  1.000000
+2   / 2:  2.000000  1.000000
+3   / 3:  3.000000  1.000000
+4   / 4:  4.000000  1.000000
+5   / 5:  5.000000  1.000000
+list  dot(var1, var2, 1)
+             VARIABLE : DOT(VAR1, VAR2, 1)
+          15.00000
+!can var/all
+ 
+let var1 = x[gx=xpax]
+let var2 = 1+0*x[gx=xpax]
+list  dot_x(var1, var2)
+             VARIABLE : DOT_X(VAR1, VAR2)
+          15.00000
+ 
+let var1 = y[gy=ypax]
+let var2 = 1+0*y[gy=ypax]
+list var1, var2
+             Y: 0.05 to 0.4
+ Column  1: VAR1 is Y[GY=YPAX]
+ Column  2: VAR2 is 1+0*Y[GY=YPAX]
+               VAR1     VAR2
+0.1  / 1:  0.1000000  1.000000
+0.2  / 2:  0.2000000  1.000000
+0.3  / 3:  0.3000000  1.000000
+list  dot(var1, var2, 2)
+             VARIABLE : DOT(VAR1, VAR2, 2)
+          0.6000000
+ 
+let var1 = z[gz=zpax]
+let var2 = 1+0*z[gz=zpax]
+list var1, var2
+             Z: 0.005 to 0.045
+ Column  1: VAR1 is Z[GZ=ZPAX]
+ Column  2: VAR2 is 1+0*Z[GZ=ZPAX]
+                 VAR1     VAR2
+0.01  / 1:  0.01000000  1.000000
+0.02  / 2:  0.02000000  1.000000
+0.03  / 3:  0.03000000  1.000000
+0.04  / 4:  0.04000000  1.000000
+list  dot(var1, var2, 3)
+             VARIABLE : DOT(VAR1, VAR2, 3)
+          0.10000000
+ 
+let var1 = L[gt=month_reg]
+let var2 = 1+0*L[gt=month_reg]
+list var1, var2
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+ Column  1: VAR1 is L[GT=MONTH_REG]
+ Column  2: VAR2 is 1+0*L[GT=MONTH_REG]
+                      VAR1     VAR2
+16-JAN      /  1:   1.00000  1.000000
+15-FEB      /  2:   2.00000  1.000000
+17-MAR      /  3:   3.00000  1.000000
+16-APR      /  4:   4.00000  1.000000
+16-MAY      /  5:   5.00000  1.000000
+16-JUN      /  6:   6.00000  1.000000
+16-JUL      /  7:   7.00000  1.000000
+16-AUG      /  8:   8.00000  1.000000
+15-SEP      /  9:   9.00000  1.000000
+16-OCT      / 10:  10.00000  1.000000
+15-NOV      / 11:  11.00000  1.000000
+16-DEC      / 12:  12.00000  1.000000
+list  dot(var1, var2, 4)
+             VARIABLE : DOT(VAR1, VAR2, 4)
+          78.00000
+ 
+let var1 = _e[ge=epax]
+let var2 = 1+0*_e[ge=epax]
+list var1, var2
+             E: -3.5 to -0.5
+ Column  1: VAR1 is _E[GE=EPAX]
+ Column  2: VAR2 is 1+0*_E[GE=EPAX]
+              VAR1     VAR2
+-3   / 1: -3.000000  1.000000
+-2   / 2: -2.000000  1.000000
+-1   / 3: -1.000000  1.000000
+list  dot(var1, var2, 5)
+             VARIABLE : DOT(VAR1, VAR2, 5)
+         -6.000000
+ 
+let var1 = _f[gf=fpax]
+let var2 = 1+0*_f[gf=fpax]
+list var1, var2
+             F: -0.45 to -0.05
+ Column  1: VAR1 is _F[GF=FPAX]
+ Column  2: VAR2 is 1+0*_F[GF=FPAX]
+                VAR1     VAR2
+-0.4  / 1: -0.4000000  1.000000
+-0.3  / 2: -0.3000000  1.000000
+-0.2  / 3: -0.2000000  1.000000
+-0.1  / 4: -0.1000000  1.000000
+list  dot(var1, var2, 6)
+             VARIABLE : DOT(VAR1, VAR2, 6)
+         -1.000000
+ 
+let axy = x[gx=xpax] + y[gy=ypax]
+let bxz = 0*x[gx=xpax]+  10*Z[GZ=Zpax]
+list axy, bxz
+             X: 0.5 to 5.5
+             Y: 0.05 to 0.4
+             Z: 0.005 to 0.045
+ Column  1: AXY is X[GX=XPAX] + Y[GY=YPAX]
+ Column  2: BXZ is 0*X[GX=XPAX]+  10*Z[GZ=ZPAX]
+              AXY      BXZ
+ ---- K:1 Z:   0.01
+ ---- J:1 Y:   0.1
+1   / 1:  1.100000  0.1000000
+2   / 2:  2.100000  0.1000000
+3   / 3:  3.100000  0.1000000
+4   / 4:  4.100000  0.1000000
+5   / 5:  5.100000  0.1000000
+ ---- J:2 Y:   0.2
+1   / 1:  1.200000  0.1000000
+2   / 2:  2.200000  0.1000000
+3   / 3:  3.200000  0.1000000
+4   / 4:  4.200000  0.1000000
+5   / 5:  5.200000  0.1000000
+ ---- J:3 Y:   0.3
+1   / 1:  1.300000  0.1000000
+2   / 2:  2.300000  0.1000000
+3   / 3:  3.300000  0.1000000
+4   / 4:  4.300000  0.1000000
+5   / 5:  5.300000  0.1000000
+ ---- K:2 Z:   0.02
+ ---- J:1 Y:   0.1
+1   / 1:  1.100000  0.2000000
+2   / 2:  2.100000  0.2000000
+3   / 3:  3.100000  0.2000000
+4   / 4:  4.100000  0.2000000
+5   / 5:  5.100000  0.2000000
+ ---- J:2 Y:   0.2
+1   / 1:  1.200000  0.2000000
+2   / 2:  2.200000  0.2000000
+3   / 3:  3.200000  0.2000000
+4   / 4:  4.200000  0.2000000
+5   / 5:  5.200000  0.2000000
+ ---- J:3 Y:   0.3
+1   / 1:  1.300000  0.2000000
+2   / 2:  2.300000  0.2000000
+3   / 3:  3.300000  0.2000000
+4   / 4:  4.300000  0.2000000
+5   / 5:  5.300000  0.2000000
+ ---- K:3 Z:   0.03
+ ---- J:1 Y:   0.1
+1   / 1:  1.100000  0.3000000
+2   / 2:  2.100000  0.3000000
+3   / 3:  3.100000  0.3000000
+4   / 4:  4.100000  0.3000000
+5   / 5:  5.100000  0.3000000
+ ---- J:2 Y:   0.2
+1   / 1:  1.200000  0.3000000
+2   / 2:  2.200000  0.3000000
+3   / 3:  3.200000  0.3000000
+4   / 4:  4.200000  0.3000000
+5   / 5:  5.200000  0.3000000
+ ---- J:3 Y:   0.3
+1   / 1:  1.300000  0.3000000
+2   / 2:  2.300000  0.3000000
+3   / 3:  3.300000  0.3000000
+4   / 4:  4.300000  0.3000000
+5   / 5:  5.300000  0.3000000
+ ---- K:4 Z:   0.04
+ ---- J:1 Y:   0.1
+1   / 1:  1.100000  0.4000000
+2   / 2:  2.100000  0.4000000
+3   / 3:  3.100000  0.4000000
+4   / 4:  4.100000  0.4000000
+5   / 5:  5.100000  0.4000000
+ ---- J:2 Y:   0.2
+1   / 1:  1.200000  0.4000000
+2   / 2:  2.200000  0.4000000
+3   / 3:  3.200000  0.4000000
+4   / 4:  4.200000  0.4000000
+5   / 5:  5.200000  0.4000000
+ ---- J:3 Y:   0.3
+1   / 1:  1.300000  0.4000000
+2   / 2:  2.300000  0.4000000
+3   / 3:  3.300000  0.4000000
+4   / 4:  4.300000  0.4000000
+5   / 5:  5.300000  0.4000000
+list dot(axy, bxz, 1)
+             VARIABLE : DOT(AXY, BXZ, 1)
+             SUBSET   : 3 by 4 points (Y-Z)
+                0.1       0.2       0.3    
+                 1         2         3
+ 0.01  / 1:  1.550000  1.600000  1.650000
+ 0.02  / 2:  3.100000  3.200000  3.300000
+ 0.03  / 3:  4.650000  4.800000  4.950000
+ 0.04  / 4:  6.200000  6.400000  6.600000
+ 
+let byz = y[gy=ypax]+  10*Z[GZ=Zpax]
+list dot(axy, byz, 2)
+             VARIABLE : DOT(AXY, BYZ, 2)
+             SUBSET   : 5 by 4 points (X-Z)
+                1         2         3         4         5      
+                 1         2         3         4         5
+ 0.01  / 1:  1.100000  2.000000  2.900000  3.800000  4.700000
+ 0.02  / 2:  1.460000  2.660000  3.860000  5.060000  6.260000
+ 0.03  / 3:  1.820000  3.320000  4.820000  6.320000  7.820000
+ 0.04  / 4:  2.180000  3.980000  5.780000  7.580000  9.380000
+ 
+let lvar = L[gt=month_reg] - 1
+let axyt = axy + lvar
+let multi_dot = dot(axyt, byz, 2)
+save/file=a.nc/clobber multi_dot
+ 
+can var multi_dot
+use a.nc
+!  This should be the same as dot(axy, byz, 2)
+list/l=1 multi_dot
+             VARIABLE : DOT(AXYT, BYZ, 2)
+             FILENAME : a.nc
+             SUBSET   : 5 by 4 points (X-Z)
+             TIME     : 16-JAN 06:00
+                1         2         3         4         5      
+                 1         2         3         4         5
+ 0.01  / 1:  1.100000  2.000000  2.900000  3.800000  4.700000
+yes? q
+ 0.02  / 2:  1.460000  2.660000  3.860000  5.060000  6.260000
+ 0.03  / 3:  1.820000  3.320000  4.820000  6.320000  7.820000
+ 0.04  / 4:  2.180000  3.980000  5.780000  7.580000  9.380000
+ 
+!  z and t
+ 
+ 
+let axz = x[gx=xpax] + z[gz=zpax]
+let bzt = 0*z[gz=zpax]+  10*L[gt=month_reg]
+list dot(axz, bzt, 3)
+             VARIABLE : DOT(AXZ, BZT, 3)
+             SUBSET   : 5 by 12 points (X-TIME)
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 16-JAN      /  1:    41.000    81.000   121.000   161.000   201.000
+ 15-FEB      /  2:    82.000   162.000   242.000   322.000   402.000
+ 17-MAR      /  3:   123.000   243.000   363.000   483.000   603.000
+ 16-APR      /  4:   164.000   324.000   484.000   644.000   804.000
+ 16-MAY      /  5:   205.000   405.000   605.000   805.000  1005.000
+ 16-JUN      /  6:   246.000   486.000   726.000   966.000  1206.000
+ 16-JUL      /  7:   287.000   567.000   847.000  1127.000  1407.000
+ 16-AUG      /  8:   328.000   648.000   968.000  1288.000  1608.000
+ 15-SEP      /  9:   369.000   729.000  1089.000  1449.000  1809.000
+ 16-OCT      / 10:   410.000   810.000  1210.000  1610.000  2010.000
+ 15-NOV      / 11:   451.000   891.000  1331.000  1771.000  2211.000
+ 16-DEC      / 12:   492.000   972.000  1452.000  1932.000  2412.000
+ 
+let ayt = y[gy=ypax]+ 10*L[gt=month_reg]
+list dot(ayt, bzt, 4)
+             VARIABLE : DOT(AYT, BZT, 4)
+             SUBSET   : 3 by 4 points (Y-Z)
+                0.1       0.2       0.3    
+                 1         2         3
+ 0.01  / 1:  65078.00  65156.00  65234.00
+ 0.02  / 2:  65078.00  65156.00  65234.00
+ 0.03  / 3:  65078.00  65156.00  65234.00
+ 0.04  / 4:  65078.00  65156.00  65234.00
+ 
+ 
+let xvar = x[gx=xpax] - 1
+let axyt = ayt + xvar
+let multi_dot = dot(axyt, bzt, 4)
+save/file=a.nc/clobber multi_dot
+ 
+can var multi_dot
+use a.nc
+!  This should be the same as dot(ayt, bzt, 4)
+list/i=1 multi_dot
+             VARIABLE : DOT(AXYT, BYZ, 2)
+             FILENAME : a.nc
+             SUBSET   : 4 by 12 points (Z-TIME)
+             X        : 1
+                      0.01      0.02      0.03      0.04    
+                        1         2         3         4
+ 16-JAN      /  1:   1.10000   1.46000   1.82000   2.18000
+ 15-FEB      /  2:   2.00000   2.66000   3.32000   3.98000
+ 17-MAR      /  3:   2.90000   3.86000   4.82000   5.78000
+ 16-APR      /  4:   3.80000   5.06000   6.32000   7.58000
+ 16-MAY      /  5:   4.70000   6.26000   7.82000   9.38000
+ 16-JUN      /  6:   5.60000   7.46000   9.32000  11.18000
+ 16-JUL      /  7:   6.50000   8.66000  10.82000  12.98000
+ 16-AUG      /  8:   7.40000   9.86000  12.32000  14.78000
+ 15-SEP      /  9:   8.30000  11.06000  13.82000  16.58000
+ 16-OCT      / 10:   9.20000  12.26000  15.32000  18.38000
+ 15-NOV      / 11:  10.10000  13.46000  16.82000  20.18000
+ 16-DEC      / 12:  11.00000  14.66000  18.32000  21.98000
+ 
+can dat/all
+ 
+!  e and f
+ 
+let ayf = _f[gf=fpax] + y[gy=ypax]
+let bfe = 0*_f[gf=fpax]+  10*_e[ge=epax]
+list dot(ayf, bfe, 6)
+             VARIABLE : DOT(AYF, BFE, 6)
+             SUBSET   : 3 by 3 points (Y-E)
+               0.1       0.2       0.3    
+                1         2         3
+ -3   / 1:  18.00000   6.00000  -6.00000
+ -2   / 2:  12.00000   4.00000  -4.00000
+ -1   / 3:   6.00000   2.00000  -2.00000
+ 
+let aze = z[gz=zpax]+ 10*_e[ge=epax]
+list dot(aze, bfe, 5)
+             VARIABLE : DOT(AZE, BFE, 5)
+             SUBSET   : 4 by 4 points (Z-F)
+               0.01      0.02      0.03      0.04    
+                 1         2         3         4
+ -0.4  / 1:  1399.400  1398.800  1398.200  1397.600
+ -0.3  / 2:  1399.400  1398.800  1398.200  1397.600
+ -0.2  / 3:  1399.400  1398.800  1398.200  1397.600
+ -0.1  / 4:  1399.400  1398.800  1398.200  1397.600
+ 
+let xvar = x[gx=xpax] - 1
+let azex = aze + xvar
+let multi_dot = dot(azex, bfe, 5)
+save/file=a.nc/clobber multi_dot
  
-exit/script  !4/10/17 ACM this fails on running twice in a row. Exit until fixes are checked in.
+can var multi_dot
+use a.nc
+!  This should be the same as dot(azex, bfe, 5)
+list/i=1 multi_dot
+             VARIABLE : DOT(AZEX, BFE, 5)
+             FILENAME : a.nc
+             SUBSET   : 4 by 4 points (Z-F)
+             X        : 1
+               0.01      0.02      0.03      0.04    
+                 1         2         3         4
+ -0.4  / 1:  1399.400  1398.800  1398.200  1397.600
+ -0.3  / 2:  1399.400  1398.800  1398.200  1397.600
+ -0.2  / 3:  1399.400  1398.800  1398.200  1397.600
+ -0.1  / 4:  1399.400  1398.800  1398.200  1397.600
  
+cancel list/precision
+
 GO bn_reset bn_cache_management
 cancel mode verify
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -102928,12 +103272,12 @@ define axis/x=1:1000000:1 xmillion
 SPAWN "mkdir -p tmp"     ! tmp directory to store files
 SPAWN ls tmp/test_auto_cache_($nsets).nc
  !-> SPAWN ls tmp/test_auto_cache_20.nc
-tmp/test_auto_cache_20.nc
 IF ($SPAWN_STATUS) THEN
- !-> IF 1 THEN
- say test files already exist.  not re-creating them
-test files already exist.  not re-creating them
+ !-> IF 0 THEN
 ELSE
+ say creating test files
+creating test files
+ cancel mode verify
 ENDIF
  
 ! open the many input datasets
@@ -103322,6 +103666,121 @@ spawn cat test_auto_cache.out
 SET MEMORY/SIZE=($saved_memory_size)
  !-> SET MEMORY/SIZE=3
  
+GO bn_reset bn_transp_choose
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_transp_choose
+GO bn_transp_choose
+! bn_transp_choose.jnl
+!  Test the TRANSPOSE function which chooses which of the
+! transpose_ functions to run based on arguments
+ 
+can mem
+sh func transpose
+TRANSPOSE(VAR,DIM1,DIM2)
+    Compute the transpose along two given dimensions
+    VAR: Variable to transpose
+    DIM1: Dimension 1 for transpose (1,2,...)
+    DIM2: Dimension 2 for transpose (1,2,...)
+ 
+use gt4d011
+ 
+list/K=1/l=1 u[i=91:100,j=35:45]
+             VARIABLE : ZONAL VELOCITY (cm/sec)
+             FILENAME : gt4d011.cdf
+             SUBSET   : 10 by 11 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 5
+             TIME     : 17-AUG-1982 12:00
+              139W   138W   137W   136W   135W   134W   133W   132W   131W   130W   
+               91     92     93     94     95     96     97     98     99    100
+ 0     / 45:  -8.20 -19.89 -28.29 -25.75 -16.70 -11.70 -11.69 -13.85 -17.12 -21.07
+ 0.33S / 44:   1.59  -6.13 -13.69 -15.25 -11.03  -7.87  -7.10  -7.63  -9.21 -12.26
+ 0.67S / 43:   5.32   1.48  -3.07  -5.89  -5.82  -5.23  -4.74  -4.33  -4.43  -6.13
+ 1S    / 42:   4.21   2.98   1.52  -0.92  -2.98  -3.76  -3.56  -2.80  -2.14  -2.69
+ 1.33S / 41:   0.84   0.81   1.58   0.30  -2.14  -2.93  -2.57  -1.80  -1.01  -0.84
+ 1.67S / 40:  -2.97  -2.36  -0.43  -0.56  -2.17  -2.25  -1.77  -1.32  -0.77  -0.35
+ 2S    / 39:  -5.92  -4.46  -2.65  -1.48  -1.97  -1.38  -1.01  -1.15  -1.17  -1.00
+ 2.33S / 38:  -7.43  -5.01  -2.65  -0.75  -0.32   0.16   0.24  -0.26  -0.54  -0.55
+ 2.67S / 37:  -7.90  -5.72  -2.76  -0.71   0.17   0.87   0.49  -0.46  -1.02  -1.12
+ 3S    / 36:  -7.76  -5.38  -2.21  -0.01   0.83   1.06   0.35  -1.04  -2.12  -2.57
+ 3.33S / 35:  -6.68  -4.47  -2.20  -0.62  -0.06  -0.21  -1.41  -2.79  -3.67  -4.03
+let var = transpose (u[i=91:100,j=35:41], 1, 2)
+list/K=1/l=1 var
+             VARIABLE : TRANSPOSE (U[I=91:100,J=35:41], 1, 2)
+             FILENAME : gt4d011.cdf
+             SUBSET   : 7 by 10 points (X-Y)
+             DEPTH (m): 5
+             TIME     : 17-AUG-1982 12:00
+               1      2      3      4      5      6      7    
+               1      2      3      4      5      6      7
+ 1    /  1: -6.680 -7.762 -7.904 -7.426 -5.923 -2.970  0.842
+ 2    /  2: -4.470 -5.381 -5.718 -5.006 -4.457 -2.359  0.813
+ 3    /  3: -2.198 -2.209 -2.764 -2.647 -2.652 -0.425  1.580
+ 4    /  4: -0.620 -0.005 -0.710 -0.755 -1.478 -0.555  0.299
+ 5    /  5: -0.058  0.828  0.170 -0.324 -1.974 -2.169 -2.136
+ 6    /  6: -0.214  1.056  0.875  0.164 -1.383 -2.248 -2.932
+ 7    /  7: -1.413  0.347  0.486  0.235 -1.009 -1.767 -2.566
+ 8    /  8: -2.788 -1.040 -0.455 -0.259 -1.149 -1.316 -1.802
+ 9    /  9: -3.674 -2.118 -1.018 -0.536 -1.167 -0.772 -1.006
+ 10   / 10: -4.028 -2.566 -1.120 -0.550 -1.001 -0.346 -0.835
+ 
+! same as transpose_xy function
+list/k=1/l=1 transpose_xy(u[i=91:100,j=35:41])
+             VARIABLE : TRANSPOSE_XY(U[I=91:100,J=35:41])
+             FILENAME : gt4d011.cdf
+             SUBSET   : 7 by 10 points (X-Y)
+             DEPTH (m): 5
+             TIME     : 17-AUG-1982 12:00
+               1      2      3      4      5      6      7    
+               1      2      3      4      5      6      7
+ 1    /  1: -6.680 -7.762 -7.904 -7.426 -5.923 -2.970  0.842
+ 2    /  2: -4.470 -5.381 -5.718 -5.006 -4.457 -2.359  0.813
+ 3    /  3: -2.198 -2.209 -2.764 -2.647 -2.652 -0.425  1.580
+ 4    /  4: -0.620 -0.005 -0.710 -0.755 -1.478 -0.555  0.299
+ 5    /  5: -0.058  0.828  0.170 -0.324 -1.974 -2.169 -2.136
+ 6    /  6: -0.214  1.056  0.875  0.164 -1.383 -2.248 -2.932
+ 7    /  7: -1.413  0.347  0.486  0.235 -1.009 -1.767 -2.566
+ 8    /  8: -2.788 -1.040 -0.455 -0.259 -1.149 -1.316 -1.802
+ 9    /  9: -3.674 -2.118 -1.018 -0.536 -1.167 -0.772 -1.006
+ 10   / 10: -4.028 -2.566 -1.120 -0.550 -1.001 -0.346 -0.835
+ 
+! Combine transpose with other operations
+let vari = u - v
+list/l=1 vari[i=91:100,j=35:41,k=1:5 at ave]
+             VARIABLE : U - V
+             FILENAME : gt4d011.cdf
+             SUBSET   : 10 by 7 points (LONGITUDE-LATITUDE)
+             DEPTH (m): 0 to 50 (averaged)
+             TIME     : 17-AUG-1982 12:00
+              139W   138W   137W   136W   135W   134W   133W   132W   131W   130W   
+               91     92     93     94     95     96     97     98     99    100
+ 1.33S / 41:  31.96  33.88  35.22  32.52  26.48  23.46  23.71  26.69  30.92  34.16
+ 1.67S / 40:  25.82  27.64  29.79  29.00  24.90  23.10  23.50  25.89  29.37  32.46
+ 2S    / 39:  20.82  22.59  24.84  25.83  23.44  22.68  23.09  24.69  27.27  29.79
+ 2.33S / 38:  17.62  19.51  22.20  24.22  22.98  22.48  22.74  23.81  25.76  27.66
+ 2.67S / 37:  15.96  17.53  20.70  22.98  22.23  22.31  22.43  23.10  24.59  25.95
+ 3S    / 36:  14.43  16.40  19.31  21.57  20.87  20.95  20.89  21.14  22.19  23.48
+ 3.33S / 35:  13.00  14.83  17.21  19.11  18.28  18.32  18.33  18.69  19.60  20.46
+let var = transpose (vari[i=91:100,j=35:41,k=1:5 at ave], 1, 2)
+list/l=1 var
+             VARIABLE : TRANSPOSE (VARI[I=91:100,J=35:41,K=1:5 at AVE], 1, 2)
+             FILENAME : gt4d011.cdf
+             SUBSET   : 7 by 10 points (X-Y)
+             TIME     : 17-AUG-1982 12:00
+               1      2      3      4      5      6      7    
+               1      2      3      4      5      6      7
+ 1    /  1:  13.00  14.43  15.96  17.62  20.82  25.82  31.96
+ 2    /  2:  14.83  16.40  17.53  19.51  22.59  27.64  33.88
+ 3    /  3:  17.21  19.31  20.70  22.20  24.84  29.79  35.22
+ 4    /  4:  19.11  21.57  22.98  24.22  25.83  29.00  32.52
+ 5    /  5:  18.28  20.87  22.23  22.98  23.44  24.90  26.48
+ 6    /  6:  18.32  20.95  22.31  22.48  22.68  23.10  23.46
+ 7    /  7:  18.33  20.89  22.43  22.74  23.09  23.50  23.71
+ 8    /  8:  18.69  21.14  23.10  23.81  24.69  25.89  26.69
+ 9    /  9:  19.60  22.19  24.59  25.76  27.27  29.37  30.92
+ 10   / 10:  20.46  23.48  25.95  27.66  29.79  32.46  34.16
+ 
+ 
 !  *********** Always do a bn_reset  ***********
 !  *********** make sure things clean up well **
 GO bn_reset
@@ -103336,9 +103795,9 @@ yes? ! run bn_all_ef tests
 yes? 
 yes? GO bn_all_ef
  	NOAA/PMEL TMAP
- 	FERRET v7.1 (beta/debug)
- 	Linux 2.6.18-419.el5PAE 32-bit - 04/11/17
- 	11-Apr-17 16:55     
+ 	FERRET v7.11 (beta/debug)
+ 	Linux 2.6.18-419.el5PAE 32-bit - 05/11/17
+ 	11-May-17 10:36     
 
 SET MODE VERIFY
 ! bn_all_ef.jnl
@@ -104156,7 +104615,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104181,7 +104640,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104205,7 +104664,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104244,7 +104703,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104279,7 +104738,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104320,7 +104779,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104377,7 +104836,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104434,7 +104893,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104489,7 +104948,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104537,7 +104996,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104631,7 +105090,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104701,7 +105160,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104752,7 +105211,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104827,7 +105286,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104854,7 +105313,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -104878,7 +105337,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title, longer than the previous limit of 80 characters.  Previously various buffers were set to 80, and storage in ds_title was also too short." ;
 data:
@@ -104905,11 +105364,11 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -104940,7 +105399,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105012,7 +105471,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105056,7 +105515,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105098,7 +105557,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105206,7 +105665,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -105247,7 +105706,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -105270,7 +105729,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105296,7 +105755,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105316,7 +105775,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105337,7 +105796,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105380,7 +105839,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -105420,7 +105879,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -105458,7 +105917,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -105487,7 +105946,7 @@ variables:
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105520,7 +105979,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105546,7 +106005,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105592,7 +106051,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -105699,7 +106158,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -105741,7 +106200,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105824,7 +106283,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105861,7 +106320,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105901,7 +106360,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105952,7 +106411,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106011,7 +106470,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106056,7 +106515,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106099,7 +106558,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106134,7 +106593,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106168,7 +106627,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -106198,7 +106657,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -106227,7 +106686,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -106288,7 +106747,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106333,7 +106792,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106352,7 +106811,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106382,7 +106841,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106412,7 +106871,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106465,7 +106924,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106507,7 +106966,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106525,7 +106984,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 err611_set_var_ez.jnl --- 
@@ -106544,7 +107003,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106562,7 +107021,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -106579,7 +107038,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106600,7 +107059,7 @@ variables:
 		A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106663,7 +107122,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -106690,7 +107149,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -106717,7 +107176,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -106783,7 +107242,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -106815,7 +107274,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -106848,7 +107307,7 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106873,7 +107332,7 @@ variables:
 		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106911,7 +107370,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106937,7 +107396,7 @@ variables:
 		MYVAR:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106951,7 +107410,7 @@ variables:
 		MYVAR:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:history = "FERRET V7.11 (beta/debug) 11-May-17" ;
 		:Conventions = "CF-1.6" ;
 }
 -----
@@ -106965,9 +107424,9 @@ yes?
 yes? 
 yes? GO bn_startupfile
  	NOAA/PMEL TMAP
- 	FERRET v7.1 (beta/debug)
- 	Linux 2.6.18-419.el5PAE 32-bit - 04/11/17
- 	11-Apr-17 16:55     
+ 	FERRET v7.11 (beta/debug)
+ 	Linux 2.6.18-419.el5PAE 32-bit - 05/11/17
+ 	11-May-17 10:36     
 
 CAN MODE VERIFY
     SET MEMORY/SIZE: 31 megawords
@@ -106976,18 +107435,18 @@ CAN MODE VERIFY
 PPL$XPIXEL = "656"
 PPL$YPIXEL = "492"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
+FERRET_VERSION = "7.11"
 FERRET_PLATFORM = "Linux 2.6.18-419.el5PAE 32-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "11-Apr-17"
-SESSION_TIME = "16:55"
-SESSION_PID = "11360"
-DELTA_CPU = "0.041993"
-CLOCK_SECS = "0.196"
-CURRENT_DATE = "11-Apr-17"
-CURRENT_TIME = "16:55:51"
+SESSION_DATE = "11-May-17"
+SESSION_TIME = "10:36"
+SESSION_PID = "18648"
+DELTA_CPU = "0.043992"
+CLOCK_SECS = "0.247"
+CURRENT_DATE = "11-May-17"
+CURRENT_TIME = "10:36:29"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
@@ -107012,7 +107471,7 @@ PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "11-Apr-17:16:55"
+WIN_TITLE = "11-May-17:10:36"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -107076,9 +107535,9 @@ yes?
 yes? 
 yes? GO bn_gif
  	NOAA/PMEL TMAP
- 	FERRET v7.1 (beta/debug)
- 	Linux 2.6.18-419.el5PAE 32-bit - 04/11/17
- 	11-Apr-17 16:55     
+ 	FERRET v7.11 (beta/debug)
+ 	Linux 2.6.18-419.el5PAE 32-bit - 05/11/17
+ 	11-May-17 10:36     
 
 ! bn450_gif.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of gif file in batch mode using
@@ -107615,6 +108074,145 @@ shade/over d10[i=1:10:2,j=1:10]
  
 frame/file=bn_subspan_mod_strides.gif
  
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_plotvs_mode_label
+! err71_plotvs_mode_label.jnl
+!  *acm*3/17/17 Ticket 2517:
+! MODE LONG_LABEL, MODE LATIT_LABEL need to apply
+! to PLOT/VS plots.
+ 
+can mode logo
+ 
+set mode long_lab
+set mode latit_lab
+ 
+let/title="|Roll|"/units="degree" abscissa_roll = {0, 20}
+let/title="Wind Speed"/units="kn" ordinate_spd  = {0, 0}
+ 
+! labeled lon/lat axes. Units of "degrees" is taken to be degrees
+! east or north depending on which plot axis it is drawn on.
+ 
+set view ul
+plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
+set view ur
+plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
+ 
+! These modes turn off lon/lat axis labeling
+ 
+cancel mode long_lab
+cancel mode latit_lab
+ 
+set view ll
+plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
+set view lr
+plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
+ 
+! Explicit units units of degrees_east and degrees_north:
+! degrees_east draws longitude labeling on whichever plot axis
+! the associated variable is drawn, and likewise for degrees_north.
+! Setting or cancelling the label modes applies to the variable
+! units not the plot-axis direction.
+ 
+cancel view
+set mode long_lab
+set mode latit_lab
+ 
+let/title="East"/units="degrees_east" lon = {10,20,30}
+let/title="North"/units="degrees_north" lat = {-10,0,10}
+ 
+! longitude axis on the horizontal, latitude axis on the vertical
+ 
+set view ul; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit TRUE"
+ 
+! latitude axis on the horizontal, longitude axis on the vertical
+ 
+set view ur; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long vertical  latit horizontal"
+ 
+! longitude axis on the horizontal, latitude axis on the vertical
+! but with latitude labeling turned off
+ 
+set mode long_lab
+cancel mode latit_lab
+set view ll; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit FALSE"
+ 
+! latitude axis on the horizontal, longitude axis on the vertical
+! but with longitude labeling turned off
+ 
+cancel mode long_lab
+set mode latit_lab
+set view lr; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long FALSE  latit TRUE"
+ 
+frame/file=lon_lat_label_controls.gif
+ 
+ 
+! Restore default settings
+set mode long_lab
+set mode latit_lab
+ 
+set mode/last logo
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err700_vs_plot_axes
+! err700_vs_plot_axes.jnl
+! See ticket 2477, in some cases the plot axes are not fully drawn
+! 11/2016 ACM
+ 
+ 
+USE err700_vs_data.nc
+ 
+! only with PLOT/VS plots, only with SYMBOLS not PLOT/VS/LINE
+PLOT/VS/THICK/COLOR=red/SIZ=0.2 lon,lat
+FRAME/FILE=bn_axis_vs.gif
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_vs_constant
+! err71_vs_constant.jnl
+! See ticket 2318, defining plot axes when data is constant
+! 4/2017 acm
+ 
+! The axis ranges had been set as val-1, val+1 which
+! worked poorly for large or small data values
+ 
+ 
+ 
+ 
+def view/xlim=   0,.333/ylim=0,.5 ll6   ! ok
+def view/xlim=   0,.333/ylim=.5,1 ul6   ! long tic labels
+def view/xlim=.333,.666/ylim=0,.5 lm6   ! long tic labels, logo corrupted
+def view/xlim=.333,.666/ylim=.5,1 um6   ! plot positioning and labels are corrupted
+def view/xlim=.666,   1/ylim=0,.5 lr6   ! no plot at all
+def view/xlim=.666,   1/ylim=.5,1 ur6   ! no vertical tic labels
+ 
+ 
+set view ul6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e4*{1,1}
+set view um6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e5*{1,1}
+set view ur6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e6*{1,1}
+set view ll6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e7*{1,1}
+set view lm6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e8*{1,1}
+set view lr6; plot/vs/color/thick/line/sym/siz=0.2 {1,2}, 1e-2*{1,1}
+ 
+frame/file=bn_vs_const_value.gif
+ 
+! With constant data value as the first argument
+ 
+can view
+set view ul6; plot/vs/color/thick/line/sym/siz=0.2  1e4*{1,1}, {1,2}
+set view um6; plot/vs/color/thick/line/sym/siz=0.2  1e5*{1,1}, {1,2}
+set view ur6; plot/vs/color/thick/line/sym/siz=0.2  1e6*{1,1}, {1,2}
+set view ll6; plot/vs/color/thick/line/sym/siz=0.2  1e7*{1,1}, {1,2}
+set view lm6; plot/vs/color/thick/line/sym/siz=0.2  1e8*{1,1}, {1,2}
+set view lr6; plot/vs/color/thick/line/sym/siz=0.2 1e-2*{1,1}, {1,2}
+ 
 exit/command
 yes? ! this "shell" is used because the Unix redirection fails to echo commands
 yes? ! from the top level command file
@@ -107624,9 +108222,9 @@ yes?
 yes? 
 yes? GO bn_ps
  	NOAA/PMEL TMAP
- 	FERRET v7.1 (beta/debug)
- 	Linux 2.6.18-419.el5PAE 32-bit - 04/11/17
- 	11-Apr-17 16:55     
+ 	FERRET v7.11 (beta/debug)
+ 	Linux 2.6.18-419.el5PAE 32-bit - 05/11/17
+ 	11-May-17 10:36     
 
 ! bn450_ps.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of ps files in batch mode using
@@ -107738,9 +108336,9 @@ yes?
 yes? 
 yes? GO bn_batch_metafile
  	NOAA/PMEL TMAP
- 	FERRET v7.1 (beta/debug)
- 	Linux 2.6.18-419.el5PAE 32-bit - 04/11/17
- 	11-Apr-17 16:55     
+ 	FERRET v7.11 (beta/debug)
+ 	Linux 2.6.18-419.el5PAE 32-bit - 05/11/17
+ 	11-May-17 10:36     
 
 ! bn_batch_metafile.jnl
 ! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -107824,4 +108422,4 @@ set window/location=0.1,0.1/title="another title"
  
 set mode/last logo
 exit/command
-Ended at Tue Apr 11 16:55:55 PDT 2017
+Ended at Thu May 11 10:36:34 PDT 2017
diff --git a/bench/ansley_official.rhel6-64_err b/bench/ansley_official.rhel6-64_err
index b5cc6c8..acf11e1 100644
--- a/bench/ansley_official.rhel6-64_err
+++ b/bench/ansley_official.rhel6-64_err
@@ -1,10 +1,10 @@
 Procedure run_all to run all FERRET benchmarks
 Running FERRET version /home/users/ansley/build/working/FERRET/fer/ferret_c
--rwxr-xr-x. 1 ansley oerdnewp 116929211 Apr 13 10:41 /home/users/ansley/build/working/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley tmap 117386464 Jul 12 09:46 /home/users/ansley/build/working/FERRET/fer/ferret_c
 Using external functions from /home/users/ansley/build/working/FERRET/external_functions/ext_func
 Running the tests of external functions y
 Benchmark run by ansley
-Note:  ticket 2318: axis range when data is constant
+Note: v7.2
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -22,7 +22,7 @@ FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
 FER_WEB_BROWSER=firefox
 PWD=/home/users/ansley/build/working/FERRET/bench
 PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/rhel6-x86_64-linux/ext_func/pylibs
-Beginning at Thu Apr 13 10:44:07 PDT 2017
+Beginning at Wed Jul 12 09:51:20 PDT 2017
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -1249,6 +1249,8 @@ ooooooooooooooooooooooooooooooooooooooooooo
 ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
+ LISTing to file longaxspace.dat
+Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -1273,7 +1275,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
            *** NOTE: Not deleted: TEST_IRREG
-           *** NOTE: Axis is in use by grid (G023)
+           *** NOTE: Axis is in use by grid (G015)
            *** NOTE: Not deleted: XEVEN
            *** NOTE: Axis is in use by grid EVEN
            *** NOTE: Not deleted: XODD
@@ -1328,6 +1330,8 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis is in use by grid G5_10
            *** NOTE: Not deleted: X5
            *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: XAX
+           *** NOTE: Axis is in use by grid GFORMAT
            *** NOTE: Not deleted: Y5
            *** NOTE: Axis is in use by grid G10X5
            *** NOTE: Not deleted: TIME1
@@ -1370,12 +1374,10 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis is in use by grid JGRID
            *** NOTE: Not deleted: MONTHT
            *** NOTE: Axis is in use by grid TGRID
-           *** NOTE: Not deleted: x10
+           *** NOTE: Not deleted: X10
            *** NOTE: Axis is in use by grid G10X5
            *** NOTE: Not deleted: YAX
            *** NOTE: Axis is in use by grid GFORMAT
-           *** NOTE: Not deleted: XAX
-           *** NOTE: Axis is in use by grid GFORMAT
            *** NOTE: Not deleted: TIME5
            *** NOTE: Axis is in use by grid GLB1
            *** NOTE: Not deleted: COADSX
@@ -1399,7 +1401,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Not deleted: TIME4
            *** NOTE: Axis is in use by grid GXYT
            *** NOTE: Not deleted: TEST_IRREG
-           *** NOTE: Axis is in use by grid (G023)
+           *** NOTE: Axis is in use by grid (G015)
            *** NOTE: Not deleted: PSZW
            *** NOTE: Axis is in use by grid G5_10
            *** NOTE: Not deleted: ZAXLEVITR1_1
@@ -1458,6 +1460,8 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis is in use by grid G5_10
            *** NOTE: Not deleted: X5
            *** NOTE: Axis is in use by grid GSRC
+           *** NOTE: Not deleted: XAX
+           *** NOTE: Axis is in use by grid GFORMAT
            *** NOTE: Not deleted: Y5
            *** NOTE: Axis is in use by grid G10X5
            *** NOTE: Not deleted: TIME1
@@ -1500,12 +1504,10 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis is in use by grid JGRID
            *** NOTE: Not deleted: MONTHT
            *** NOTE: Axis is in use by grid TGRID
-           *** NOTE: Not deleted: x10
+           *** NOTE: Not deleted: X10
            *** NOTE: Axis is in use by grid G10X5
            *** NOTE: Not deleted: YAX
            *** NOTE: Axis is in use by grid GFORMAT
-           *** NOTE: Not deleted: XAX
-           *** NOTE: Axis is in use by grid GFORMAT
            *** NOTE: Not deleted: TIME5
            *** NOTE: Axis is in use by grid GLB1
            *** NOTE: Not deleted: COADSX
@@ -1958,7 +1960,7 @@ def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,
  LISTing to file a.nc
 Replacing definition of axis XAX
 Replacing definition of axis ZAX
-Replacing definition of axis tax
+Replacing definition of axis TAX
  LISTing to file irrxzt.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2544,8 +2546,6 @@ Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
-syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
 CURL Error: Couldn't resolve host name
 curl error details: 
  PERMANENT data cleared from memory
@@ -2657,7 +2657,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-Replacing definition of axis tax
+Replacing definition of axis TAX
            *** NOTE: Invalid I axis limits ignored: TEMP
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
@@ -3612,7 +3612,7 @@ Starting test: bn_scat2grid_bin.jnl
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Not deleted: x10
+           *** NOTE: Not deleted: X10
            *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -4425,8 +4425,6 @@ Replacing definition of axis XAXIS_TEST
  LISTing to file c.nc
  LISTing to file c.nc
  LISTing to file c.nc
-syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 500; message = "Error processing XML header file /usr/local/src/apache-tomcat-7.0.34/content/NVODS/conf/server/temp/D1D5FD4B2FB7337E19977C571F94C6FF/header.xml (No such file or directory)"^;};
  LISTing to file nc
  **TMAP ERR: error in line definition
              file coords dont match variable coords on axis XAXIS_TEST
@@ -4531,21 +4529,21 @@ Starting test: bn_let_remote
            *** NOTE: Bounds definition "lon_bnds" points to no existing axis
            *** NOTE: Ignoring BOUNDS attribute
  **ERROR: command syntax: /REMOTE variable expression may not contain [d=
-DEFINE VARIABLE/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+DEFINE VARIABLE/D=1/remote rvar = t00an1[d=1,z=1:100 at ave]
  **ERROR: command syntax: /REMOTE variable definition must also specify /D=
-DEFINE VARIABLE/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+DEFINE VARIABLE/remote rvar = t00an1[d=1,z=1:100 at ave]
  **netCDF error
              Unable to open URL with REMOTE variable definitions:
-             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
  **TMAP ERR: attribute reading error
              Unable to get varid for LET/REMOTE variable: NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
-             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
  **TMAP ERR: attribute reading error
              Unable to get bad-value for LET/REMOTE variable: NetCDF: Attribute not found (OPeNDAP/netCDF Error code -43)
-             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
  **netCDF error
              NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
-             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
 list/x=300/y=15 avar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -5006,7 +5004,7 @@ SET VAR/layerz=depth noexist
            *** NOTE: Ambiguous coordinates on Z axis: TEMP6D-TEMPZ6D
  **ERROR: invalid command: auxiliary variable DEPTH6D has a T axis not found on variable TEMP
 LIST/PREC=7 tempz6d_unmatch
-Replacing definition of axis xax
+Replacing definition of axis XAX
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -5122,8 +5120,8 @@ Replacing definition of axis TAX2
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
  Using every   4th vector in the Y direction
-Replacing definition of axis xax
-Replacing definition of axis yax
+Replacing definition of axis XAX
+Replacing definition of axis YAX
  Using every   4th vector in the Y direction
  Using every   4th vector in the Y direction
  PERMANENT data cleared from memory
@@ -5278,7 +5276,7 @@ Replacing definition of axis TDAY_TVAR
  LISTing to file tmp/tagg_single_4.nc
  LISTing to file tmp/tagg_single_5.nc
  LISTing to file tmp/tagg_single_6.nc
-           *** NOTE: Not deleted: tday
+           *** NOTE: Not deleted: TDAY
            *** NOTE: Axis is in use by grid (G088)
            *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: /FILES is deprecated.  Use /MEMBERS
@@ -5460,7 +5458,7 @@ Starting test: bn_list_clim_axes
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_climatology_attr
-Replacing definition of axis tax
+Replacing definition of axis TAX
  LISTing to file a.nc
  LISTing to file a.nc
 Replacing definition of axis TAX
@@ -5552,9 +5550,6 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAXIS
 Replacing definition of axis XAXIS
 Replacing definition of axis YAXIS
@@ -5677,7 +5672,7 @@ list index,edtim,udtim,udate,edate
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_aggregate_u
-Replacing definition of axis tax
+Replacing definition of axis TAX
  LISTing to file tmp/uagg_1.nc
  LISTing to file tmp/uagg_2.nc
  LISTing to file tmp/uagg_3.nc
@@ -5846,20 +5841,50 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TIME
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-Replacing definition of axis TIME
+ LISTing to file a.nc
+ LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-Re-defining viewport LL6
-Re-defining viewport UL6
-Re-defining viewport LM6
-Re-defining viewport UM6
-Re-defining viewport LR6
-Re-defining viewport UR6
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **ERROR: PPLUS command syntax error: Symbol not found PPLUS show nosymbol
+pplus show nosymbol
+ **ERROR: PPLUS command syntax error: Symbol not found PPLUS show
+ppl show
+ **ERROR: PPLUS command syntax error:  Command not recognized: PPLUS NONSENSE
+PPL nonsense
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis tax
+           *** NOTE: Ambiguous coordinates on T axis: S1*A
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **ERROR: invalid command: Mismatched parentheses within REPEAT loop
+repeat/range=1:3:1/name=count (def sym count = `count`; say 3; message/continue))
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -6095,324 +6120,6 @@ stat/brief v[i=101:200,j=101:200,k=1,l=1:10 at ave], v[i=101:200,j=101:200,k=2,l=1:
 stat/brief a[l=1:10 at ave], b[l=1:10 at ave], c[l=1:10 at ave], d[l=1:10 at ave]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
-gsetmarkerrep()   66 Polymarker index is invalid
-gsetlinerep()   60 Polyline index is invalid
  **ERROR: value out of legal range: illegal mode argument. Must be 0 to 90 percent 95
 SET MODE FRUGAL:95
  PERMANENT data cleared from memory
@@ -6427,15 +6134,11 @@ Replacing definition of axis tax
 Replacing definition of axis time
 Replacing definition of axis zaxis
 Replacing definition of axis time
-           *** NOTE: Graphics limits settings to 250 line/thickness combinations plus existing spectrum colors
-           *** NOTE: Cannot draw /THICK=3 lines with current number of color levels = 57; THICK=1 or 2 will be ok
 Replacing definition of axis time
-           *** NOTE: Graphics limits settings to 250 line/thickness combinations plus existing spectrum colors
-           *** NOTE: Cannot draw /THICK=2 lines with current number of color levels = 57; THICK=1 will be ok
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-Starting test: bn_inner
+Starting test: bn_dot_product
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -6473,6 +6176,28 @@ Starting test: bn_transp_choose
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_iin_regrid
+ **ERROR: regridding: @IIN regridding must be to axis with same grid-cell sizes
+list a[gx=alinenew at iin]
+Replacing definition of axis alinenew
+Replacing definition of axis alinenew
+Replacing definition of axis alinenew
+ TEMPORARY data cleared from memory
+Replacing definition of axis aline
+Replacing definition of axis aline_edges
+Replacing definition of axis aline
+Replacing definition of axis aline_edges
+Replacing definition of axis otheraxis
+Replacing definition of axis aline
+Replacing definition of axis aline_edges
+Replacing definition of axis otheraxis
+Replacing definition of axis aline
+Replacing definition of axis aline_edges
+Replacing definition of axis aline
+Replacing definition of axis aline_edges
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -6545,6 +6270,24 @@ ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Re-defining viewport LL6
+Re-defining viewport UL6
+Re-defining viewport LM6
+Re-defining viewport UM6
+Re-defining viewport LR6
+Re-defining viewport UR6
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
 plot/i=1:10/j=1:20/nolabel i+j
@@ -6576,4 +6319,4 @@ vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
 Re-defining viewport LM6
 Re-defining viewport UM6
            *** NOTE: Cannot create new windows when batch mode set
-Ended at Thu Apr 13 10:48:44 PDT 2017
+Ended at Wed Jul 12 09:57:45 PDT 2017
diff --git a/bench/ansley_official.rhel6-64_log b/bench/ansley_official.rhel6-64_log
index 620f3a5..06a15bb 100644
--- a/bench/ansley_official.rhel6-64_log
+++ b/bench/ansley_official.rhel6-64_log
@@ -1,10 +1,10 @@
 Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 ansley oerdnewp 116929299 Apr 17 16:20 /home/users/ansley/build/trunk/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/trunk/FERRET/external_functions/ext_func
+Running FERRET version /home/users/ansley/build/working/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley tmap 117386464 Jul 12 09:46 /home/users/ansley/build/working/FERRET/fer/ferret_c
+Using external functions from /home/users/ansley/build/working/FERRET/external_functions/ext_func
 Running the tests of external functions y
 Benchmark run by ansley
-Note: ticket 2526, show data/members for union sets
+Note: v7.2
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -13,7 +13,7 @@ FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /hom
 FER_DESCR=.
 FER_DIR=.
 FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/trunk/FERRET/external_functions/ext_func
+FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/working/FERRET/external_functions/ext_func
 FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
 FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib
 FER_GRIDS=.
@@ -22,7 +22,7 @@ FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
 FER_WEB_BROWSER=firefox
 PWD=/home/users/ansley/build/working/FERRET/bench
 PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/rhel6-x86_64-linux/ext_func/pylibs
-Beginning at Mon Apr 17 16:45:58 PDT 2017
+Beginning at Wed Jul 12 09:51:20 PDT 2017
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
 ! - ordered (more or less) from least to most complex
@@ -778,12 +778,12 @@ SHOW MEMORY
     SET MEMORY/SIZE: 25.6 megawords
     Peak demand: 18 words
     Current cache: 15 words
-    Permamnent: 5 words
+    Permanent: 5 words
 SHOW MEMORY/FREE
     SET MEMORY/SIZE: 25.6 megawords
     Peak demand: 18 words
     Current cache: 15 words
-    Permamnent: 5 words
+    Permanent: 5 words
     Total table slots: 500
     Free table slots: 497
     Un-cached variables: 0
@@ -9621,7 +9621,7 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  V1       V1                               1:5       ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:5.5  
  
  /FORMAT = FREE
@@ -9651,10 +9651,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:5       ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:5.5  
  X2       X2                               1:5       ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:5.5  
  
  /FORMAT = FREE
@@ -9687,10 +9687,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = FREE
@@ -9731,10 +9731,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = FREE
@@ -9769,10 +9769,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = FREE
@@ -9804,10 +9804,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = (3(F14.0,F7.0))
@@ -9842,10 +9842,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G007) with -1.E+34 for missing data
+               on grid (G008) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = (3(F14.0,F7.0)/)
@@ -9986,14 +9986,14 @@ LIST X1
              VARIABLE : X1
              FILENAME : EZ.DAT
              SUBSET   : 8 points (X)
- 1   / 1:     0.01
- 2   / 2:     0.18
- 3   / 3:     0.28
- 4   / 4:     0.35
- 5   / 5:     0.38
- 6   / 6:     0.39
- 7   / 7:  4224.00
- 8   / 8:  2324.00
+ 1   / 1:  0.006000
+ 2   / 2:  0.176000
+ 3   / 3:  0.282000
+ 4   / 4:  0.355000
+ 5   / 5:  0.379000
+ 6   / 6:  0.393000
+ 7   / 7:  0.000000
+ 8   / 8:  0.000000
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
@@ -10459,22 +10459,23 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 2.6.32-696.3.2.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Apr-17"
-SESSION_TIME = "16:45"
-SESSION_PID = "21684"
-DELTA_CPU = "5.81711"
-CLOCK_SECS = "7.817"
-CURRENT_DATE = "17-Apr-17"
-CURRENT_TIME = "16:46:05"
+SESSION_DATE = "12-Jul-17"
+SESSION_TIME = "09:51"
+SESSION_PID = "4428"
+DELTA_CPU = "11.9522"
+CLOCK_SECS = "13.908"
+CURRENT_DATE = "12-Jul-17"
+CURRENT_TIME = "09:51:33"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
  
 ! define some symbols ... syntax variations
 define symbol s1 = hello
@@ -10490,22 +10491,23 @@ show symbol/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 2.6.32-696.3.2.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Apr-17"
-SESSION_TIME = "16:45"
-SESSION_PID = "21684"
-DELTA_CPU = "0.006999"
-CLOCK_SECS = "7.823"
-CURRENT_DATE = "17-Apr-17"
-CURRENT_TIME = "16:46:05"
+SESSION_DATE = "12-Jul-17"
+SESSION_TIME = "09:51"
+SESSION_PID = "4428"
+DELTA_CPU = "0.018997"
+CLOCK_SECS = "13.927"
+CURRENT_DATE = "12-Jul-17"
+CURRENT_TIME = "09:51:33"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10513,10 +10515,11 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "17-Apr-17"
-SESSION_TIME = "16:45"
-SESSION_PID = "21684"
-SPAWN_STATUS = "1"
+SESSION_DATE = "12-Jul-17"
+SESSION_TIME = "09:51"
+SESSION_PID = "4428"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10526,17 +10529,19 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "17-Apr-17"
-SESSION_TIME = "16:45"
-SESSION_PID = "21684"
-SPAWN_STATUS = "1"
+SESSION_DATE = "12-Jul-17"
+SESSION_TIME = "09:51"
+SESSION_PID = "4428"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "17-Apr-17"
-SESSION_TIME = "16:45"
-SESSION_PID = "21684"
-SPAWN_STATUS = "1"
+SESSION_DATE = "12-Jul-17"
+SESSION_TIME = "09:51"
+SESSION_PID = "4428"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10570,9 +10575,9 @@ Q23456789012345678901234567XXXAAAAA = "6"
 ! show the upper left coordinate limits labels as symbols
 plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
 show symbol lab*
-LAB1 = "FERRET (beta/debug) Ver.7.1"
+LAB1 = "FERRET (beta/debug) Ver.7.2"
 LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "17-APR-2017 16:46:05"
+LAB3 = "12-JUL-2017 09:51:33"
 LABX = "X"
 LAB4 = "Y : 10"
 LABNUM_Y = "4"
@@ -10667,22 +10672,23 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 2.6.32-696.3.2.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Apr-17"
-SESSION_TIME = "16:45"
-SESSION_PID = "21684"
-DELTA_CPU = "0.012998"
-CLOCK_SECS = "7.837"
-CURRENT_DATE = "17-Apr-17"
-CURRENT_TIME = "16:46:05"
+SESSION_DATE = "12-Jul-17"
+SESSION_TIME = "09:51"
+SESSION_PID = "4428"
+DELTA_CPU = "0.040993"
+CLOCK_SECS = "13.968"
+CURRENT_DATE = "12-Jul-17"
+CURRENT_TIME = "09:51:34"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "201"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
  
  
 GO bn_reset bn_comma_delimited
@@ -14608,7 +14614,7 @@ show data/full
                on grid G016_NYZ with -1.E+34 for missing data
              X=130E:140E  
  JK       J1+K1                            ...       5:10      5:15      ...
-               on grid G008_NXT with -1.E+34 for missing data
+               on grid G007_NXT with -1.E+34 for missing data
              Y=21.11S:12.52S  Z=40:190  
  IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
@@ -25347,7 +25353,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Mon Apr 17 16:46:15 PDT 2017
+Wed Jul 12 09:51:47 PDT 2017
  
 GO bn_reset
 cancel mode verify
@@ -25491,14 +25497,14 @@ cancel memory/all
 set mode diagnostic
 list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    (C01,V02 C:  7 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25534,10 +25540,10 @@ cancel memory/all
  -DELETE (C01,V02 M:177 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M:177 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25563,11 +25569,11 @@ cancel memory/all
  -DELETE SST      M:154 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
  -DELETE EX#1     M:174 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  8 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25601,13 +25607,13 @@ cancel memory/all
  -DELETE A        M:177 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
  -DELETE A        M:181 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  eval    (C01,V02 C:  7 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
@@ -25631,8 +25637,8 @@ let/quiet a = sst[i=30:40]
  -DELETE (C09,V02 M:163 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  -DELETE (C01,V02 M:177 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
 cancel memory/all
  -DELETE SST      M:173 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
@@ -25640,7 +25646,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  8 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25664,9 +25670,9 @@ cancel memory/all
  -DELETE EX#1     M:177 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
  -DELETE SST      M:181 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30}     M:181 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25691,12 +25697,12 @@ cancel memory/all
  -DELETE A        M:175 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
  -DELETE EX#1     M:177 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C11,V02 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  eval    (C01,V02 C:  7 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
@@ -25726,8 +25732,8 @@ cancel memory/all
 let/quiet fsst = sst[x=@fln] 		! fill holes to allow @iin to work
 let/quiet a = fsst[i=@iin]		! @iin forces all-at-once
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
 list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -25735,7 +25741,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  getgrid FSST     C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25773,7 +25779,7 @@ cancel memory/all
 ! now test optimization that uses large memory chunks if available
 cancel memory/all
 load/l=1/y=0 sst[I=30:50]
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
@@ -25782,7 +25788,7 @@ load/l=1/y=0 sst[I=30:50]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25806,7 +25812,7 @@ cancel memory/all
  -DELETE EX#1     M:173 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M:177 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:39]
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
@@ -25815,7 +25821,7 @@ load/l=1/y=0 sst[I=30:39]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25843,7 +25849,7 @@ cancel memory/all
  -DELETE EX#1     M:174 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M:177 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:40]
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
@@ -25852,7 +25858,7 @@ load/l=1/y=0 sst[I=30:40]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25878,7 +25884,7 @@ cancel memory/all
  -DELETE SST      M:163 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M:177 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:41]
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
@@ -25887,7 +25893,7 @@ load/l=1/y=0 sst[I=30:41]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M:163 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25959,7 +25965,7 @@ list SAMPLEI(sst[l=1,y=1s:1n:.5],{30,40,50})
  1S    / 1:  28.1514  28.5607  28.8326
 show grid/dyn
 Dynamic grids:
-    GRID (G017)                          use count:   2
+    GRID (G018)                          use count:   2
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
  (AX004)   LATITUDE             5 r   1S                   1N
@@ -25981,7 +25987,7 @@ list SAMPLEI(a,{30,40,50})
  1S    / 1:  28.1514  28.5607  28.8326
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G017)                          use count:   1
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
  (AX012)   LATITUDE             5 r   1S                   1N
@@ -26143,15 +26149,15 @@ list SAMPLEI(Y[y=110:200:10],{3,4,7})
 cancel memory/all
 set mode diagnostic
 list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
- dealloc  dynamic grid (G017)          NORMAL    (AX004)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          NORMAL    (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G017)          ABSTRACT  (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G017)          ABSTRACT  (AX004)   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    (C01,V02 C:  6 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  const_v {31,...} M:175 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -26750,16 +26756,16 @@ SHOW DATA
 ! basic strides
 LIST VAR[i=2:4:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:179 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE VAR      M:180 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26779,9 +26785,9 @@ LIST VAR[i=2:4:2]
 ! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
 LIST VAR[i=2:4:2]
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
  found   VAR      M:179 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26801,22 +26807,22 @@ LIST VAR[i=2:4:2]
 ! cache hit through non-file variable
 let a = VAR[i=2:4:2]
 list a
- dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
  -DELETE VAR      M:179 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  eval    A        C:  6 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
  rdstride VAR      C:  9 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:180 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE VAR      M:179 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -26854,7 +26860,7 @@ cancel memory/all
  -DELETE A        M:179 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE VAR      M:180 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
 load var
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
@@ -26862,16 +26868,16 @@ load var
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:173 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE VAR      M:179 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26888,18 +26894,18 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.00  1224.00
  3   / 3:  1232.00  1234.00
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G002)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:170 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:179 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26921,19 +26927,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G002)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G002)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G002)           @XACT
  strip moduloing VAR on X axis:        1       10 dset:   1
  reading VAR      M:180 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  doing moduloing VAR on X axis:        1        4 dset:   1
  regrid  VAR      M:170 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -26954,18 +26960,18 @@ cancel axis/modulo XAX1_4
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX030)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G002)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:173 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:180 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26980,19 +26986,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_2    TAX1_1
  -DELETE VAR      M:173 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1
- allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G002)          (AX029)   (AX030)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX029)   (AX030)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G002)          (AX029)   (AX030)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX029)   (AX030)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G002)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:173 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX029)   (AX030)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27009,7 +27015,7 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! deliberate error
 set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
- dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G002)          (AX029)   (AX030)   ZAX1_2    TAX1_1
  -DELETE VAR      M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
@@ -27018,15 +27024,15 @@ set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
 LIST VAR[i=2:4:2 at ave]
  dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G018)           @AVE
+ allocate dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @AVE
  reading VAR      M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  regrid  VAR      M:173 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X at AVE
              FILENAME : bn_strides.cdf
@@ -27045,25 +27051,25 @@ LIST VAR[i=2:4:2 at ave]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
  -DELETE VAR      M:173 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G011)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G011)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G011)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G011)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  eval    A        C:  7 dset:   1 I:      3      5  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M:170 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
  -DELETE BIGVAR   M:173 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G011)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -27077,24 +27083,24 @@ list/j=1/k=1/l=1 a[i=3:5]
  21   / 5:  1131.00
  -DELETE A        M:179 dset:   1 I:      1      1  J:    3    5  K:    1    1  L:      1      1
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G011)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10
- allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G002)          (AX030)   (AX031)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G002)          (AX030)   (AX031)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G002)          (AX030)   (AX031)   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
- allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10
- strip regrid on Y: A --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX030)   (AX031)   ZAX1_20   TAX1_10
+ strip regrid on Y: A --> (G002)           @XACT
  eval    A        C:  8 dset:   1 I:      3      5  J:    1    7  K:    1    1  L:      1      1
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M:168 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
  -DELETE BIGVAR   M:179 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G011)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
  regrid  A        M:166 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G002)          (AX030)   (AX031)   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27111,7 +27117,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
 ! reference data
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G002)          (AX030)   (AX031)   ZAX1_20   TAX1_10
  -DELETE A        M:166 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
@@ -27139,17 +27145,17 @@ cancel mem/all
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G002)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:179 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:180 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27165,9 +27171,9 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
  found   UNE-NVAR M:179 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27181,25 +27187,25 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  
 ! cache hit through non-file variable
 let a = UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:179 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G011)          (AX030)   YAX1_30   ZAX1_20   TAX1_10
 list/order=x/j=1/k=1/l=1 a
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  eval    A        C:  7 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @XACT
  rdstride UNE-NVAR C: 10 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:180 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:179 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27228,7 +27234,7 @@ cancel memory/all
  -DELETE A        M:179 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:180 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
 load/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
@@ -27237,17 +27243,17 @@ load/k=1/l=1 UNEVENVAR
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:173 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:179 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27260,19 +27266,19 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  0.3  / 1:  1112.00
  0.6  / 2:  1114.00
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G002)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    5  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:170 dset:   1 I:      1      2  J:    1    3  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:179 dset:   1 I:      2      4  J:    1    5  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
  doing limits reconciliation on Y axis: UNEVENVAR
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27294,19 +27300,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XUNEVEN
 LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G002)           @XACT
  strip moduloing UNEVENVAR on X axis:        1       29 dset:   1
  reading UNE-NVAR M:180 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  doing moduloing UNEVENVAR on X axis:        1       10 dset:   1
  regrid  UNE-NVAR M:170 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27324,19 +27330,19 @@ cancel axis/modulo XUNEVEN
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G002)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    3  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:173 dset:   1 I:      1      2  J:    1    2  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:180 dset:   1 I:      2      4  J:    1    3  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27348,20 +27354,20 @@ LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
  0    / 1:  1112.00  1114.00
  0.95 / 2:  1132.00  1134.00
 LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX029)   (AX031)   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:173 dset:   1 I:      1      2  J:    1    2  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4
- allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX030)   (AX032)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   (AX032)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX030)   (AX032)   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
- allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX030)   (AX032)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G002)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      6  J:    1    5  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:180 dset:   1 I:      1      3  J:    1    3  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:173 dset:   1 I:      2      6  J:    1    5  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   (AX032)   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27376,19 +27382,19 @@ LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
  
 ! averaging causes bypass of strides
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
- dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   (AX032)   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:180 dset:   1 I:      1      3  J:    1    3  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G010)           @AVE
+ allocate dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G002)           @AVE
  reading UNE-NVAR M:180 dset:   1 I:      1      9  J:    1    1  K:    1    1  L:      1      1
  regrid  UNE-NVAR M:173 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27403,20 +27409,20 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
  0.78 / 3:  1115.87072
  0.9  / 4:  1117.90449
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:173 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G002)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      8  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:170 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:173 dset:   1 I:      2      8  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27433,19 +27439,19 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
  
 ! test special logic in tm_world_recur for endpoints of strides on irreg axis
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=1:10:2 at ave]
- dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:170 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G010)           @AVE
+ allocate dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G002)           @AVE
  reading UNE-NVAR M:170 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  regrid  UNE-NVAR M:173 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27468,19 +27474,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2]
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G002)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:173 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G002)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G002)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G002)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G002)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:179 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:173 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
- dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G002)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27497,19 +27503,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1233.00  1235.00  1237.00  1239.00
  4   / 4:  1243.00  1245.00  1247.00  1249.00
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G002)          (AX032)   YAX1_30   ZAX1_20   TAX1_10
  -DELETE BIGVAR   M:179 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
- allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G002)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G002)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G002)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
- strip regrid on Y: BIGVAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
+ strip regrid on Y: BIGVAR --> (G002)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:173 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:179 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
- dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G002)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27526,19 +27532,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1243.00  1244.00  1245.00  1246.00
  6   / 3:  1263.00  1264.00  1265.00  1266.00
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G002)          XAX1_40   (AX030)   ZAX1_20   TAX1_10
  -DELETE BIGVAR   M:173 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10
- dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10
- allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10
+ allocate dynamic grid (G002)          (AX032)   (AX031)   (AX033)   TAX1_10
+ dealloc  dynamic grid (G002)          (AX032)   (AX031)   (AX033)   TAX1_10
+ allocate dynamic grid (G002)          (AX032)   (AX031)   (AX033)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10
- strip regrid on X: BIGVAR --> (G010)           @XACT
+ allocate dynamic grid (G002)          (AX032)   (AX031)   (AX033)   TAX1_10
+ strip regrid on X: BIGVAR --> (G002)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M:179 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:173 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10
+ dealloc  dynamic grid (G002)          (AX032)   (AX031)   (AX033)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27555,9 +27561,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1345.00  1347.00  1349.00
  6   / 3:  1363.00  1365.00  1367.00  1369.00
 canc data/all
- dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10
+ dealloc  dynamic grid (G002)          (AX032)   (AX031)   (AX033)   TAX1_10
  -DELETE BIGVAR   M:179 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
  canceling dset ./bn_strides.cdf
  -DELETE UNE-NVAR M:170 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:180 dset:   1 I:      1      9  J:    1    1  K:    1    1  L:      1      1
@@ -27565,16 +27571,16 @@ canc data/all
 use/order=zyx bn_strides
 list bigvar[i=3:9:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10
- dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10
- allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10
+ allocate dynamic grid (G011)          (AX033)   YAX1_30   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G011)          (AX033)   YAX1_30   XAX1_40   TAX1_10
+ allocate dynamic grid (G011)          (AX033)   YAX1_30   XAX1_40   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10
- strip regrid on X: BIGVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   YAX1_30   XAX1_40   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:170 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:180 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
- dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G011)          (AX033)   YAX1_30   XAX1_40   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27591,19 +27597,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1332.00  1532.00  1732.00  1932.00
  4   / 4:  1342.00  1542.00  1742.00  1942.00
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G011)          (AX033)   YAX1_30   XAX1_40   TAX1_10
  -DELETE BIGVAR   M:170 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
- dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
- allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
+ allocate dynamic grid (G011)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G011)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
+ allocate dynamic grid (G011)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
- strip regrid on Y: BIGVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
+ strip regrid on Y: BIGVAR --> (G011)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:180 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:170 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
- dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G011)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27620,19 +27626,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1342.00  1442.00  1542.00  1642.00
  6   / 3:  1362.00  1462.00  1562.00  1662.00
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G011)          ZAX1_20   (AX029)   XAX1_40   TAX1_10
  -DELETE BIGVAR   M:180 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_10
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_10
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10
- strip regrid on X: BIGVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M:170 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:180 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27649,23 +27655,23 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1543.00  1743.00  1943.00
  6   / 3:  1363.00  1563.00  1763.00  1963.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_10
  -DELETE BIGVAR   M:170 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=zxy bn_strides
 list bigvar[i=3:9:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10
- dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10
- allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10
+ allocate dynamic grid (G011)          (AX031)   XAX1_40   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G011)          (AX031)   XAX1_40   YAX1_30   TAX1_10
+ allocate dynamic grid (G011)          (AX031)   XAX1_40   YAX1_30   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10
- strip regrid on X: BIGVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX031)   XAX1_40   YAX1_30   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:180 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:170 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
- dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G011)          (AX031)   XAX1_40   YAX1_30   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27682,19 +27688,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1323.00  1523.00  1723.00  1923.00
  4   / 4:  1324.00  1524.00  1724.00  1924.00
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G011)          (AX031)   XAX1_40   YAX1_30   TAX1_10
  -DELETE BIGVAR   M:180 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
- dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
- allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
+ allocate dynamic grid (G011)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G011)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
+ allocate dynamic grid (G011)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
- strip regrid on Y: BIGVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
+ strip regrid on Y: BIGVAR --> (G011)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:170 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:180 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
- dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G011)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27711,19 +27717,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1324.00  1424.00  1524.00  1624.00
  6   / 3:  1326.00  1426.00  1526.00  1626.00
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G011)          ZAX1_20   (AX032)   YAX1_30   TAX1_10
  -DELETE BIGVAR   M:170 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_10
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_10
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10
- strip regrid on X: BIGVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:170 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27740,7 +27746,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1334.00  1534.00  1734.00  1934.00
  6   / 3:  1336.00  1536.00  1736.00  1936.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_10
  -DELETE BIGVAR   M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -27760,16 +27766,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME
+ allocate dynamic grid (G011)          (AX033)   YLAT      NORMAL    TTIME
+ dealloc  dynamic grid (G011)          (AX033)   YLAT      NORMAL    TTIME
+ allocate dynamic grid (G011)          (AX033)   YLAT      NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME
- strip regrid on X: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   YLAT      NORMAL    TTIME
+ strip regrid on X: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:180 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME
+ dealloc  dynamic grid (G011)          (AX033)   YLAT      NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -27785,19 +27791,19 @@ list xytvar[i=1:7:2]
  2N   / 2:  2021.00  2023.00  2025.00  2027.00
  1N   / 1:  2011.00  2013.00  2015.00  2017.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME
+ dealloc  dynamic grid (G011)          (AX033)   YLAT      NORMAL    TTIME
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME
- dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME
- allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME
+ allocate dynamic grid (G011)          XLON      (AX029)   NORMAL    TTIME
+ dealloc  dynamic grid (G011)          XLON      (AX029)   NORMAL    TTIME
+ allocate dynamic grid (G011)          XLON      (AX029)   NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME
- strip regrid on Y: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          XLON      (AX029)   NORMAL    TTIME
+ strip regrid on Y: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME
+ dealloc  dynamic grid (G011)          XLON      (AX029)   NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27813,19 +27819,19 @@ list xytvar[j=2:6:2]
  4N   / 2:  2041.00  2042.00  2043.00  2044.00
  2N   / 1:  2021.00  2022.00  2023.00  2024.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME
+ dealloc  dynamic grid (G011)          XLON      (AX029)   NORMAL    TTIME
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
+ allocate dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
+ allocate dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
- strip regrid on X: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
+ strip regrid on X: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:180 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -27841,7 +27847,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.00  5043.00  5045.00  5047.00
  2N   / 1:  5021.00  5023.00  5025.00  5027.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -27858,16 +27864,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME
+ allocate dynamic grid (G011)          (AX031)   XLON      NORMAL    TTIME
+ dealloc  dynamic grid (G011)          (AX031)   XLON      NORMAL    TTIME
+ allocate dynamic grid (G011)          (AX031)   XLON      NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME
- strip regrid on X: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX031)   XLON      NORMAL    TTIME
+ strip regrid on X: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:170 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME
+ dealloc  dynamic grid (G011)          (AX031)   XLON      NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -27883,19 +27889,19 @@ list xytvar[i=1:7:2]
  142   / 2:  2012.00  2032.00  2052.00  2072.00
  143   / 3:  2013.00  2033.00  2053.00  2073.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME
+ dealloc  dynamic grid (G011)          (AX031)   XLON      NORMAL    TTIME
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME
- dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME
- allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME
+ allocate dynamic grid (G011)          YLAT      (AX032)   NORMAL    TTIME
+ dealloc  dynamic grid (G011)          YLAT      (AX032)   NORMAL    TTIME
+ allocate dynamic grid (G011)          YLAT      (AX032)   NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME
- strip regrid on Y: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          YLAT      (AX032)   NORMAL    TTIME
+ strip regrid on Y: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME
+ dealloc  dynamic grid (G011)          YLAT      (AX032)   NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27911,19 +27917,19 @@ list xytvar[j=2:6:2]
  144   / 2:  2014.00  2024.00  2034.00  2044.00
  146   / 3:  2016.00  2026.00  2036.00  2046.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME
+ dealloc  dynamic grid (G011)          YLAT      (AX032)   NORMAL    TTIME
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
+ allocate dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
+ allocate dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
- strip regrid on X: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
+ strip regrid on X: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:170 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -27939,7 +27945,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  5014.00  5034.00  5054.00  5074.00
  146   / 3:  5016.00  5036.00  5056.00  5076.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -27956,16 +27962,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON
+ allocate dynamic grid (G011)          (AX033)   YLAT      NORMAL    XLON
+ dealloc  dynamic grid (G011)          (AX033)   YLAT      NORMAL    XLON
+ allocate dynamic grid (G011)          (AX033)   YLAT      NORMAL    XLON
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON
- strip regrid on X: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   YLAT      NORMAL    XLON
+ strip regrid on X: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:180 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON
+ dealloc  dynamic grid (G011)          (AX033)   YLAT      NORMAL    XLON
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -27981,19 +27987,19 @@ list xytvar[i=1:7:2]
  2N   / 2:  1022.00  3022.00  5022.00  7022.00
  1N   / 1:  1012.00  3012.00  5012.00  7012.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON
+ dealloc  dynamic grid (G011)          (AX033)   YLAT      NORMAL    XLON
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON
- dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON
- allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON
+ allocate dynamic grid (G011)          TTIME     (AX029)   NORMAL    XLON
+ dealloc  dynamic grid (G011)          TTIME     (AX029)   NORMAL    XLON
+ allocate dynamic grid (G011)          TTIME     (AX029)   NORMAL    XLON
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON
- strip regrid on Y: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          TTIME     (AX029)   NORMAL    XLON
+ strip regrid on Y: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON
+ dealloc  dynamic grid (G011)          TTIME     (AX029)   NORMAL    XLON
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28009,19 +28015,19 @@ list xytvar[j=2:6:2]
  4N   / 2:  1042.00  2042.00  3042.00  4042.00
  2N   / 1:  1022.00  2022.00  3022.00  4022.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON
+ dealloc  dynamic grid (G011)          TTIME     (AX029)   NORMAL    XLON
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
+ allocate dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
+ allocate dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
- strip regrid on X: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
+ strip regrid on X: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:180 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28037,7 +28043,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  1045.00  3045.00  5045.00  7045.00
  2N   / 1:  1025.00  3025.00  5025.00  7025.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -28054,16 +28060,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT
+ allocate dynamic grid (G011)          (AX031)   XLON      NORMAL    YLAT
+ dealloc  dynamic grid (G011)          (AX031)   XLON      NORMAL    YLAT
+ allocate dynamic grid (G011)          (AX031)   XLON      NORMAL    YLAT
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT
- strip regrid on X: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX031)   XLON      NORMAL    YLAT
+ strip regrid on X: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:170 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT
+ dealloc  dynamic grid (G011)          (AX031)   XLON      NORMAL    YLAT
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28079,19 +28085,19 @@ list xytvar[i=1:7:2]
  142   / 2:  1022.00  3022.00  5022.00  7022.00
  143   / 3:  1023.00  3023.00  5023.00  7023.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT
+ dealloc  dynamic grid (G011)          (AX031)   XLON      NORMAL    YLAT
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT
- dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT
- allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT
+ allocate dynamic grid (G011)          TTIME     (AX032)   NORMAL    YLAT
+ dealloc  dynamic grid (G011)          TTIME     (AX032)   NORMAL    YLAT
+ allocate dynamic grid (G011)          TTIME     (AX032)   NORMAL    YLAT
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT
- strip regrid on Y: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          TTIME     (AX032)   NORMAL    YLAT
+ strip regrid on Y: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT
+ dealloc  dynamic grid (G011)          TTIME     (AX032)   NORMAL    YLAT
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28107,19 +28113,19 @@ list xytvar[j=2:6:2]
  144   / 2:  1024.00  2024.00  3024.00  4024.00
  146   / 3:  1026.00  2026.00  3026.00  4026.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT
+ dealloc  dynamic grid (G011)          TTIME     (AX032)   NORMAL    YLAT
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
+ allocate dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
+ allocate dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
- strip regrid on X: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
+ strip regrid on X: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:170 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28135,7 +28141,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -28153,17 +28159,17 @@ show grid xytvar
 list/k=1:2 xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL
- dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL
- allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL
+ allocate dynamic grid (G011)          (AX033)   XLON      YLAT      NORMAL
+ dealloc  dynamic grid (G011)          (AX033)   XLON      YLAT      NORMAL
+ allocate dynamic grid (G011)          (AX033)   XLON      YLAT      NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   XLON      YLAT      NORMAL
+ strip regrid on X: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:      1      7  J:    1    3  K:    1    2  L:   -999   -999
  nulrgd  XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M:180 dset:   1 I:      1      7  J:    1    3  K:    1    2  L:   -999   -999
- dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL
+ dealloc  dynamic grid (G011)          (AX033)   XLON      YLAT      NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28179,20 +28185,20 @@ list/k=1:2 xytvar[i=1:7:2]
  142   / 2:  1022.00  3022.00  5022.00  7022.00
  143   / 3:  1023.00  3023.00  5023.00  7023.00
 list/k=1:2 xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL
+ dealloc  dynamic grid (G011)          (AX033)   XLON      YLAT      NORMAL
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL
- allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL
+ allocate dynamic grid (G011)          TTIME     (AX029)   YLAT      NORMAL
+ dealloc  dynamic grid (G011)          TTIME     (AX029)   YLAT      NORMAL
+ allocate dynamic grid (G011)          TTIME     (AX029)   YLAT      NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          TTIME     (AX029)   YLAT      NORMAL
+ strip regrid on Y: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:      1      4  J:    2    6  K:    1    2  L:   -999   -999
  nulrgd  XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    2    6  K:    1    2  L:   -999   -999
- dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL
+ dealloc  dynamic grid (G011)          TTIME     (AX029)   YLAT      NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28208,19 +28214,19 @@ list/k=1:2 xytvar[j=2:6:2]
  144   / 2:  1024.00  2024.00  3024.00  4024.00
  146   / 3:  1026.00  2026.00  3026.00  4026.00
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL
+ dealloc  dynamic grid (G011)          TTIME     (AX029)   YLAT      NORMAL
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   NORMAL
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   NORMAL
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   NORMAL
+ strip regrid on X: XYTVAR --> (G011)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
  nulrgd  XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M:180 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -28236,7 +28242,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   NORMAL
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  canceling dset ./bn_strides.cdf
  
@@ -28261,16 +28267,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
- strip regrid on X: MIDVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
+ strip regrid on X: MIDVAR --> (G011)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:170 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28285,26 +28291,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.00  1552.00
  5   / 2:  1515.00  1555.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
  -DELETE MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_6
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6
- strip regrid on X: MIDVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_6
+ strip regrid on X: MIDVAR --> (G011)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      1      5  J:    5    8  K:    3    5  L:      1      1
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M:180 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:170 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28319,26 +28325,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.00  1558.00
  5   / 2:  1515.00  1555.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_6
  -DELETE MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
- strip regrid on X: MIDVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
+ strip regrid on X: MIDVAR --> (G011)           @XACT
  strip reversing MIDVAR on X axis:        1        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      4      8  J:    2    5  K:    3    5  L:      1      1
  doing reversing MIDVAR on X axis:        1        5 dset:   1
  -DELETE MIDVAR   M:180 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:170 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28353,7 +28359,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1582.00  1542.00
  5   / 2:  1585.00  1545.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
  -DELETE MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -28361,16 +28367,16 @@ canc data/all
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
- strip regrid on X: MIDVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G011)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:170 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:180 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28385,7 +28391,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.00  5125.00
  5   / 2:  1155.00  5155.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
  -DELETE MIDVAR   M:170 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -28393,19 +28399,19 @@ canc data/all
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
- strip regrid on X: MIDVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G011)           @XACT
  strip reversing MIDVAR on X axis:        1        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    4    7  K:    3    5  L:      7      7
  doing reversing MIDVAR on X axis:        1        5 dset:   1
  -DELETE MIDVAR   M:170 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:170 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:180 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28420,7 +28426,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.00  2775.00
  5   / 2:  6745.00  2745.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
  -DELETE MIDVAR   M:170 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -28428,16 +28434,16 @@ canc data/all
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
- strip regrid on X: MIDVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G011)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:170 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28452,26 +28458,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.00  5152.00
  5   / 2:  1155.00  5155.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
  -DELETE MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
- strip regrid on X: MIDVAR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G011)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    5    8  K:    3    5  L:      7      7
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M:180 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:170 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28486,7 +28492,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.00  2758.00
  5   / 2:  6755.00  2755.00
 canc data/all
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
  -DELETE MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -28786,15 +28792,15 @@ stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28813,7 +28819,7 @@ stat $1[gx=xtrop]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  -DELETE SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
@@ -28826,15 +28832,15 @@ stat $1[gx=xtrop]
  -DELETE I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28857,21 +28863,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
 stat $1x
  !-> stat sstx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  -DELETE SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid SSTX     C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  eval    SSTX     C:  6 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -28889,7 +28895,7 @@ stat $1x
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -28901,7 +28907,7 @@ stat $1x
  -DELETE I        M:170 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  found   SSTX     M:173 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  
@@ -28922,22 +28928,22 @@ stat $1x
  Standard deviation: 9.8848
  
 define grid/x=xtrop gx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  -DELETE SSTX     M:173 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  -DELETE SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
 stat $1[g=gx]
  !-> stat sst[g=gx]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28956,7 +28962,7 @@ stat $1[g=gx]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  -DELETE SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
@@ -28969,15 +28975,15 @@ stat $1[g=gx]
  -DELETE I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28999,19 +29005,19 @@ stat $1[g=gx]
 define axis/y=20s:20n:1 ytrop
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  -DELETE SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29030,7 +29036,7 @@ stat $1[gx=xtrop,gy=ytrop]
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
  -DELETE SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
@@ -29043,16 +29049,16 @@ stat $1[gx=xtrop,gy=ytrop]
  -DELETE I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29073,7 +29079,7 @@ stat $1[gx=xtrop,gy=ytrop]
  
 define grid/like=$1/x=xtrop/y=ytrop gxyt
  !-> define grid/like=sst/x=xtrop/y=ytrop gxyt
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
  -DELETE SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  getgrid EX#1     C:  6 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
@@ -29571,15 +29577,15 @@ stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- strip regrid on X: SST5 --> (G002)           @LIN
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST5 --> (G010)           @LIN
  found   SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  
              SST+5
              regrid: 1 deg on X
@@ -29598,7 +29604,7 @@ stat $1[gx=xtrop]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  -DELETE SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
@@ -29611,15 +29617,15 @@ stat $1[gx=xtrop]
  -DELETE I        M:152 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- strip regrid on X: SST5 --> (G002)           @LIN
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST5 --> (G010)           @LIN
  found   SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  
              SST+5
              regrid: 1 deg on X
@@ -29642,21 +29648,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
 stat $1x
  !-> stat sst5x
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  -DELETE SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid SST5X    C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  eval    SST5X    C:  6 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- strip regrid on X: SST5 --> (G002)           @LIN
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST5 --> (G010)           @LIN
  found   SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29674,7 +29680,7 @@ stat $1x
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -29686,7 +29692,7 @@ stat $1x
  -DELETE I        M:148 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  found   SST5X    M:150 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  
@@ -29709,15 +29715,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  found   SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  
              SST+5
              regrid: 1 deg on X
@@ -29736,7 +29742,7 @@ stat $1[g=gx]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -29748,13 +29754,13 @@ stat $1[g=gx]
  -DELETE I        M:148 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  found   SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  
              SST+5
              regrid: 1 deg on X
@@ -29776,7 +29782,7 @@ stat $1[g=gx]
 define axis/y=20s:20n:1 ytrop
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst5[gx=xtrop,gy=ytrop]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST5 --> GXYT             @LIN
@@ -29958,7 +29964,7 @@ let $1xyt = $1[g=gxyt]
  -DELETE SST5XYT  M:146 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
  -DELETE SST5X    M:150 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
  -DELETE SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  -DELETE SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  -DELETE SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
@@ -30464,7 +30470,7 @@ say `a,return=isize`
  getgrid (C09,V11 C: 12 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 (C09,V11 C: 12 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  ABSTRACT  NORMAL    NORMAL
+ allocate dynamic grid (G010)          ABSTRACT  ABSTRACT  NORMAL    NORMAL
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
@@ -30509,7 +30515,7 @@ cancel mode verify
  -DELETE (C31,V11 M:166 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  -DELETE (C09,V11 M:150 dset:   0 I:      1      3  J:    1    3  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G002)          ABSTRACT  ABSTRACT  NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          ABSTRACT  ABSTRACT  NORMAL    NORMAL
  -DELETE (C01,V11 M:146 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  -DELETE A        M:153 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -30563,8 +30569,8 @@ list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
           29.5170
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G017)
+    GRID (G017)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -30592,8 +30598,8 @@ list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
           29.5170
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G017)
+    GRID (G017)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
@@ -30619,8 +30625,8 @@ list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg]
           29.5170
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G017)
+    GRID (G017)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
@@ -30706,9 +30712,9 @@ Dynamic axes:
 let g = sst[x=0:30:.1,d=coads_climatology]
 set grid g
 show grid
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Default grid for DEFINE VARIABLE is (G017)
+ Last successful data access was on grid (G017)
+    GRID (G017)
  name       axis              # pts   start                end                 subset
  (AX026)   LONGITUDE          301 r   0E                   30E                 full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -30718,7 +30724,7 @@ show grid
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
 show grid
- Default grid for DEFINE VARIABLE is (G006)
+ Default grid for DEFINE VARIABLE is (G017)
  Last successful data access was on grid (G012)
     GRID (G012)
  name       axis              # pts   start                end                 subset
@@ -30848,47 +30854,47 @@ list a1[gxz=a2]
 ! 6/01
 ! test use of expressions in dynamic grid commands
 SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
-    GRID (G018)
+    GRID (G011)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
-    GRID (G018)
+    GRID (G011)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  (AX018)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
-    GRID (G011)
+    GRID (G006)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
  (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
  normal    Z
  (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
-    GRID (G018)
+    GRID (G011)
  name       axis              # pts   start                end                 subset
  ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
  (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]),SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])
-    GRID (G018)
+    GRID (G011)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  (AX012)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
-    GRID (G011)
+    GRID (G006)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
  (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
  normal    Z
  (AX018)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
-    GRID (G018)
+    GRID (G011)
  name       axis              # pts   start                end                 subset
  ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
  (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
@@ -30897,9 +30903,9 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10
  
 load/x=160e/y=5s temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5
 SHOW GRID
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G018)
-    GRID (G018)
+ Default grid for DEFINE VARIABLE is (G017)
+ Last successful data access was on grid (G011)
+    GRID (G011)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  (AX018)   LATITUDE            41 r   10S                  2S                  41 pts
@@ -30907,9 +30913,9 @@ SHOW GRID
  normal    T
 SET GRID  FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) + 5
 SHOW GRID
- Default grid for DEFINE VARIABLE is (G011)
- Last successful data access was on grid (G011)
-    GRID (G011)
+ Default grid for DEFINE VARIABLE is (G006)
+ Last successful data access was on grid (G006)
+    GRID (G006)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
  (AX025)   LATITUDE            41 r   10S                  2S                  full
@@ -30934,7 +30940,7 @@ SHOW GRID MYGRID
  normal    T
 SHOW GRID/DYNAMIC
 Dynamic grids:
-    GRID (G011)                          use count:   1
+    GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
  (AX025)   LATITUDE            41 r   10S                  2S
@@ -31781,7 +31787,7 @@ can mem/all
  
 let xy_laplace_gridded = scat2gridlaplace_xy(xax,yax,O2_umol_kg,x[gx=x_20],y[gy=y_20],2,2)
 show grid xy_laplace_gridded
-    GRID (G010)
+    GRID (G002)
  name       axis              # pts   start                end                 subset
  X_20      LONGITUDE           20mr   50E                  70E                 full
  Y_20      LATITUDE            20 r   10N                  20N                 full
@@ -32412,7 +32418,7 @@ let xln = if xlnb lt 0. then xlnb+360. else xlnb
 let wgtl = scat2gridlaplace_xy(xln,ylt, wgt, x[gx=xlonef], y[gy=ylatef], 2., 1)
  
 show grid wgtl
-    GRID (G017)
+    GRID (G018)
  name       axis              # pts   start                end                 subset
  XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)       full
  YLATEF    LATITUDE            73 r   47.25N               83.25N              full
@@ -34230,7 +34236,7 @@ go bn_unique_str2int
  
 SHOW FUNC/DETAIL unique_str2int
 UNIQUE_STR2INT(A)
-    Returns an ID number for each unique stringin the input array of strings (case sensitive)
+    Returns an ID number for each unique string in the input array of strings (case sensitive)
         Axes of result:
           X: inherited from argument(s)
           Y: inherited from argument(s)
@@ -34374,6 +34380,23 @@ SAMPLEN(TO_BE_SAMPLED,F_INDICES)
     sample a field at a list of F indices
     TO_BE_SAMPLED: data to sample at list of F indices supplied
     F_INDICES: list of F indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+    Fast 1D sample variable using set of indices
+    V: 1-D variable in X direction
+    Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+    Fast 1D sample string variable using set of indices
+    S: 1-D string variable in X direction (STRING)
+    Indices: List of indices at which to sample
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+    Returns data sampled by interpolating to a set of times in F direction
+    DAT_TO_SAMPLE: data to sample at set of times in F
+    YR: Year(s) yyyy
+    MO: Month(s), integer mm
+    DAY: Day(s) of month dd
+    HR: Hour(s) hh
+    MIN: Minute(s) mm
+    SEC: Second(s) ss
 SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
     Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
@@ -34395,15 +34418,14 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to L indices which may vary in IJK
     L_INDICES: ordered indices
     DAT_TO_SAMPLE: data to sample using L indices
-SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-    Returns data sampled by interpolating to a set of times in F direction
-    DAT_TO_SAMPLE: data to sample at set of times in F
-    YR: Year(s) yyyy
-    MO: Month(s), integer mm
-    DAY: Day(s) of month dd
-    HR: Hour(s) hh
-    MIN: Minute(s) mm
-    SEC: Second(s) ss
+SAMPLEM_MULTI(DAT_TO_SAMPLE,M_INDICES)
+    Returns data sampled according to M indices which may be function of IJKLN
+    DAT_TO_SAMPLE: data to sample using L indices
+    M_INDICES: ordered indices
+SAMPLEN_MULTI(DAT_TO_SAMPLE,N_INDICES)
+    Returns data sampled according to N indices which may be function of IJKLM
+    DAT_TO_SAMPLE: data to sample using L indices
+    N_INDICES: ordered indices
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
     Returns data sampled by interpolating to a set of times in T direction
     DAT_TO_SAMPLE: data to sample at set of times
@@ -34419,7 +34441,7 @@ SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
     XPTS: X values of sample points
     YPTS: Y values of sample points
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
-    Returns data sampled at a set of (X,Y) points, using nearest grid intersection
+    This function is deprecated. It is renamed to SAMPLEXY_NRST
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
     XPTS: X values of sample points
     YPTS: Y values of sample points
@@ -34444,12 +34466,23 @@ SAMPLEXY_CURV_NRST(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
     DAT_LAT: latitudes of input variable
     XPTS: X values of sample points
     YPTS: Y values of sample points
+SAMPLEXY_NRST(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled at a set of (X,Y) points, using nearest grid intersection
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X values of sample points
+    YPTS: Y values of sample points
 SAMPLEXYT(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
     Returns data sampled at a set of (X,Y,T) points, using linear interpolation
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
     XPTS: X values of sample points
     YPTS: Y values of sample points
     TPTS: T values of sample points
+SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+    Returns data sampled at a set of (X,Y,T) points, using nearest grid intersection
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X values of sample points
+    YPTS: Y values of sample points
+    TPTS: T values of sample points
 SAMPLEXZ(DAT_TO_SAMPLE,XPTS,ZPTS)
     Returns data sampled at a set of (X,Z) points, using linear interpolation
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
@@ -34460,20 +34493,6 @@ SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
     YPTS: Y values of sample points
     ZPTS: Z values of sample points
-SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-    Returns data sampled at a set of (X,Y,T) points, using nearest grid intersection
-    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    XPTS: X values of sample points
-    YPTS: Y values of sample points
-    TPTS: T values of sample points
-SAMPLE_FAST_I(V,Indices)
-    Fast 1D sample variable using set of indices
-    V: Variable to sample
-    Indices: List of indices at which to sample
-SAMPLE_FAST_I_STR(S,Indices)
-    Fast 1D sample string variable using set of indices
-    S: String Variable to sample (STRING)
-    Indices: List of indices at which to sample
 SAMPLE_FAST_I(V,Indices)
     Fast 1D sample variable using set of indices
     V: Variable to sample
@@ -35595,16 +35614,16 @@ CURV_TO_RECT(V,mapping)
     Apply mapping to regrid from curvilinear to rectangular grid
     V: Variable to regrid, on curvilinear grid V(x,y,z,t,e,f)
     mapping: mapping computed by curv_to_rect_MAP
+CURV_TO_RECT_FSU(V,mapping)
+    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+    mapping: mapping computed by curv_to_rect_MAP
 CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
     Compute mapping for regridding: curvilinear to rectangular grid.
     lon_in: Source grid longitudes (2-D) (degrees)
     lat_in: Source grid latitudes (2-D) (degrees)
     grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
     radius: Source points falling within radius are included in mapping to destination point (degrees)
-CURV_TO_RECT_FSU(V,mapping)
-    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
-    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
-    mapping: mapping computed by curv_to_rect_MAP
  
 use tripolar_subset.nc
 shade ht, geolon_vert_t, geolat_vert_t
@@ -36975,9 +36994,7 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
  2   / 2:"then, goodbye, my friend""then, hello, friend"     
  
 SET MODE IGNORE
-list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
- 1   / 1:........
- 2   / 2:........
+! list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+99 ELSE "goodbye"+", my ") + "friend"
  1   / 1:........
  2   / 2:........
@@ -38708,19 +38725,19 @@ show mem/free
 use/ord=x-y test_100x100.nc
 list/prec=1 a[i=1:100:10] !  this looks just right!!
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   YAX1_100  NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1    100  J:    1  100  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
- strip regrid on X: A --> (G005)           @XACT
+ allocate dynamic grid (G022)          (AX015)   YAX1_100  NORMAL    NORMAL
+ strip regrid on X: A --> (G022)           @XACT
  strip reversing A on Y axis:        1      100 dset:   1
  rdstride A        C:  8 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  doing reversing A on Y axis:        1      100 dset:   1
  -DELETE A        M:249 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  nulrgd  A        M:249 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
  -DELETE A        M:235 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   YAX1_100  NORMAL    NORMAL
              VARIABLE : IF I EQ J THEN 1 ELSE A0
                         regrid: 10 delta on X
              FILENAME : test_100x100.nc
@@ -38829,8 +38846,8 @@ list/prec=1 a[i=1:100:10] !  this looks just right!!
  100   / 100:  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G005)
-    GRID (G005)
+ Last successful data access was on grid (G022)
+    GRID (G022)
  name       axis              # pts   start                end                 subset
  (AX015)   X                   10 r   1                    91                  10 pts
  YAX1_100  Y                  100 r   1                    100                 full
@@ -38840,15 +38857,15 @@ show grid
 ! should be a diagonal path of steps all the way across the plot
 shade a[i=1:100:10]
  eval    EX#1     C:  4 dset:   1 I:      1    100  J:    1  100  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
- strip regrid on X: A --> (G005)           @XACT
+ allocate dynamic grid (G022)          (AX015)   YAX1_100  NORMAL    NORMAL
+ strip regrid on X: A --> (G022)           @XACT
  strip reversing A on Y axis:        1      100 dset:   1
  rdstride A        C:  8 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  doing reversing A on Y axis:        1      100 dset:   1
  -DELETE A        M:235 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  nulrgd  A        M:235 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
  -DELETE A        M:247 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   YAX1_100  NORMAL    NORMAL
 setting up 2D plot
  -DELETE A        M:247 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
 PPL plot 279  complete
@@ -39486,6 +39503,19 @@ T0 = 01-JAN-0000 00:00:00
        3>  16-AUG 06:38:15       2191.455   01-JUL 14:54:36        5478.637
        4>  15-NOV 14:05:33       2191.455   30-SEP 22:21:54        7670.092
  
+! test reading space delimited values - trac #2549
+columns/skip=3/var="v1,v2"/typ="num,num" longax.dat
+list/clobber/file=longaxspace.dat/norow/nohead v1, v2
+let nrecs = `v1,return=isize`
+ !-> DEFINE VARIABLE nrecs = 20500
+can data/all
+define axis/x=1:`nrecs`:1 xax
+ !-> define axis/x=1:20500:1 xax
+define grid/x=xax xgrid
+columns/grid=xgrid/delim="\b"/var="v1,v2"/typ="num,num" longaxspace.dat
+! this used to cause a crash (due to improper memory advancing to skip spaces)
+load v1
+ 
  
 ! ******** V5.42 Additions below ***********
  
@@ -40309,37 +40339,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
  dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPA
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPA
- dealloc  dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPA
- allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPA
+ allocate dynamic grid (G010)          (AX025)   NORMAL    NORMAL    TAX_SUBSPA
+ dealloc  dynamic grid (G010)          (AX025)   NORMAL    NORMAL    TAX_SUBSPA
+ allocate dynamic grid (G010)          (AX025)   NORMAL    NORMAL    TAX_SUBSPA
  eval    EX#1     C:  4 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPA
- strip regrid on X: V2D_REG --> (G002)           @XACT
+ allocate dynamic grid (G010)          (AX025)   NORMAL    NORMAL    TAX_SUBSPA
+ strip regrid on X: V2D_REG --> (G010)           @XACT
  found   V2D_REG  M:179 dset:   1 I:      0     14  J: -999 -999  K: -999 -999  L:      1      1
  regrid  V2D_REG  M:178 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPA
+ dealloc  dynamic grid (G010)          (AX025)   NORMAL    NORMAL    TAX_SUBSPA
              ....  12.0000  14.0000  16.0000  11.0000  13.0000  15.0000     ....
 l200n/order=x $2[l=1,i=0:14:7]
  !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:7]
         ............
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
- dealloc  dynamic grid (G002)          (AX017)   NORMAL    NORMAL    TAX_SUBSPA
+ dealloc  dynamic grid (G010)          (AX017)   NORMAL    NORMAL    TAX_SUBSPA
  -DELETE V2D_REG  M:177 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)
- dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)
+ allocate dynamic grid (G010)          XAX_SUBSPANORMAL    NORMAL    (AX025)
+ dealloc  dynamic grid (G010)          XAX_SUBSPANORMAL    NORMAL    (AX025)
+ allocate dynamic grid (G010)          XAX_SUBSPANORMAL    NORMAL    (AX025)
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      8
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)
- strip regrid on T: V2D_REG --> (G002)           @XACT
+ allocate dynamic grid (G010)          XAX_SUBSPANORMAL    NORMAL    (AX025)
+ strip regrid on T: V2D_REG --> (G010)           @XACT
  strip moduloing V2D_REG on T axis:        1       15 dset:   1
  rdstride V2D_REG  C:  9 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  doing moduloing V2D_REG on T axis:        1        5 dset:   1
  -DELETE V2D_REG  M:177 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  nulrgd  V2D_REG  M:177 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      8
  -DELETE V2D_REG  M:176 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1     15
- dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)
+ dealloc  dynamic grid (G010)          XAX_SUBSPANORMAL    NORMAL    (AX025)
  16-JAN-0000 / 1:   11.000
  16-MAR-0000 / 2:   71.000
  15-MAY-0000 / 3:  131.000
@@ -40840,37 +40870,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
  dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUB
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUB
- dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUB
- allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUB
+ allocate dynamic grid (G011)          (AX017)   NORMAL    NORMAL    TIRREG_SUB
+ dealloc  dynamic grid (G011)          (AX017)   NORMAL    NORMAL    TIRREG_SUB
+ allocate dynamic grid (G011)          (AX017)   NORMAL    NORMAL    TIRREG_SUB
  eval    EX#1     C:  4 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUB
- strip regrid on X: V2D_IRR --> (G018)           @XACT
+ allocate dynamic grid (G011)          (AX017)   NORMAL    NORMAL    TIRREG_SUB
+ strip regrid on X: V2D_IRR --> (G011)           @XACT
  found   V2D_IRR  M:100 dset:   1 I:      0     14  J: -999 -999  K: -999 -999  L:      1      1
  regrid  V2D_IRR  M: 99 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUB
+ dealloc  dynamic grid (G011)          (AX017)   NORMAL    NORMAL    TIRREG_SUB
              ....  12.0000  14.0000  16.0000  11.0000  12.1000  15.0000     ....
 l200n/order=x $2[l=1,i=0:14:7]
  !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:7]
         ............
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
- dealloc  dynamic grid (G018)          (AX015)   NORMAL    NORMAL    TIRREG_SUB
+ dealloc  dynamic grid (G011)          (AX015)   NORMAL    NORMAL    TIRREG_SUB
  -DELETE V2D_IRR  M: 98 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)
+ allocate dynamic grid (G011)          XIRREG_SUBNORMAL    NORMAL    (AX017)
+ dealloc  dynamic grid (G011)          XIRREG_SUBNORMAL    NORMAL    (AX017)
+ allocate dynamic grid (G011)          XIRREG_SUBNORMAL    NORMAL    (AX017)
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      8
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)
- strip regrid on T: V2D_IRR --> (G018)           @XACT
+ allocate dynamic grid (G011)          XIRREG_SUBNORMAL    NORMAL    (AX017)
+ strip regrid on T: V2D_IRR --> (G011)           @XACT
  strip moduloing V2D_IRR on T axis:        1       15 dset:   1
  rdstride V2D_IRR  C:  9 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  doing moduloing V2D_IRR on T axis:        1        5 dset:   1
  -DELETE V2D_IRR  M: 98 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  nulrgd  V2D_IRR  M: 98 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      8
  -DELETE V2D_IRR  M: 97 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1     15
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)
+ dealloc  dynamic grid (G011)          XIRREG_SUBNORMAL    NORMAL    (AX017)
  16-JAN-0000 / 1:   11.000
  15-MAR-0000 / 2:   70.249
  15-MAY-0000 / 3:  131.249
@@ -41917,8 +41947,8 @@ list/x=160e/y=5s temp[d=2,k=1,gxy=a[d=1]]
           29.5170
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G005)
-    GRID (G005)
+ Last successful data access was on grid (G022)
+    GRID (G022)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -43138,7 +43168,7 @@ SHO VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
 </axes>
 </grid>
@@ -43193,7 +43223,7 @@ SHO VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
 </axes>
 </grid>
@@ -43215,7 +43245,7 @@ SHOW VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
 </axes>
 </grid>
@@ -44549,52 +44579,52 @@ let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
 load a
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G023)          (AX023)   (AX013)   NORMAL    (AX033)
- dealloc  dynamic grid (G023)          (AX023)   (AX013)   NORMAL    (AX033)
- allocate dynamic grid (G023)          (AX023)   (AX013)   NORMAL    (AX033)
- allocate dynamic grid (G023)          (AX023)   (AX013)   NORMAL    (AX033)
+ allocate dynamic grid (G015)          (AX023)   (AX013)   NORMAL    (AX033)
+ dealloc  dynamic grid (G015)          (AX023)   (AX013)   NORMAL    (AX033)
+ allocate dynamic grid (G015)          (AX023)   (AX013)   NORMAL    (AX033)
+ allocate dynamic grid (G015)          (AX023)   (AX013)   NORMAL    (AX033)
  eval    EX#1     C:  4 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  eval    A        C:  6 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
- allocate dynamic grid (G023)          (AX023)   (AX013)   NORMAL    (AX033)
- strip regrid on X: TAUX --> (G023)           @XACT
+ allocate dynamic grid (G015)          (AX023)   (AX013)   NORMAL    (AX033)
+ strip regrid on X: TAUX --> (G015)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
  nulrgd  TAUX     M:245 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE TAUX     M:233 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
- dealloc  dynamic grid (G023)          (AX023)   (AX013)   NORMAL    (AX033)
+ dealloc  dynamic grid (G015)          (AX023)   (AX013)   NORMAL    (AX033)
 can mem/all
  -DELETE A        M:233 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE TAUX     M:245 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  
 def grid/like=taux agrid
- dealloc  dynamic grid (G023)          (AX023)   (AX013)   NORMAL    (AX033)
+ dealloc  dynamic grid (G015)          (AX023)   (AX013)   NORMAL    (AX033)
  getgrid EX#1     C:  6 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6
 set mode diag
 let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
  dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6
- dealloc  dynamic grid (G023)          (AX023)   (AX013)   NORMAL    (AX033)
+ dealloc  dynamic grid (G015)          (AX023)   (AX013)   NORMAL    (AX033)
 load a
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
- dealloc  dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
- allocate dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
- allocate dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
+ allocate dynamic grid (G015)          (AX013)   (AX023)   NORMAL    (AX024)
+ dealloc  dynamic grid (G015)          (AX013)   (AX023)   NORMAL    (AX024)
+ allocate dynamic grid (G015)          (AX013)   (AX023)   NORMAL    (AX024)
+ allocate dynamic grid (G015)          (AX013)   (AX023)   NORMAL    (AX024)
  eval    EX#1     C:  4 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  eval    A        C:  6 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
- allocate dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
- strip regrid on X: TAUX --> (G023)           @XACT
+ allocate dynamic grid (G015)          (AX013)   (AX023)   NORMAL    (AX024)
+ strip regrid on X: TAUX --> (G015)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
  nulrgd  TAUX     M:233 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE TAUX     M:245 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
- dealloc  dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
+ dealloc  dynamic grid (G015)          (AX013)   (AX023)   NORMAL    (AX024)
  
 can mem/all
  -DELETE TAUX     M:233 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE A        M:245 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
 can data/all
- dealloc  dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
- dealloc  dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
+ dealloc  dynamic grid (G015)          (AX013)   (AX023)   NORMAL    (AX024)
+ dealloc  dynamic grid (G015)          (AX013)   (AX023)   NORMAL    (AX024)
  canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
@@ -44637,16 +44667,16 @@ load var
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G004)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G004)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    3  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G004)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    2    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:240 dset:   1 I:      1      2  J:    2    3  K:    1    2  L:      1      1
  -DELETE VAR      M:233 dset:   1 I:      2      4  J:    2    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -44661,19 +44691,19 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.00  1224.00
  3   / 3:  1232.00  1234.00
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX045)   YAX1_3    ZAX1_2    TAX1_1
  -DELETE VAR      M:240 dset:   1 I:      1      2  J:    2    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1
- allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G004)          (AX018)   (AX046)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX018)   (AX046)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G004)          (AX018)   (AX046)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX018)   (AX046)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G004)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:233 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:240 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX018)   (AX046)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44694,19 +44724,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX018)   (AX046)   ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G004)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G004)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G004)           @XACT
  strip moduloing VAR on X axis:        1       10 dset:   1
  reading VAR      M:245 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  doing moduloing VAR on X axis:        1        4 dset:   1
  regrid  VAR      M:240 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -44727,18 +44757,18 @@ cancel axis/modulo XAX1_4
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX018)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1
- allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G004)          (AX046)   (AX045)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX046)   (AX045)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G004)          (AX046)   (AX045)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX046)   (AX045)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G004)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:240 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:245 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX046)   (AX045)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44753,19 +44783,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX046)   (AX045)   ZAX1_2    TAX1_1
  -DELETE VAR      M:240 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1
- allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G004)          (AX046)   (AX018)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX046)   (AX018)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G004)          (AX046)   (AX018)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX046)   (AX018)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G004)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:245 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:240 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX046)   (AX018)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44782,24 +44812,24 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G004)          (AX046)   (AX018)   ZAX1_2    TAX1_1
  -DELETE VAR      M:245 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      3      6  J:    1    1  K:    1    1  L:      1      1
  eval    A        C:  7 dset:   1 I:      3      5  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G004)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M:240 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
  -DELETE BIGVAR   M:245 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -44813,7 +44843,7 @@ list/j=1/k=1/l=1 a[i=3:5]
  21   / 5:  1131.00
  -DELETE A        M:233 dset:   1 I:      1      1  J:    3    5  K:    1    1  L:      1      1
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10
  dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10
@@ -44823,12 +44853,12 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
  allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10
  strip regrid on Y: A --> (G001)           @XACT
  eval    A        C:  8 dset:   1 I:      3      5  J:    1    7  K:    1    1  L:      1      1
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G004)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M:232 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
  -DELETE BIGVAR   M:233 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
  regrid  A        M:244 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
  dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
@@ -44916,22 +44946,22 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
 canc data/all
  dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
  -DELETE BIGVAR   M:245 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
  canceling dset ./bn_strides.cdf
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_10
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_10
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10
- strip regrid on X: BIGVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_10
+ strip regrid on X: BIGVAR --> (G004)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M:244 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:245 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44948,7 +44978,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1543.00  1743.00  1943.00
  6   / 3:  1363.00  1563.00  1763.00  1963.00
 canc data/all
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_10
  -DELETE BIGVAR   M:244 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -44959,16 +44989,16 @@ use bn_strides
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)
- allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)
+ allocate dynamic grid (G004)          (AX047)   (AX048)   NORMAL    (AX046)
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   NORMAL    (AX046)
+ allocate dynamic grid (G004)          (AX047)   (AX048)   NORMAL    (AX046)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)
- strip regrid on X: XYTVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX047)   (AX048)   NORMAL    (AX046)
+ strip regrid on X: XYTVAR --> (G004)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:245 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:244 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   NORMAL    (AX046)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44986,7 +45016,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  
 use/order=tyx bn_strides
 show grid xytvar
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   NORMAL    (AX046)
  -DELETE XYTVAR   M:245 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
     GRID EGRID
@@ -44999,16 +45029,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)
- allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)
+ allocate dynamic grid (G004)          (AX048)   (AX047)   NORMAL    (AX045)
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   NORMAL    (AX045)
+ allocate dynamic grid (G004)          (AX048)   (AX047)   NORMAL    (AX045)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)
- strip regrid on X: XYTVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX048)   (AX047)   NORMAL    (AX045)
+ strip regrid on X: XYTVAR --> (G004)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:244 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:245 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   NORMAL    (AX045)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -45024,7 +45054,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.00  5043.00  5045.00  5047.00
  2N   / 1:  5021.00  5023.00  5025.00  5027.00
 canc data/all
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   NORMAL    (AX045)
  -DELETE XYTVAR   M:244 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -45043,16 +45073,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   NORMAL
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   NORMAL
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL
- strip regrid on X: XYTVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   NORMAL
+ strip regrid on X: XYTVAR --> (G004)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
  nulrgd  XYTVAR   M:245 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M:244 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -45068,7 +45098,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   NORMAL
  -DELETE XYTVAR   M:245 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  canceling dset ./bn_strides.cdf
  
@@ -45079,16 +45109,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_6
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_6
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_6
+ strip regrid on X: MIDVAR --> (G004)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:245 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45103,26 +45133,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.00  1552.00
  5   / 2:  1515.00  1555.00
 canc data/all
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_6
  -DELETE MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   TAX1_6
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   TAX1_6
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   TAX1_6
+ strip regrid on X: MIDVAR --> (G004)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      1      5  J:    5    8  K:    3    5  L:      1      1
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M:244 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:245 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45137,7 +45167,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.00  1558.00
  5   / 2:  1515.00  1555.00
 canc data/all
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   TAX1_6
  -DELETE MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -45145,16 +45175,16 @@ canc data/all
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G004)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:245 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:244 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45169,7 +45199,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.00  5125.00
  5   / 2:  1155.00  5155.00
 canc data/all
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
  -DELETE MIDVAR   M:245 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -45177,19 +45207,19 @@ canc data/all
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G004)           @XACT
  strip reversing MIDVAR on X axis:        1        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    4    7  K:    3    5  L:      7      7
  doing reversing MIDVAR on X axis:        1        5 dset:   1
  -DELETE MIDVAR   M:245 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:245 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:244 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45204,7 +45234,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.00  2775.00
  5   / 2:  6745.00  2745.00
 canc data/all
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
  -DELETE MIDVAR   M:245 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -45212,16 +45242,16 @@ canc data/all
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G004)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:245 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45236,26 +45266,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.00  5152.00
  5   / 2:  1155.00  5155.00
 canc data/all
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
  -DELETE MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
- strip regrid on X: MIDVAR --> (G014)           @XACT
+ allocate dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G004)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    5    8  K:    3    5  L:      7      7
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M:244 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:245 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45270,7 +45300,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.00  2758.00
  5   / 2:  6755.00  2755.00
 canc data/all
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
  -DELETE MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -48076,11 +48106,11 @@ ppl list labels
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/debug) Ver.7.1
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/debug) Ver.7.2
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
  LAB 2  8.000E+00  7.100E+00 0.060    0  SYSTEM  @ASNOAA/PMEL TMAP
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS17-APR-2017 16:46:47
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS12-JUL-2017 09:52:45
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
  LAB 4  0.000E+00  6.800E+00 0.120    0  SYSTEM  @ASLONGITUDE : 179E
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
@@ -48733,7 +48763,7 @@ GO err580_irreg_bounds.jnl
 def ax/t/edge time = {0,1,3}
 let a = t[gt=time]
 show grid/t a
-    GRID (G011)
+    GRID (G006)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -49395,7 +49425,7 @@ GO bn_long_revision_num.jnl
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "7.1"
+FERRET_VERSION = "7.2"
  
 ! history attribute
 let a = 12
@@ -49413,7 +49443,7 @@ LAB1 = "X : 0.5 to 314.5"
  
 ! show commands without an argument, lists version number at the top
 sho command
- Commands in Program FERRET (beta/debug) version7.1:
+ Commands in Program FERRET (beta/debug) version7.2:
  SET
  SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
  SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
@@ -49523,7 +49553,7 @@ sho command
         /DEGMINSE/HALFSPAC
  SPAWN
  WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
-       /TRANPOSE/NOLABEL/ZSCALE/TITLE
+       /TRANPOSE/NOLABEL/ZSCALE/COLOR/TITLE
  QUERY/ALL/FILE/IGNORE
  IF
  ELSE
@@ -49553,7 +49583,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "17-Apr-17:16:45"
+WIN_TITLE = "12-Jul-17:09:51"
  
 set win/title="set the title"
 sho sym win_title
@@ -49571,7 +49601,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="17-Apr-17:16:45"
+ !-> set win/title="12-Jul-17:09:51"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -49580,16 +49610,16 @@ set win/title="($session_date):($session_time)"
 ! If so substitute another string.
  
 DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 17-Apr-17
+ !-> DEFINE SYMBOL the_date = 12-Jul-17
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 16:45
+ !-> DEFINE SYMBOL the_time = 09:51
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="17-Apr-17:16:45"
+ !-> SET WIN/TITLE="12-Jul-17:09:51"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "17-Apr-17:16:45"
+WIN_TITLE = "12-Jul-17:09:51"
  
 GO bn_reset bn_last_error.jnl
 cancel mode verify
@@ -51526,15 +51556,15 @@ sh dat/att
   
  .                               history         CHAR        6    F       EZ.DAT
   
- a1                    FLOAT     long_name       CHAR        2    T       a1
-                                 missing_value   FLOAT       1    T       -1.E+34
+ a1                    DOUBLE    long_name       CHAR        2    T       a1
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  three           FLOAT       3    T       1 2 3
   
- a2                    FLOAT     long_name       CHAR        2    T       a2
-                                 missing_value   FLOAT       1    T       -1.E+34
+ a2                    DOUBLE    long_name       CHAR        2    T       a2
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- a3                    FLOAT     long_name       CHAR        2    T       a3
-                                 missing_value   FLOAT       1    T       -1.E+34
+ a3                    DOUBLE    long_name       CHAR        2    T       a3
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 save/file=a.nc/clobber a1,a2,a3
 sp echo "bn_attributes.jnl --- 14 attributes of data from ez data." >> all_ncdump.out
@@ -52790,11 +52820,11 @@ ELEMENT_INDEX_STR_N(VAR,STRINGS)
     VAR: string data to mask (STRING)
     STRINGS: list of strings to match (STRING)
 IS_ELEMENT_OF(VAR,VALUES)
-    Returns 1 if first argument contains any of the values in argument 2, else 0
+    Returns 1 if first argument contains any of the values in 2nd arg, else 0
     VAR: data to test
     VALUES: values to search for
 IS_ELEMENT_OF_STR(VAR,VALUES)
-    Returns 1 if first argument contains any of the values in 2nd argument (case sensitive), else 0
+    Returns 1 if first argument contains any of the values in 2nd arg (case sensitive), else 0
     VAR: string (STRING)
     VALUES: strings to search (STRING)
 IS_ELEMENT_OF_STR_N(VAR,VALUES)
@@ -54090,7 +54120,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -54139,7 +54169,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -55635,7 +55665,7 @@ DNCASE(STR)
 STRCAT(STR1,STR2)
 SUBSTRING(STR,OFFSET,LENGTH)
 STRFLOAT(STR)
-INNERPRODUCT(VAR1,VAR2,IDIM)
+DOT(VAR1,VAR2,IDIM)
 TRANSPOSE(VAR,DIM1,DIM2)
  
 Externally defined functions available to Ferret:
@@ -55661,9 +55691,16 @@ CONVOLVEM(COM,WEIGHT)
 CONVOLVEN(COM,WEIGHT)
 CURV_RANGE(LONGITUDES,LATITUDES,xrange_lo,xrange_hi,yrange_lo,yrange_hi,modulo flag for X coordinates)
 CURV_TO_RECT(V,mapping)
+CURV_TO_RECT_FSU(V,mapping)
 CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
 DATE1900(formatted date)
 DAYS1900TOYMDHMS(day1900)
+DOT_E(VAR1,VAR2)
+DOT_F(VAR1,VAR2)
+DOT_T(VAR1,VAR2)
+DOT_X(VAR1,VAR2)
+DOT_Y(VAR1,VAR2)
+DOT_Z(VAR1,VAR2)
 ECAT(A,B)
 ECAT_STR(A,B)
 ELEMENT_INDEX(VAR,VALUES)
@@ -55671,13 +55708,24 @@ ELEMENT_INDEX_STR(VAR,STRINGS)
 ELEMENT_INDEX_STR_N(VAR,STRINGS)
 EOF_SPACE(A,frac_timeser)
 EOF_STAT(A,frac_timeser)
+EOFSVD_SPACE(A)
+EOFSVD_STAT(A)
+EOFSVD_TFUNC(A)
 EOF_TFUNC(A,frac_timeser)
 EREVERSE(A)
+EXPND_BY_LEN(var,len,nx)
+EXPND_BY_LEN_STR(var,len,nx)
 EXPNDI_BY(dat,mask,outsize)
+EXPNDI_BY_M_COUNTS(Data,Row Sizes,Result X axis)
+EXPNDI_BY_M_COUNTS_STR(Data,Row Sizes,Result X axis)
 EXPNDI_BY_T(dat,mask,n_profiles,max_profile_len)
 EXPNDI_BY_Z(dat,mask,n_profiles,max_profile_len)
+EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
+EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EXPNDI_TO_ET(var data,time data,Rowsize (E direction),Result T)
 FCAT(A,B)
 FCAT_STR(A,B)
+FC_ISUBSET(index_list,lengths,nx,FullData)
 FFTA(A)
 FFT_IM(A)
 FFT_INVERSE(A,B)
@@ -55688,6 +55736,7 @@ FINDHI(A,XRANGE,YRANGE)
 FINDLO(A,XRANGE,YRANGE)
 FLOATSTR(A,FMT)
 FREVERSE(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
 IS_ELEMENT_OF(VAR,VALUES)
 IS_ELEMENT_OF_STR(VAR,VALUES)
 IS_ELEMENT_OF_STR_N(VAR,VALUES)
@@ -55700,27 +55749,37 @@ MINMAX(A)
 MINUTES24(formatted time)
 NCO(operator,arguments)
 NCO_ATTR(FileName,VariableName,AttributeName,AttType,Mode,AttributeValue)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
 PT_IN_POLY(A,XVERT,YVERT)
 RECT_TO_CURV(V,lon_bounds_out,lat_bounds_out,missing_allowed)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
 SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
 SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
 SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
-SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+SAMPLEM_MULTI(DAT_TO_SAMPLE,M_INDICES)
+SAMPLEN_MULTI(DAT_TO_SAMPLE,N_INDICES)
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CURV(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
 SAMPLEXY_CURV_AVG(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
 SAMPLEXY_CURV_NRST(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
+SAMPLEXY_NRST(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXYT(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
 SAMPLEXZ(DAT_TO_SAMPLE,XPTS,ZPTS)
 SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
 SCAT2DDUPS(coord 1,coord 2,epsilon 1,epsilon 2)
 SCAT2GRID_BIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
 SCAT2GRID_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRID_BIN_XYZ(XPTS,YPTS,ZPTS,F,XAXPTS,YAXPTS,ZAXPTS)
+SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
+SCAT2GRID_MINMAX_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
+SCAT2GRID_STD_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRIDGAUSS_XT(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XT_V0(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XY(XPTS,YPTS,F,XAXPTS,YAXPTS,XSCALE,YSCALE,CUTOFF,0)
@@ -55744,6 +55803,8 @@ SCAT2GRID_NBIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRID_NOBS_XY(XPTS,YPTS,XAXPTS,YAXPTS)
 SCAT2GRID_NOBS_XYT(XPTS,YPTS,TPTS,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRID_T(TPTS,TAXIS)
+SEPARATE(A,Rowsize,FixLongitudes)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
 SORTI(DAT)
 SORTI_STR(STR)
 SORTJ(DAT)
@@ -55756,6 +55817,9 @@ SORTM(DAT)
 SORTM_STR(STR)
 SORTN(DAT)
 SORTN_STR(STR)
+STR_MASK(STRING,MASK,--)
+STR_NOBLANKS(STR)
+STR_REPLACE(INSTRING,S1,S2)
 TAUTO_COR(A)
 TAX_DATESTRING(A,B,C)
 TAX_DAY(A,B)
@@ -55771,6 +55835,9 @@ TAX_YEARFRAC(A,B)
 TCAT(A,B)
 TCAT_STR(A,B)
 TEST_OPENDAP(url)
+TIME_REFORMAT(A)
+TRACKS2GRID_MASK_AVE_XYT(VAR,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS,MASK)
+TRACKS2GRID_STD_XYT(VARIABLE,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS)
 TRANSPOSE_EF(VAR)
 TRANSPOSE_TE(VAR)
 TRANSPOSE_TF(VAR)
@@ -55789,6 +55856,7 @@ TRANSPOSE_ZT(VAR)
 TREVERSE(A)
 UNIQUE_STR2INT(A)
 WRITE_WEBROW(id,name,Cruise_Mask,filename)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
 XAUTO_COR(A)
 XCAT(A,B)
 XCAT_STR(A,B)
@@ -55803,40 +55871,6 @@ ZAXREPLACE_ZLEV(V,THICKNESS,ZAX)
 ZCAT(A,B)
 ZCAT_STR(A,B)
 ZREVERSE(A)
-EOFSVD_SPACE(A)
-EOFSVD_STAT(A)
-EOFSVD_TFUNC(A)
-EXPND_BY_LEN(var,len,nx)
-EXPND_BY_LEN_STR(var,len,nx)
-FC_ISUBSET(index_list,lengths,nx,FullData)
-EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
-EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
-EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
-STR_MASK(STRING,MASK,--)
-SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-SEPARATE(A,Rowsize,FixLongitudes)
-TIME_REFORMAT(A)
-FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
-CURV_TO_RECT_FSU(V,mapping)
-PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
-SAMPLE_FAST_I(V,Indices)
-SAMPLE_FAST_I_STR(S,Indices)
-SEPARATE_STR(A,Rowsize,FixLongitudes)
-WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
-BXCAT(A,B)
-BXSEQUENCE(A)
-BXSEQUENCE_STR(A)
-BCOMPRESSI(DAT)
-SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
-STR_NOBLANKS(STR)
-STR_REPLACE(INSTRING,S1,S2)
-EXPNDI_TO_ET(var data,time data,Rowsize (E direction),Result T)
-INNERPRODUCT_X(VAR1,VAR2)
-INNERPRODUCT_Y(VAR1,VAR2)
-INNERPRODUCT_Z(VAR1,VAR2)
-INNERPRODUCT_T(VAR1,VAR2)
-INNERPRODUCT_E(VAR1,VAR2)
-INNERPRODUCT_F(VAR1,VAR2)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -55861,7 +55895,6 @@ STRING_ARG(Flags,NString)
 STRING_CAT3(A,B,C)
 STRING_LEN_SUM(S1,S2)
 STRINGS_AS_ARGS(S1,S2,NCHAR)
-STRING_TO_ID(STRINGS)
 STR_MISSING(MASK,STR,REPL)
 STUDENT_T_CUTOFF(P,nf)
 SUBTRACT(A,B)
@@ -57775,8 +57808,8 @@ SHOW DAT/ATT
   
  .                               history         CHAR        7    F       dat.dat
   
- my_asc                FLOAT     long_name       CHAR        11   T       chlorophyll
-                                 missing_value   FLOAT       1    T       3
+ my_asc                DOUBLE    long_name       CHAR        11   T       chlorophyll
+                                 missing_value   DOUBLE      1    T       3
                                  units           CHAR        12   T       micrograms/L
   
 SAVE/FILE=a.nc/CLOBBER my_asc
@@ -60162,10 +60195,10 @@ ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_clock_syms
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "47.0518"
-CLOCK_SECS = "76.913"
-CURRENT_DATE = "17-Apr-17"
-CURRENT_TIME = "16:47:14"
+DELTA_CPU = "95.9394"
+CLOCK_SECS = "129.132"
+CURRENT_DATE = "12-Jul-17"
+CURRENT_TIME = "09:53:29"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60174,8 +60207,8 @@ CURRENT_TIME = "16:47:14"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.040994"
-CLOCK_SECS = "77.068"
+DELTA_CPU = "0.079988"
+CLOCK_SECS = "129.293"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -60189,60 +60222,60 @@ repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=9
 !-> REPEAT: K=10
 let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.266959
+ !-> DEFINE VARIABLE ten_plots = 0.506922
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0"
-CLOCK_SECS = "78.427"
+DELTA_CPU = "0.001"
+CLOCK_SECS = "130.91"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "78.428"
+CLOCK_SECS = "130.912"
 repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
 let sumcpu =`sumcpu + dt`)
  !-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
 !-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.033994
- !-> DEFINE VARIABLE sumcpu =0.033994
+ !-> DEFINE VARIABLE dt = 0.06799
+ !-> DEFINE VARIABLE sumcpu =0.06799
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.028996
- !-> DEFINE VARIABLE sumcpu =0.06299
+ !-> DEFINE VARIABLE dt = 0.052992
+ !-> DEFINE VARIABLE sumcpu =0.120982
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.031995
- !-> DEFINE VARIABLE sumcpu =0.094985
+ !-> DEFINE VARIABLE dt = 0.050992
+ !-> DEFINE VARIABLE sumcpu =0.171974
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.12798
+ !-> DEFINE VARIABLE dt = 0.053992
+ !-> DEFINE VARIABLE sumcpu =0.225966
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.030995
- !-> DEFINE VARIABLE sumcpu =0.158975
+ !-> DEFINE VARIABLE dt = 0.051992
+ !-> DEFINE VARIABLE sumcpu =0.277958
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.19297
+ !-> DEFINE VARIABLE dt = 0.050992
+ !-> DEFINE VARIABLE sumcpu =0.32895
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.028996
- !-> DEFINE VARIABLE sumcpu =0.221966
+ !-> DEFINE VARIABLE dt = 0.053992
+ !-> DEFINE VARIABLE sumcpu =0.382942
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.029996
- !-> DEFINE VARIABLE sumcpu =0.251962
+ !-> DEFINE VARIABLE dt = 0.054991
+ !-> DEFINE VARIABLE sumcpu =0.437933
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.035994
- !-> DEFINE VARIABLE sumcpu =0.287956
+ !-> DEFINE VARIABLE dt = 0.050993
+ !-> DEFINE VARIABLE sumcpu =0.488926
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.320951
+ !-> DEFINE VARIABLE dt = 0.052992
+ !-> DEFINE VARIABLE sumcpu =0.541918
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.320951
-0.320951
+ !-> MESSAGE/CONTINUE 0.541918
+0.541918
 sh sym CLOCK_SECS
-CLOCK_SECS = "80.781"
+CLOCK_SECS = "133.553"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "17-Apr-17"
-SESSION_TIME = "16:45"
-CURRENT_DATE = "17-Apr-17"
-CURRENT_TIME = "16:47:18"
+SESSION_DATE = "12-Jul-17"
+SESSION_TIME = "09:51"
+CURRENT_DATE = "12-Jul-17"
+CURRENT_TIME = "09:53:33"
  
  
 ! ******** V6.3 Additions below ***********
@@ -62948,11 +62981,11 @@ save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
 sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
 Bytes: 197528
 sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
-Bytes: 125228
+Bytes: 125636
 sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
-Bytes: 124816
+Bytes: 125250
 sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
-Bytes: 118881
+Bytes: 119315
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -62969,9 +63002,9 @@ save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
 sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
 Bytes: 60560
 sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32404
+Bytes: 32900
 sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32581
+Bytes: 33115
  
 cancel list/all
 set list/ncformat=classic
@@ -63248,7 +63281,7 @@ let tpts = 39798 + 87*RANDU(I)
 show grid tt
     GRID (G093)
  name       axis              # pts   start                end                 subset
- x10       X                  201 r   0                    10                  full
+ X10       X                  201 r   0                    10                  full
  Y10       Y                  201 r   0                    10                  full
  normal    Z
  TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   10 pts
@@ -64155,9 +64188,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 45 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v7.1 (beta/debug)"                                                
- 3    /  3:" ! Linux 2.6.32-696.1.1.el6.x86_64 64-bit - 04/17/17"                       
- 4    /  4:" ! 17-Apr-17 16:45     "                                                    
+ 2    /  2:" ! FERRET v7.2 (beta/debug)"                                                
+ 3    /  3:" ! Linux 2.6.32-696.3.2.el6.x86_64 64-bit - 07/12/17"                       
+ 4    /  4:" ! 12-Jul-17 09:51     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -64250,7 +64283,7 @@ regridding transforms e.g.SST[GX=x5deg at AVE]
    @MAX        maximum                      @NRST       nearst coord
    @SUM        area-wgtd sum                @BIN        unwgtd avg
    @NGD        #gd pts, area wgtd           @NBIN       #good in bin
-   @MOD        modulo ave
+   @MOD        modulo ave                   @IIN        #indef integral
  
 auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
    code        description                  code        description
@@ -66708,40 +66741,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.148
-randu2_randn2       0.852
-randu2_randn2       0.072
-randu2_randn2       0.121
-randu2_randn2       0.649
+randu2_randn2       0.755
+randu2_randn2       0.885
+randu2_randn2       0.428
+randu2_randn2       0.677
+randu2_randn2       0.061
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.522
-randu2_randn2       0.962
-randu2_randn2       0.365
-randu2_randn2       0.973
-randu2_randn2       0.332
+randu2_randn2       0.613
+randu2_randn2       0.029
+randu2_randn2       0.293
+randu2_randn2       0.277
+randu2_randn2       0.607
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.329
-randu2_randn2       0.680
-randu2_randn2       0.442
-randu2_randn2       0.609
-randu2_randn2       0.777
-randu2_randn2       0.799
+randu2_randn2       0.713
+randu2_randn2       0.235
+randu2_randn2       0.054
+randu2_randn2       0.282
+randu2_randn2       0.345
+randu2_randn2       0.214
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.438
-randu2_randn2       0.052
-randu2_randn2       0.123
-randu2_randn2       0.274
-randu2_randn2       0.719
-randu2_randn2       0.166
+randu2_randn2       0.989
+randu2_randn2       0.563
+randu2_randn2       0.542
+randu2_randn2       0.199
+randu2_randn2       0.853
+randu2_randn2       0.395
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66766,40 +66799,40 @@ randu2_randn2       0.638
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.255
-randu2_randn2       0.053
-randu2_randn2       1.155
-randu2_randn2      -0.079
-randu2_randn2      -1.461
+randu2_randn2      -0.985
+randu2_randn2      -2.244
+randu2_randn2       0.281
+randu2_randn2       0.988
+randu2_randn2      -0.766
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       1.544
-randu2_randn2      -0.576
-randu2_randn2      -0.874
-randu2_randn2       0.399
-randu2_randn2      -0.532
+randu2_randn2      -0.698
+randu2_randn2      -0.470
+randu2_randn2      -1.085
+randu2_randn2      -0.810
+randu2_randn2      -0.525
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.805
-randu2_randn2       0.884
-randu2_randn2       0.535
-randu2_randn2       0.086
-randu2_randn2      -0.192
-randu2_randn2       0.304
+randu2_randn2       1.275
+randu2_randn2      -1.232
+randu2_randn2       1.093
+randu2_randn2       0.427
+randu2_randn2      -0.453
+randu2_randn2       0.042
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -1.786
-randu2_randn2       1.110
-randu2_randn2      -1.738
-randu2_randn2       1.397
-randu2_randn2      -0.281
-randu2_randn2      -0.459
+randu2_randn2      -0.347
+randu2_randn2      -0.293
+randu2_randn2      -1.142
+randu2_randn2      -1.119
+randu2_randn2       0.198
+randu2_randn2      -0.552
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66824,14 +66857,14 @@ randu2_randn2      -1.279
  Column  1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
  Column  2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
  Column  3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2       1.426       1.426       0.699
-randu2_randn2       1.238       1.238       0.699
-randu2_randn2       0.699       0.699       0.127
-randu2_randn2       0.052       0.052       0.388
-randu2_randn2      -0.428      -0.428       0.388
-randu2_randn2      -0.979      -0.428       0.388
-randu2_randn2       0.127       0.127       0.388
-randu2_randn2       0.388       0.388       0.388
+randu2_randn2       1.045       1.429       0.276
+randu2_randn2       1.429       1.045       0.276
+randu2_randn2       0.276       0.276       0.262
+randu2_randn2       0.262       0.262       0.276
+randu2_randn2      -0.538      -0.129       0.276
+randu2_randn2      -0.129      -0.538       0.276
+randu2_randn2      -0.554      -0.129       0.276
+randu2_randn2       0.582       0.582       0.582
  
 GO bn_reset bn_axis_cf
 cancel mode verify
@@ -72667,7 +72700,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72720,7 +72753,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72762,7 +72795,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72804,7 +72837,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72837,7 +72870,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72871,7 +72904,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72934,7 +72967,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72982,7 +73015,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73039,7 +73072,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73077,7 +73110,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73115,7 +73148,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73153,7 +73186,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73187,7 +73220,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73425,7 +73458,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73459,7 +73492,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73503,7 +73536,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73544,7 +73577,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73570,7 +73603,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73596,7 +73629,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -74053,7 +74086,7 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74082,7 +74115,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74133,7 +74166,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74712,8 +74745,8 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Mon Apr 17 16:47:39 2017: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "Wed Jul 12 09:54:09 2017: ncks -h -A -h z1.nc append_to_this.nc\n",
+			"FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
@@ -74749,7 +74782,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74780,7 +74813,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74843,7 +74876,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74871,7 +74904,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75677,6 +75710,7 @@ go bn_vtree_regrid
 ! exercise 12/14 enhancements to display regrid target on a separate line
 ! updated 1/26/15 to exercise multiple regrid target outputs
 ! updated 2/23/15 to report target of regrid even when aux regridding occurs
+! 5/2017 note that the fix for #2533 causes some duplicate  UNKNOWN GRID lines
  
 ! case 1: target grid known,   regridded variable known
 let myvar = 1           ! var to be regridded is known
@@ -76021,6 +76055,7 @@ go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]]  ! dup known targets
    in default dataset levitus_climatology
    MYVAR = X[GX=X1] + Y[GY=Y1]
      regrid to TEMP
+     regrid to TEMP
      regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset levitus_climatology
@@ -76037,13 +76072,16 @@ go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad]      ! dup unknown suppressed
    MYVAR = X[GX=X1] + Y[GY=Y1]
      regrid to TEMP
      regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset levitus_climatology
    MYVAR = X[GX=X1] + Y[GY=Y1]
      regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
 /TREE=FILE
    regrid to TEMP[d=levitus_climatology]
    *unknown grid: MYBAD
+   *unknown grid: MYBAD
 the problem is UNKNOWN GRID: MYBAD
 ************************
 go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
@@ -76606,7 +76644,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76629,7 +76667,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76860,7 +76898,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76890,7 +76928,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76911,7 +76949,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76932,7 +76970,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76954,7 +76992,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -77387,7 +77425,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -77404,7 +77442,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -77421,7 +77459,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -77457,50 +77495,52 @@ GO bn_let_remote
 ! Tests of the F-TDS LET/REMOTE
 ! 6/2016 installed NVODS on new-bock server
 ! 9/2016 load smaller subsets of the data
-! 4/2017 Use the THREDDS server at http://ferret.pmel.noaa.gov/pmel/thredds
+! 4/2017 Update thredds server urls. To find the right URL, go to the dataset
+!        in the NVODS server, and hit the "Export to Desktop Application"
+!        button. The .jnl address is the correct F-TDS URL.
  
 ! See if the F-TDS is working and bail if not.
-let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
 load status
 if `status NE 0` then EXIT/SCRIPT
  !-> if 0 then EXIT/SCRIPT
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
-let/D=1/remote myvar = t0112mn1[k=1:5 at sum]
-let/D=1/remote ave_z = t0112mn1[z=0:20 at ave]
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+let/D=1/remote myvar = t00an1[k=1:5 at sum]
+let/D=1/remote ave_z = t00an1[z=0:20 at ave]
 sh var
  Created by DEFINE VARIABLE:
-     AVE_Z[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[Z=0:20 at AVE]
-     MYVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[K=1:5 at SUM]
+     AVE_Z[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[Z=0:20 at AVE]
+     MYVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[K=1:5 at SUM]
  >>> Definitions that replace any file variable of same name:
-     STATUS = TEST_OPENDAP("http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+     STATUS = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
 set view ul; shade/l=7/x=180:200/y=20:30 myvar
 set view ur; shade/l=3/x=180:200/y=20:30 ave_z
  
 list/l=7/x=300:310/y=15 myvar, ave_z
-             DATA SET: http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
              LONGITUDE: 60W to 50W
              LATITUDE: 15N (interpolated)
-             TIME: 14-JUL 12:00
- Column  1: MYVAR is T0112MN1[K=1:5 at SUM]
- Column  2: AVE_Z is T0112MN1[Z=0:20 at AVE]
+             TIME: 02-JUL-0003 05:27
+ Column  1: MYVAR is T00AN1[K=1:5 at SUM]
+ Column  2: AVE_Z is T00AN1[Z=0:20 at AVE]
              MYVAR   AVE_Z
-59.5W / 301:  138.8  27.89
-58.5W / 302:  139.2  27.91
-57.5W / 303:  139.4  27.95
-56.5W / 304:  140.4  28.14
-55.5W / 305:  137.4  27.62
-54.5W / 306:  135.3  27.32
-53.5W / 307:  134.0  27.07
-52.5W / 308:  136.4  27.34
-51.5W / 309:   ....   ....
-50.5W / 310:  135.1  27.19
- 
-let/D=1/remote ave_t = t0112mn1[L=1:12 at ave]
+59.5W / 301:  136.6  27.41
+58.5W / 302:  136.4  27.37
+57.5W / 303:  136.2  27.31
+56.5W / 304:  135.8  27.24
+55.5W / 305:  135.3  27.15
+54.5W / 306:  134.9  27.05
+53.5W / 307:  134.4  26.95
+52.5W / 308:  133.8  26.84
+51.5W / 309:  133.3  26.72
+50.5W / 310:  132.7  26.60
+ 
+let/D=1/remote ave_t = t00an1[L=1:12 at ave]
 set view ll; shade/z=0/x=180:200/y=20:30 ave_t
  
-let/D=1/remote/units="`t0112mn1,ret=units`"/title="Summer average Temperature" ave_summer = t0112mn1[t=15-jun:15-sep at ave]
- !-> DEFINE VARIABLE/D=1/remote/units="deg C"/title="Summer average Temperature" ave_summer = t0112mn1[t=15-jun:15-sep at ave]
+let/D=1/remote/units="`t00an1,ret=units`"/title="Summer average Temperature" ave_summer = t00an1[t=15-jun:15-sep at ave]
+ !-> DEFINE VARIABLE/D=1/remote/units="deg C"/title="Summer average Temperature" ave_summer = t00an1[t=15-jun:15-sep at ave]
 set view lr; shade/z=0/x=180:200/y=20:30 ave_summer
  
 can view
@@ -77508,17 +77548,17 @@ can data/all; can var/all
  
 ! open another dataset, define more remote variables
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
 let/D=2/remote sstsum = sst[L=1:5 at sum]
 let/D=2/remote airtsum = airt[L=1:5 at sum]
 sh dat
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
  name     title                             I         J         K         L
- T0112MN1 Temperature                      1:360     1:180     1:24      1:12
+ T00AN1   Temperature                      1:360     1:180     1:33      1:1
  
-    2> http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl  (default)
+    2> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:12
  AIRT     AIR TEMPERATURE                  1:180     1:90      ...       1:12
@@ -77535,7 +77575,7 @@ sh dat
 set view ul; plot/y=-10/x=50:150 sstsum
 set view ur; plot/y=-10/x=50:150 airtsum
 list/y=-10/x=50:59 sstsum,airtsum
-             DATA SET: http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
              LONGITUDE: 50E to 59E
              LATITUDE: 10S (interpolated)
  Column  1: SSTSUM is SST[L=1:5 at SUM]
@@ -77550,7 +77590,7 @@ list/y=-10/x=50:59 sstsum,airtsum
 let both = sstsum + airtsum
 set view lower; plot/y=-10/x=50:150 both
 list/y=-10/x=50:59 sstsum, airtsum, both
-             DATA SET: http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
              LONGITUDE: 50E to 59E
              LATITUDE: 10S (interpolated)
  Column  1: SSTSUM is SST[L=1:5 at SUM]
@@ -77566,7 +77606,7 @@ list/y=-10/x=50:59 sstsum, airtsum, both
 can dat/all; can var/all
  
 ! make several remote definitions. They can be used together in an expression.
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
 let/D=1/remote sstsum = sst[L=1:5 at sum]
 let/D=1/remote airtsum = airt[L=1:5 at sum]
 let/D=1/remote factor = 12
@@ -77574,7 +77614,7 @@ let/D=1/remote combo = factor*(airtsum - sstsum)
 list/y=-5/x=130w:110w combo
              VARIABLE : FACTOR*(AIRTSUM - SSTSUM)
              FILENAME : data_coads_climatology.jnl
-             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/
              SUBSET   : 10 points (LONGITUDE)
              LATITUDE : 5S
                  5S    
@@ -77593,10 +77633,10 @@ list/y=-5/x=130w:110w combo
  
 can dat/all; can var/all
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
  
 ! This is ok let/remote/D=
-let/D=1/remote myvar = t0112mn1[z=1:100 at ave]
+let/D=1/remote myvar = t00an1[z=1:100 at ave]
  
 ! Intentional errors:
  
@@ -77604,17 +77644,17 @@ let/D=1/remote myvar = t0112mn1[z=1:100 at ave]
 ! the remote server so the same datsets are not open there.
  
 set mode ignore
-let/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+let/D=1/remote rvar = t00an1[d=1,z=1:100 at ave]
  
  
 ! But, require LET/D= with /REMOTE
-let/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+let/remote rvar = t00an1[d=1,z=1:100 at ave]
  
 ! If expressions involve local variables not defined in the remote dset,
 ! then the variable can be computed but not as a remote-var.
  
 let a = 12
-let/D=1/remote avar = a*t0112mn1[L=@ave]
+let/D=1/remote avar = a*t00an1[L=@ave]
 list/x=300/y=15 avar
  
 SET MODE/LAST ignore
@@ -77623,29 +77663,29 @@ SET MODE/LAST ignore
 let/D=1/remote a = 12
 sho dat
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl  (default)
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl  (default)
  name     title                             I         J         K         L
- T0112MN1 Temperature                      1:360     1:180     1:24      1:12
+ T00AN1   Temperature                      1:360     1:180     1:33      1:1
  ------------------------------
- A[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = 12
- AVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = A*T0112MN1[L=@AVE]
- MYVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[Z=1:100 at AVE]
+ A[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = 12
+ AVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = A*T00AN1[L=@AVE]
+ MYVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[Z=1:100 at AVE]
  
 list/x=300/y=15/z=0:100 avar
-             VARIABLE : A*T0112MN1[L=@AVE]
-             FILENAME : data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
-             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/
+             VARIABLE : A*T00AN1[L=@AVE]
+             FILENAME : data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/
              SUBSET   : 7 points (DEPTH (m))
              LONGITUDE: 60W (interpolated)
              LATITUDE : 15N (interpolated)
-             TIME     : 01-JAN 12:00 to 30-DEC 06:00
- 0      / 1:  329.8
- 10     / 2:  329.4
- 20     / 3:  329.2
- 30     / 4:  328.7
- 50     / 5:  325.1
- 75     / 6:  315.3
- 100    / 7:  302.9
+             TIME     : 01-JUL 00:00 to 02-JUL 00:00
+ 0      / 1:  329.3
+ 10     / 2:  329.1
+ 20     / 3:  328.8
+ 30     / 4:  328.2
+ 50     / 5:  324.4
+ 75     / 6:  313.9
+ 100    / 7:  300.0
  
 can dat/all; can var/all
  
@@ -78677,7 +78717,7 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 }
  
 set mode/last upcase
@@ -78775,7 +78815,7 @@ variables:
 		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -78802,7 +78842,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V7.1 (beta/debug) 17-Apr-17 
+ FERRET V7.2 (beta/debug) 12-Jul-17 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -78837,7 +78877,7 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V7.1 (beta/debug) 17-Apr-17 
+ ..history = The history of the fileFERRET V7.2 (beta/debug) 12-Jul-17 
  ..Conventions = Conventions for variables named V2CF-1.6 
  
 GO bn_reset bn_center_key_labels
@@ -81712,16 +81752,19 @@ say ($a)
 foobar
  
 ! ======
+! Note this result changes 6/30/2017, due to change in merge_grid for ticket
+! 2313, in grid-merging the grid of a constant is now a normal grid. Previously
+! it was the abstract grid.
 DEFINE SYMBOL a    "(`foobar,return=xaxis`)"
- !-> DEFINE SYMBOL a    "(ABSTRACT)"
+ !-> DEFINE SYMBOL a    "(NORMAL)"
 say ($a)
- !-> MESSAGE/CONTINUE (ABSTRACT)
-(ABSTRACT)
+ !-> MESSAGE/CONTINUE (NORMAL)
+(NORMAL)
 DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
- !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(NORMAL)_DQ_
 say ($a)
- !-> MESSAGE/CONTINUE (ABSTRACT)
-(ABSTRACT)
+ !-> MESSAGE/CONTINUE (NORMAL)
+(NORMAL)
  
 ! ======
 GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_    "_DQ_+-/_SQ_\!foobar;_SQ_"
@@ -83148,7 +83191,7 @@ LIST/PREC=7 tempz_alt
  48.5S / 2:  7.726000  7.917999
  49.5S / 1:  6.843000  7.021999
 SHOW GRID tempz_alt
-    GRID (G094)
+    GRID (G109)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -87635,20 +87678,20 @@ GO err696_time_overlay
 def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=noleap tax_nlp
 def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=julian tax_jul
 sp date
-Mon Apr 17 16:48:02 PDT 2017
+Wed Jul 12 09:54:47 PDT 2017
 set view upper
 plot t[gt=tax_nlp]
 plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
 sp date
-Mon Apr 17 16:48:02 PDT 2017
+Wed Jul 12 09:54:47 PDT 2017
  
 sp date
-Mon Apr 17 16:48:02 PDT 2017
+Wed Jul 12 09:54:47 PDT 2017
 set view lower
 plot t[gt=tax_jul]
 plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
 sp date
-Mon Apr 17 16:48:02 PDT 2017
+Wed Jul 12 09:54:47 PDT 2017
  
 GO bn_reset
 cancel mode verify
@@ -87705,7 +87748,7 @@ variables:
 		var:long_name = "0*TT + X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -87822,7 +87865,7 @@ all data in memory:
          3/106W                1/12N              ... / ...             ... /01-JAN 00:45        1/0.5              ... / ...
          3/104W                9/30N              ... / ...             ... /31-DEC 06:34        4/4.5              ... / ...
                                                               AVE
- SST[D=fourfiles]                  YTE   mr:196 size:432
+ SST[D=fourfiles]                  YTE   mr:194 size:432
          3/106W                1/12N              ... / ...                1/01-JAN 00:45        1/0.5              ... / ...
          3/104W                9/30N              ... / ...               12/31-DEC 06:34        4/4.5              ... / ...
  
@@ -88607,7 +88650,7 @@ variables:
 		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -91663,22 +91706,22 @@ show data/attr my_fmrc
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
   
- FCST                  FLOAT     long_name       CHAR        18   T       FIELD + FCST_ERROR
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        18   T       FIELD + FCST_ERROR
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        34   T       RUN TIME16 TF_TIMES TIME16 YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
   
- TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+ TF_TIMES              DOUBLE    long_name       CHAR        25   T       Forecast time step matrix
                                  units           CHAR        31   T       days since 01-JAN-1900 00:00:00
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  _CoordinateAxisType
                                                  CHAR        4    T       Time
                                  calendar        CHAR        9    T       GREGORIAN
   
- FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        39   T       TF_CAL_F TIME16 TF_TIMES TIME16 YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
@@ -92864,6 +92907,7 @@ GO bn_aggregate_tef
 ! 2/2016 *sh*
 ! 3/2016 - modified to test single point axis aggregations on Z axis
 ! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
+! *acm*7/2017 0=success for SPAWN_STATUS
  
 ! to avoid re-creating the test files include argument "0" as in
 !  yes?  GO bn_aggregate_tef 0
@@ -93299,17 +93343,17 @@ SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
   
  .                               aggregate name  CHAR        6    F       te_f11
   
- FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        13   T       some variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  im_everywhere   CHAR        13   F       so promote me
                                  long_name_mod   CHAR        7    F       L=31:42
   
- FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  long_name_mod   CHAR        7    F       L=31:42
   
- REALIZATION           FLOAT     long_name       CHAR        1    T       1
-                                 missing_value   FLOAT       1    T       -1.E+34
+ REALIZATION           DOUBLE    long_name       CHAR        1    T       1
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 ! define tef aggregation
@@ -93432,7 +93476,7 @@ SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (XAX)                  DOUBLE    point_spacing   CHAR        4    T       even
@@ -93488,13 +93532,13 @@ SHOW DATA/ATT te_f04_1v  ! note atts im_everwhere vs im_not_everwhere
   
  .                               aggregate name  CHAR        9    F       te_f04_1v
   
- FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        13   T       some variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  im_everywhere   CHAR        13   F       so promote me
                                  long_name_mod   CHAR        7    F       L=10:21
   
- REALIZATION           FLOAT     long_name       CHAR        1    T       1
-                                 missing_value   FLOAT       1    T       -1.E+34
+ REALIZATION           DOUBLE    long_name       CHAR        1    T       1
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 ! define fcst_2 as a LET/D variable and then do same calc
@@ -93715,23 +93759,23 @@ SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
   
  .                               aggregate name  CHAR        3    F       tfe
   
- FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        13   T       some variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        33   T       RUN TIME16 TF_TIMES ZAX1 YAX1 XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
                                  im_everywhere   CHAR        13   F       so promote me
   
- TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+ TF_TIMES              DOUBLE    long_name       CHAR        25   T       Forecast time step matrix
                                  units           CHAR        31   T       days since 01-JAN-1900 00:00:00
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  _CoordinateAxisType
                                                  CHAR        4    T       Time
                                  calendar        CHAR        9    T       GREGORIAN
   
- FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        39   T       TF_CAL_F1 TIME16 TF_TIMES ZAX1 YAX1 XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
@@ -93930,7 +93974,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7.1 (beta/debug) 17-Apr-17 
+ ..history = FERRET V7.2 (beta/debug) 12-Jul-17 
  ..Conventions = CF-1.6 
  ..dt_internal = 15
 sh att elev
@@ -93951,7 +93995,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7.1 (beta/debug) 17-Apr-17 
+ ..history = FERRET V7.2 (beta/debug) 12-Jul-17 
  ..Conventions = CF-1.6 
 sh att elev
      attributes for dataset: ./a.nc
@@ -94077,9 +94121,9 @@ GO bn_speedtest
 ! bn_speedtest.jnl
 ! issue large numbers of commands, timing with clock time
 can mode verify
-10K LET commands LET a = 0 takes  1.025000000000006  seconds
-Second 10K LET commands LET a = 0 takes  2.292  seconds
-5K LOAD with transform takes  3.584  seconds
+10K LET commands LET a = 0 takes  2.234  seconds
+Second 10K LET commands LET a = 0 takes  3.519  seconds
+5K LOAD with transform takes  3.849000000000018  seconds
  
 GO bn_reset bn_show_noupcase
 cancel mode verify
@@ -95198,7 +95242,7 @@ show dat/att 1
   
  ------------------------------
  myvar[D=coads_climatology]      long_name       CHAR        11   T       coads myvar
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 show att myvar
@@ -95260,7 +95304,7 @@ show dat/att 2
   
  ------------------------------
  myvar[D=levitus_climatology]    long_name       CHAR        13   T       Levitus myvar
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 show att myvar
      attributes for user-defined variables
@@ -96098,7 +96142,7 @@ sho command/brief v
  
 ! All the commands, no subcommands, no qualifiers
 SHOW COMMAND/BRIEF
- Commands in Program FERRET (beta/debug) version7.1:
+ Commands in Program FERRET (beta/debug) version7.2:
  SET
  SHOW
  CANCEL
@@ -97073,20 +97117,9 @@ list/nohead strindex(..title, "file")
  
  
 ! Bug 2477 plot axes are not fully drawn, some /VS plots
-go bn_reset
-cancel mode verify
-ooooooooooooooooooooooooooooooooooooooooooo
-go err700_vs_plot_axes
-! err700_vs_plot_axes.jnl
-! See ticket 2477, in some cases the plot axes are not fully drawn
-! 11/2016 ACM
- 
- 
-USE err700_vs_data.nc
- 
-! only with PLOT/VS plots, only with SYMBOLS not PLOT/VS/LINE
-PLOT/VS/THICK/COLOR=red/SIZ=0.2 lon,lat
-FRAME/FILE=bn_axis_vs.gif
+! move this to bn_gif.jnl
+! go bn_reset
+! go err700_vs_plot_axes
  
 ! Bug 2483. Fixing axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
 go bn_reset
@@ -97561,7 +97594,7 @@ save/clob/file=a.nc c
  allocate dynamic grid (G208)          C2D_AX_X  NORMAL    NORMAL    NORMAL
  pseudo  X        M:244 dset:   0 I:     11     31  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid (G208)          C2D_AX_X  NORMAL    NORMAL    NORMAL
- -DELETE C        M:241 dset:   0 I:     11     30  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE C        M:240 dset:   0 I:     11     30  J: -999 -999  K: -999 -999  L:   -999   -999
  
 set mode /last diag
  
@@ -97599,6 +97632,11 @@ sh dat
  
 sh axis/t tax
  name       axis              # pts   start                end
+ TAX       T                    1 i   1                    1
+   Axis span (to cell edges) = 2
+ 
+       L     T                   TBOX      TBOXLO
+       1>  1                     2          0
  
  
  
@@ -97809,7 +97847,7 @@ variables:
 		VAR:long_name = "X[GX=XLON]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 go bn_reset
@@ -97868,7 +97906,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -97915,7 +97953,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -98501,10 +98539,10 @@ sh dat/att
  .                               aggregate name  CHAR        2    F       uu
   
  SST                   FLOAT     long_name       CHAR        3    T       sst
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  TEMP                  FLOAT     long_name       CHAR        14   T       temp in uagg_5
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 can dat/all
  
@@ -98830,16 +98868,16 @@ SHOW DATA/ATT tue_f03   ! notice the promotion of fcst.im_everywhere
  .                               aggregate name  CHAR        7    F       tue_f03
   
  FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  REALIZATION           FLOAT     long_name       CHAR        1    T       1
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  FCST_3                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 ! define tuef aggregation
@@ -98919,17 +98957,17 @@ SHOW DATA/brief/files
 16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_tu3.nc
  
    13> t_f_u01_e1     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u01_e1
- 
+          Member datasets:
+      13.1: t_f01_e1
+      13.2: t_f01_e1_3
    14> t_f_u01_e2     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u01_e2
- 
+          Member datasets:
+      14.1: t_f01_e2
+      14.2: t_f01_e2_3
    16> t_f_u02_e2     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u02_e2
- 
+          Member datasets:
+      16.1: t_f02_e2
+      16.2: t_f02_e2_3
    22> tuef  (default)  Forecast aggregation
           Member datasets:
       22.1: tue_f01
@@ -99061,8 +99099,8 @@ sh dat/att
   
  .                               history         CHAR        7    F       abc.dat
   
- abc                   FLOAT     long_name       CHAR        3    T       abc
-                                 missing_value   FLOAT       1    T       -1.E+34
+ abc                   DOUBLE    long_name       CHAR        3    T       abc
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 save/clobber/file=a.nc abc
 sp ncdump -h a.nc
@@ -99073,14 +99111,14 @@ variables:
 	double AX043(AX043) ;
 		AX043:point_spacing = "even" ;
 		AX043:axis = "X" ;
-	float abc(AX043) ;
-		abc:missing_value = -1.e+34f ;
-		abc:_FillValue = -1.e+34f ;
+	double abc(AX043) ;
+		abc:missing_value = -1.e+34 ;
+		abc:_FillValue = -1.e+34 ;
 		abc:long_name = "abc" ;
 		abc:history = "From abc.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -99111,8 +99149,8 @@ sh dat/att
   
  .                               history         CHAR        7    F       abc.dat
   
- abc                   FLOAT     long_name       CHAR        3    T       abc
-                                 missing_value   FLOAT       1    T       -1.E+34
+ abc                   DOUBLE    long_name       CHAR        3    T       abc
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
     2> ./bn_delimited_read_1.dat  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
@@ -99121,21 +99159,21 @@ sh dat/att
  .                               history         CHAR        23   F       bn_delimited_read_1.dat
   
  lab                   CHAR      long_name       CHAR        3    T       lab
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  nothing               CHAR      long_name       CHAR        7    T       nothing
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- var                   FLOAT     long_name       CHAR        3    T       var
-                                 missing_value   FLOAT       1    T       -1.E+34
+ var                   DOUBLE    long_name       CHAR        3    T       var
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- latitude              FLOAT     long_name       CHAR        8    T       latitude
+ latitude              DOUBLE    long_name       CHAR        8    T       latitude
                                  units           CHAR        13   T       degrees_north
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- longitude             FLOAT     long_name       CHAR        9    T       longitude
+ longitude             DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 sav/file=a.nc/clobber var,longitude,latitude
 sp ncdump -h a.nc
@@ -99146,28 +99184,28 @@ variables:
 	double AX103(AX103) ;
 		AX103:point_spacing = "even" ;
 		AX103:axis = "X" ;
-	float var(AX103) ;
-		var:missing_value = -1.e+34f ;
-		var:_FillValue = -1.e+34f ;
+	double var(AX103) ;
+		var:missing_value = -1.e+34 ;
+		var:_FillValue = -1.e+34 ;
 		var:long_name = "var" ;
 		var:history = "From bn_delimited_read_1.dat" ;
-	float longitude(AX103) ;
-		longitude:missing_value = -1.e+34f ;
-		longitude:_FillValue = -1.e+34f ;
+	double longitude(AX103) ;
+		longitude:missing_value = -1.e+34 ;
+		longitude:_FillValue = -1.e+34 ;
 		longitude:long_name = "longitude" ;
 		longitude:units = "degrees_east" ;
 		longitude:long_name_mod = "Longitude" ;
 		longitude:history = "From bn_delimited_read_1.dat" ;
-	float latitude(AX103) ;
-		latitude:missing_value = -1.e+34f ;
-		latitude:_FillValue = -1.e+34f ;
+	double latitude(AX103) ;
+		latitude:missing_value = -1.e+34 ;
+		latitude:_FillValue = -1.e+34 ;
 		latitude:long_name = "latitude" ;
 		latitude:units = "degrees_north" ;
 		latitude:long_name_mod = "Latitude" ;
 		latitude:history = "From bn_delimited_read_1.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -99425,9 +99463,11 @@ show data/members
  U        U                                1:5       1:4       ...       1:10
  V        V                                1:5       1:4       ...       1:10
  
-          time-dependent data files:
-31-DEC-2009 23:59 -> 31-DEC-2009 23:59    bn_agg_member_syntax.jnl
- 
+          Member datasets:
+      5.1: tmp/uagg_1.nc
+      5.2: tmp/uagg_2.nc
+      5.3: tmp/uagg_3.nc
+      5.4: tmp/uagg_4.nc
 show data 5.2
      currently SET data sets:
     2> tmp/uagg_2.nc
@@ -99874,7 +99914,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -99943,7 +99983,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -100014,7 +100054,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+ .                               history         CHAR        34   T       FERRET V7.2 (beta/debug) 12-Jul-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -100431,7 +100471,7 @@ variables:
 		VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -100462,88 +100502,9 @@ show grid vart
  TAX3      TIME                 7 i   09-NOV-2015 02:24    13-NOV-2015 02:24   full
  
  
-GO bn_reset
-cancel mode verify
-ooooooooooooooooooooooooooooooooooooooooooo
-GO err71_plotvs_mode_label
-! err71_plotVS_mode_label.jnl
-!  *acm*3/17/17 Ticket 2517:
-! MODE LONG_LABEL, MODE LATIT_LABEL need to apply
-! to PLOT/VS plots.
- 
-can mode logo
- 
-set mode long_lab
-set mode latit_lab
- 
-let/title="|Roll|"/units="degree" abscissa_roll = {0, 20}
-let/title="Wind Speed"/units="kn" ordinate_spd  = {0, 0}
- 
-! labeled lon/lat axes. Units of "degrees" is taken to be degrees
-! east or north depending on which plot axis it is drawn on.
- 
-set view ul
-plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
-set view ur
-plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
- 
-! These modes turn off lon/lat axis labeling
- 
-cancel mode long_lab
-cancel mode latit_lab
- 
-set view ll
-plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
-set view lr
-plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
- 
-! Explicit units units of degrees_east and degrees_north:
-! degrees_east draws longitude labeling on whichever plot axis
-! the associated variable is drawn, and likewise for degrees_north.
-! Setting or cancelling the label modes applies to the variable
-! units not the plot-axis direction.
- 
-cancel view
-set mode long_lab
-set mode latit_lab
- 
-let/title="East"/units="degrees_east" lon = {10,20,30}
-let/title="North"/units="degrees_north" lat = {-10,0,10}
- 
-! longitude axis on the horizontal, latitude axis on the vertical
- 
-set view ul; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit TRUE"
- 
-! latitude axis on the horizontal, longitude axis on the vertical
- 
-set view ur; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long vertical  latit horizontal"
- 
-! longitude axis on the horizontal, latitude axis on the vertical
-! but with latitude labeling turned off
- 
-set mode long_lab
-cancel mode latit_lab
-set view ll; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit FALSE"
- 
-! latitude axis on the horizontal, longitude axis on the vertical
-! but with longitude labeling turned off
- 
-cancel mode long_lab
-set mode latit_lab
-set view lr; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long FALSE  latit TRUE"
- 
-frame/file=lon_lat_label_controls.gif
- 
- 
-! Restore default settings
-set mode long_lab
-set mode latit_lab
- 
-set mode/last logo
+! move this to bn_gif.jnl
+! GO bn_reset
+! GO err71_plotvs_mode_label
  
 GO bn_reset
 cancel mode verify
@@ -100684,7 +100645,7 @@ list a[i=2]
 GO bn_reset
 cancel mode verify
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
- -DELETE A        M:218 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:238 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  -DELETE attr     M:237 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  canceling dset ./coads_climatology.cdf
@@ -100716,46 +100677,733 @@ use write_int_att.nc
 cancel mode upcase
 save/file=a.nc/clobber mhchla
  
+! move this to bn_gif.jnl
+! GO bn_reset
+! GO err71_vs_constant
+ 
+! run this from bn_gif.jnl
+! GO bn_reset
+! GO err71_vs_lon_over
+ 
+ 
 GO bn_reset
 cancel mode verify
 ooooooooooooooooooooooooooooooooooooooooooo
-GO err71_vs_constant
-! err71_vs_constant.jnl
-! See ticket 2318, defining plot axes when data is constant
-! 4/2017 acm
+GO err71_point_average
+! err71_point_average.jnl
+! Ticket 2538 6/2017
+! Average over a point removes dependence on that dimension.
+! previously returned missing-data
  
-! The axis ranges had been set as val-1, val+1 which
-! worked poorly for large or small data values
+let a = x[x=1:5] + y[y=1:3]
+list a
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 by 3 points (X-Y)
+              1         2         3         4         5      
+               1         2         3         4         5
+ 1   / 1:  2.000000  3.000000  4.000000  5.000000  6.000000
+ 2   / 2:  3.000000  4.000000  5.000000  6.000000  7.000000
+ 3   / 3:  4.000000  5.000000  6.000000  7.000000  8.000000
+ 
+list a[y=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 points (X)
+             Y        : 2 (averaged)
+ 1   / 1:  3.000000
+ 2   / 2:  4.000000
+ 3   / 3:  5.000000
+ 4   / 4:  6.000000
+ 5   / 5:  7.000000
+list a[x=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 3 points (Y)
+             X        : 2 (averaged)
+ 1   / 1:  3.000000
+ 2   / 2:  4.000000
+ 3   / 3:  5.000000
+list a[y=2 at ave,x=4 at ave]  ! all prev. versions listed these as missing
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             X        : 4 (XY ave)
+             Y        : 2 (XY ave)
+          6.000000
+ 
+let a = z[z=1:5] + t[t=1:3]
+list a[z=2 at ave]
+             VARIABLE : Z[Z=1:5] + T[T=1:3]
+             SUBSET   : 3 points (T)
+             Z        : 2 (averaged)
+ 1   / 1:  3.000000
+ 2   / 2:  4.000000
+ 3   / 3:  5.000000
+list a[t=2 at ave]
+             VARIABLE : Z[Z=1:5] + T[T=1:3]
+             SUBSET   : 5 points (Z)
+             T        : 2 (averaged)
+ 1   / 1:  3.000000
+ 2   / 2:  4.000000
+ 3   / 3:  5.000000
+ 4   / 4:  6.000000
+ 5   / 5:  7.000000
+ 
+list a[t=2 at ave,z=4 at ave]
+             VARIABLE : Z[Z=1:5] + T[T=1:3]
+             Z        : 4 (ZT ave)
+             T        : 2 (ZT ave)
+          6.000000
+ 
+let a = _e[e=1:5] + _f[f=1:3]
+list a[f=2 at ave]
+             VARIABLE : _E[E=1:5] + _F[F=1:3]
+             SUBSET   : 5 points (E)
+             F        : 2 (averaged)
+ 1   / 1:  3.000000
+ 2   / 2:  4.000000
+ 3   / 3:  5.000000
+ 4   / 4:  6.000000
+ 5   / 5:  7.000000
+list a[e=2 at ave]
+             VARIABLE : _E[E=1:5] + _F[F=1:3]
+             SUBSET   : 3 points (F)
+             E        : 2 (averaged)
+ 1   / 1:  3.000000
+ 2   / 2:  4.000000
+ 3   / 3:  5.000000
+list a[f=2 at ave,e=4 at ave]
+             VARIABLE : _E[E=1:5] + _F[F=1:3]
+             E        : 4 ( ave)
+             F        : 2 ( ave)
+          6.000000
  
+! Check result if the missing-flag is zero
  
+let/bad=0 a = x[x=1:5] + y[y=1:3]
+list a
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 by 3 points (X-Y)
+              1         2         3         4         5      
+               1         2         3         4         5
+ 1   / 1:  2.000000  3.000000  4.000000  5.000000  6.000000
+ 2   / 2:  3.000000  4.000000  5.000000  6.000000  7.000000
+ 3   / 3:  4.000000  5.000000  6.000000  7.000000  8.000000
+ 
+list a[y=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 points (X)
+             Y        : 2 (averaged)
+ 1   / 1:  3.000000
+ 2   / 2:  4.000000
+ 3   / 3:  5.000000
+ 4   / 4:  6.000000
+ 5   / 5:  7.000000
+list a[x=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 3 points (Y)
+             X        : 2 (averaged)
+ 1   / 1:  3.000000
+ 2   / 2:  4.000000
+ 3   / 3:  5.000000
+list a[y=2 at ave,x=4 at ave]  ! all prev. versions listed these as missing
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             X        : 4 (XY ave)
+             Y        : 2 (XY ave)
+          6.000000
  
  
-def view/xlim=   0,.333/ylim=0,.5 ll6   ! ok
-def view/xlim=   0,.333/ylim=.5,1 ul6   ! long tic labels
-def view/xlim=.333,.666/ylim=0,.5 lm6   ! long tic labels, logo corrupted
-def view/xlim=.333,.666/ylim=.5,1 um6   ! plot positioning and labels are corrupted
-def view/xlim=.666,   1/ylim=0,.5 lr6   ! no plot at all
-def view/xlim=.666,   1/ylim=.5,1 ur6   ! no vertical tic labels
+! multiple directions including e,f
  
+use 6dfile.nc
  
-set view ul6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e4*{1,1}
-set view um6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e5*{1,1}
-set view ur6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e6*{1,1}
-set view ll6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e7*{1,1}
-set view lm6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e8*{1,1}
-set view lr6; plot/vs/color/thick/line/sym/siz=0.2 {1,2}, 1e-2*{1,1}
+! average, result is on xz
+let uave = u[i=1:3,j=50 at ave,l=1 at ave,m=3 at ave,n=2 at ave]
+list uave
+             VARIABLE : U[I=1:3,J=50 at AVE,L=1 at AVE,M=3 at AVE,N=2 at AVE]
+             FILENAME : 6dfile.nc
+             SUBSET   : 3 by 27 points (LONGITUDE-DEPTH (m))
+             LATITUDE : 6.1667N to 6.5N
+             TIME     : 15-MAR-1983 09:30 to 15-MAR-1983 10:30
+             E        : 2.5 to 3.5
+             F        : 2 to 4
+                  161W      160W      159W    
+                    1         2         3
+ 5       /  1:  24.15486  24.09508  24.51689
+ 15      /  2:  41.57817  41.84150  42.38058
+ 25      /  3:  36.75881  36.95299  37.38991
+ 35      /  4:  34.77849  34.85667  35.17619
+ 45      /  5:  34.36352  34.45921  34.69579
+ 55      /  6:  30.07708  30.09764  30.46488
+ 65      /  7:  27.88727  27.80886  27.93594
+ 75      /  8:  25.72183  25.65516  25.78408
+ 85      /  9:  23.76570  23.68603  23.76244
+ 95      / 10:  21.95625  21.86659  21.91703
+ 106.3   / 11:  20.21578  20.11764  20.13833
+ 120     / 12:  18.45474  18.34873  18.34122
+ 136.3   / 13:  16.95586  16.84863  16.81954
+ 155     / 14:  15.77561  15.66338  15.61111
+ 177.5   / 15:  14.84618  14.72107  14.64049
+ 205     / 16:  14.11461  13.96774  13.85358
+ 240     / 17:  13.42961  13.25451  13.10313
+ 288.5   / 18:  12.55841  12.34769  12.15240
+ 362.5   / 19:  11.29979  11.03768  10.78375
+ 483.5   / 20:   9.31719   8.98873   8.66654
+ 680     / 21:   6.68034   6.33032   5.98914
+ 979.5   / 22:   4.30961   4.04182   3.78413
+ 1395.5  / 23:   3.08924   2.96375   2.84510
+ 1916    / 24:   3.05169   3.06862   3.08250
+ 2524    / 25:   3.23960   3.36031   3.46738
+ 3174    / 26:   3.18619   3.35835   3.51064
+ 3824    / 27:   3.19324   3.38708   3.55849
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	PSXU69_72 = 3 ;
+	PSZT = 27 ;
+variables:
+	double PSXU69_72(PSXU69_72) ;
+		PSXU69_72:units = "degrees_east" ;
+		PSXU69_72:point_spacing = "even" ;
+		PSXU69_72:modulo = 360. ;
+		PSXU69_72:axis = "X" ;
+		PSXU69_72:standard_name = "longitude" ;
+	double PSZT(PSZT) ;
+		PSZT:units = "METERS" ;
+		PSZT:positive = "down" ;
+		PSZT:point_spacing = "uneven" ;
+		PSZT:axis = "Z" ;
+		PSZT:standard_name = "depth" ;
+	double uave(PSZT, PSXU69_72) ;
+		uave:missing_value = -1.e+34 ;
+		uave:_FillValue = -1.e+34 ;
+		uave:long_name = "U[I=1:3,J=50 at AVE,L=1 at AVE,M=3 at AVE,N=2 at AVE]" ;
+		uave:history = "From 6dfile" ;
+
+// global attributes:
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
+		:Conventions = "CF-1.6" ;
+}
  
-frame/file=bn_vs_const_value.gif
+! average, result is on yt
+let uave = u[i=3 at ave,j=50:60,l=3:6,z=40 at ave,m=3 at ave,n=2 at ave]
+list uave
+             VARIABLE : U[I=3 at AVE,J=50:60,L=3:6,Z=40 at AVE,M=3 at AVE,N=2 at AVE]
+             FILENAME : 6dfile.nc
+             SUBSET   : 11 points (LATITUDE)
+             LONGITUDE: 159.5W to 158.5W
+             DEPTH (m): 35
+             TIME     : 15-MAR-1983 12:00
+             E        : 2.5 to 3.5
+             F        : 2 to 4
+ 9.67N / 60: -21.61473
+ 9.33N / 59: -15.77042
+ 9N    / 58: -10.95188
+ 8.67N / 57:  -4.78444
+ 8.33N / 56:   0.43465
+ 8N    / 55:   5.48566
+ 7.67N / 54:  10.50152
+ 7.33N / 53:  15.95639
+ 7N    / 52:  21.88764
+ 6.67N / 51:  28.23372
+ 6.33N / 50:  35.19776
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	PSYU15_75 = 11 ;
+	TIME = UNLIMITED ; // (1 currently)
+variables:
+	double PSYU15_75(PSYU15_75) ;
+		PSYU15_75:units = "degrees_north" ;
+		PSYU15_75:point_spacing = "uneven" ;
+		PSYU15_75:axis = "Y" ;
+		PSYU15_75:standard_name = "latitude" ;
+	double TIME(TIME) ;
+		TIME:units = "hour since 1980-01-14 14:00:00" ;
+		TIME:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME:axis = "T" ;
+		TIME:standard_name = "time" ;
+	double uave(TIME, PSYU15_75) ;
+		uave:missing_value = -1.e+34 ;
+		uave:_FillValue = -1.e+34 ;
+		uave:long_name = "U[I=3 at AVE,J=50:60,L=3:6,Z=40 at AVE,M=3 at AVE,N=2 at AVE]" ;
+		uave:history = "From 6dfile" ;
+
+// global attributes:
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
+		:Conventions = "CF-1.6" ;
+}
  
-! With constant data value as the first argument
+! average, result is on e-f, single time
+let uave = u[i=3 at ave,y=8 at ave,z=15 at ave,t="15-MAR-1983 11:00"]
+list uave
+             VARIABLE : U[I=3 at AVE,Y=8 at AVE,Z=15 at AVE,T="15-MAR-1983 11:00"]
+             FILENAME : 6dfile.nc
+             SUBSET   : 5 by 4 points (E-F)
+             LONGITUDE: 159.5W to 158.5W
+             LATITUDE : 8N
+             DEPTH (m): 15
+             TIME     : 15-MAR-1983 11:00
+              1         2         3         4         5      
+               1         2         3         4         5
+ 1   / 1: -2.239468 -1.239468 -0.239468  0.760532  1.760532
+ 3   / 2: -2.039468 -1.039468 -0.039468  0.960532  1.960532
+ 5   / 3: -1.839468 -0.839468  0.160532  1.160532  2.160532
+ 7   / 4: -1.639468 -0.639468  0.360532  1.360532  2.360532
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	TIME = 1 ;
+	EAXIS = 5 ;
+	FAXIS = 4 ;
+variables:
+	double TIME(TIME) ;
+		TIME:units = "hour since 1980-01-14 14:00:00" ;
+		TIME:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME:point_spacing = "even" ;
+		TIME:axis = "T" ;
+		TIME:standard_name = "time" ;
+	double EAXIS(EAXIS) ;
+		EAXIS:point_spacing = "even" ;
+		EAXIS:axis = "E" ;
+	double FAXIS(FAXIS) ;
+		FAXIS:point_spacing = "uneven" ;
+		FAXIS:axis = "F" ;
+	double uave(FAXIS, EAXIS, TIME) ;
+		uave:missing_value = -1.e+34 ;
+		uave:_FillValue = -1.e+34 ;
+		uave:long_name = "U[I=3 at AVE,Y=8 at AVE,Z=15 at AVE,T=\"15-MAR-1983 11:00\"]" ;
+		uave:history = "From 6dfile" ;
+
+// global attributes:
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_2d_ave_miss0
+! err71_2d_ave_miss0.jnl
+! Ticket 2539: data with 0 as missing flag,
+! 2D average or definite integral all-missing
+! 6/5/2017 *acm*
+ 
+use gt4d011.cdf
+let temp0 = temp
+set var/bad=0. temp0
+save/clobber/file=a.nc temp0
+can dat/all
+can var/all
+use a.nc
+ 
+! Both of these should have all valid numbers,
+! previously (in v7.1+) they were all-missing.
+list/k=1/L=1:10 temp0[x=@ave,y=@ave], temp0[x=@din,y=@din]
+             DATA SET: ./a.nc
+             TIME: 14-AUG-1982 11:00 to 14-OCT-1982 07:00
+             LONGITUDE: 140W to 122W
+             LATITUDE: 3.6667S to 3.6667N
+             DEPTH (m): 5
+ Column  1: TEMP0[X=@AV4,Y=@AV4] is TEMP
+ Column  2: TEMP0[X=@IN4,Y=@IN4] is TEMP
+                        TEMP0      TEMP0
+17-AUG-1982 12 /  1:  26.50036  4.322143E+13
+23-AUG-1982 14 /  2:  26.63478  4.344066E+13
+29-AUG-1982 16 /  3:  26.80730  4.372203E+13
+04-SEP-1982 18 /  4:  27.02365  4.407490E+13
+10-SEP-1982 20 /  5:  27.29811  4.452254E+13
+16-SEP-1982 22 /  6:  27.64980  4.509613E+13
+23-SEP-1982 00 /  7:  28.06512  4.577352E+13
+29-SEP-1982 02 /  8:  28.56054  4.658153E+13
+05-OCT-1982 04 /  9:  29.16769  4.757178E+13
+11-OCT-1982 06 / 10:  29.83611  4.866194E+13
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_read_delim
+! err71_read_delim.jnl
+! 6/9/2017 ACM
+! Ticket 2540, Write errors when data is read using - to skip fields
+! in a delimited read
+ 
+define axis/x=1:10:1 row_ax
+define grid/x=row_ax in_grid
+ 
+ 
+FILE/FORM=delim/skip=1/grid=in_grid\
+/var="YEAR,MONTH,LON,LAT,-,HAULJOIN,LENGTH,FREQ,-,BTTM_TEMP,SST,BTTM_DEPTH,CPUE,BIN"\
+/typ="num,num,num,num,-,num,num,num,-,num,num,num,num,num,"/delim="\,"\
+ shorttest.dat
+ 
+set var/title="year" YEAR
+set var/title="month" MONTH
+set var/title="lon"/units="degrees_E" LON
+set var/title="lat"/units="degrees_N" LAT
+set var/title="hauljoin" HAULJOIN
+set var/title="length"/units="mm" LENGTH
+set var/title="freq"/units="Number" FREQ
+set var/title="bttm_temp"/units="degrees_C" BTTM_TEMP
+set var/title="SST"/units="degrees_C" SST
+set var/title="bttm_depth"/units="m" BTTM_DEPTH
+set var/title="CPUE"/units="fish/km**2" CPUE
+set var/title="bin_size"/units="mm" BIN
+ 
+! Previously this caused netcdf library errors and exited out of Ferret
+save/file=a.nc/clobber year, month, lon, lat, hauljoin, length, freq, bttm_temp, SST, bttm_depth, CPUE, bin
+ 
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	row_ax = 10 ;
+variables:
+	double row_ax(row_ax) ;
+		row_ax:point_spacing = "even" ;
+		row_ax:axis = "X" ;
+	double YEAR(row_ax) ;
+		YEAR:missing_value = -1.e+34 ;
+		YEAR:_FillValue = -1.e+34 ;
+		YEAR:long_name = "year" ;
+		YEAR:history = "From shorttest.dat" ;
+	double MONTH(row_ax) ;
+		MONTH:missing_value = -1.e+34 ;
+		MONTH:_FillValue = -1.e+34 ;
+		MONTH:long_name = "month" ;
+		MONTH:history = "From shorttest.dat" ;
+	double LON(row_ax) ;
+		LON:missing_value = -1.e+34 ;
+		LON:_FillValue = -1.e+34 ;
+		LON:long_name = "lon" ;
+		LON:units = "degrees_E" ;
+		LON:history = "From shorttest.dat" ;
+	double LAT(row_ax) ;
+		LAT:missing_value = -1.e+34 ;
+		LAT:_FillValue = -1.e+34 ;
+		LAT:long_name = "lat" ;
+		LAT:units = "degrees_N" ;
+		LAT:history = "From shorttest.dat" ;
+	double HAULJOIN(row_ax) ;
+		HAULJOIN:missing_value = -1.e+34 ;
+		HAULJOIN:_FillValue = -1.e+34 ;
+		HAULJOIN:long_name = "hauljoin" ;
+		HAULJOIN:history = "From shorttest.dat" ;
+	double LENGTH(row_ax) ;
+		LENGTH:missing_value = -1.e+34 ;
+		LENGTH:_FillValue = -1.e+34 ;
+		LENGTH:long_name = "length" ;
+		LENGTH:units = "mm" ;
+		LENGTH:history = "From shorttest.dat" ;
+	double FREQ(row_ax) ;
+		FREQ:missing_value = -1.e+34 ;
+		FREQ:_FillValue = -1.e+34 ;
+		FREQ:long_name = "freq" ;
+		FREQ:units = "Number" ;
+		FREQ:history = "From shorttest.dat" ;
+	double BTTM_TEMP(row_ax) ;
+		BTTM_TEMP:missing_value = -1.e+34 ;
+		BTTM_TEMP:_FillValue = -1.e+34 ;
+		BTTM_TEMP:long_name = "bttm_temp" ;
+		BTTM_TEMP:units = "degrees_C" ;
+		BTTM_TEMP:history = "From shorttest.dat" ;
+	double SST(row_ax) ;
+		SST:missing_value = -1.e+34 ;
+		SST:_FillValue = -1.e+34 ;
+		SST:long_name = "SST" ;
+		SST:units = "degrees_C" ;
+		SST:history = "From shorttest.dat" ;
+	double BTTM_DEPTH(row_ax) ;
+		BTTM_DEPTH:missing_value = -1.e+34 ;
+		BTTM_DEPTH:_FillValue = -1.e+34 ;
+		BTTM_DEPTH:long_name = "bttm_depth" ;
+		BTTM_DEPTH:units = "m" ;
+		BTTM_DEPTH:history = "From shorttest.dat" ;
+	double CPUE(row_ax) ;
+		CPUE:missing_value = -1.e+34 ;
+		CPUE:_FillValue = -1.e+34 ;
+		CPUE:long_name = "CPUE" ;
+		CPUE:units = "fish/km**2" ;
+		CPUE:history = "From shorttest.dat" ;
+	double BIN(row_ax) ;
+		BIN:missing_value = -1.e+34 ;
+		BIN:_FillValue = -1.e+34 ;
+		BIN:long_name = "bin_size" ;
+		BIN:units = "mm" ;
+		BIN:history = "From shorttest.dat" ;
+
+// global attributes:
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_isready_unknown
+! err71_isready_unknown.jnl
+! ticket 2533, variable b depending on undefined variable c is
+! reported not ready, but variable a with a regridding operation is
+! mistakenly reported ready.
+ 
+use coads_climatology
+let a = b[gxy=sst[d=1]]
+let b = c
+ 
+! both should return 0
+say `b,r=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `a,r=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+ 
+! And VTREE reported no unknown variables in its tree
+! The line for C should say UNKNOWN VARIABLE
+sho var/tree a
+   in default dataset coads_climatology
+   A = B[GXY=SST[D=1]]
+     B = C
+       C ??			<== UNKNOWN VARIABLE ******
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_ppl_sho_empty
+! err71_ppl_sho_empty.jnl
+! ticket 2543, PPL SHOW pplsym is a command, but it
+! gave a Fortran runtime error if given with no argument
+! Now send these errors through the Ferret errmsg routine.
+ 
+! This is a valid sequence, pplus symbol definition
+ 
+pplus set xpos 3.2
+pplus show xpos
+ XPOS                           = 3.2
+ 
+! intentional error
+ 
+set mode ignore
+ 
+! This is a correct error message, undefined symbol
+pplus show nosymbol
+ 
+! This previously hit a runtime error, symbol name missing.
+ppl show
+ 
+! Another PPL error we might hit is an invalid command.
+! Write this error message
+PPL nonsense
+ 
+set mode/last ignore
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_string_and_if
+! err71_string_and_if.jnl
+!  6/28/2018, ticket 2547
+ 
+! problem with masked strings -> unexpected values instead of strings:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+list if (test) then strings
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+! works: define a masked variable instead, then list
+let masked = if (test) then strings
+list masked
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+! alternatively, do the same listing for a float first
+let floats = {2,3,4}
+list if (test) then floats
+             VARIABLE : IF (TEST) THEN FLOATS
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000000
+ 2   / 2:  3.000000
+ 3   / 3:      ....
+ 
+! now, also for strings listing while masking works
+list if (test) then strings
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+ 
+ 
+! the next problem comes with xsequence
+! again unexpected numerical values instead of strings
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+let masked = if (test) then strings
+list xsequence(masked)
+             VARIABLE : XSEQUENCE(MASKED)
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+! but doing a listing first fixes it:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+list if (test) then strings
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+let masked = if (test) then strings
+list xsequence(masked)
+             VARIABLE : XSEQUENCE(MASKED)
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+ 
+! NOT fixed by defining a second masked variable before:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+let masked = if (test) then strings
+let masked2 = xsequence(masked)
+list masked2
+             VARIABLE : XSEQUENCE(MASKED)
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_expr_w_const
+! err71_expr_w_const.jnl
+! ticket 2313: return= is loading the whole
+! grid unnecessarily in the last example
+ 
+set mem/size=1
+def ax/t=1-jan-0001:1-jan-1000:1/unit=year tax
+let a = t[gt=tax] + x[gx=1:1000:1] + y[gy=1:1000:1]
+ 
+! These work fine
+say `a,return=cal`
+ !-> MESSAGE/CONTINUE GREGORIAN
+GREGORIAN
+ 
+use coads_climatology
+let s1= sst[x=@ave,y=1,L=@max]
+say `s1*a,return=cal`
+ !-> MESSAGE/CONTINUE GREGORIAN
+GREGORIAN
+ 
+! but the constant variable "let one = 1" introduced abstract
+! axes to the grid which  caused Ferret to try to load the
+! data in A which is large
+ 
+let one = 1
+let a1 = a*one
+show grid a1
+    GRID (G175)
+ name       axis              # pts   start                end                 subset
+ (AX125)   X                 1000 r   1                    1000                1000 pts
+ (AX125)   Y                 1000 r   1                    1000                1000 pts
+ normal    Z
+ tax       TIME              1000 r   01-JAN-0001 00:00    01-JAN-1000 06:10   full
+say `a*one,return=cal`
+ !-> MESSAGE/CONTINUE GREGORIAN
+GREGORIAN
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_colorlevs
+! err71_colorlevs
+! See ticket 2550. Top data value is not among color levels used in the plot.
+! And symbols LEV* do not list the levels used.
+ 
+use co_emac.nc
+stat co_emac
+ 
+             CO EMAC
+             LONGITUDE: 0E to 120E
+             LATITUDE: 0 to 40N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: ./co_emac.nc
+ 
+ Total # of data points: 48 (12*4*1*1*1*1)
+ # flagged as bad  data: 4
+ Minimum value: 6.152674857E-08
+ Maximum value: 0.00000018643
+ Mean    value: 0.000000087383 (unweighted average)
+ Standard deviation: 2.230821645E-08
+ 
+! previously there were 25 levels chosen by the automatic
+! method, missing the top one because of roundoff error.
+! Thus one cell went unfilled.  The LEV_MIN etc symbols were
+! set to 0 because of inadequate formatting of the tiny numbers.
+ 
+set mode nlevels 30
+shade co_emac
+sh sym lev*
+LEV_MIN = "6.E-08"
+LEV_MAX = "1.9E-07"
+LEV_NUM = "26"
+LEV_DEL = "5.E-09"
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_repeat_paren
+! err71_repeat_paren.jnl
+! Ticket 2551. The second command with an extra parenthese is not reported
+! to be a syntax error but just reports wrong info.
+ 
+repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue)
+ !-> repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue)
+!-> REPEAT: COUNT:1
+ !-> def sym count = 1
+ !-> MESSAGE/CONTINUE 1
+1
+
+!-> REPEAT: COUNT:2
+ !-> def sym count = 2
+ !-> MESSAGE/CONTINUE 2
+2
+
+!-> REPEAT: COUNT:3
+ !-> def sym count = 3
+ !-> MESSAGE/CONTINUE 3
+3
+
+ 
+! Previously the extra paren at the end did not trigger an error
+! but caused a parsing error so the command
+!   say ($count)
+! was parsed and fixed at "say 3" before the loop started.
+ 
+set mode ignore
+repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue))
+set mode/last ignore
  
-can view
-set view ul6; plot/vs/color/thick/line/sym/siz=0.2  1e4*{1,1}, {1,2}
-set view um6; plot/vs/color/thick/line/sym/siz=0.2  1e5*{1,1}, {1,2}
-set view ur6; plot/vs/color/thick/line/sym/siz=0.2  1e6*{1,1}, {1,2}
-set view ll6; plot/vs/color/thick/line/sym/siz=0.2  1e7*{1,1}, {1,2}
-set view lm6; plot/vs/color/thick/line/sym/siz=0.2  1e8*{1,1}, {1,2}
-set view lr6; plot/vs/color/thick/line/sym/siz=0.2 1e-2*{1,1}, {1,2}
  
 GO bn_reset bn_compressed_gather
 cancel mode verify
@@ -101472,6 +102120,7 @@ Starting test: bn_dynamic_gather
 GO bn_dynamic_gather
 ! bn_dynamic_gather.jnl
 ! *sh* 3/2017
+! *acm*7/2017 0=success for SPAWN_STATUS
  
 ! There's not really anything "dynamic" about this benchmark, except that it
 ! excercises the split/gather improvements that were implemented together with
@@ -101492,7 +102141,7 @@ spawn "mkdir -p tmp"     ! tmp directory to store files
 ! see if the test file already exists
 SPAWN "ls tmp/test_dyn_mem.nc"
 tmp/test_dyn_mem.nc
-IF ($SPAWN_STATUS) THEN
+IF ($SPAWN_OK) THEN
  !-> IF 1 THEN
   say test files already exist.  not re-creating them
 test files already exist.  not re-creating them
@@ -101574,7 +102223,7 @@ show memory/all          ! in memory following the last chunk
     Peak demand: 6 megawords
     Current cache: 6 megawords
 all data in memory:
- V[D=test_dyn_mem]                 XYZ   mr:231 size:4000000
+ V[D=test_dyn_mem]                 XYZ   mr:228 size:4000000
          1/0.5                 1/0.5                 1/0.5              ... /0.5
       1000/1001             1000/1000.5              2/2.5              ... /10.5
                                                               AVE
@@ -101659,11 +102308,11 @@ show memory/all        ! in memory following the last chunk
     Peak demand: 2.024 megawords
     Current cache: 2.024 megawords
 all data in memory:
- V[D=test_dyn_mem]                 XYZ   mr:234 size:2000000
+ V[D=test_dyn_mem]                 XYZ   mr:237 size:2000000
          1/0.5                 1/0.5                 1/0.5              ... /0.5
       1000/1001             1000/1000.5              2/2.5              ... /10.5
                                                               AVE
- V[D=test_dyn_mem]                 XZ    mr:237 size:4000
+ V[D=test_dyn_mem]                 XZ    mr:238 size:4000
          1/0.5              1000/999.5               1/0.5              ... /0.5
       1000/1001             1000/1000.5              2/2.5              ... /10.5
                                                               AVE
@@ -102102,21 +102751,21 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
 >     Peak demand: 4.184 megawords
 >     Current cache: 4.524 megawords
 68c68
-<  V[D=test_dyn_mem]                 XYZ   mr:220 size:4000000
+<  V[D=test_dyn_mem]                 XYZ   mr:224 size:4000000
 ---
 >  V[D=test_dyn_mem]                 XYZ   mr:208 size:2000000
 72,73c72,77
 <  V[D=test_dyn_mem]                 XYZ   mr:243 size:2000000
 <          1/0.5                 1/0.5                 1/0.5                10/9.5
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:220 size:360000
+>  V[D=test_dyn_mem]                 XYZ   mr:224 size:360000
 >          1/0.5               911/910.5               1/0.5              ... /0.5
 >       1000/1001             1000/1000.5              2/2.5              ... /10.5
 >                                                               AVE
 >  V[D=test_dyn_mem]                 XYZT  mr:243 size:1800000
 >          1/0.5               911/910.5               1/0.5                 1/0.5
 75a80,83
->  V[D=test_dyn_mem]                 XYZ   mr:231 size:364000
+>  V[D=test_dyn_mem]                 XYZ   mr:228 size:364000
 >          1/0.5               820/819.5               1/0.5              ... /0.5
 >       1000/1001              910/910.5               2/2.5              ... /10.5
 >                                                               AVE
@@ -102390,14 +103039,14 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >     Peak demand: 2.384 megawords
 >     Current cache: 5.712 megawords
 68c68
-<  V[D=test_dyn_mem]                 XYZ   mr:220 size:4000000
+<  V[D=test_dyn_mem]                 XYZ   mr:224 size:4000000
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:242 size:2000000
+>  V[D=test_dyn_mem]                 XYZ   mr:241 size:2000000
 72,73c72,77
 <  V[D=test_dyn_mem]                 XYZ   mr:243 size:2000000
 <          1/0.5                 1/0.5                 1/0.5                10/9.5
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:228 size:32000
+>  V[D=test_dyn_mem]                 XYZ   mr:226 size:32000
 >          1/0.5               993/992.5               1/0.5              ... /0.5
 >       1000/1001             1000/1000.5              2/2.5              ... /10.5
 >                                                               AVE
@@ -102408,11 +103057,11 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >          1/0.5               977/976.5               1/0.5              ... /0.5
 >       1000/1001              992/992.5               2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:192 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:194 size:320000
 >          1/0.5               977/976.5               1/0.5                 1/0.5
 >       1000/1001              992/992.5               2/2.5                10/10.5
 >  
->  V[D=test_dyn_mem]                 XYZ   mr:184 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:186 size:64000
 >          1/0.5               961/960.5               1/0.5              ... /0.5
 >       1000/1001              976/976.5               2/2.5              ... /10.5
 >                                                               AVE
@@ -102420,11 +103069,11 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >          1/0.5               961/960.5               1/0.5                 1/0.5
 >       1000/1001              976/976.5               2/2.5                10/10.5
 >  
->  V[D=test_dyn_mem]                 XYZ   mr:194 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:202 size:64000
 >          1/0.5               945/944.5               1/0.5              ... /0.5
 >       1000/1001              960/960.5               2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:220 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:224 size:320000
 >          1/0.5               945/944.5               1/0.5                 1/0.5
 >       1000/1001              960/960.5               2/2.5                10/10.5
 >  
@@ -102432,19 +103081,19 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >          1/0.5               929/928.5               1/0.5              ... /0.5
 >       1000/1001              944/944.5               2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:231 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:234 size:320000
 >          1/0.5               929/928.5               1/0.5                 1/0.5
 >       1000/1001              944/944.5               2/2.5                10/10.5
 >  
->  V[D=test_dyn_mem]                 XYZ   mr:226 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:228 size:64000
 >          1/0.5               913/912.5               1/0.5              ... /0.5
 >       1000/1001              928/928.5               2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:237 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:238 size:320000
 >          1/0.5               913/912.5               1/0.5                 1/0.5
 >       1000/1001              928/928.5               2/2.5                10/10.5
 >  
->  V[D=test_dyn_mem]                 XYZ   mr:234 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:237 size:64000
 >          1/0.5               897/896.5               1/0.5              ... /0.5
 >       1000/1001              912/912.5               2/2.5              ... /10.5
 >                                                               AVE
@@ -102452,7 +103101,7 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >          1/0.5               897/896.5               1/0.5                 1/0.5
 >       1000/1001              912/912.5               2/2.5                10/10.5
 >  
->  V[D=test_dyn_mem]                 XYZ   mr:241 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:240 size:64000
 >          1/0.5               881/880.5               1/0.5              ... /0.5
 >       1000/1001              896/896.5               2/2.5              ... /10.5
 >                                                               AVE
@@ -102472,7 +103121,7 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >          1/0.5               849/848.5               1/0.5              ... /0.5
 >       1000/1001              864/864.5               2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:224 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:216 size:320000
 >          1/0.5               849/848.5               1/0.5                 1/0.5
 >       1000/1001              864/864.5               2/2.5                10/10.5
 >  
@@ -102523,18 +103172,18 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 ---
 >     Peak demand: 2.008 megawords
 153c234
-<  V[D=test_dyn_mem]                 XYZ   mr:231 size:2000000
+<  V[D=test_dyn_mem]                 XYZ   mr:228 size:2000000
 ---
 >  V[D=test_dyn_mem]                 XYZ   mr:247 size:2000000
 157c238
-<  V[D=test_dyn_mem]                 XZ    mr:237 size:4000
+<  V[D=test_dyn_mem]                 XZ    mr:238 size:4000
 ---
 >  V[D=test_dyn_mem]                 XZ    mr:248 size:4000
 161,162c242,243
 <  V[D=test_dyn_mem]                 XZT   mr:243 size:20000
 <          1/0.5              1000/999.5               1/0.5                 1/0.5
 ---
->  V[D=test_dyn_mem]                 XZT   mr:242 size:4000
+>  V[D=test_dyn_mem]                 XZT   mr:241 size:4000
 >          1/0.5              1000/999.5               1/0.5                 9/8.5
 164a246,261
 >  V[D=test_dyn_mem]                 XZT   mr:243 size:4000
@@ -102948,48 +103597,48 @@ set v lr; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
  
 set mode/last logo
  
-GO bn_reset bn_inner
+GO bn_reset bn_dot_product
 cancel mode verify
 ooooooooooooooooooooooooooooooooooooooooooo
-Starting test: bn_inner
-GO bn_inner
-! bn_inner.jnl
-! 3/2017 *acm*  Inner product function for matrix multiply operation
+Starting test: bn_dot_product
+GO bn_dot_product
+! bn_dot_product.jnl
+! 3/2017 *acm*  dot product function for matrix multiply operation
  
  
-sh func innerproduct*
-INNERPRODUCT(VAR1,VAR2,IDIM)
+sh func dot*
+DOT(VAR1,VAR2,IDIM)
     Compute the inner product of two variables along given dimension
     VAR1: Variable 1
     VAR2: Variable 2
     IDIM: Dimension (e.g.1,2,...)
-INNERPRODUCT_X(VAR1,VAR2)
-    Compute the inner product of two variables along X-axis
+DOT_E(VAR1,VAR2)
+    Compute the inner product of two variables along E-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_Y(VAR1,VAR2)
-    Compute the inner product of two variables along Y-axis
+DOT_F(VAR1,VAR2)
+    Compute the inner product of two variables along F-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_Z(VAR1,VAR2)
-    Compute the inner product of two variables along Z-axis
+DOT_T(VAR1,VAR2)
+    Compute the inner product of two variables along T-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_T(VAR1,VAR2)
-    Compute the inner product of two variables along T-axis
+DOT_X(VAR1,VAR2)
+    Compute the inner product of two variables along X-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_E(VAR1,VAR2)
-    Compute the inner product of two variables along E-axis
+DOT_Y(VAR1,VAR2)
+    Compute the inner product of two variables along Y-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_F(VAR1,VAR2)
-    Compute the inner product of two variables along F-axis
+DOT_Z(VAR1,VAR2)
+    Compute the inner product of two variables along Z-axis
     VAR1: Variable 1
     VAR2: Variable 2
  
-! A call to innerproduct(var1, var2, dir) translates into call to
-! function innerproduct_q(var1,var2) where q is the pax direction
+! A call to dot(var1, var2, dir) translates into call to
+! function dot_q(var1,var2) where q is the pax direction
 ! corresponding to dir=1,2,...,6
  
 set list/pre=7
@@ -103012,15 +103661,15 @@ list var1, var2
 3   / 3:  3.000000  1.000000
 4   / 4:  4.000000  1.000000
 5   / 5:  5.000000  1.000000
-list  innerproduct(var1, var2, 1)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 1)
+list  dot(var1, var2, 1)
+             VARIABLE : DOT(VAR1, VAR2, 1)
           15.00000
 !can var/all
  
 let var1 = x[gx=xpax]
 let var2 = 1+0*x[gx=xpax]
-list  innerproduct_x(var1, var2)
-             VARIABLE : INNERPRODUCT_X(VAR1, VAR2)
+list  dot_x(var1, var2)
+             VARIABLE : DOT_X(VAR1, VAR2)
           15.00000
  
 let var1 = y[gy=ypax]
@@ -103033,8 +103682,8 @@ list var1, var2
 0.1  / 1:  0.1000000  1.000000
 0.2  / 2:  0.2000000  1.000000
 0.3  / 3:  0.3000000  1.000000
-list  innerproduct(var1, var2, 2)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 2)
+list  dot(var1, var2, 2)
+             VARIABLE : DOT(VAR1, VAR2, 2)
           0.6000000
  
 let var1 = z[gz=zpax]
@@ -103048,8 +103697,8 @@ list var1, var2
 0.02  / 2:  0.02000000  1.000000
 0.03  / 3:  0.03000000  1.000000
 0.04  / 4:  0.04000000  1.000000
-list  innerproduct(var1, var2, 3)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 3)
+list  dot(var1, var2, 3)
+             VARIABLE : DOT(VAR1, VAR2, 3)
           0.10000000
  
 let var1 = L[gt=month_reg]
@@ -103071,8 +103720,8 @@ list var1, var2
 16-OCT      / 10:  10.00000  1.000000
 15-NOV      / 11:  11.00000  1.000000
 16-DEC      / 12:  12.00000  1.000000
-list  innerproduct(var1, var2, 4)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 4)
+list  dot(var1, var2, 4)
+             VARIABLE : DOT(VAR1, VAR2, 4)
           78.00000
  
 let var1 = _e[ge=epax]
@@ -103085,8 +103734,8 @@ list var1, var2
 -3   / 1: -3.000000  1.000000
 -2   / 2: -2.000000  1.000000
 -1   / 3: -1.000000  1.000000
-list  innerproduct(var1, var2, 5)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 5)
+list  dot(var1, var2, 5)
+             VARIABLE : DOT(VAR1, VAR2, 5)
          -6.000000
  
 let var1 = _f[gf=fpax]
@@ -103100,8 +103749,8 @@ list var1, var2
 -0.3  / 2: -0.3000000  1.000000
 -0.2  / 3: -0.2000000  1.000000
 -0.1  / 4: -0.1000000  1.000000
-list  innerproduct(var1, var2, 6)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 6)
+list  dot(var1, var2, 6)
+             VARIABLE : DOT(VAR1, VAR2, 6)
          -1.000000
  
 let axy = x[gx=xpax] + y[gy=ypax]
@@ -103189,8 +103838,8 @@ list axy, bxz
 3   / 3:  3.300000  0.4000000
 4   / 4:  4.300000  0.4000000
 5   / 5:  5.300000  0.4000000
-list innerproduct(axy, bxz, 1)
-             VARIABLE : INNERPRODUCT(AXY, BXZ, 1)
+list dot(axy, bxz, 1)
+             VARIABLE : DOT(AXY, BXZ, 1)
              SUBSET   : 3 by 4 points (Y-Z)
                 0.1       0.2       0.3    
                  1         2         3
@@ -103200,8 +103849,8 @@ list innerproduct(axy, bxz, 1)
  0.04  / 4:  6.200000  6.400000  6.600000
  
 let byz = y[gy=ypax]+  10*Z[GZ=Zpax]
-list innerproduct(axy, byz, 2)
-             VARIABLE : INNERPRODUCT(AXY, BYZ, 2)
+list dot(axy, byz, 2)
+             VARIABLE : DOT(AXY, BYZ, 2)
              SUBSET   : 5 by 4 points (X-Z)
                 1         2         3         4         5      
                  1         2         3         4         5
@@ -103212,14 +103861,14 @@ list innerproduct(axy, byz, 2)
  
 let lvar = L[gt=month_reg] - 1
 let axyt = axy + lvar
-let multi_inner = innerproduct(axyt, byz, 2)
-save/file=a.nc/clobber multi_inner
+let multi_dot = dot(axyt, byz, 2)
+save/file=a.nc/clobber multi_dot
  
-can var multi_inner
+can var multi_dot
 use a.nc
-!  This should be the same as innerproduct(axy, byz, 2)
-list/l=1 multi_inner
-             VARIABLE : INNERPRODUCT(AXYT, BYZ, 2)
+!  This should be the same as dot(axy, byz, 2)
+list/l=1 multi_dot
+             VARIABLE : DOT(AXYT, BYZ, 2)
              FILENAME : a.nc
              SUBSET   : 5 by 4 points (X-Z)
              TIME     : 16-JAN 06:00
@@ -103235,8 +103884,8 @@ list/l=1 multi_inner
  
 let axz = x[gx=xpax] + z[gz=zpax]
 let bzt = 0*z[gz=zpax]+  10*L[gt=month_reg]
-list innerproduct(axz, bzt, 3)
-             VARIABLE : INNERPRODUCT(AXZ, BZT, 3)
+list dot(axz, bzt, 3)
+             VARIABLE : DOT(AXZ, BZT, 3)
              SUBSET   : 5 by 12 points (X-TIME)
                        1         2         3         4         5      
                         1         2         3         4         5
@@ -103254,8 +103903,8 @@ list innerproduct(axz, bzt, 3)
  16-DEC      / 12:   492.000   972.000  1452.000  1932.000  2412.000
  
 let ayt = y[gy=ypax]+ 10*L[gt=month_reg]
-list innerproduct(ayt, bzt, 4)
-             VARIABLE : INNERPRODUCT(AYT, BZT, 4)
+list dot(ayt, bzt, 4)
+             VARIABLE : DOT(AYT, BZT, 4)
              SUBSET   : 3 by 4 points (Y-Z)
                 0.1       0.2       0.3    
                  1         2         3
@@ -103267,14 +103916,14 @@ list innerproduct(ayt, bzt, 4)
  
 let xvar = x[gx=xpax] - 1
 let axyt = ayt + xvar
-let multi_inner = innerproduct(axyt, bzt, 4)
-save/file=a.nc/clobber multi_inner
+let multi_dot = dot(axyt, bzt, 4)
+save/file=a.nc/clobber multi_dot
  
-can var multi_inner
+can var multi_dot
 use a.nc
-!  This should be the same as innerproduct(ayt, bzt, 4)
-list/i=1 multi_inner
-             VARIABLE : INNERPRODUCT(AXYT, BYZ, 2)
+!  This should be the same as dot(ayt, bzt, 4)
+list/i=1 multi_dot
+             VARIABLE : DOT(AXYT, BYZ, 2)
              FILENAME : a.nc
              SUBSET   : 4 by 12 points (Z-TIME)
              X        : 1
@@ -103299,8 +103948,8 @@ can dat/all
  
 let ayf = _f[gf=fpax] + y[gy=ypax]
 let bfe = 0*_f[gf=fpax]+  10*_e[ge=epax]
-list innerproduct(ayf, bfe, 6)
-             VARIABLE : INNERPRODUCT(AYF, BFE, 6)
+list dot(ayf, bfe, 6)
+             VARIABLE : DOT(AYF, BFE, 6)
              SUBSET   : 3 by 3 points (Y-E)
                0.1       0.2       0.3    
                 1         2         3
@@ -103309,8 +103958,8 @@ list innerproduct(ayf, bfe, 6)
  -1   / 3:   6.00000   2.00000  -2.00000
  
 let aze = z[gz=zpax]+ 10*_e[ge=epax]
-list innerproduct(aze, bfe, 5)
-             VARIABLE : INNERPRODUCT(AZE, BFE, 5)
+list dot(aze, bfe, 5)
+             VARIABLE : DOT(AZE, BFE, 5)
              SUBSET   : 4 by 4 points (Z-F)
                0.01      0.02      0.03      0.04    
                  1         2         3         4
@@ -103321,14 +103970,14 @@ list innerproduct(aze, bfe, 5)
  
 let xvar = x[gx=xpax] - 1
 let azex = aze + xvar
-let multi_inner = innerproduct(azex, bfe, 5)
-save/file=a.nc/clobber multi_inner
+let multi_dot = dot(azex, bfe, 5)
+save/file=a.nc/clobber multi_dot
  
-can var multi_inner
+can var multi_dot
 use a.nc
-!  This should be the same as innerproduct(azex, bfe, 5)
-list/i=1 multi_inner
-             VARIABLE : INNERPRODUCT(AZEX, BFE, 5)
+!  This should be the same as dot(azex, bfe, 5)
+list/i=1 multi_dot
+             VARIABLE : DOT(AZEX, BFE, 5)
              FILENAME : a.nc
              SUBSET   : 4 by 4 points (Z-F)
              X        : 1
@@ -103351,6 +104000,7 @@ GO bn_cache_management
  ! 1/2017 - try to force Ferret into a complex juggling of dependencies
 ! and cache maintenance in order to reproduce the problem seen in trac
 ! ticket #2485 (from Ned Cokelet)
+! *acm*7/2017 0=success for SPAWN_STATUS
  
 ! Ferret's cache of memory-resident results is full when it holds 500 of them.
 ! At that point it must delete cached results to make room for new variables.
@@ -103387,7 +104037,7 @@ SPAWN "mkdir -p tmp"     ! tmp directory to store files
 SPAWN ls tmp/test_auto_cache_($nsets).nc
  !-> SPAWN ls tmp/test_auto_cache_20.nc
 tmp/test_auto_cache_20.nc
-IF ($SPAWN_STATUS) THEN
+IF ($SPAWN_OK) THEN
  !-> IF 1 THEN
  say test files already exist.  not re-creating them
 test files already exist.  not re-creating them
@@ -103792,7 +104442,7 @@ GO bn_transp_choose
 can mem
 sh func transpose
 TRANSPOSE(VAR,DIM1,DIM2)
-    Compute the in two given dimensions
+    Compute the transpose along two given dimensions
     VAR: Variable to transpose
     DIM1: Dimension 1 for transpose (1,2,...)
     DIM2: Dimension 2 for transpose (1,2,...)
@@ -103895,6 +104545,554 @@ list/l=1 var
  10   / 10:  20.46  23.48  25.95  27.66  29.79  32.46  34.16
  
  
+GO bn_reset bn_iin_regrid
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_iin_regrid
+GO bn_iin_regrid
+! bn_iin_regrid.jnl
+! @IIN as a regridding transform See Ticket 2346
+ 
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+ 
+let xlo = xboxlo[gx=a]
+def ax/x aline_edges = xcat(xlo[i=1], xboxhi[gx=a])
+ 
+! new @IIN regridding
+show axis/x aline_edges
+ name       axis              # pts   start                end
+ aline_edges X                 11 r   0                    10
+   Axis span (to cell edges) = 11
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0                     1          -0.5
+       2>  1                     1          0.5
+       3>  2                     1          1.5
+       4>  3                     1          2.5
+       5>  4                     1          3.5
+       6>  5                     1          4.5
+       7>  6                     1          5.5
+       8>  7                     1          6.5
+       9>  8                     1          7.5
+      10>  9                     1          8.5
+      11>  10                    1          9.5
+ 
+let c = a[gx=aline_edges at iin]
+list a
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+             SUBSET   : 10 points (X)
+ 0.5 /  1:  1.000
+ 1.5 /  2:  0.000
+ 2.5 /  3:  1.000
+ 3.5 /  4:  0.000
+ 4.5 /  5:  1.000
+ 5.5 /  6:  0.000
+ 6.5 /  7:  1.000
+ 7.5 /  8:  0.000
+ 8.5 /  9:  1.000
+ 9.5 / 10:  0.000
+list c
+             VARIABLE : A[GX=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (X)
+ 0    /  1:  0.000
+ 1    /  2:  1.000
+ 2    /  3:  1.000
+ 3    /  4:  2.000
+ 4    /  5:  2.000
+ 5    /  6:  3.000
+ 6    /  7:  3.000
+ 7    /  8:  4.000
+ 8    /  9:  4.000
+ 9    / 10:  5.000
+ 10   / 11:  5.000
+ 
+ 
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+ 
+! Intentional error
+ 
+set mode ignore
+! Different delta
+ 
+define axis/x=0.5:10.5:0.5 alinenew
+list a[gx=alinenew at iin]
+ 
+set mode/last ignore
+ 
+ 
+! result out of range, returns missing
+define axis/x=100:111:1 alinenew
+list a[gx=alinenew at iin]
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 12 points (X)
+ 100   /  1:....
+ 101   /  2:....
+ 102   /  3:....
+ 103   /  4:....
+ 104   /  5:....
+ 105   /  6:....
+ 106   /  7:....
+ 107   /  8:....
+ 108   /  9:....
+ 109   / 10:....
+ 110   / 11:....
+ 111   / 12:....
+ 
+! partially out of range
+define axis/x=2.5:15.5:1 alinenew
+list a[gx=alinenew at iin]
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 14 points (X)
+ 2.5  /  1:  0.000
+ 3.5  /  2:  0.000
+ 4.5  /  3:  1.000
+ 5.5  /  4:  1.000
+ 6.5  /  5:  2.000
+ 7.5  /  6:  2.000
+ 8.5  /  7:  3.000
+ 9.5  /  8:  3.000
+ 10.5 /  9:   ....
+ 11.5 / 10:   ....
+ 12.5 / 11:   ....
+ 13.5 / 12:   ....
+ 14.5 / 13:   ....
+ 15.5 / 14:   ....
+ 
+! same range, outer boxes
+define axis/x=-0.5:10.5:1 alinenew
+list a[gx=alinenew at iin]
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 12 points (X)
+ -0.5 /  1:   ....
+ 0.5  /  2:  0.000
+ 1.5  /  3:  1.000
+ 2.5  /  4:  1.000
+ 3.5  /  5:  2.000
+ 4.5  /  6:  2.000
+ 5.5  /  7:  3.000
+ 6.5  /  8:  3.000
+ 7.5  /  9:  4.000
+ 8.5  / 10:  4.000
+ 9.5  / 11:  5.000
+ 10.5 / 12:   ....
+can mem
+! plots in different directions
+ 
+can view; can var/all
+! In X
+ 
+set win/asp=0.5
+set v left
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[x=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let xlo = xboxlo[gx=a]
+def ax/x aline_edges = xcat(xlo[i=1], xboxhi[gx=a])
+let a_iin_edges = a_iin[gx=aline_edges at asn]
+let a_int = IF i[gx=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[x=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+ 
+show axis/x aline_edges
+ name       axis              # pts   start                end
+ aline_edges X                 11 r   0                    10
+   Axis span (to cell edges) = 11
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0                     1          -0.5
+       2>  1                     1          0.5
+       3>  2                     1          1.5
+       4>  3                     1          2.5
+       5>  4                     1          3.5
+       6>  5                     1          4.5
+       7>  6                     1          5.5
+       8>  7                     1          6.5
+       9>  8                     1          7.5
+      10>  9                     1          8.5
+      11>  10                    1          9.5
+let c = a[gx=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[x=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gx=aline_edges at asn]
+let b_int = IF i[gx=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[x=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gx=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GX=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (X)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gx=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 11 by 2 points (X-Z)
+             0      1      2      3      4      5      6      7      8      9     10    
+             1      2      3      4      5      6      7      8      9     10     11
+ 1   / 1:   0.00   2.00   4.00   6.00   8.00  10.00  12.00  14.00  16.00  18.00  20.00
+ 2   / 2:   0.00   3.00   6.00   9.00  12.00  15.00  18.00  21.00  24.00  27.00  30.00
+ 
+ 
+can view; can var/all
+! In Y
+ 
+set win/asp=0.5
+set v left
+def ax/edge/y=0:10:1 aline
+let a = mod(.5+y[gy=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[y=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let ylo = yboxlo[gy=a]
+def ax/y aline_edges = ycat(ylo[j=1], yboxhi[gy=a])
+ 
+let a_iin_edges = a_iin[gy=aline_edges at asn]
+let a_int = IF j[gy=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[y=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gy=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[y=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gy=aline_edges at asn]
+let b_int = IF j[gy=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[y=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gy=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GY=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (Y)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gy=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on Y at IIN
+             SUBSET   : 11 by 2 points (Y-Z)
+             0      1      2      3      4      5      6      7      8      9     10    
+             1      2      3      4      5      6      7      8      9     10     11
+ 1   / 1:   0.00   2.00   4.00   6.00   8.00  10.00  12.00  14.00  16.00  18.00  20.00
+ 2   / 2:   0.00   3.00   6.00   9.00  12.00  15.00  18.00  21.00  24.00  27.00  30.00
+ 
+ 
+can view; can var/all
+! in Z
+ 
+set win/asp=0.5
+set v left
+def ax/edge/z=0:10:1 aline
+let a = mod(.5+z[gz=aline],2)
+plot/step=con/hl=-1:6:1/vl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[z=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let zlo = zboxlo[gz=a]
+def ax/z aline_edges = zcat(zlo[k=1], zboxhi[gz=a])
+ 
+let a_iin_edges = a_iin[gz=aline_edges at asn]
+let a_int = IF k[gz=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[z=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gz=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/hl=-1:12:1/vl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[z=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gz=aline_edges at asn]
+let b_int = IF k[gz=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[z=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gz=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GZ=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (Z)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/e=1:2:1 otheraxis
+let b2d = b + _e[ge=otheraxis]
+list b2d[gz=aline_edges at iin]
+             VARIABLE : B + _E[GE=OTHERAXIS]
+                        regrid: 1 delta on Z at IIN
+             SUBSET   : 11 by 2 points (Z-E)
+             0      1      2      3      4      5      6      7      8      9     10    
+             1      2      3      4      5      6      7      8      9     10     11
+ 1   / 1:   0.00   2.00   4.00   6.00   8.00  10.00  12.00  14.00  16.00  18.00  20.00
+ 2   / 2:   0.00   3.00   6.00   9.00  12.00  15.00  18.00  21.00  24.00  27.00  30.00
+ 
+ 
+can view; can var/all
+! In T
+ 
+set win/asp=0.5
+set v left
+def ax/edge/t=0:10:1 aline
+let a = mod(.5+t[gt=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[t=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let tlo = tboxlo[gt=a]
+def ax/t aline_edges = tcat(tlo[l=1], tboxhi[gt=a])
+ 
+let a_iin_edges = a_iin[gt=aline_edges at asn]
+let a_int = IF l[gt=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[t=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gt=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[t=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gt=aline_edges at asn]
+let b_int = IF l[gt=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[t=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gt=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GT=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (T)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gt=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on T at IIN
+             SUBSET   : 2 by 11 points (Z-T)
+               1      2    
+               1      2
+ 0    /  1:   0.00   0.00
+ 1    /  2:   2.00   3.00
+ 2    /  3:   4.00   6.00
+ 3    /  4:   6.00   9.00
+ 4    /  5:   8.00  12.00
+ 5    /  6:  10.00  15.00
+ 6    /  7:  12.00  18.00
+ 7    /  8:  14.00  21.00
+ 8    /  9:  16.00  24.00
+ 9    / 10:  18.00  27.00
+ 10   / 11:  20.00  30.00
+ 
+ 
+can view; can var/all
+! in E
+ 
+set win/asp=0.5
+set v left
+def ax/edge/e=0:10:1 aline
+let a = mod(.5+_e[ge=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[e=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let elo = eboxlo[ge=a]
+def ax/e aline_edges = ecat(elo[m=1], eboxhi[ge=a])
+ 
+let a_iin_edges = a_iin[ge=aline_edges at asn]
+let a_int = IF _m[ge=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[e=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[ge=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/hl=-1:12:1/vl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[e=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[ge=aline_edges at asn]
+let b_int = IF _m[ge=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[e=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[ge=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GE=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (E)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[ge=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on E at IIN
+             SUBSET   : 2 by 11 points (Z-E)
+               1      2    
+               1      2
+ 0    /  1:   0.00   0.00
+ 1    /  2:   2.00   3.00
+ 2    /  3:   4.00   6.00
+ 3    /  4:   6.00   9.00
+ 4    /  5:   8.00  12.00
+ 5    /  6:  10.00  15.00
+ 6    /  7:  12.00  18.00
+ 7    /  8:  14.00  21.00
+ 8    /  9:  16.00  24.00
+ 9    / 10:  18.00  27.00
+ 10   / 11:  20.00  30.00
+ 
+ 
+can view; can var/all
+! In F
+ 
+set win/asp=0.5
+set v left
+def ax/edge/f=0:10:1 aline
+let a = mod(.5+_f[gf=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[f=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let flo = fboxlo[gf=a]
+def ax/f aline_edges = fcat(flo[n=1], fboxhi[gf=a])
+ 
+let a_iin_edges = a_iin[gf=aline_edges at asn]
+let a_int = IF _n[gf=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[f=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gf=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[f=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gf=aline_edges at asn]
+let b_int = IF _n[gf=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[f=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gf=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GF=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (F)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gf=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on F at IIN
+             SUBSET   : 2 by 11 points (Z-F)
+               1      2    
+               1      2
+ 0    /  1:   0.00   0.00
+ 1    /  2:   2.00   3.00
+ 2    /  3:   4.00   6.00
+ 3    /  4:   6.00   9.00
+ 4    /  5:   8.00  12.00
+ 5    /  6:  10.00  15.00
+ 6    /  7:  12.00  18.00
+ 7    /  8:  14.00  21.00
+ 8    /  9:  16.00  24.00
+ 9    / 10:  18.00  27.00
+ 10   / 11:  20.00  30.00
+ 
 !  *********** Always do a bn_reset  ***********
 !  *********** make sure things clean up well **
 GO bn_reset
@@ -103909,9 +105107,9 @@ yes? ! run bn_all_ef tests
 yes? 
 yes? GO bn_all_ef
  	NOAA/PMEL TMAP
- 	FERRET v7.1 (beta/debug)
- 	Linux 2.6.32-696.1.1.el6.x86_64 64-bit - 04/17/17
- 	17-Apr-17 16:50     
+ 	FERRET v7.2 (beta/debug)
+ 	Linux 2.6.32-696.3.2.el6.x86_64 64-bit - 07/12/17
+ 	12-Jul-17 09:57     
 
 SET MODE VERIFY
 ! bn_all_ef.jnl
@@ -104729,7 +105927,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104754,7 +105952,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104778,7 +105976,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104817,7 +106015,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104852,7 +106050,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104893,7 +106091,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -104950,7 +106148,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105007,7 +106205,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105062,7 +106260,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105110,7 +106308,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105204,7 +106402,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105274,7 +106472,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105325,7 +106523,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105400,7 +106598,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105427,7 +106625,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -105451,7 +106649,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title, longer than the previous limit of 80 characters.  Previously various buffers were set to 80, and storage in ds_title was also too short." ;
 data:
@@ -105478,11 +106676,11 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -105513,7 +106711,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105585,7 +106783,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105629,7 +106827,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105671,7 +106869,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105779,7 +106977,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -105820,7 +107018,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -105843,7 +107041,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105869,7 +107067,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105889,7 +107087,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105910,7 +107108,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -105953,7 +107151,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -105993,7 +107191,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -106031,7 +107229,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -106042,25 +107240,25 @@ variables:
 	double AX047(AX047) ;
 		AX047:point_spacing = "even" ;
 		AX047:axis = "X" ;
-	float A1(AX047) ;
-		A1:missing_value = -1.e+34f ;
-		A1:_FillValue = -1.e+34f ;
+	double A1(AX047) ;
+		A1:missing_value = -1.e+34 ;
+		A1:_FillValue = -1.e+34 ;
 		A1:long_name = "a1" ;
 		A1:three = 1.f, 2.f, 3.f ;
 		A1:history = "From EZ.DAT" ;
-	float A2(AX047) ;
-		A2:missing_value = -1.e+34f ;
-		A2:_FillValue = -1.e+34f ;
+	double A2(AX047) ;
+		A2:missing_value = -1.e+34 ;
+		A2:_FillValue = -1.e+34 ;
 		A2:long_name = "a2" ;
 		A2:history = "From EZ.DAT" ;
-	float A3(AX047) ;
-		A3:missing_value = -1.e+34f ;
-		A3:_FillValue = -1.e+34f ;
+	double A3(AX047) ;
+		A3:missing_value = -1.e+34 ;
+		A3:_FillValue = -1.e+34 ;
 		A3:long_name = "a3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106080,20 +107278,20 @@ variables:
 	double AX018(AX018) ;
 		AX018:point_spacing = "even" ;
 		AX018:axis = "X" ;
-	float V1(AX018) ;
-		V1:missing_value = -1.e+34f ;
-		V1:_FillValue = -1.e+34f ;
+	double V1(AX018) ;
+		V1:missing_value = -1.e+34 ;
+		V1:_FillValue = -1.e+34 ;
 		V1:long_name = "V1" ;
 		V1:strval = "2" ;
 		V1:history = "From EZ.DAT" ;
-	float V4(AX018) ;
-		V4:missing_value = -1.e+34f ;
-		V4:_FillValue = -1.e+34f ;
+	double V4(AX018) ;
+		V4:missing_value = -1.e+34 ;
+		V4:_FillValue = -1.e+34 ;
 		V4:long_name = "V4" ;
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106119,7 +107317,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106165,7 +107363,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -106272,7 +107470,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -106314,7 +107512,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106397,7 +107595,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106434,7 +107632,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106474,7 +107672,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106525,7 +107723,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106584,7 +107782,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106629,7 +107827,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106672,7 +107870,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106707,7 +107905,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106741,7 +107939,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -106771,7 +107969,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -106800,7 +107998,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -106861,7 +108059,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106906,7 +108104,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -106925,7 +108123,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106955,7 +108153,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106985,7 +108183,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107038,7 +108236,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -107080,7 +108278,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -107098,7 +108296,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 err611_set_var_ez.jnl --- 
@@ -107109,15 +108307,15 @@ variables:
 	double AX139(AX139) ;
 		AX139:point_spacing = "even" ;
 		AX139:axis = "X" ;
-	float MY_ASC(AX139) ;
-		MY_ASC:missing_value = 3.f ;
-		MY_ASC:_FillValue = 3.f ;
+	double MY_ASC(AX139) ;
+		MY_ASC:missing_value = 3. ;
+		MY_ASC:_FillValue = 3. ;
 		MY_ASC:long_name = "chlorophyll" ;
 		MY_ASC:units = "micrograms/L" ;
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -107127,15 +108325,15 @@ variables:
 	double AX139(AX139) ;
 		AX139:point_spacing = "even" ;
 		AX139:axis = "X" ;
-	float MY_UNF(AX139) ;
-		MY_UNF:missing_value = 5.f ;
-		MY_UNF:_FillValue = 5.f ;
+	double MY_UNF(AX139) ;
+		MY_UNF:missing_value = 5. ;
+		MY_UNF:_FillValue = 5. ;
 		MY_UNF:long_name = "Some Unformatted input" ;
 		MY_UNF:units = "metres" ;
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -107152,7 +108350,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107173,7 +108371,7 @@ variables:
 		A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107236,7 +108434,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -107263,7 +108461,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -107290,7 +108488,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -107356,7 +108554,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -107388,7 +108586,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -107421,7 +108619,7 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -107446,7 +108644,7 @@ variables:
 		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107484,7 +108682,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107510,7 +108708,7 @@ variables:
 		MYVAR:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -107524,7 +108722,7 @@ variables:
 		MYVAR:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:history = "FERRET V7.2 (beta/debug) 12-Jul-17" ;
 		:Conventions = "CF-1.6" ;
 }
 -----
@@ -107538,9 +108736,9 @@ yes?
 yes? 
 yes? GO bn_startupfile
  	NOAA/PMEL TMAP
- 	FERRET v7.1 (beta/debug)
- 	Linux 2.6.32-696.1.1.el6.x86_64 64-bit - 04/17/17
- 	17-Apr-17 16:50     
+ 	FERRET v7.2 (beta/debug)
+ 	Linux 2.6.32-696.3.2.el6.x86_64 64-bit - 07/12/17
+ 	12-Jul-17 09:57     
 
 CAN MODE VERIFY
     SET MEMORY/SIZE: 31 megawords
@@ -107549,22 +108747,23 @@ CAN MODE VERIFY
 PPL$XPIXEL = "656"
 PPL$YPIXEL = "492"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 2.6.32-696.3.2.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "17-Apr-17"
-SESSION_TIME = "16:50"
-SESSION_PID = "22720"
-DELTA_CPU = "0.072988"
-CLOCK_SECS = "0.25"
-CURRENT_DATE = "17-Apr-17"
-CURRENT_TIME = "16:50:22"
+SESSION_DATE = "12-Jul-17"
+SESSION_TIME = "09:57"
+SESSION_PID = "5815"
+DELTA_CPU = "0.046992"
+CLOCK_SECS = "0.333"
+CURRENT_DATE = "12-Jul-17"
+CURRENT_TIME = "09:57:41"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
@@ -107585,7 +108784,7 @@ PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "17-Apr-17:16:50"
+WIN_TITLE = "12-Jul-17:09:57"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -107649,9 +108848,9 @@ yes?
 yes? 
 yes? GO bn_gif
  	NOAA/PMEL TMAP
- 	FERRET v7.1 (beta/debug)
- 	Linux 2.6.32-696.1.1.el6.x86_64 64-bit - 04/17/17
- 	17-Apr-17 16:50     
+ 	FERRET v7.2 (beta/debug)
+ 	Linux 2.6.32-696.3.2.el6.x86_64 64-bit - 07/12/17
+ 	12-Jul-17 09:57     
 
 ! bn450_gif.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of gif file in batch mode using
@@ -108188,6 +109387,161 @@ shade/over d10[i=1:10:2,j=1:10]
  
 frame/file=bn_subspan_mod_strides.gif
  
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_plotvs_mode_label
+! err71_plotvs_mode_label.jnl
+!  *acm*3/17/17 Ticket 2517:
+! MODE LONG_LABEL, MODE LATIT_LABEL need to apply
+! to PLOT/VS plots.
+ 
+can mode logo
+ 
+set mode long_lab
+set mode latit_lab
+ 
+let/title="|Roll|"/units="degree" abscissa_roll = {0, 20}
+let/title="Wind Speed"/units="kn" ordinate_spd  = {0, 0}
+ 
+! labeled lon/lat axes. Units of "degrees" is taken to be degrees
+! east or north depending on which plot axis it is drawn on.
+ 
+set view ul
+plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
+set view ur
+plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
+ 
+! These modes turn off lon/lat axis labeling
+ 
+cancel mode long_lab
+cancel mode latit_lab
+ 
+set view ll
+plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
+set view lr
+plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
+ 
+! Explicit units units of degrees_east and degrees_north:
+! degrees_east draws longitude labeling on whichever plot axis
+! the associated variable is drawn, and likewise for degrees_north.
+! Setting or cancelling the label modes applies to the variable
+! units not the plot-axis direction.
+ 
+cancel view
+set mode long_lab
+set mode latit_lab
+ 
+let/title="East"/units="degrees_east" lon = {10,20,30}
+let/title="North"/units="degrees_north" lat = {-10,0,10}
+ 
+! longitude axis on the horizontal, latitude axis on the vertical
+ 
+set view ul; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit TRUE"
+ 
+! latitude axis on the horizontal, longitude axis on the vertical
+ 
+set view ur; plot/vs/line/sym/vlim=0:40/hlim=-20:20 lat,lon
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long vertical  latit horizontal"
+ 
+! longitude axis on the horizontal, latitude axis on the vertical
+! but with latitude labeling turned off
+ 
+set mode long_lab
+cancel mode latit_lab
+set view ll; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit FALSE"
+ 
+! latitude axis on the horizontal, longitude axis on the vertical
+! but with longitude labeling turned off
+ 
+cancel mode long_lab
+set mode latit_lab
+set view lr; plot/vs/line/sym/vlim=0:40/hlim=-20:20 lat,lon
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long FALSE  latit TRUE"
+ 
+frame/file=lon_lat_label_controls.gif
+ 
+ 
+! Restore default settings
+set mode long_lab
+set mode latit_lab
+ 
+set mode/last logo
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err700_vs_plot_axes
+! err700_vs_plot_axes.jnl
+! See ticket 2477, in some cases the plot axes are not fully drawn
+! 11/2016 ACM
+ 
+ 
+USE err700_vs_data.nc
+ 
+! only with PLOT/VS plots, only with SYMBOLS not PLOT/VS/LINE
+PLOT/VS/THICK/COLOR=red/SIZ=0.2 lon,lat
+FRAME/FILE=bn_axis_vs.gif
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_vs_constant
+! err71_vs_constant.jnl
+! See ticket 2318, defining plot axes when data is constant
+! 4/2017 acm
+ 
+! The axis ranges had been set as val-1, val+1 which
+! worked poorly for large or small data values
+ 
+ 
+ 
+ 
+def view/xlim=   0,.333/ylim=0,.5 ll6   ! ok
+def view/xlim=   0,.333/ylim=.5,1 ul6   ! long tic labels
+def view/xlim=.333,.666/ylim=0,.5 lm6   ! long tic labels, logo corrupted
+def view/xlim=.333,.666/ylim=.5,1 um6   ! plot positioning and labels are corrupted
+def view/xlim=.666,   1/ylim=0,.5 lr6   ! no plot at all
+def view/xlim=.666,   1/ylim=.5,1 ur6   ! no vertical tic labels
+ 
+ 
+set view ul6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e4*{1,1}
+set view um6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e5*{1,1}
+set view ur6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e6*{1,1}
+set view ll6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e7*{1,1}
+set view lm6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e8*{1,1}
+set view lr6; plot/vs/color/thick/line/sym/siz=0.2 {1,2}, 1e-2*{1,1}
+ 
+frame/file=bn_vs_const_value.gif
+ 
+! With constant data value as the first argument
+ 
+can view
+set view ul6; plot/vs/color/thick/line/sym/siz=0.2  1e4*{1,1}, {1,2}
+set view um6; plot/vs/color/thick/line/sym/siz=0.2  1e5*{1,1}, {1,2}
+set view ur6; plot/vs/color/thick/line/sym/siz=0.2  1e6*{1,1}, {1,2}
+set view ll6; plot/vs/color/thick/line/sym/siz=0.2  1e7*{1,1}, {1,2}
+set view lm6; plot/vs/color/thick/line/sym/siz=0.2  1e8*{1,1}, {1,2}
+set view lr6; plot/vs/color/thick/line/sym/siz=0.2 1e-2*{1,1}, {1,2}
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_vs_lon_over
+! err71_vs_lon_over.jnl
+! PLOT/VS/OVER does longitude moduloing if the xpts
+!  variable has units of degrees east.
+ 
+use coads_climatology
+shade/l=1/x=0:360/nolab/nokey if sst then 1
+let/units=degrees_east xpts = {-170,-150,-100, 100, 150, 170}
+let/units=degrees_north ypts = {-30, -20, -10,   0,  10,  20}
+ 
+plot/vs/over/thick/siz=0.2/sym=19 xpts,ypts
+frame/file=vs_lon_over.gif
+ 
 exit/command
 yes? ! this "shell" is used because the Unix redirection fails to echo commands
 yes? ! from the top level command file
@@ -108197,9 +109551,9 @@ yes?
 yes? 
 yes? GO bn_ps
  	NOAA/PMEL TMAP
- 	FERRET v7.1 (beta/debug)
- 	Linux 2.6.32-696.1.1.el6.x86_64 64-bit - 04/17/17
- 	17-Apr-17 16:50     
+ 	FERRET v7.2 (beta/debug)
+ 	Linux 2.6.32-696.3.2.el6.x86_64 64-bit - 07/12/17
+ 	12-Jul-17 09:57     
 
 ! bn450_ps.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of ps files in batch mode using
@@ -108311,9 +109665,9 @@ yes?
 yes? 
 yes? GO bn_batch_metafile
  	NOAA/PMEL TMAP
- 	FERRET v7.1 (beta/debug)
- 	Linux 2.6.32-696.1.1.el6.x86_64 64-bit - 04/17/17
- 	17-Apr-17 16:50     
+ 	FERRET v7.2 (beta/debug)
+ 	Linux 2.6.32-696.3.2.el6.x86_64 64-bit - 07/12/17
+ 	12-Jul-17 09:57     
 
 ! bn_batch_metafile.jnl
 ! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -108397,4 +109751,4 @@ set window/location=0.1,0.1/title="another title"
  
 set mode/last logo
 exit/command
-Ended at Mon Apr 17 16:50:25 PDT 2017
+Ended at Wed Jul 12 09:57:45 PDT 2017
diff --git a/bench/bn710_bug_fixes.jnl b/bench/bn710_bug_fixes.jnl
index 486d1b2..2082768 100644
--- a/bench/bn710_bug_fixes.jnl
+++ b/bench/bn710_bug_fixes.jnl
@@ -49,8 +49,9 @@ go err700_attribute_parsing
 
 
 ! Bug 2477 plot axes are not fully drawn, some /VS plots
-go bn_reset
-go err700_vs_plot_axes
+! move this to bn_gif.jnl 
+! go bn_reset
+! go err700_vs_plot_axes
 
 ! Bug 2483. Fixing axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
 go bn_reset
diff --git a/bench/bn720_bug_fixes.jnl b/bench/bn720_bug_fixes.jnl
index a9dbbfe..a80676f 100644
--- a/bench/bn720_bug_fixes.jnl
+++ b/bench/bn720_bug_fixes.jnl
@@ -12,8 +12,9 @@ GO err71_prec_return
 GO bn_reset
 GO err71_save_rigid
 
-GO bn_reset
-GO err71_plotvs_mode_label
+! move this to bn_gif.jnl 
+! GO bn_reset
+! GO err71_plotvs_mode_label
 
 GO bn_reset
 GO err71_set_redirect
@@ -30,5 +31,38 @@ GO err71_user_var_attrib
 GO bn_reset
 GO err71_save_bounds
 
+! move this to bn_gif.jnl 
+! GO bn_reset
+! GO err71_vs_constant
+
+! run this from bn_gif.jnl 
+! GO bn_reset
+! GO err71_vs_lon_over 
+
+
+GO bn_reset
+GO err71_point_average
+
+GO bn_reset
+GO err71_2d_ave_miss0
+
+GO bn_reset
+GO err71_read_delim
+
+GO bn_reset
+GO err71_isready_unknown
+
+GO bn_reset
+GO err71_ppl_sho_empty
+
+GO bn_reset
+GO err71_string_and_if
+
+GO bn_reset
+GO err71_expr_w_const
+
+GO bn_reset
+GO err71_colorlevs
+
 GO bn_reset
-GO err71_vs_constant
+GO err71_repeat_paren
diff --git a/bench/bn_DQ.jnl b/bench/bn_DQ.jnl
index c150e33..bca8362 100644
--- a/bench/bn_DQ.jnl
+++ b/bench/bn_DQ.jnl
@@ -111,6 +111,9 @@ DEFINE SYMBOL a _DQ_foobar_DQ_
 say ($a)
 
 ! ======
+! Note this result changes 6/30/2017, due to change in merge_grid for ticket
+! 2313, in grid-merging the grid of a constant is now a normal grid. Previously
+! it was the abstract grid.
 DEFINE SYMBOL a    "(`foobar,return=xaxis`)"
 say ($a)
 DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
diff --git a/bench/bn_aggregate_tef.jnl b/bench/bn_aggregate_tef.jnl
index 593107c..a0de421 100644
--- a/bench/bn_aggregate_tef.jnl
+++ b/bench/bn_aggregate_tef.jnl
@@ -2,6 +2,7 @@
 ! 2/2016 *sh*
 ! 3/2016 - modified to test single point axis aggregations on Z axis
 ! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
+! *acm*7/2017 0=success for SPAWN_STATUS
 
 ! to avoid re-creating the test files include argument "0" as in
 !  yes?  GO bn_aggregate_tef 0
@@ -15,7 +16,7 @@ CANCEL MODE VERIFY
 
 ! see if the test file already exists
 SPAWN "ls tmp/f04_e3_t3_1v.nc"
-IF ($SPAWN_STATUS) THEN
+IF ($SPAWN_OK) THEN
   say *** NOT RE-CREATING bn_aggregate_tef.jnl test files. They already exist.
 ELSE
 
diff --git a/bench/bn_all.jnl b/bench/bn_all.jnl
index 2a6f5e1..706de29 100644
--- a/bench/bn_all.jnl
+++ b/bench/bn_all.jnl
@@ -1129,8 +1129,8 @@ GO bn_stat_precision
 GO bn_reset bn_plot_vs_with_time
 GO bn_plot_vs_with_time
 
-GO bn_reset bn_inner
-GO bn_inner
+GO bn_reset bn_dot_product
+GO bn_dot_product
 
 GO bn_reset bn_cache_management
 GO bn_cache_management
@@ -1138,6 +1138,9 @@ GO bn_cache_management
 GO bn_reset bn_transp_choose
 GO bn_transp_choose
 
+GO bn_reset bn_iin_regrid
+GO bn_iin_regrid
+
 !  *********** Always do a bn_reset  *********** 
 !  *********** make sure things clean up well **
 GO bn_reset
diff --git a/bench/bn_cache_management.jnl b/bench/bn_cache_management.jnl
index 957ecb8..aae776f 100644
--- a/bench/bn_cache_management.jnl
+++ b/bench/bn_cache_management.jnl
@@ -3,6 +3,7 @@
  ! 1/2017 - try to force Ferret into a complex juggling of dependencies
 ! and cache maintenance in order to reproduce the problem seen in trac
 ! ticket #2485 (from Ned Cokelet)
+! *acm*7/2017 0=success for SPAWN_STATUS
 
 ! Ferret's cache of memory-resident results is full when it holds 500 of them.
 ! At that point it must delete cached results to make room for new variables.
@@ -36,7 +37,7 @@ define axis/x=1:1000000:1 xmillion
 ! see if the test files already exist
 SPAWN "mkdir -p tmp"     ! tmp directory to store files
 SPAWN ls tmp/test_auto_cache_($nsets).nc
-IF ($SPAWN_STATUS) THEN
+IF ($SPAWN_OK) THEN
  say test files already exist.  not re-creating them
 ELSE
 !**************************************
diff --git a/bench/bn_cancel_axes.jnl b/bench/bn_cancel_axes.jnl
index 9b4265f..acab781 100644
--- a/bench/bn_cancel_axes.jnl
+++ b/bench/bn_cancel_axes.jnl
@@ -46,3 +46,14 @@ can axis ax1
 sh axis/t test_irreg
 sh axis/t test_seas
 
+! test reading space delimited values - trac #2549
+columns/skip=3/var="v1,v2"/typ="num,num" longax.dat
+list/clobber/file=longaxspace.dat/norow/nohead v1, v2
+let nrecs = `v1,return=isize`
+can data/all
+define axis/x=1:`nrecs`:1 xax
+define grid/x=xax xgrid
+columns/grid=xgrid/delim="\b"/var="v1,v2"/typ="num,num" longaxspace.dat
+! this used to cause a crash (due to improper memory advancing to skip spaces)
+load v1
+
diff --git a/bench/bn_color_wire.jnl b/bench/bn_color_wire.jnl
new file mode 100644
index 0000000..ccbb0e8
--- /dev/null
+++ b/bench/bn_color_wire.jnl
@@ -0,0 +1,13 @@
+set text /font=lucida
+set region /i=1:80 /j=1:80
+let bump = exp(-1.0*(((I-40)/20)^2 + ((J-40)/20)^2))
+wire /color=blue /viewpoint=-4,-10,2 bump
+frame /file=bluewire.png
+set window /color=blue 1
+set text /font=lucida /color=(100,100,25)
+wire /color=red /thick=3.5 /viewpoint=-4,-10,2 bump
+frame /file=redwire.png
+wire /color=(100,0,0,25) /thick=3.5 /viewpoint=-4,-10,2 bump
+frame /file=red25wire.png
+wire /color=(100,0,0) /opacity=10 /thick=3.5 /viewpoint=-4,-10,2 bump
+frame /file=red10wire.png
diff --git a/bench/bn_contourcolor.jnl b/bench/bn_contourcolor.jnl
index a1d53ae..4495651 100644
--- a/bench/bn_contourcolor.jnl
+++ b/bench/bn_contourcolor.jnl
@@ -6,3 +6,11 @@ contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=green/title="CONTOUR LUCIDA GR
 frame /file=contourcolor_green.pdf
 contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=(60,20,30)/title="CONTOUR LUCIDA (60,20,30)"  10*sin(i/3)*cos(j/4)
 frame /file=contourcolor_puce.pdf
+
+
+! Test contour labels in different colors
+! Test contour labels on a depth axis
+use gt4d011.cdf
+set text/color=blue contour
+contour/j=40/l=1/color=(30,60,30)/title="CONTOUR depth var with blue labels"  temp
+frame /file=contourcolor_depth.pdf
diff --git a/bench/bn_dot_product.jnl b/bench/bn_dot_product.jnl
new file mode 100644
index 0000000..65d57f8
--- /dev/null
+++ b/bench/bn_dot_product.jnl
@@ -0,0 +1,114 @@
+! bn_dot_product.jnl
+! 3/2017 *acm*  dot product function for matrix multiply operation
+
+
+sh func dot*
+
+! A call to dot(var1, var2, dir) translates into call to 
+! function dot_q(var1,var2) where q is the pax direction 
+! corresponding to dir=1,2,...,6
+
+set list/pre=7
+
+define axis/x=1:5:1 xpax
+define axis/y=0.1:0.3:0.1 ypax
+define axis/z=0.01:0.04:0.01 zpax
+define axis/e=-3:-1:1 epax
+define axis/f=-0.4:-0.1:0.1 fpax
+
+let var1 = x[gx=xpax]
+let var2 = 1+0*x[gx=xpax]
+list var1, var2
+list  dot(var1, var2, 1)
+!can var/all
+
+let var1 = x[gx=xpax]
+let var2 = 1+0*x[gx=xpax]
+list  dot_x(var1, var2)
+
+let var1 = y[gy=ypax]
+let var2 = 1+0*y[gy=ypax]
+list var1, var2
+list  dot(var1, var2, 2)
+
+let var1 = z[gz=zpax]
+let var2 = 1+0*z[gz=zpax]
+list var1, var2
+list  dot(var1, var2, 3)
+
+let var1 = L[gt=month_reg]
+let var2 = 1+0*L[gt=month_reg]
+list var1, var2
+list  dot(var1, var2, 4)
+
+let var1 = _e[ge=epax]
+let var2 = 1+0*_e[ge=epax]
+list var1, var2
+list  dot(var1, var2, 5)
+
+let var1 = _f[gf=fpax]
+let var2 = 1+0*_f[gf=fpax]
+list var1, var2
+list  dot(var1, var2, 6)
+
+let axy = x[gx=xpax] + y[gy=ypax]
+let bxz = 0*x[gx=xpax]+  10*Z[GZ=Zpax]
+list axy, bxz
+list dot(axy, bxz, 1)
+
+let byz = y[gy=ypax]+  10*Z[GZ=Zpax]
+list dot(axy, byz, 2)
+
+let lvar = L[gt=month_reg] - 1
+let axyt = axy + lvar
+let multi_dot = dot(axyt, byz, 2)
+save/file=a.nc/clobber multi_dot
+
+can var multi_dot
+use a.nc
+!  This should be the same as dot(axy, byz, 2)
+list/l=1 multi_dot
+
+!  z and t
+
+
+let axz = x[gx=xpax] + z[gz=zpax]
+let bzt = 0*z[gz=zpax]+  10*L[gt=month_reg]
+list dot(axz, bzt, 3)
+
+let ayt = y[gy=ypax]+ 10*L[gt=month_reg]
+list dot(ayt, bzt, 4)
+
+
+let xvar = x[gx=xpax] - 1
+let axyt = ayt + xvar
+let multi_dot = dot(axyt, bzt, 4)
+save/file=a.nc/clobber multi_dot
+
+can var multi_dot
+use a.nc
+!  This should be the same as dot(ayt, bzt, 4)
+list/i=1 multi_dot
+
+can dat/all
+
+!  e and f
+
+let ayf = _f[gf=fpax] + y[gy=ypax]
+let bfe = 0*_f[gf=fpax]+  10*_e[ge=epax]
+list dot(ayf, bfe, 6)
+
+let aze = z[gz=zpax]+ 10*_e[ge=epax]
+list dot(aze, bfe, 5)
+
+let xvar = x[gx=xpax] - 1
+let azex = aze + xvar
+let multi_dot = dot(azex, bfe, 5)
+save/file=a.nc/clobber multi_dot
+
+can var multi_dot
+use a.nc
+!  This should be the same as dot(azex, bfe, 5)
+list/i=1 multi_dot
+
+cancel list/precision
diff --git a/bench/bn_dynamic_gather.jnl b/bench/bn_dynamic_gather.jnl
index 95e5fdb..52d9faa 100644
--- a/bench/bn_dynamic_gather.jnl
+++ b/bench/bn_dynamic_gather.jnl
@@ -1,5 +1,6 @@
 ! bn_dynamic_gather.jnl
 ! *sh* 3/2017
+! *acm*7/2017 0=success for SPAWN_STATUS
 
 ! There's not really anything "dynamic" about this benchmark, except that it
 ! excercises the split/gather improvements that were implemented together with
@@ -19,7 +20,7 @@ spawn "mkdir -p tmp"     ! tmp directory to store files
 
 ! see if the test file already exists
 SPAWN "ls tmp/test_dyn_mem.nc"
-IF ($SPAWN_STATUS) THEN
+IF ($SPAWN_OK) THEN
   say test files already exist.  not re-creating them
 ELSE
   define symbol saved_memory_size = ($FERRET_MEMORY)
diff --git a/bench/bn_gif.jnl b/bench/bn_gif.jnl
index 424c0af..e7a6119 100644
--- a/bench/bn_gif.jnl
+++ b/bench/bn_gif.jnl
@@ -183,6 +183,18 @@ GO err696_contour_conset
 GO bn_reset
 GO err696_subspan_mod_strides
 
+GO bn_reset
+GO err71_plotvs_mode_label
+
+GO bn_reset
+GO err700_vs_plot_axes
+
+GO bn_reset
+GO err71_vs_constant
+
+GO bn_reset 
+GO err71_vs_lon_over
+
 exit/command
 
 
diff --git a/bench/bn_iin_regrid.jnl b/bench/bn_iin_regrid.jnl
new file mode 100644
index 0000000..c7d8f86
--- /dev/null
+++ b/bench/bn_iin_regrid.jnl
@@ -0,0 +1,291 @@
+! bn_iin_regrid.jnl
+! @IIN as a regridding transform See Ticket 2346
+
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+
+let xlo = xboxlo[gx=a]
+def ax/x aline_edges = xcat(xlo[i=1], xboxhi[gx=a])
+
+! new @IIN regridding
+show axis/x aline_edges
+
+let c = a[gx=aline_edges at iin]
+list a
+list c
+
+
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+
+! Intentional error
+
+set mode ignore
+! Different delta
+
+define axis/x=0.5:10.5:0.5 alinenew
+list a[gx=alinenew at iin]
+
+set mode/last ignore
+
+
+! result out of range, returns missing
+define axis/x=100:111:1 alinenew
+list a[gx=alinenew at iin]
+
+! partially out of range 
+define axis/x=2.5:15.5:1 alinenew
+list a[gx=alinenew at iin]
+
+! same range, outer boxes 
+define axis/x=-0.5:10.5:1 alinenew
+list a[gx=alinenew at iin]
+can mem
+! plots in different directions
+
+can view; can var/all
+! In X
+
+set win/asp=0.5
+set v left
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[x=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let xlo = xboxlo[gx=a]
+def ax/x aline_edges = xcat(xlo[i=1], xboxhi[gx=a])
+let a_iin_edges = a_iin[gx=aline_edges at asn]
+let a_int = IF i[gx=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[x=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+
+
+! new @IIN regridding
+
+show axis/x aline_edges
+let c = a[gx=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[x=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gx=aline_edges at asn]
+let b_int = IF i[gx=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[x=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+
+! new @IIN regridding
+let d = b[gx=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+
+list d
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gx=aline_edges at iin]
+
+
+can view; can var/all
+! In Y
+
+set win/asp=0.5
+set v left
+def ax/edge/y=0:10:1 aline
+let a = mod(.5+y[gy=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[y=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let ylo = yboxlo[gy=a]
+def ax/y aline_edges = ycat(ylo[j=1], yboxhi[gy=a])
+
+let a_iin_edges = a_iin[gy=aline_edges at asn]
+let a_int = IF j[gy=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[y=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+
+
+! new @IIN regridding
+let c = a[gy=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+
+
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[y=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gy=aline_edges at asn]
+let b_int = IF j[gy=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[y=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+
+! new @IIN regridding
+let d = b[gy=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+
+list d
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gy=aline_edges at iin]
+
+
+can view; can var/all
+! in Z
+
+set win/asp=0.5
+set v left
+def ax/edge/z=0:10:1 aline
+let a = mod(.5+z[gz=aline],2)
+plot/step=con/hl=-1:6:1/vl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[z=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let zlo = zboxlo[gz=a]
+def ax/z aline_edges = zcat(zlo[k=1], zboxhi[gz=a])
+
+let a_iin_edges = a_iin[gz=aline_edges at asn]
+let a_int = IF k[gz=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[z=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+
+
+! new @IIN regridding
+let c = a[gz=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+
+set v right
+let b = 1+0*a
+plot/step=con/hl=-1:12:1/vl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[z=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gz=aline_edges at asn]
+let b_int = IF k[gz=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[z=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+
+! new @IIN regridding
+let d = b[gz=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+
+list d
+define axis/e=1:2:1 otheraxis
+let b2d = b + _e[ge=otheraxis]
+list b2d[gz=aline_edges at iin]
+
+
+can view; can var/all
+! In T
+
+set win/asp=0.5
+set v left
+def ax/edge/t=0:10:1 aline
+let a = mod(.5+t[gt=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[t=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let tlo = tboxlo[gt=a]
+def ax/t aline_edges = tcat(tlo[l=1], tboxhi[gt=a])
+
+let a_iin_edges = a_iin[gt=aline_edges at asn]
+let a_int = IF l[gt=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[t=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+
+
+! new @IIN regridding
+let c = a[gt=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[t=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gt=aline_edges at asn]
+let b_int = IF l[gt=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[t=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+
+! new @IIN regridding
+let d = b[gt=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+
+list d
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gt=aline_edges at iin]
+
+
+can view; can var/all
+! in E
+
+set win/asp=0.5
+set v left
+def ax/edge/e=0:10:1 aline
+let a = mod(.5+_e[ge=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[e=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let elo = eboxlo[ge=a]
+def ax/e aline_edges = ecat(elo[m=1], eboxhi[ge=a])
+
+let a_iin_edges = a_iin[ge=aline_edges at asn]
+let a_int = IF _m[ge=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[e=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+
+
+! new @IIN regridding
+let c = a[ge=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+
+set v right
+let b = 1+0*a
+plot/step=con/hl=-1:12:1/vl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[e=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[ge=aline_edges at asn]
+let b_int = IF _m[ge=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[e=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+
+! new @IIN regridding
+let d = b[ge=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+
+list d
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[ge=aline_edges at iin]
+
+
+can view; can var/all
+! In F
+
+set win/asp=0.5
+set v left
+def ax/edge/f=0:10:1 aline
+let a = mod(.5+_f[gf=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[f=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let flo = fboxlo[gf=a]
+def ax/f aline_edges = fcat(flo[n=1], fboxhi[gf=a])
+
+let a_iin_edges = a_iin[gf=aline_edges at asn]
+let a_int = IF _n[gf=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[f=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+
+
+! new @IIN regridding
+let c = a[gf=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[f=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gf=aline_edges at asn]
+let b_int = IF _n[gf=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[f=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+
+! new @IIN regridding
+let d = b[gf=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+
+list d
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gf=aline_edges at iin]
diff --git a/bench/bn_let_remote.jnl b/bench/bn_let_remote.jnl
index 91cb20c..9e61d31 100644
--- a/bench/bn_let_remote.jnl
+++ b/bench/bn_let_remote.jnl
@@ -2,26 +2,28 @@
 ! Tests of the F-TDS LET/REMOTE
 ! 6/2016 installed NVODS on new-bock server 
 ! 9/2016 load smaller subsets of the data 
-! 4/2017 Use the THREDDS server at http://ferret.pmel.noaa.gov/pmel/thredds
+! 4/2017 Update thredds server urls. To find the right URL, go to the dataset
+!        in the NVODS server, and hit the "Export to Desktop Application"
+!        button. The .jnl address is the correct F-TDS URL.
 
 ! See if the F-TDS is working and bail if not.
-let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
 load status
 if `status NE 0` then EXIT/SCRIPT
 
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
-let/D=1/remote myvar = t0112mn1[k=1:5 at sum]
-let/D=1/remote ave_z = t0112mn1[z=0:20 at ave]
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+let/D=1/remote myvar = t00an1[k=1:5 at sum]
+let/D=1/remote ave_z = t00an1[z=0:20 at ave]
 sh var
 set view ul; shade/l=7/x=180:200/y=20:30 myvar
 set view ur; shade/l=3/x=180:200/y=20:30 ave_z
 
 list/l=7/x=300:310/y=15 myvar, ave_z
 
-let/D=1/remote ave_t = t0112mn1[L=1:12 at ave]
+let/D=1/remote ave_t = t00an1[L=1:12 at ave]
 set view ll; shade/z=0/x=180:200/y=20:30 ave_t
 
-let/D=1/remote/units="`t0112mn1,ret=units`"/title="Summer average Temperature" ave_summer = t0112mn1[t=15-jun:15-sep at ave]
+let/D=1/remote/units="`t00an1,ret=units`"/title="Summer average Temperature" ave_summer = t00an1[t=15-jun:15-sep at ave]
 set view lr; shade/z=0/x=180:200/y=20:30 ave_summer
 
 can view
@@ -29,8 +31,8 @@ can data/all; can var/all
 
 ! open another dataset, define more remote variables
 
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
 let/D=2/remote sstsum = sst[L=1:5 at sum]
 let/D=2/remote airtsum = airt[L=1:5 at sum]
 sh dat
@@ -46,7 +48,7 @@ list/y=-10/x=50:59 sstsum, airtsum, both
 can dat/all; can var/all
 
 ! make several remote definitions. They can be used together in an expression. 
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
 let/D=1/remote sstsum = sst[L=1:5 at sum]
 let/D=1/remote airtsum = airt[L=1:5 at sum]
 let/D=1/remote factor = 12
@@ -56,10 +58,10 @@ list/y=-5/x=130w:110w combo
 
 can dat/all; can var/all
 
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
 
 ! This is ok let/remote/D=
-let/D=1/remote myvar = t0112mn1[z=1:100 at ave]
+let/D=1/remote myvar = t00an1[z=1:100 at ave]
 
 ! Intentional errors:
 
@@ -67,17 +69,17 @@ let/D=1/remote myvar = t0112mn1[z=1:100 at ave]
 ! the remote server so the same datsets are not open there.
 
 set mode ignore
-let/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+let/D=1/remote rvar = t00an1[d=1,z=1:100 at ave]
 
 
 ! But, require LET/D= with /REMOTE
-let/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+let/remote rvar = t00an1[d=1,z=1:100 at ave]
 
 ! If expressions involve local variables not defined in the remote dset,
 ! then the variable can be computed but not as a remote-var.
 
 let a = 12
-let/D=1/remote avar = a*t0112mn1[L=@ave]
+let/D=1/remote avar = a*t00an1[L=@ave]
 list/x=300/y=15 avar
 
 SET MODE/LAST ignore
diff --git a/bench/bn_strings.jnl b/bench/bn_strings.jnl
index f5d681b..00054e0 100644
--- a/bench/bn_strings.jnl
+++ b/bench/bn_strings.jnl
@@ -167,7 +167,7 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
 
 SET MODE IGNORE
-list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
+! list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+99 ELSE "goodbye"+", my ") + "friend"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+99) + "friend"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + 99
diff --git a/bench/bn_vtree_regrid.jnl b/bench/bn_vtree_regrid.jnl
index 5b0e591..25e0a78 100644
--- a/bench/bn_vtree_regrid.jnl
+++ b/bench/bn_vtree_regrid.jnl
@@ -2,6 +2,7 @@
 ! exercise 12/14 enhancements to display regrid target on a separate line 
 ! updated 1/26/15 to exercise multiple regrid target outputs
 ! updated 2/23/15 to report target of regrid even when aux regridding occurs
+! 5/2017 note that the fix for #2533 causes some duplicate  UNKNOWN GRID lines 
 
 ! case 1: target grid known,   regridded variable known
 let myvar = 1           ! var to be regridded is known
diff --git a/bench/co_emac.nc b/bench/co_emac.nc
new file mode 100644
index 0000000..74e7ab2
Binary files /dev/null and b/bench/co_emac.nc differ
diff --git a/bench/err71_2d_ave_miss0.jnl b/bench/err71_2d_ave_miss0.jnl
new file mode 100644
index 0000000..a0d13ba
--- /dev/null
+++ b/bench/err71_2d_ave_miss0.jnl
@@ -0,0 +1,16 @@
+! err71_2d_ave_miss0.jnl
+! Ticket 2539: data with 0 as missing flag, 
+! 2D average or definite integral all-missing
+! 6/5/2017 *acm*
+
+use gt4d011.cdf
+let temp0 = temp
+set var/bad=0. temp0
+save/clobber/file=a.nc temp0
+can dat/all
+can var/all
+use a.nc
+
+! Both of these should have all valid numbers,
+! previously (in v7.1+) they were all-missing.
+list/k=1/L=1:10 temp0[x=@ave,y=@ave], temp0[x=@din,y=@din]
diff --git a/bench/err71_colorlevs.jnl b/bench/err71_colorlevs.jnl
new file mode 100644
index 0000000..fce7c6c
--- /dev/null
+++ b/bench/err71_colorlevs.jnl
@@ -0,0 +1,15 @@
+! err71_colorlevs
+! See ticket 2550. Top data value is not among color levels used in the plot.
+! And symbols LEV* do not list the levels used.
+
+use co_emac.nc
+stat co_emac
+
+! previously there were 25 levels chosen by the automatic 
+! method, missing the top one because of roundoff error.
+! Thus one cell went unfilled.  The LEV_MIN etc symbols were 
+! set to 0 because of inadequate formatting of the tiny numbers.
+
+set mode nlevels 30
+shade co_emac
+sh sym lev*
diff --git a/bench/err71_expr_w_const.jnl b/bench/err71_expr_w_const.jnl
new file mode 100644
index 0000000..d82f07d
--- /dev/null
+++ b/bench/err71_expr_w_const.jnl
@@ -0,0 +1,23 @@
+! err71_expr_w_const.jnl
+! ticket 2313: return= is loading the whole 
+! grid unnecessarily in the last example
+
+set mem/size=1
+def ax/t=1-jan-0001:1-jan-1000:1/unit=year tax
+let a = t[gt=tax] + x[gx=1:1000:1] + y[gy=1:1000:1]
+
+! These work fine
+say `a,return=cal`
+
+use coads_climatology
+let s1= sst[x=@ave,y=1,L=@max]
+say `s1*a,return=cal`
+
+! but the constant variable "let one = 1" introduced abstract 
+! axes to the grid which  caused Ferret to try to load the 
+! data in A which is large
+
+let one = 1
+let a1 = a*one
+show grid a1
+say `a*one,return=cal`
diff --git a/bench/err71_isready_unknown.jnl b/bench/err71_isready_unknown.jnl
new file mode 100644
index 0000000..d76f34f
--- /dev/null
+++ b/bench/err71_isready_unknown.jnl
@@ -0,0 +1,17 @@
+! err71_isready_unknown.jnl
+! ticket 2533, variable b depending on undefined variable c is 
+! reported not ready, but variable a with a regridding operation is
+! mistakenly reported ready.
+
+use coads_climatology
+let a = b[gxy=sst[d=1]]
+let b = c
+
+! both should return 0
+say `b,r=isready`
+say `a,r=isready`
+
+! And VTREE reported no unknown variables in its tree
+! The line for C should say UNKNOWN VARIABLE
+sho var/tree a
+
diff --git a/bench/err71_plotvs_mode_label.jnl b/bench/err71_plotvs_mode_label.jnl
index aa3f165..2d69d74 100644
--- a/bench/err71_plotvs_mode_label.jnl
+++ b/bench/err71_plotvs_mode_label.jnl
@@ -1,4 +1,4 @@
-! err71_plotVS_mode_label.jnl
+! err71_plotvs_mode_label.jnl
 !  *acm*3/17/17 Ticket 2517: 
 ! MODE LONG_LABEL, MODE LATIT_LABEL need to apply 
 ! to PLOT/VS plots.
@@ -49,7 +49,7 @@ annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit TRUE"
 
 ! latitude axis on the horizontal, longitude axis on the vertical
 
-set view ur; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon 
+set view ur; plot/vs/line/sym/vlim=0:40/hlim=-20:20 lat,lon 
 annotate/norm/x=0.1/y=0.9/siz=0.1 "long vertical  latit horizontal"
 
 ! longitude axis on the horizontal, latitude axis on the vertical
@@ -65,7 +65,7 @@ annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit FALSE"
 
 cancel mode long_lab
 set mode latit_lab
-set view lr; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
+set view lr; plot/vs/line/sym/vlim=0:40/hlim=-20:20 lat,lon
 annotate/norm/x=0.1/y=0.9/siz=0.1 "long FALSE  latit TRUE"
 
 frame/file=lon_lat_label_controls.gif
diff --git a/bench/err71_point_average.jnl b/bench/err71_point_average.jnl
new file mode 100644
index 0000000..95f31fc
--- /dev/null
+++ b/bench/err71_point_average.jnl
@@ -0,0 +1,54 @@
+! err71_point_average.jnl
+! Ticket 2538 6/2017
+! Average over a point removes dependence on that dimension.
+! previously returned missing-data
+
+let a = x[x=1:5] + y[y=1:3]
+list a
+
+list a[y=2 at ave]
+list a[x=2 at ave]
+list a[y=2 at ave,x=4 at ave]  ! all prev. versions listed these as missing
+
+let a = z[z=1:5] + t[t=1:3]
+list a[z=2 at ave]
+list a[t=2 at ave]
+
+list a[t=2 at ave,z=4 at ave]
+
+let a = _e[e=1:5] + _f[f=1:3]
+list a[f=2 at ave]
+list a[e=2 at ave]
+list a[f=2 at ave,e=4 at ave]
+
+! Check result if the missing-flag is zero
+
+let/bad=0 a = x[x=1:5] + y[y=1:3]
+list a
+
+list a[y=2 at ave]
+list a[x=2 at ave]
+list a[y=2 at ave,x=4 at ave]  ! all prev. versions listed these as missing
+
+
+! multiple directions including e,f
+
+use 6dfile.nc
+
+! average, result is on xz
+let uave = u[i=1:3,j=50 at ave,l=1 at ave,m=3 at ave,n=2 at ave]
+list uave
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+
+! average, result is on yt
+let uave = u[i=3 at ave,j=50:60,l=3:6,z=40 at ave,m=3 at ave,n=2 at ave]
+list uave
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+
+! average, result is on e-f, single time
+let uave = u[i=3 at ave,y=8 at ave,z=15 at ave,t="15-MAR-1983 11:00"]
+list uave
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
diff --git a/bench/err71_ppl_sho_empty.jnl b/bench/err71_ppl_sho_empty.jnl
new file mode 100644
index 0000000..248d446
--- /dev/null
+++ b/bench/err71_ppl_sho_empty.jnl
@@ -0,0 +1,26 @@
+! err71_ppl_sho_empty.jnl
+! ticket 2543, PPL SHOW pplsym is a command, but it
+! gave a Fortran runtime error if given with no argument
+! Now send these errors through the Ferret errmsg routine.
+
+! This is a valid sequence, pplus symbol definition
+
+pplus set xpos 3.2
+pplus show xpos
+
+! intentional error
+
+set mode ignore
+
+! This is a correct error message, undefined symbol
+pplus show nosymbol
+
+! This previously hit a runtime error, symbol name missing.
+ppl show
+
+! Another PPL error we might hit is an invalid command. 
+! Write this error message 
+PPL nonsense
+
+set mode/last ignore
+
diff --git a/bench/err71_read_delim.jnl b/bench/err71_read_delim.jnl
new file mode 100644
index 0000000..b7dadc4
--- /dev/null
+++ b/bench/err71_read_delim.jnl
@@ -0,0 +1,31 @@
+! err71_read_delim.jnl
+! 6/9/2017 ACM
+! Ticket 2540, Write errors when data is read using - to skip fields
+! in a delimited read
+
+define axis/x=1:10:1 row_ax
+define grid/x=row_ax in_grid
+
+
+FILE/FORM=delim/skip=1/grid=in_grid\
+/var="YEAR,MONTH,LON,LAT,-,HAULJOIN,LENGTH,FREQ,-,BTTM_TEMP,SST,BTTM_DEPTH,CPUE,BIN"\
+/typ="num,num,num,num,-,num,num,num,-,num,num,num,num,num,"/delim="\,"\ 
+ shorttest.dat
+
+set var/title="year" YEAR
+set var/title="month" MONTH
+set var/title="lon"/units="degrees_E" LON
+set var/title="lat"/units="degrees_N" LAT
+set var/title="hauljoin" HAULJOIN
+set var/title="length"/units="mm" LENGTH
+set var/title="freq"/units="Number" FREQ
+set var/title="bttm_temp"/units="degrees_C" BTTM_TEMP
+set var/title="SST"/units="degrees_C" SST
+set var/title="bttm_depth"/units="m" BTTM_DEPTH
+set var/title="CPUE"/units="fish/km**2" CPUE
+set var/title="bin_size"/units="mm" BIN
+
+! Previously this caused netcdf library errors and exited out of Ferret
+save/file=a.nc/clobber year, month, lon, lat, hauljoin, length, freq, bttm_temp, SST, bttm_depth, CPUE, bin
+
+sp ncdump -h a.nc
diff --git a/bench/err71_repeat_paren.jnl b/bench/err71_repeat_paren.jnl
new file mode 100644
index 0000000..8bd825e
--- /dev/null
+++ b/bench/err71_repeat_paren.jnl
@@ -0,0 +1,15 @@
+! err71_repeat_paren.jnl
+! Ticket 2551. The second command with an extra parenthese is not reported
+! to be a syntax error but just reports wrong info.
+
+repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue)
+
+! Previously the extra paren at the end did not trigger an error
+! but caused a parsing error so the command 
+!   say ($count) 
+! was parsed and fixed at "say 3" before the loop started.
+
+set mode ignore
+repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue))
+set mode/last ignore
+
diff --git a/bench/err71_string_and_if.jnl b/bench/err71_string_and_if.jnl
new file mode 100644
index 0000000..68866cc
--- /dev/null
+++ b/bench/err71_string_and_if.jnl
@@ -0,0 +1,47 @@
+! err71_string_and_if.jnl
+!  6/28/2018, ticket 2547
+
+! problem with masked strings -> unexpected values instead of strings:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+list if (test) then strings
+
+! works: define a masked variable instead, then list
+let masked = if (test) then strings
+list masked
+
+! alternatively, do the same listing for a float first
+let floats = {2,3,4}
+list if (test) then floats
+
+! now, also for strings listing while masking works
+list if (test) then strings
+
+
+
+! the next problem comes with xsequence
+! again unexpected numerical values instead of strings
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+let masked = if (test) then strings
+list xsequence(masked)
+
+! but doing a listing first fixes it:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+list if (test) then strings
+let masked = if (test) then strings
+list xsequence(masked)
+
+
+! NOT fixed by defining a second masked variable before:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+let masked = if (test) then strings
+let masked2 = xsequence(masked)
+list masked2
+
diff --git a/bench/err71_vs_lon_over.jnl b/bench/err71_vs_lon_over.jnl
new file mode 100644
index 0000000..305bccf
--- /dev/null
+++ b/bench/err71_vs_lon_over.jnl
@@ -0,0 +1,11 @@
+! err71_vs_lon_over.jnl
+! PLOT/VS/OVER does longitude moduloing if the xpts
+!  variable has units of degrees east.
+
+use coads_climatology
+shade/l=1/x=0:360/nolab/nokey if sst then 1
+let/units=degrees_east xpts = {-170,-150,-100, 100, 150, 170}
+let/units=degrees_north ypts = {-30, -20, -10,   0,  10,  20}
+
+plot/vs/over/thick/siz=0.2/sym=19 xpts,ypts
+frame/file=vs_lon_over.gif
diff --git a/bench/shorttest.dat b/bench/shorttest.dat
new file mode 100644
index 0000000..7d01a48
--- /dev/null
+++ b/bench/shorttest.dat
@@ -0,0 +1,11 @@
+ YEAR  MO   LON     LAT      str1      HAULJOIN LENGTH  FREQ  str2   BTTM_TEMP    SST    BTTM_DEPT    CPUE      BIN
+1996.0,6.0,200.5890,55.63290,somestring,881278.0,390.0,1.0,anotherstring,4.4,7.5,113.0,833.6547,300.0
+1996.0,6.0,200.5890,55.63290,somestring,881278.0,400.0,1.0,anotherstring,4.4,7.5,113.0,833.6547,300.0
+1996.0,6.0,200.5890,55.63290,somestring,881278.0,450.0,1.0,anotherstring,4.4,7.5,113.0,833.6547,400.0
+1996.0,6.0,200.5890,55.63290,somestring,881278.0,430.0,1.0,anotherstring,4.4,7.5,113.0,833.6547,400.0
+1996.0,6.0,200.5890,55.63290,somestring,881278.0,470.0,1.0,anotherstring,4.4,7.5,113.0,833.6547,400.0
+1996.0,6.0,200.5890,55.63290,somestring,881278.0,460.0,1.0,anotherstring,4.4,7.5,113.0,833.6547,400.0
+1996.0,6.0,200.5890,55.63290,somestring,881278.0,560.0,2.0,anotherstring,4.4,7.5,113.0,833.6547,500.0
+1996.0,6.0,200.5890,55.63290,somestring,881278.0,530.0,1.0,anotherstring,4.4,7.5,113.0,833.6547,500.0
+1996.0,6.0,200.5890,55.63290,somestring,881278.0,560.0,1.0,anotherstring,4.4,7.5,113.0,833.6547,500.0
+1996.0,6.0,200.5890,55.63290,somestring,881278.0,550.0,1.0,anotherstring,4.4,7.5,113.0,833.6547,500.0
diff --git a/bench/test_results/axticlabel.pdf b/bench/test_results/axticlabel.pdf
index 2b71c51..00489cb 100644
Binary files a/bench/test_results/axticlabel.pdf and b/bench/test_results/axticlabel.pdf differ
diff --git a/bench/test_results/bluewire.png b/bench/test_results/bluewire.png
new file mode 100644
index 0000000..4da1f01
Binary files /dev/null and b/bench/test_results/bluewire.png differ
diff --git a/bench/test_results/bn_axis_vs.gif b/bench/test_results/bn_axis_vs.gif
index 5011ce6..724b6cd 100644
Binary files a/bench/test_results/bn_axis_vs.gif and b/bench/test_results/bn_axis_vs.gif differ
diff --git a/bench/test_results/bn_axis_vs.png b/bench/test_results/bn_axis_vs.png
index d6e7b89..625f87b 100644
Binary files a/bench/test_results/bn_axis_vs.png and b/bench/test_results/bn_axis_vs.png differ
diff --git a/bench/test_results/bn_contour_conset.gif b/bench/test_results/bn_contour_conset.gif
index d4232f1..ed02488 100644
Binary files a/bench/test_results/bn_contour_conset.gif and b/bench/test_results/bn_contour_conset.gif differ
diff --git a/bench/test_results/bn_hovmuller_overlays.gif b/bench/test_results/bn_hovmuller_overlays.gif
index 5e8acfd..01bbe5e 100644
Binary files a/bench/test_results/bn_hovmuller_overlays.gif and b/bench/test_results/bn_hovmuller_overlays.gif differ
diff --git a/bench/test_results/bn_inf2missing.pdf b/bench/test_results/bn_inf2missing.pdf
index ea7644b..6bd0823 100644
Binary files a/bench/test_results/bn_inf2missing.pdf and b/bench/test_results/bn_inf2missing.pdf differ
diff --git a/bench/test_results/bn_labels_on_taxis.gif b/bench/test_results/bn_labels_on_taxis.gif
index 47929c2..74b0974 100644
Binary files a/bench/test_results/bn_labels_on_taxis.gif and b/bench/test_results/bn_labels_on_taxis.gif differ
diff --git a/bench/test_results/bn_labels_on_taxis.pdf b/bench/test_results/bn_labels_on_taxis.pdf
index 733b8dc..fa2d627 100644
Binary files a/bench/test_results/bn_labels_on_taxis.pdf and b/bench/test_results/bn_labels_on_taxis.pdf differ
diff --git a/bench/test_results/bn_ribbon_vlog.gif b/bench/test_results/bn_ribbon_vlog.gif
index ae54874..27b8fb1 100644
Binary files a/bench/test_results/bn_ribbon_vlog.gif and b/bench/test_results/bn_ribbon_vlog.gif differ
diff --git a/bench/test_results/bn_ribbon_vlog.png b/bench/test_results/bn_ribbon_vlog.png
index 53ac89e..ad1f8fb 100644
Binary files a/bench/test_results/bn_ribbon_vlog.png and b/bench/test_results/bn_ribbon_vlog.png differ
diff --git a/bench/test_results/bn_subspan_mod_strides.gif b/bench/test_results/bn_subspan_mod_strides.gif
index 582f1b6..077db46 100644
Binary files a/bench/test_results/bn_subspan_mod_strides.gif and b/bench/test_results/bn_subspan_mod_strides.gif differ
diff --git a/bench/test_results/bn_vs_const_value.gif b/bench/test_results/bn_vs_const_value.gif
index 4ffeb2c..5d735cc 100644
Binary files a/bench/test_results/bn_vs_const_value.gif and b/bench/test_results/bn_vs_const_value.gif differ
diff --git a/bench/test_results/bn_vs_const_value.png b/bench/test_results/bn_vs_const_value.png
index a946743..cf9c080 100644
Binary files a/bench/test_results/bn_vs_const_value.png and b/bench/test_results/bn_vs_const_value.png differ
diff --git a/bench/test_results/bnplot.pdf b/bench/test_results/bnplot.pdf
index bc10ec7..5b81d71 100644
Binary files a/bench/test_results/bnplot.pdf and b/bench/test_results/bnplot.pdf differ
diff --git a/bench/test_results/bnplot_2.gif b/bench/test_results/bnplot_2.gif
index f6bfc91..7720ec4 100644
Binary files a/bench/test_results/bnplot_2.gif and b/bench/test_results/bnplot_2.gif differ
diff --git a/bench/test_results/bnplot_3.gif b/bench/test_results/bnplot_3.gif
index e16612d..fb652b7 100644
Binary files a/bench/test_results/bnplot_3.gif and b/bench/test_results/bnplot_3.gif differ
diff --git a/bench/test_results/bnplot_4.eps b/bench/test_results/bnplot_4.eps
index 5e237ea..109f823 100644
--- a/bench/test_results/bnplot_4.eps
+++ b/bench/test_results/bnplot_4.eps
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0 EPSF-3.0
-%%Creator: cairo 1.14.4 (http://cairographics.org)
-%%CreationDate: Tue Apr 18 17:19:02 2017
+%%Creator: cairo 1.14.10 (http://cairographics.org)
+%%CreationDate: Tue Jul 11 18:36:08 2017
 %%Pages: 1
 %%DocumentData: Clean7Bit
 %%LanguageLevel: 2
@@ -58,6 +58,9 @@ save
 /g { setgray } bind def
 /rg { setrgbcolor } bind def
 /d1 { setcachedevice } bind def
+/cairo_flush_ascii85_file { cairo_ascii85_file status { cairo_ascii85_file flushfile } if } def
+/cairo_image { image cairo_flush_ascii85_file } def
+/cairo_imagemask { imagemask cairo_flush_ascii85_file } def
 %%EndProlog
 %%BeginSetup
 %%EndSetup
diff --git a/bench/test_results/bnplot_4.pdf b/bench/test_results/bnplot_4.pdf
index d55879d..caac65c 100644
Binary files a/bench/test_results/bnplot_4.pdf and b/bench/test_results/bnplot_4.pdf differ
diff --git a/bench/test_results/bnplot_4.ps b/bench/test_results/bnplot_4.ps
index e5110c8..7449088 100644
--- a/bench/test_results/bnplot_4.ps
+++ b/bench/test_results/bnplot_4.ps
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
-%%Creator: cairo 1.14.4 (http://cairographics.org)
-%%CreationDate: Tue Apr 18 17:19:02 2017
+%%Creator: cairo 1.14.10 (http://cairographics.org)
+%%CreationDate: Tue Jul 11 18:36:08 2017
 %%Pages: 1
 %%DocumentData: Clean7Bit
 %%LanguageLevel: 2
@@ -62,6 +62,9 @@
 /g { setgray } bind def
 /rg { setrgbcolor } bind def
 /d1 { setcachedevice } bind def
+/cairo_flush_ascii85_file { cairo_ascii85_file status { cairo_ascii85_file flushfile } if } def
+/cairo_image { image cairo_flush_ascii85_file } def
+/cairo_imagemask { imagemask cairo_flush_ascii85_file } def
 /cairo_set_page_size {
   % Change paper size, but only if different from previous paper size otherwise
   % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size
diff --git a/bench/test_results/closed_lev.pdf b/bench/test_results/closed_lev.pdf
index 6ad8e73..6672828 100644
Binary files a/bench/test_results/closed_lev.pdf and b/bench/test_results/closed_lev.pdf differ
diff --git a/bench/test_results/contourcolor_blue.pdf b/bench/test_results/contourcolor_blue.pdf
index 28b93af..242b614 100644
Binary files a/bench/test_results/contourcolor_blue.pdf and b/bench/test_results/contourcolor_blue.pdf differ
diff --git a/bench/test_results/contourcolor_depth.pdf b/bench/test_results/contourcolor_depth.pdf
new file mode 100644
index 0000000..b731c52
Binary files /dev/null and b/bench/test_results/contourcolor_depth.pdf differ
diff --git a/bench/test_results/contourcolor_green.pdf b/bench/test_results/contourcolor_green.pdf
index 19469b3..a3518bd 100644
Binary files a/bench/test_results/contourcolor_green.pdf and b/bench/test_results/contourcolor_green.pdf differ
diff --git a/bench/test_results/contourcolor_puce.pdf b/bench/test_results/contourcolor_puce.pdf
index eb6721e..4b42714 100644
Binary files a/bench/test_results/contourcolor_puce.pdf and b/bench/test_results/contourcolor_puce.pdf differ
diff --git a/bench/test_results/dashbug.pdf b/bench/test_results/dashbug.pdf
index 72429c7..e517fec 100644
Binary files a/bench/test_results/dashbug.pdf and b/bench/test_results/dashbug.pdf differ
diff --git a/bench/test_results/degC_axlab.pdf b/bench/test_results/degC_axlab.pdf
index c6d99b9..f67c1f9 100644
Binary files a/bench/test_results/degC_axlab.pdf and b/bench/test_results/degC_axlab.pdf differ
diff --git a/bench/test_results/dots.pdf b/bench/test_results/dots.pdf
index efe781c..e05b33e 100644
Binary files a/bench/test_results/dots.pdf and b/bench/test_results/dots.pdf differ
diff --git a/bench/test_results/err700_key.gif b/bench/test_results/err700_key.gif
index fbd9133..aa9ba7f 100644
Binary files a/bench/test_results/err700_key.gif and b/bench/test_results/err700_key.gif differ
diff --git a/bench/test_results/ferret_run_tests_err b/bench/test_results/ferret_run_tests_err
index ad33656..36f6f5b 100644
--- a/bench/test_results/ferret_run_tests_err
+++ b/bench/test_results/ferret_run_tests_err
@@ -1,306 +1,3 @@
-Using FERRET /home/flat/ksmith/Ferret/bin/ferret
-lrwxrwxrwx. 1 ksmith oerdnewp 11 Apr 18 17:01 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v7.1
-Using external functions from /home/flat/ksmith/Ferret/ext_func/libs
-Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for Ferret
-****** Restricting Ferret paths to bench directory ******
-FER_DAT=.
-FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/Ferret/ext_func/libs
-FER_FONTS=/home/flat/ksmith/Ferret/ppl/fonts
-FER_GO=. /home/flat/ksmith/Ferret/go /home/flat/ksmith/Ferret/examples /home/flat/ksmith/Ferret/contrib
-FER_GRIDS=.
-FER_LIBS=/home/flat/ksmith/Ferret/lib
-FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
-FER_WEB_BROWSER=firefox
-Benchmark scripts that will be run:
-   bn_syntax.jnl
-   bn_dollar.jnl
-   bn_grave.jnl
-   bn_letd.jnl
-   bn_if.jnl
-   bn_expressions.jnl
-   bn_geometry.jnl
-   bn_output.jnl
-   bn_in_plane.jnl
-   bn_compress.jnl
-   bn_interpolate.jnl
-   bn_regrid.jnl
-   bn_ez.jnl
-   bn_plot.jnl
-   bn_curv.jnl
-   bn_symbols.jnl
-   bn_comma_delimited.jnl
-   bn_dynamic_grids.jnl
-   bn_cdf.jnl
-   bn_regrid_transforms.jnl
-   bn_axis_limits.jnl
-   bn_movie.jnl
-   bn_ez_order.jnl
-   bn_user.jnl
-   bn_stream.jnl
-   bn_mc.jnl
-   bn_negative_t.jnl
-   bn_xact_regrid.jnl
-   bn_gc_functions.jnl
-   bn491_bug_fixes.jnl
-   bn_odd_variable_name.jnl
-   bn_test_stream.jnl
-   bn_define_axes.jnl
-   bn_pattern.jnl
-   bn_polygon.jnl
-   bn500_bug_fixes.jnl
-   bn_sample.jnl
-   bn_strides_revs_perms.jnl
-   bn_non_COARDS_netCDF.jnl
-   bn_cache_hits.jnl
-   bn_regrid_to_user.jnl
-   bn_calendar.jnl
-   bn_dash_dot.jnl
-   bn_flowlines.jnl
-   bn_logaxes.jnl
-   bn_internal_external_functions.jnl
-   bn_modulo_strides.jnl
-   bn_axis_viewports.jnl
-   bn_strings.jnl
-   bn_axcontrol.jnl
-   bn_vec_curv.jnl
-   bn_delimited_read.jnl
-   bn541_bug_fixes.jnl
-   bn_cancel_axes.jnl
-   bn542_bug_fixes.jnl
-   bn_subspan_modulo.jnl
-   bn_dots.jnl
-   bn_lev_symbols.jnl
-   bn_mode_logo_lab.jnl
-   bn_modulo_attribute.jnl
-   bn550_bug_fixes.jnl
-   bn551_bug_fixes.jnl
-   bn_multi_line_labels.jnl
-   bn552_bug_fixes.jnl
-   bn_set_var_scale_off.jnl
-   bn_longvarnames.jnl
-   bn_shakey.jnl
-   bn_eof_4d.jnl
-   bn_abstract_axis_names.jnl
-   bn_many_polygons.jnl
-   bn_fill_irregular.jnl
-   bn_xml_output.jnl
-   bn_test_nan.jnl
-   bn553_bug_fixes.jnl
-   bn_graticules.jnl
-   bn_repeat_range.jnl
-   bn554_bug_fixes.jnl
-   bn_bounds.jnl
-   bn_all_leap.jnl
-   bn570_bug_fixes.jnl
-   bn_modstats.jnl
-   bn_mc_vary_scale.jnl
-   bn_plot_nokey.jnl
-   bn580_bug_fixes.jnl
-   bn_inf_levels.jnl
-   bn_regulart.jnl
-   bn_labwid.jnl
-   bn_redefine_taxis_mc.jnl
-   bn_illegal_axisname.jnl
-   bn_exit_script.jnl
-   bn_exit_cycle.jnl
-   bn_curv_mod.jnl
-   bn_shade_keycont.jnl
-   bn581_bug_fixes.jnl
-   bn_tab_comma_multivar.jnl
-   bn_element_functions.jnl
-   bn_long_revision_num.jnl
-   bn_window_title.jnl
-   bn_last_error.jnl
-   bn_deg_min.jnl
-   bn_dp_readscale.jnl
-   bn_bounds_defineax.jnl
-   bn_attributes.jnl
-   bn_transforms.jnl
-   bn_variance.jnl
-   bn_linecolors.jnl
-   bn_cdf_errmsg.jnl
-   bn600_bug_fixes.jnl
-   bn601_bug_fixes.jnl
-   bn_set_strides.jnl
-   bn_lsl_lowpass.jnl
-   bn_return_xmod_tmod.jnl
-   bn602_bug_fixes.jnl
-   bn_modnbd.jnl
-   bn_fifty_files.jnl
-   bn603_bug_fixes.jnl
-   bn_set_var_name.jnl
-   bn_memory_symbol.jnl
-   bn605_bug_fixes.jnl
-   bn608_bug_fixes.jnl
-   bn_shade_trim.jnl
-   bn_mode_nlevels.jnl
-   bn61_bug_fixes.jnl
-   bn_test_opendap.jnl
-   bn611_bug_fixes.jnl
-   bn_no_valid_on_plot.jnl
-   bn_median.jnl
-   bn614_bug_fixes.jnl
-   bn_mode_nodata_lab.jnl
-   bn_proleptic_gregorian_calendar.jnl
-   bn_string_ngd_nbd.jnl
-   bn_cat_string.jnl
-   bn_sort_strings.jnl
-   bn_samplexyt.jnl
-   bn_last_go_file.jnl
-   bn_cancel_upcase_uservar.jnl
-   bn_cdf_keepax.jnl
-   bn_keep_axisnames.jnl
-   bn_key_label_minmax.jnl
-   bn62_bug_fixes.jnl
-   bn_convolve.jnl
-   bn_tax_tstep.jnl
-   bn_grads_z.jnl
-   bn_clock_syms.jnl
-   bn63_bug_fixes.jnl
-   bn_axis_reversed_syms.jnl
-   bn_isdepth.jnl
-   bn_var_hist_levels.jnl
-   bn64_bug_fixes.jnl
-   bn_long_grid_names.jnl
-   bn_xml_repl.jnl
-   bn65_bug_fixes.jnl
-   bn_txtype_dmy.jnl
-   bn_n_open_dsets_sym.jnl
-   bn_multi_decade.jnl
-   bn_show_xml_file.jnl
-   bn66_bug_fixes.jnl
-   bn_netcdf4.jnl
-   bn_scat2grid_bin.jnl
-   bn_axis_dir_symbols.jnl
-   bn663_bug_fixes.jnl
-   bn_set_axis_regular.jnl
-   bn_set_cancel_redirect.jnl
-   bn_min_max_smoothers.jnl
-   bn_vector_symbols.jnl
-   bn_variance_large.jnl
-   bn_labnum_calendar.jnl
-   bn665_bug_fixes.jnl
-   bn_floatstr.jnl
-   bn67_bug_fixes.jnl
-   bn_NaN_note.jnl
-   bn671_bug_fixes.jnl
-   bn68_bug_fixes.jnl
-   bn_ifv.jnl
-   bn_randu2_randn2.jnl
-   bn_axis_cf.jnl
-   bn_repeated_coords.jnl
-   bn_xml_header.jnl
-   bn_eof_simple.jnl
-   bn_eof_simple2.jnl
-   bn_interpolate_6d.jnl
-   bn_regrid_6d.jnl
-   bn_syntax_6d.jnl
-   bn_expressions_6d.jnl
-   bn_direction_fcns_6d.jnl
-   bn_regrid_transforms_6d.jnl
-   bn_aggregate_e.jnl
-   bn_6d_lab_mode.jnl
-   bn682_bug_fixes.jnl
-   bn683_bug_fixes.jnl
-   bn_outtype.jnl
-   bn_ribbon_plot.jnl
-   bn_descr_4digit.jnl
-   bn_axis_outtype.jnl
-   bn_axis_nonmonotonic.jnl
-   bn_vec_mod.jnl
-   bn685_bug_fixes.jnl
-   bn_dsg_e_x.jnl
-   bn_nco_append.jnl
-   bn_nobounds.jnl
-   bn_write_integer_att.jnl
-   bn_descriptor_mc.jnl
-   bn_plot_color_only.jnl
-   bn_vtree.jnl
-   bn686_bug_fixes.jnl
-   bn_long_symnames.jnl
-   bn_strdim.jnl
-   bn_single_colorlev.jnl
-   bn69_bug_fixes.jnl
-   bn_bad_axis_bounds.jnl
-   bn_enter_exit_GO.jnl
-   bn_stddev.jnl
-   bn_set_axis_name.jnl
-   bn_let_remote.jnl
-   bn691_bug_fixes.jnl
-   bn_append_dsg.jnl
-   bn_global_atts.jnl
-   bn_conventions_history.jnl
-   bn_center_key_labels.jnl
-   bn_wgt_transform.jnl
-   bn_show_outfile.jnl
-   bn_date1900_array.jnl
-   bn_spawn_size.jnl
-   bn_polygon_log.jnl
-   bn694_bug_fixes.jnl
-   bn_permute_ascii.jnl
-   bn_lon_lat_time_string.jnl
-   bn_save_justdim.jnl
-   bn_time2d.jnl
-   bn_legend_labels.jnl
-   bn_DQ.jnl
-   bn695_bug_fixes.jnl
-   bn_f_tax_fcns.jnl
-   bn_fmrc.jnl
-   bn_return_defined.jnl
-   bn_can_var_noerr.jnl
-   bn_annotate.jnl
-   bn_auxiliary.jnl
-   bn_plot_ribbon_gaploc.jnl
-   bn_time_short_axes.jnl
-   bn_floatstr_extended.jnl
-   bn696_bug_fixes.jnl
-   bn_bin_regrid.jnl
-   bn697_bug_fixes.jnl
-   bn_aggregate_t.jnl
-   bn_unquoted_args.jnl
-   bn_long_lists.jnl
-   bn_show_uvar_grid.jnl
-   bn_aggregate_f.jnl
-   bn_aggregate_tef.jnl
-   bn_dataset_qualifier.jnl
-   bn_speedtest.jnl
-   bn_show_noupcase.jnl
-   bn_letd_attributes.jnl
-   bn_list_clim_axes.jnl
-   bn_climatology_attr.jnl
-   bn_plot_along.jnl
-   bn_show_commands.jnl
-   bn_plot_decimate.jnl
-   bn_auto_tprec.jnl
-   bn_coordvars_atts.jnl
-   bn710_bug_fixes.jnl
-   bn_delim_datetime.jnl
-   bn_aggregate_u.jnl
-   bn_ez_noupcase.jnl
-   bn_spawn_fail.jnl
-   bn_ave_of_ave.jnl
-   bn_agg_member_syntax.jnl
-   bn_true_monthly.jnl
-   bn720_bug_fixes.jnl
-   bn_compressed_gather.jnl
-   bn_dynamic_gather.jnl
-   bn_stat_precision.jnl
-   bn_plot_vs_with_time.jnl
-   bn_inner.jnl
-   bn_cache_management.jnl
-   bn_transp_choose.jnl
-   bn_gif.jnl
-   bn_ps.jnl
-   bn_all_ef.jnl
-   bn_startupfile.jnl
-   err700_decimate.jnl
-Beginning at Tue Apr 18 17:03:01 PDT 2017
 *** Running ferret script: bn_syntax.jnl
            *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
@@ -597,7 +294,7 @@ list temp[i=2:5,gx=130e:80w:10]
 list temp[gx=130e:80w]
  **ERROR: variable unknown or not in data set: NOEXIST
 list temp[gx=u]	+ noexist
- **ERROR: illegal limits: TEMP on grid (G005) does not exist at K=30
+ **ERROR: illegal limits: TEMP on grid (G###) does not exist at K=30
           Axis extremes are K=1:27
 list temp[gx=u,k=30]
  **ERROR: illegal limits: TEMP does not contain K=20
@@ -613,7 +310,7 @@ list tu
 list tu
  **ERROR: variable unknown or not in data set: NOEXIST
 list tu
- **ERROR: illegal limits: TEMP on grid (G005) does not exist at K=30
+ **ERROR: illegal limits: TEMP on grid (G###) does not exist at K=30
           Axis extremes are K=1:27
 list tu
  **ERROR: illegal limits: TEMP does not contain K=20
@@ -1367,6 +1064,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
+ LISTing to file longaxspace.dat
 *** Running ferret script: bn542_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1387,9 +1085,9 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
            *** NOTE: Not deleted: TEST_IRREG
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Axis is in use by grid (G###)
            *** NOTE: Not deleted: TEST_IRREG
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Axis is in use by grid (G###)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -1483,7 +1181,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-rm: cannot remove `input.txt': No such file or directory
+rm: cannot remove ‘input.txt’: No such file or directory
 ls: cannot access input.txt: No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2231,8 +1929,6 @@ Replacing definition of axis TIME
            *** NOTE: Cannot cancel window when in batch mode
            *** NOTE: Cannot create new windows when batch mode set
 *** Running ferret script: bn_cdf_errmsg.jnl
-syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
 CURL Error: Couldn't resolve host name
 curl error details: 
  **TMAP ERR: non-existent or not on line
@@ -2401,7 +2097,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_set_strides.jnl
  **ERROR: invalid command: it is a child axis already
-set axis/stride=2/offset=1 (AX005)
+set axis/stride=2/offset=1 (AX###)
  **ERROR: invalid command: not a strided axis: COADSX
 cancel axis/stride COADSX
  **ERROR: invalid command: offset must be less than stride value
@@ -3464,7 +3160,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
-           *** NOTE: /home/flat/ksmith/Ferret/go/magnify.jnl
+           *** NOTE: ....../go/magnify.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -3609,6 +3305,8 @@ list a.units
 list ..history
  **ERROR: variable unknown or not in data set: ..HISTORY
 list ..history
+ **ERROR: command syntax: .
+list .
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -3798,8 +3496,59 @@ set axis/name=45 x_in_meters
  **ERROR: invalid command: illegal new name given for axis .fr
 set axis/name=.fr x_in_meters
 *** Running ferret script: bn_let_remote.jnl
-syntax error, unexpected WORD_WORD, expecting SCAN_ATTR or SCAN_DATASET or SCAN_ERROR
-context: <!DOCTYPE^ html PUBLIC "-//W3C//DTD HTML+RDFa 1.1//EN"><html lang="en" dir="ltr" version="HTML+RDFa 1.1" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/ [...]
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+ **ERROR: command syntax: /REMOTE variable expression may not contain [d=
+DEFINE VARIABLE/D=1/remote rvar = t00an1[d=1,z=1:100 at ave]
+ **ERROR: command syntax: /REMOTE variable definition must also specify /D=
+DEFINE VARIABLE/remote rvar = t00an1[d=1,z=1:100 at ave]
+ **netCDF error
+             Unable to open URL with REMOTE variable definitions:
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+ **TMAP ERR: attribute reading error
+             Unable to get varid for LET/REMOTE variable: NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+ **TMAP ERR: attribute reading error
+             Unable to get bad-value for LET/REMOTE variable: NetCDF: Attribute not found (OPeNDAP/netCDF Error code -43)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+ **netCDF error
+             NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+list/x=300/y=15 avar
 *** Running ferret script: bn691_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3931,7 +3680,7 @@ list substring("hello",1,-2)
  **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
 list substring("hello",1,-3)
 *** Running ferret script: bn_append_dsg.jnl
-rm: cannot remove `test_save_dsg.nc': No such file or directory
+rm: cannot remove ‘test_save_dsg.nc’: No such file or directory
 *** Running ferret script: bn_global_atts.jnl
  LISTing to file anew_global.nc
 *** Running ferret script: bn_conventions_history.jnl
@@ -4117,7 +3866,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-rm: cannot remove `WestCoastCarbon_9d9c_f562_77b5_5.nc': No such file or directory
+rm: cannot remove ‘WestCoastCarbon_9d9c_f562_77b5_5.nc’: No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -4165,7 +3914,7 @@ def anno/nou/xpos=0/hal=1/val=0 "My Lab"
  **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
 def anno/nou/user/xpos=0/ypos=0 "My Lab"
 *** Running ferret script: bn_auxiliary.jnl
-rm: cannot remove `layerz_test_data.txt': No such file or directory
+rm: cannot remove ‘layerz_test_data.txt’: No such file or directory
  LISTing to file layerz_test_data.txt
  **ERROR: variable unknown or not in data set: (data set ok ?): noexist
 SET VAR/layerz=depth noexist
@@ -4350,7 +4099,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file tmp/tagg_reg_no_T.nc
  LISTing to file tmp/tagg_reg_2_overlarge.nc
            *** NOTE: Not deleted: TDAY
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Axis is in use by grid (G###)
  LISTing to file tmp/tagg_irreg_1.nc
  LISTing to file tmp/tagg_irreg_2.nc
  LISTing to file tmp/tagg_irreg_3.nc
@@ -4364,7 +4113,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TDAY_IR
  LISTing to file tmp/tagg_irreg_2_reg.nc
            *** NOTE: Not deleted: TDAY_IR
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Axis is in use by grid (G###)
  LISTing to file tmp/tagg_T0varying_1.nc
 Replacing definition of axis TDAY_TVAR
  LISTing to file tmp/tagg_T0varying_2.nc
@@ -4400,15 +4149,15 @@ Replacing definition of axis TDAY_TVAR
  LISTing to file tmp/tagg_disjoint_T0varying_3.nc
  LISTing to file tmp/tagg_disjoint_T0varying_4_wrong.nc
            *** NOTE: Not deleted: TDAY_WRONG
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Axis is in use by grid (G###)
  LISTing to file tmp/tagg_single_1.nc
  LISTing to file tmp/tagg_single_2.nc
  LISTing to file tmp/tagg_single_3.nc
  LISTing to file tmp/tagg_single_4.nc
  LISTing to file tmp/tagg_single_5.nc
  LISTing to file tmp/tagg_single_6.nc
-           *** NOTE: Not deleted: tday
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Not deleted: TDAY
+           *** NOTE: Axis is in use by grid (G###)
            *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: invalid command: given aggregation dataset name already in use: myagg2
@@ -4455,9 +4204,9 @@ go/garbage tmp/testMe
  **ERROR: unknown command qualifier: garbage
 go/garbage "tmp/testMe"
  **ERROR: unknown command qualifier: garbage
-go/garbage /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl
+go/garbage ....../bench/tmp/testMe.jnl
  **ERROR: unknown command qualifier: garbage
-go/garbage "/home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl"
+go/garbage "....../bench/tmp/testMe.jnl"
 *** Running ferret script: bn_long_lists.jnl
  **ERROR: command syntax: command line too long -- exceeds 2048
 DEFINE VARIABLE a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7 [...]
@@ -4788,9 +4537,6 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAXIS
 Replacing definition of axis YAXIS
 Replacing definition of axis TAXIS
@@ -4935,8 +4681,8 @@ list index,edtim,udtim,udate,edate
  LISTing to file a.nc
 *** Running ferret script: bn_spawn_fail.jnl
 ls: cannot access notafile.nowhere: No such file or directory
-rm: cannot remove `nothing.dat': No such file or directory
-cp: cannot stat `nofile.dat': No such file or directory
+rm: cannot remove ‘nothing.dat’: No such file or directory
+cp: cannot stat ‘nofile.dat’: No such file or directory
 *** Running ferret script: bn_ave_of_ave.jnl
 *** Running ferret script: bn_agg_member_syntax.jnl
  **ERROR: unknown data set: D=5.3
@@ -5042,6 +4788,18 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+           *** NOTE: Saving E or F axis with time axis uses /RIGID in time
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -5049,6 +4807,31 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **ERROR: PPLUS command syntax error: Symbol not found PPLUS show nosymbol
+pplus show nosymbol
+ **ERROR: PPLUS command syntax error: Symbol not found PPLUS show
+ppl show
+ **ERROR: PPLUS command syntax error:  Command not recognized: PPLUS NONSENSE
+PPL nonsense
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis tax
+           *** NOTE: Ambiguous coordinates on T axis: S1*A
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **ERROR: invalid command: Mismatched parentheses within REPEAT loop
+repeat/range=1:3:1/name=count (def sym count = `count`; say 3; message/continue))
 *** Running ferret script: bn_compressed_gather.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -5285,7 +5068,7 @@ SET MODE FRUGAL:95
 *** Running ferret script: bn_plot_vs_with_time.jnl
 Replacing definition of axis TIME
 Replacing definition of axis TIME
-*** Running ferret script: bn_inner.jnl
+*** Running ferret script: bn_dot_product.jnl
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -5335,6 +5118,25 @@ ls: cannot access tmp/test_auto_cache_20.nc: No such file or directory
  LISTing to file test_auto_cache.out
 *** Running ferret script: bn_transp_choose.jnl
  TEMPORARY data cleared from memory
+*** Running ferret script: bn_iin_regrid.jnl
+ **ERROR: regridding: @IIN regridding must be to axis with same grid-cell sizes
+list a[gx=alinenew at iin]
+Replacing definition of axis ALINENEW
+Replacing definition of axis ALINENEW
+Replacing definition of axis ALINENEW
+ TEMPORARY data cleared from memory
+Replacing definition of axis ALINE
+Replacing definition of axis ALINE_EDGES
+Replacing definition of axis ALINE
+Replacing definition of axis ALINE_EDGES
+Replacing definition of axis OTHERAXIS
+Replacing definition of axis ALINE
+Replacing definition of axis ALINE_EDGES
+Replacing definition of axis OTHERAXIS
+Replacing definition of axis ALINE
+Replacing definition of axis ALINE_EDGES
+Replacing definition of axis ALINE
+Replacing definition of axis ALINE_EDGES
 *** Running ferret script: bn_gif.jnl
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
@@ -5400,6 +5202,24 @@ ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Re-defining viewport LL6
+Re-defining viewport UL6
+Re-defining viewport LM6
+Re-defining viewport UM6
+Re-defining viewport LR6
+Re-defining viewport UR6
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_ps.jnl
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
@@ -5447,4 +5267,3 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
 *** Running ferret script: err700_decimate.jnl
-Ended at Tue Apr 18 17:06:31 PDT 2017
diff --git a/bench/test_results/ferret_run_tests_log b/bench/test_results/ferret_run_tests_log
index ab3ee90..9e74005 100644
--- a/bench/test_results/ferret_run_tests_log
+++ b/bench/test_results/ferret_run_tests_log
@@ -1,22 +1,4 @@
-Using FERRET /home/flat/ksmith/Ferret/bin/ferret
-lrwxrwxrwx. 1 ksmith oerdnewp 11 Apr 18 17:01 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v7.1
-Using external functions from /home/flat/ksmith/Ferret/ext_func/libs
-Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for Ferret
 ****** Restricting Ferret paths to bench directory ******
-FER_DAT=.
-FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/Ferret/ext_func/libs
-FER_FONTS=/home/flat/ksmith/Ferret/ppl/fonts
-FER_GO=. /home/flat/ksmith/Ferret/go /home/flat/ksmith/Ferret/examples /home/flat/ksmith/Ferret/contrib
-FER_GRIDS=.
-FER_LIBS=/home/flat/ksmith/Ferret/lib
-FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
-FER_WEB_BROWSER=firefox
 Benchmark scripts that will be run:
    bn_syntax.jnl
    bn_dollar.jnl
@@ -292,15 +274,15 @@ Benchmark scripts that will be run:
    bn_dynamic_gather.jnl
    bn_stat_precision.jnl
    bn_plot_vs_with_time.jnl
-   bn_inner.jnl
+   bn_dot_product.jnl
    bn_cache_management.jnl
    bn_transp_choose.jnl
+   bn_iin_regrid.jnl
    bn_gif.jnl
    bn_ps.jnl
    bn_all_ef.jnl
    bn_startupfile.jnl
    err700_decimate.jnl
-Beginning at Tue Apr 18 17:03:01 PDT 2017
 *** Running ferret script: bn_syntax.jnl
 ! bn401_syntax.JNL
 ! - test syntax interpretation of Program FERRET
@@ -446,7 +428,7 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  V1       V1                               1:2       ...       ...       ...
-               on grid (G008) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=-0.5:1.5  
  
  /FORMAT = FREE
@@ -8458,17 +8440,17 @@ list v1234
  9   / 5:  2998.  3998.  4998.
  ---- L:4 T:   08-JAN-1980 00:00
  ---- K:3 Z:   5
- 5   / 3:  2779.  3779.  4779.
- 7   / 4:  2879.  3879.  4879.
- 9   / 5:  2979.  3979.  4979.
+ 5   / 3:  2778.  3778.  4778.
+ 7   / 4:  2878.  3878.  4878.
+ 9   / 5:  2978.  3978.  4978.
  ---- K:4 Z:   7
- 5   / 3:  2789.  3789.  4789.
- 7   / 4:  2889.  3889.  4889.
- 9   / 5:  2989.  3989.  4989.
+ 5   / 3:  2788.  3788.  4788.
+ 7   / 4:  2888.  3888.  4888.
+ 9   / 5:  2988.  3988.  4988.
  ---- K:5 Z:   9
- 5   / 3:  2799.  3799.  4799.
- 7   / 4:  2899.  3899.  4899.
- 9   / 5:  2999.  3999.  4999.
+ 5   / 3:  2798.  3798.  4798.
+ 7   / 4:  2898.  3898.  4898.
+ 9   / 5:  2998.  3998.  4998.
  ---- L:5 T:   10-JAN-1980 00:00
  ---- K:3 Z:   5
  5   / 3:  2780.  3780.  4780.
@@ -9715,7 +9697,7 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  V1       V1                               1:5       ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:5.5  
  
  /FORMAT = FREE
@@ -9745,10 +9727,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:5       ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:5.5  
  X2       X2                               1:5       ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:5.5  
  
  /FORMAT = FREE
@@ -9781,10 +9763,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = FREE
@@ -9825,10 +9807,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = FREE
@@ -9863,10 +9845,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = FREE
@@ -9898,10 +9880,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = (3(F14.0,F7.0))
@@ -9936,10 +9918,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = (3(F14.0,F7.0)/)
@@ -10520,22 +10502,23 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 3.10.0-514.26.2.el7.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:03"
-SESSION_PID = "25874"
-DELTA_CPU = "0.007998"
-CLOCK_SECS = "0.003"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:03:06"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
  
 ! define some symbols ... syntax variations
 define symbol s1 = hello
@@ -10551,22 +10534,23 @@ show symbol/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 3.10.0-514.26.2.el7.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:03"
-SESSION_PID = "25874"
-DELTA_CPU = "0.007999"
-CLOCK_SECS = "0.011"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:03:06"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10574,10 +10558,11 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:03"
-SESSION_PID = "25874"
-SPAWN_STATUS = "1"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10587,17 +10572,19 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:03"
-SESSION_PID = "25874"
-SPAWN_STATUS = "1"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:03"
-SESSION_PID = "25874"
-SPAWN_STATUS = "1"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10725,22 +10712,23 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 3.10.0-514.26.2.el7.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:03"
-SESSION_PID = "25874"
-DELTA_CPU = "0.028995"
-CLOCK_SECS = "0.045"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:03:06"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "201"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
  
 *** Running ferret script: bn_comma_delimited.jnl
 ! bn420_comma_delimited
@@ -12429,7 +12417,7 @@ set region/l=1/k=1/i=101:105/j=46:50
 load temp[gx=u]
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12476,7 +12464,7 @@ Dynamic axes:
 list temp[gx=u,k=20]		! err during read
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12516,7 +12504,7 @@ list temp[gx=a]			! uvar for grid name
  0.17N / 46:  23.90  23.79  23.70  23.65  23.69
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12559,7 +12547,7 @@ let  tu = temp[gx=u,k=20]
 list tu				! err during read
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12591,7 +12579,7 @@ list temp[gz=z999999,z=5:15]	! err during regrid
     The size of the requested object was: : 24999975 (250%)
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12603,7 +12591,7 @@ set mem/siz=`save_mem`
 shade 1/0 * temp[gx=u]		! err during plot
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12631,7 +12619,7 @@ list temp[gx=psxu]
  0.17N / 46:  23.90  23.79  23.70  23.65  23.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12669,7 +12657,7 @@ list temp[gx=u]
  0.17N / 46:  23.90  23.79  23.70  23.65  23.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12706,7 +12694,7 @@ list  temp[gx=psxu] + 5
  0.17N / 46:  28.90  28.79  28.70  28.65  28.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12728,7 +12716,7 @@ list  5 + temp[gx=psxu]
  0.17N / 46:  28.90  28.79  28.70  28.65  28.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12751,14 +12739,14 @@ list tu
  0.17N / 46:  23.90  23.79  23.70  23.65  23.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
 show grid tu
-    GRID (G005)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  PSXU      LONGITUDE          160mr   131E                 70W                 full
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
@@ -12781,7 +12769,7 @@ list tu
  0.17N / 46:  28.90  28.79  28.70  28.65  28.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12856,7 +12844,7 @@ list temp[gx=taux]		! X only
  0.17S / 45:  27.87  27.79  27.72  27.65  27.56  27.45
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12965,7 +12953,7 @@ Dynamic axes:
 ! * * * dynamic generation of pseudo-variables * * *
 list x[x=.1:1:.1]			! dynamic abstract
              VARIABLE : X
-                        axis (AX010)
+                        axis (AX###)
              SUBSET   : 10 points (X)
  0.1  /  1:  0.100
  0.2  /  2:  0.200
@@ -12979,7 +12967,7 @@ list x[x=.1:1:.1]			! dynamic abstract
  1    / 10:  1.000
 list x[gx=psxu,x=130:150:2.5]		! dynamic based on named axis
              VARIABLE : X
-                        axis (AX009)
+                        axis (AX###)
              SUBSET   : 9 points (LONGITUDE)
  130E   / 1:  130.0
  132.5E / 2:  132.5
@@ -13064,10 +13052,10 @@ list a[y=95:115:7]
  109   / 3:  109.1  110.6  112.1  113.6  115.1  116.6  118.1
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX011)   X                    7 r   0.1                  9.1
- (AX009)   Y                    3 r   95                   109
+ (AX###)   X                    7 r   0.1                  9.1
+ (AX###)   Y                    3 r   95                   109
  normal    Z
  normal    T
  
@@ -13087,9 +13075,9 @@ list/order=x a
            1.20   4.20   7.20  10.20  13.20  16.20  19.20
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
- (AX009)   X                    7 r   0.1                  9.1
+ (AX###)   X                    7 r   0.1                  9.1
  normal    Y
  normal    Z
  normal    T
@@ -13116,10 +13104,10 @@ let/quiet b = a[i=1:10:2]
 load b     ! "child" irregular axis
 show grid/x
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G005)
-    GRID (G005)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX011)   X                    5 i   1                    6561                5 pts
+ (AX###)   X                    5 i   1                    6561                5 pts
  normal    Y
  normal    Z
  normal    T
@@ -13149,7 +13137,7 @@ list/i=1:10 x[gx=temp]			! from named variable
  139.5E / 10:  139.5
 list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX012)
+                        axis (AX###)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.0
@@ -13163,7 +13151,7 @@ list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
  130W   / 9:  230.0
 list x[gx=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX010)
+                        axis (AX###)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.0
@@ -13191,9 +13179,9 @@ list/i=101:105/j=46:50/l=1/k=1 temp+x	! grid inherited from expression
  0.17N / 46:  254.5  255.3  256.2  257.2  258.1
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX011)   X                    5 i   1                    6561
+ (AX###)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
@@ -13216,9 +13204,9 @@ list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[i=101:120:4]	! NOT !!!
  0.17N / 46:  125.0  128.6  133.0  136.4  140.4
 show grid/dynamic
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX009)   LONGITUDE            5 r   129.5W               113.5W
+ (AX###)   LONGITUDE            5 r   129.5W               113.5W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13244,7 +13232,7 @@ SET REGION/I=101:105/J=46:50/l=1/k=1
 ! deliberate errors:  ****
 list x[i=5:1:1]		! not an error: inverted order
              VARIABLE : X
-                        axis (AX009)
+                        axis (AX###)
              SUBSET   : 5 points (X)
  1   / 1:  1.000
  2   / 2:  2.000
@@ -13287,9 +13275,9 @@ list temp[i=-200:-190:2]! was: "completely out of range"  now: ok - subspan modu
 canc mode ignore
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX009)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
+ (AX###)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13357,10 +13345,10 @@ list temp[y=0.5s:5n:1.5]
  0.5S / 1:  24.07  23.99  23.89  23.79  23.70
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX009)   LATITUDE             4 r   0.5S                 4N
+ (AX###)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  
@@ -13522,10 +13510,10 @@ list temp[x=130w:120W:3,y=0.5s:5n:1.5]
  0.5S / 1:  24.11  23.84  23.66  23.64
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX012)   LONGITUDE            4 r   130W                 121W
- (AX010)   LATITUDE             4 r   0.5S                 4N
+ (AX###)   LONGITUDE            4 r   130W                 121W
+ (AX###)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  
@@ -13693,9 +13681,9 @@ list a[x=138w:110w:5]
  0.17N / 46:   ....   ....  23.81  23.86   ....   ....
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX010)   LONGITUDE            6 r   138W                 113W
+ (AX###)   LONGITUDE            6 r   138W                 113W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13834,9 +13822,9 @@ list temp[x=90w:60W:4]
  0.17N / 46:  26.54  26.90  27.28   ....   ....   ....  29.63  29.61
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX012)   LONGITUDE            8 r   90W                  62W
+ (AX###)   LONGITUDE            8 r   90W                  62W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -14019,9 +14007,9 @@ list a[x=101w:50w:6]
 cancel axis/modulo psxt
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX011)   LONGITUDE            9 r   101W                 53W
+ (AX###)   LONGITUDE            9 r   101W                 53W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -14058,7 +14046,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
 list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`]			! pseudo-var
  !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
-                        axis (AX009)
+                        axis (AX###)
              SUBSET   : 3 points (TIME)
  15-JAN-1982 00 / 1:  723925.
  17-JAN-1982 00 / 2:  723927.
@@ -15077,17 +15065,17 @@ load temp[g=u,gx=@ave,gy=@asn]
 load temp[gx=u]  		! changed V4.20 --> implicit regrid
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
+ allocate dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
+ dealloc  dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
+ allocate dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
  eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      3      4
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
- strip regrid on X: TEMP --> (G009)           @LIN
+ allocate dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
+ strip regrid on X: TEMP --> (G###)           @LIN
  found   TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
  regrid  TEMP     M:  4 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      3      4
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
+ dealloc  dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
 stat temp[g=u] - temp[g=u at ave,gx=u at lin,gy=u at lin,gz=u at lin,gt=u at lin]  ! == 0
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
+ dealloc  dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
  -DELETE TEMP     M:  4 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      3      4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
@@ -17288,21 +17276,21 @@ list a1[gx=xoffset at ave]
  dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @AVE
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @AVE
  eval    A1       C:  7 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:182 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  regrid  A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17315,18 +17303,18 @@ list a1[gx=xoffset at ave]
  7.1 / 7:   ....
 list a1[gx=xoffset at sum] ! should sum to 5
  -DELETE X        M:182 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @SUM
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @SUM
  found   A1       M:183 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17338,18 +17326,18 @@ list a1[gx=xoffset at sum] ! should sum to 5
  6.1 / 6:   ....
  7.1 / 7:   ....
 list a1[gx=xoffset at var] ! should be all missing
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @VAR
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @VAR
  found   A1       M:183 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X1PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17362,25 +17350,25 @@ list a1[gx=xoffset at var] ! should be all missing
  7.1 / 7:....
  
 list a2[gx=xoffset at ave]
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @AVE
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @AVE
  eval    A2       C:  7 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:184 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  regrid  A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17393,18 +17381,18 @@ list a2[gx=xoffset at ave]
  7.1 / 7:   ....
 list a2[gx=xoffset at sum] ! should sum to 5+6=11
  -DELETE X        M:184 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @SUM
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @SUM
  found   A2       M:182 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17416,18 +17404,18 @@ list a2[gx=xoffset at sum] ! should sum to 5+6=11
  6.1 / 6:  5.400
  7.1 / 7:   ....
 list a2[gx=xoffset at var]
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @VAR
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @VAR
  found   A2       M:182 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X2PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17445,42 +17433,42 @@ define axis/y=5/npoints=1 y1pt
 define axis/y=5:6:1 y2pt
  
 let a1 = x[gx=x1pt]+y[gy=y1pt]
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  -DELETE A2       M:182 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  -DELETE A1       M:183 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
 let a2 = x[gx=x2pt]+y[gy=y2pt]
  
 list a1[gx=xoffset at ave, gy=yoffset at ave]
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL
- dealloc  dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          NORMAL    Y1PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    Y1PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      Y1PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @AVE
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @AVE
  strip regrid on Y: A1 --> XNTERMED         @AVE
  eval    A1       C:  8 dset:   0 I:      1      1  J:    1    1  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:183 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          NORMAL    Y1PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          NORMAL    Y1PT      NORMAL    NORMAL
  pseudo  Y        M:182 dset:   0 I:   -999   -999  J:    1    1  K: -999 -999  L:   -999   -999
  -DELETE Y        M:182 dset:   0 I:   -999   -999  J:    1    1  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          NORMAL    Y1PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    Y1PT      NORMAL    NORMAL
  -DELETE X        M:183 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  regrid  A1       M:183 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A1       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A1       M:183 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]+Y[GY=Y1PT]
                         regrid: 1 delta on X at AVE, 1 delta on Y at AVE
              SUBSET   : 7 by 7 points (X-Y)
@@ -17494,21 +17482,21 @@ list a1[gx=xoffset at ave, gy=yoffset at ave]
  6.1 / 6:   ....   ....   ....   ....   ....   ....   ....
  7.1 / 7:   ....   ....   ....   ....   ....   ....   ....
 list a1[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A1       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @SUM
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @SUM
  strip regrid on Y: A1 --> XNTERMED         @SUM
  found   A1       M:185 dset:   0 I:      1      1  J:    1    1  K: -999 -999  L:   -999   -999
  regrid  A1       M:182 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A1       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A1       M:182 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]+Y[GY=Y1PT]
                         regrid: 1 delta on X at SUM, 1 delta on Y at SUM
              SUBSET   : 7 by 7 points (X-Y)
@@ -17522,21 +17510,21 @@ list a1[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10
  6.1 / 6:   ....   ....   ....   ....   ....   ....   ....
  7.1 / 7:   ....   ....   ....   ....   ....   ....   ....
 list a1[gx=xoffset at var, gy=yoffset at var] ! should be all missing
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A1       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @VAR
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @VAR
  strip regrid on Y: A1 --> XNTERMED         @VAR
  found   A1       M:185 dset:   0 I:      1      1  J:    1    1  K: -999 -999  L:   -999   -999
  regrid  A1       M:183 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A1       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A1       M:183 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X1PT]+Y[GY=Y1PT]
                         regrid: 1 delta on X at VAR, 1 delta on Y at VAR
              SUBSET   : 7 by 7 points (X-Y)
@@ -17551,35 +17539,35 @@ list a1[gx=xoffset at var, gy=yoffset at var] ! should be all missing
  7.1 / 7:............................
  
 list a2[gx=xoffset at ave, gy=yoffset at ave]
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A1       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          NORMAL    Y2PT      NORMAL    NORMAL
- dealloc  dynamic grid (G010)          NORMAL    Y2PT      NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      Y2PT      NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          NORMAL    Y2PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @AVE
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @AVE
  strip regrid on Y: A2 --> XNTERMED         @AVE
  eval    A2       C:  8 dset:   0 I:      1      2  J:    1    2  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:182 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G013)          NORMAL    Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          NORMAL    Y2PT      NORMAL    NORMAL
  pseudo  Y        M:183 dset:   0 I:   -999   -999  J:    1    2  K: -999 -999  L:   -999   -999
  -DELETE Y        M:183 dset:   0 I:   -999   -999  J:    1    2  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G013)          NORMAL    Y2PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    Y2PT      NORMAL    NORMAL
  -DELETE X        M:182 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  regrid  A2       M:182 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A2       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A2       M:182 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]+Y[GY=Y2PT]
                         regrid: 1 delta on X at AVE, 1 delta on Y at AVE
              SUBSET   : 7 by 7 points (X-Y)
@@ -17593,21 +17581,21 @@ list a2[gx=xoffset at ave, gy=yoffset at ave]
  6.1 / 6:   ....   ....   ....  11.00  11.10  12.00   ....
  7.1 / 7:   ....   ....   ....   ....   ....   ....   ....
 list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A2       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @SUM
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @SUM
  strip regrid on Y: A2 --> XNTERMED         @SUM
  found   A2       M:184 dset:   0 I:      1      2  J:    1    2  K: -999 -999  L:   -999   -999
  regrid  A2       M:183 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A2       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A2       M:183 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]+Y[GY=Y2PT]
                         regrid: 1 delta on X at SUM, 1 delta on Y at SUM
              SUBSET   : 7 by 7 points (X-Y)
@@ -17622,21 +17610,21 @@ list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
  7.1 / 7:   ....   ....   ....   ....   ....   ....   ....
  ! NOTE: as of V5.1 NO xy_var trans exists.  Need it to be complete ...!
 list a2[gx=xoffset at var, gy=yoffset at var]
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A2       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @VAR
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @VAR
  strip regrid on Y: A2 --> XNTERMED         @VAR
  found   A2       M:184 dset:   0 I:      1      2  J:    1    2  K: -999 -999  L:   -999   -999
  regrid  A2       M:182 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A2       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A2       M:182 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X2PT]+Y[GY=Y2PT]
                         regrid: 1 delta on X at VAR, 1 delta on Y at VAR
              SUBSET   : 7 by 7 points (X-Y)
@@ -17657,33 +17645,33 @@ define axis/x=5:6:1 x2pt
 define axis/x=5:6.5:.5 x4pt
  
 let a1 = x[gx=x1pt]
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A2       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A2       M:184 dset:   0 I:      1      2  J:    1    2  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X2PT      Y2PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      Y2PT      NORMAL    NORMAL
  -DELETE A1       M:185 dset:   0 I:      1      1  J:    1    1  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      Y1PT      NORMAL    NORMAL
 let a2 = x[gx=x2pt]
 let a4 = x[gx=x4pt]
  
 list a1[gx=xoffset at max]
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @MAX
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @MAX
  eval    A1       C:  7 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:185 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  regrid  A1       M:183 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17696,25 +17684,25 @@ list a1[gx=xoffset at max]
  7.1 / 7:   ....
 list a2[gx=xoffset at max]
  -DELETE X        M:185 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A1       M:183 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @MAX
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @MAX
  eval    A2       C:  7 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:183 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  regrid  A2       M:182 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17727,25 +17715,25 @@ list a2[gx=xoffset at max]
  7.1 / 7:   ....
 list a4[gx=xoffset at max]
  -DELETE X        M:183 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A2       M:182 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A4       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A4 --> (G012)           @MAX
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A4 --> (G###)           @MAX
  eval    A4       C:  7 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:182 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
  regrid  A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17758,18 +17746,18 @@ list a4[gx=xoffset at max]
  7.1 / 7:   ....
 list a4[gx=xoffset at min]
  -DELETE X        M:182 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A4 --> (G012)           @MIN
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A4 --> (G###)           @MIN
  found   A4       M:183 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MIN
              SUBSET   : 7 points (X)
@@ -17781,18 +17769,18 @@ list a4[gx=xoffset at min]
  6.1 / 6:  6.000
  7.1 / 7:   ....
 list a4[gx=xoffset at sum] ! 5+5.5+6+6.5=23
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A4 --> (G012)           @SUM
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A4 --> (G###)           @SUM
  found   A4       M:183 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17809,25 +17797,25 @@ define axis/x=1:5:1 x5
 define axis/x=0.5:5.5:1 x5_edges
 let a5 = x[gx=x5_edges]
 list a5[gx=x5 at max]   ! note: top dest axis point, only, looks at point above
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A5       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G013)           @MAX
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ strip regrid on X: A5 --> (G###)           @MAX
  eval    A5       C:  7 dset:   0 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
  pseudo  X        M:186 dset:   0 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
  regrid  A5       M:187 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -17837,35 +17825,35 @@ list a5[gx=x5 at max]   ! note: top dest axis point, only, looks at point above
  4   / 4:  3.500
  5   / 5:  5.500
 let a5 = x[gx=x5_edges, i=3]
- dealloc  dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  -DELETE A5       M:187 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  -DELETE A5       M:182 dset:   0 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
  -DELETE X        M:186 dset:   0 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
  -DELETE A4       M:183 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
  -DELETE A2       M:185 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  -DELETE A1       M:184 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
 list a5[gx=x5 at max]
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A5       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G010)           @MAX
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ strip regrid on X: A5 --> (G###)           @MAX
  eval    A5       C:  7 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
  pseudo  X        M:184 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
  regrid  A5       M:183 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -17876,34 +17864,34 @@ list a5[gx=x5 at max]
  5   / 5:   ....
 list a5[gx=x5 at max,i=3]
  -DELETE X        M:184 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  -DELETE A5       M:183 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G010)           @MAX
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ strip regrid on X: A5 --> (G###)           @MAX
  found   A5       M:185 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A5       M:183 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 3
           2.500
 list a5[gx=x5 at max,i=4]
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  -DELETE A5       M:183 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G010)           @MAX
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ strip regrid on X: A5 --> (G###)           @MAX
  found   A5       M:185 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 4
@@ -17914,19 +17902,19 @@ define axis/t=1-jan-1990:5-jan-1990:1/units=days tday
 define axis/t=1-jan-1990:5-jan-1990:24/units=hours thour
 let atime = T[gt=tday]
 list atime
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  -DELETE A5       M:183 dset:   0 I:      4      4  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid ATIME    C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
  eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
  eval    ATIME    C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
  pseudo  T        M:183 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
              VARIABLE : T[GT=TDAY]
              SUBSET   : 5 points (TIME)
  01-JAN-1990 00 / 1:  32493.
@@ -17936,8 +17924,8 @@ list atime
  05-JAN-1990 00 / 5:  32497.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G010)
-    GRID (G010)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -17945,17 +17933,17 @@ show grid
  TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
 list atime[gt=thour at max]
  -DELETE T        M:183 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    THOUR
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    THOUR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    THOUR
  eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR
- strip regrid on T: ATIME --> (G011)           @MAX
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    THOUR
+ strip regrid on T: ATIME --> (G###)           @MAX
  found   ATIME    M:184 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
  regrid  ATIME    M:183 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    THOUR
              VARIABLE : T[GT=TDAY]
                         regrid: 24 hour on T at MAX
              SUBSET   : 5 points (TIME)
@@ -17966,8 +17954,8 @@ list atime[gt=thour at max]
  05-JAN-1990 00 / 5:  32497.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G011)
-    GRID (G011)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -19585,7 +19573,7 @@ CAN MODE VERIFY
  53S   / 19:   1.67   3.02   4.17   3.51   4.64   6.95   7.65   8.51   9.70   9.24   ....   8.19  10.25   7.31   3.81   1.86   1.46
  55S   / 18:   1.33   2.57   3.64   2.67   3.82   5.58   5.95   7.96   8.88   7.36   ....   8.18   8.69   6.56   1.84   1.25   1.05
  57S   / 17:   0.98   1.63   3.34   2.49   3.08   4.83   4.86   7.36   5.90   4.51   ....   ....   7.19   4.30   1.71   0.81   1.00
- 59S   / 16:   1.16   1.61   1.97   1.96   3.52   3.47   2.90   5.87   4.63   2.35   ....   ....   6.40   2.56   1.26   0.87   1.13
+ 59S   / 16:   1.16   1.61   1.97   1.96   3.52   3.47   2.90   5.87   4.63   2.35   ....   ....   6.40   2.56   1.26   0.87   1.12
  61S   / 15:   0.99   1.22   1.48   1.75   1.82   3.70   2.08   4.52   2.76   1.36   ....   5.02   4.46   1.05   0.09   0.28   0.80
  63S   / 14:   1.06   1.20   0.88   1.19   1.21   1.49   1.31   3.01   1.19   1.29   2.50   2.70   3.14  -0.02   0.31   0.36   1.16
  65S   / 13:   0.67   0.97   0.14   0.48  -0.29   0.51   0.45   1.58   0.22   0.31   0.00   2.30   1.67  -1.01   0.00  -0.22   0.45
@@ -25064,9 +25052,9 @@ set mode ignore
 define axis/z=1:10:1 z10
 set grid z[gz=z10]
 show grid
- Default grid for DEFINE VARIABLE is (G001)
- Last successful data access was on grid (G001)
-    GRID (G001)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -25149,7 +25137,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Tue Apr 18 17:03:12 PDT 2017
+WKD MON DD HH:MM:SS ZZZ YYYY
  
 GO bn_reset
 cancel mode verify
@@ -25286,14 +25274,14 @@ cancel memory/all
 set mode diagnostic
 list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    (C01,V02 C:  7 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25329,10 +25317,10 @@ cancel memory/all
  -DELETE (C01,V02 M: 15 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M: 15 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25358,11 +25346,11 @@ cancel memory/all
  -DELETE SST      M:  8 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
  -DELETE EX#1     M: 13 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  8 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25396,13 +25384,13 @@ cancel memory/all
  -DELETE A        M: 15 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
  -DELETE A        M: 16 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  eval    (C01,V02 C:  7 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
@@ -25426,8 +25414,8 @@ let/quiet a = sst[i=30:40]
  -DELETE (C09,V02 M:  9 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  -DELETE (C01,V02 M: 15 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
 cancel memory/all
  -DELETE SST      M: 12 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
@@ -25435,7 +25423,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  8 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M: 12 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25459,9 +25447,9 @@ cancel memory/all
  -DELETE EX#1     M: 15 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
  -DELETE SST      M: 16 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30}     M: 16 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25486,12 +25474,12 @@ cancel memory/all
  -DELETE A        M: 14 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
  -DELETE EX#1     M: 15 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C11,V02 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  eval    (C01,V02 C:  7 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
@@ -25521,8 +25509,8 @@ cancel memory/all
 let/quiet fsst = sst[x=@fln] 		! fill holes to allow @iin to work
 let/quiet a = fsst[i=@iin]		! @iin forces all-at-once
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
 list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -25530,7 +25518,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  getgrid FSST     C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25568,7 +25556,7 @@ cancel memory/all
 ! now test optimization that uses large memory chunks if available
 cancel memory/all
 load/l=1/y=0 sst[I=30:50]
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
@@ -25577,7 +25565,7 @@ load/l=1/y=0 sst[I=30:50]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25601,7 +25589,7 @@ cancel memory/all
  -DELETE EX#1     M: 12 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M: 15 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:39]
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
@@ -25610,7 +25598,7 @@ load/l=1/y=0 sst[I=30:39]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M: 12 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25638,7 +25626,7 @@ cancel memory/all
  -DELETE EX#1     M: 13 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M: 15 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:40]
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
@@ -25647,7 +25635,7 @@ load/l=1/y=0 sst[I=30:40]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25673,7 +25661,7 @@ cancel memory/all
  -DELETE SST      M:  9 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M: 15 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:41]
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
@@ -25682,7 +25670,7 @@ load/l=1/y=0 sst[I=30:41]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M:  9 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25754,10 +25742,10 @@ list SAMPLEI(sst[l=1,y=1s:1n:.5],{30,40,50})
  1S    / 1:  28.15  28.56  28.83
 show grid/dyn
 Dynamic grids:
-    GRID (G003)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX004)   LATITUDE             5 r   1S                   1N
+ (AX###)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 cancel memory/all
@@ -25776,10 +25764,10 @@ list SAMPLEI(a,{30,40,50})
  1S    / 1:  28.15  28.56  28.83
 show grid/dyn
 Dynamic grids:
-    GRID (G002)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX005)   LATITUDE             5 r   1S                   1N
+ (AX###)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  
@@ -25938,15 +25926,15 @@ list SAMPLEI(Y[y=110:200:10],{3,4,7})
 cancel memory/all
 set mode diagnostic
 list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
- dealloc  dynamic grid (G003)          NORMAL    (AX004)   NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  (AX004)   NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    (AX###)   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          ABSTRACT  (AX###)   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          ABSTRACT  (AX###)   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    (C01,V02 C:  6 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  const_v {31,...} M: 15 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -26540,16 +26528,16 @@ SHOW DATA
 ! basic strides
 LIST VAR[i=2:4:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  2 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE VAR      M:  1 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26569,9 +26557,9 @@ LIST VAR[i=2:4:2]
 ! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
 LIST VAR[i=2:4:2]
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  found   VAR      M:  2 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26591,22 +26579,22 @@ LIST VAR[i=2:4:2]
 ! cache hit through non-file variable
 let a = VAR[i=2:4:2]
 list a
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  -DELETE VAR      M:  2 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  eval    A        C:  6 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  9 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  1 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE VAR      M:  2 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -26644,7 +26632,7 @@ cancel memory/all
  -DELETE VAR      M:  1 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE A        M:  2 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
 load var
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
@@ -26652,16 +26640,16 @@ load var
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE VAR      M:  1 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26678,18 +26666,18 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.  1224.
  3   / 3:  1232.  1234.
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:  1 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26711,19 +26699,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  strip moduloing VAR on X axis:        1       10 dset:   1
  reading VAR      M:  4 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  doing moduloing VAR on X axis:        1        4 dset:   1
  regrid  VAR      M:  2 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -26744,18 +26732,18 @@ cancel axis/modulo XAX1_4
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:  4 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26770,19 +26758,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  -DELETE VAR      M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
- allocate dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:  3 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26799,7 +26787,7 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! deliberate error
 set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
- dealloc  dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  -DELETE VAR      M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
@@ -26808,15 +26796,15 @@ set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
 LIST VAR[i=2:4:2 at ave]
  dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @AVE
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @AVE
  reading VAR      M:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  regrid  VAR      M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X at AVE
              FILENAME : bn_strides.cdf
@@ -26835,25 +26823,25 @@ LIST VAR[i=2:4:2 at ave]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  -DELETE VAR      M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  eval    A        C:  7 dset:   1 I:      3      5  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M:  2 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
  -DELETE BIGVAR   M:  3 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -26867,24 +26855,24 @@ list/j=1/k=1/l=1 a[i=3:5]
  21   / 5:  1131.
  -DELETE A        M:  1 dset:   1 I:      1      1  J:    3    5  K:    1    1  L:      1      1
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
- allocate dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
- strip regrid on Y: A --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ strip regrid on Y: A --> (G###)           @XACT
  eval    A        C:  8 dset:   1 I:      3      5  J:    1    7  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M:  5 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
  -DELETE BIGVAR   M:  1 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  regrid  A        M:  6 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26901,7 +26889,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
 ! reference data
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
  -DELETE A        M:  6 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
@@ -26929,17 +26917,17 @@ cancel mem/all
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  5 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  6 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -26955,9 +26943,9 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  found   UNE-NVAR M:  5 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -26971,25 +26959,25 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  
 ! cache hit through non-file variable
 let a = UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  5 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
 list/order=x/j=1/k=1/l=1 a
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  eval    A        C:  7 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C: 10 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  6 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  5 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27018,7 +27006,7 @@ cancel memory/all
  -DELETE A        M:  5 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  6 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
 load/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
@@ -27027,17 +27015,17 @@ load/k=1/l=1 UNEVENVAR
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  4 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  5 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27050,19 +27038,19 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  0.3  / 1:  1112.
  0.6  / 2:  1114.
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    5  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  5 dset:   1 I:      2      4  J:    1    5  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  doing limits reconciliation on Y axis: UNEVENVAR
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27084,19 +27072,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XUNEVEN
 LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  strip moduloing UNEVENVAR on X axis:        1       29 dset:   1
  reading UNE-NVAR M:  6 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  doing moduloing UNEVENVAR on X axis:        1       10 dset:   1
  regrid  UNE-NVAR M:  3 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27114,19 +27102,19 @@ cancel axis/modulo XUNEVEN
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    3  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  6 dset:   1 I:      2      4  J:    1    3  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27138,20 +27126,20 @@ LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
  0    / 1:  1112.  1114.
  0.95 / 2:  1132.  1134.
 LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      6  J:    1    5  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  6 dset:   1 I:      1      3  J:    1    3  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  4 dset:   1 I:      2      6  J:    1    5  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27166,19 +27154,19 @@ LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
  
 ! averaging causes bypass of strides
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  6 dset:   1 I:      1      3  J:    1    3  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @AVE
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @AVE
  reading UNE-NVAR M:  6 dset:   1 I:      1      9  J:    1    1  K:    1    1  L:      1      1
  regrid  UNE-NVAR M:  4 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27193,20 +27181,20 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
  0.78 / 3:  1115.87072
  0.9  / 4:  1117.90449
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  4 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      8  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  3 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  4 dset:   1 I:      2      8  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27223,19 +27211,19 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
  
 ! test special logic in tm_world_recur for endpoints of strides on irreg axis
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=1:10:2 at ave]
- dealloc  dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  3 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @AVE
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @AVE
  reading UNE-NVAR M:  3 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  regrid  UNE-NVAR M:  4 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27258,19 +27246,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2]
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  4 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  5 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  4 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
- dealloc  dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27287,19 +27275,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1233.  1235.  1237.  1239.
  4   / 4:  1243.  1245.  1247.  1249.
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  -DELETE BIGVAR   M:  5 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
- allocate dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
- strip regrid on Y: BIGVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
+ strip regrid on Y: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  4 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  5 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
- dealloc  dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27316,19 +27304,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1243.  1244.  1245.  1246.
  6   / 3:  1263.  1264.  1265.  1266.
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
  -DELETE BIGVAR   M:  4 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
- dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
- allocate dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
- strip regrid on X: BIGVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  4 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27345,9 +27333,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1345.  1347.  1349.
  6   / 3:  1363.  1365.  1367.  1369.
 canc data/all
- dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  canceling dset ./bn_strides.cdf
  -DELETE UNE-NVAR M:  3 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  6 dset:   1 I:      1      9  J:    1    1  K:    1    1  L:      1      1
@@ -27355,16 +27343,16 @@ canc data/all
 use/order=zyx bn_strides
 list bigvar[i=3:9:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
- dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
- allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  3 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  6 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27381,19 +27369,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1332.  1532.  1732.  1932.
  4   / 4:  1342.  1542.  1742.  1942.
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
  -DELETE BIGVAR   M:  3 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
- dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
- allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
- strip regrid on Y: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
+ strip regrid on Y: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  6 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  3 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27410,19 +27398,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1342.  1442.  1542.  1642.
  6   / 3:  1362.  1462.  1562.  1662.
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
  -DELETE BIGVAR   M:  6 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  6 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27439,23 +27427,23 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1543.  1743.  1943.
  6   / 3:  1363.  1563.  1763.  1963.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=zxy bn_strides
 list bigvar[i=3:9:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
- dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
- allocate dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  6 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  3 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27472,19 +27460,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1323.  1523.  1723.  1923.
  4   / 4:  1324.  1524.  1724.  1924.
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
  -DELETE BIGVAR   M:  6 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
- dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
- allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
- strip regrid on Y: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
+ strip regrid on Y: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  3 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  6 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27501,19 +27489,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1324.  1424.  1524.  1624.
  6   / 3:  1326.  1426.  1526.  1626.
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
  -DELETE BIGVAR   M:  3 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  3 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27530,7 +27518,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1334.  1534.  1734.  1934.
  6   / 3:  1336.  1536.  1736.  1936.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -27550,16 +27538,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -27575,19 +27563,19 @@ list xytvar[i=1:7:2]
  2N   / 2:  2021.  2023.  2025.  2027.
  1N   / 1:  2011.  2013.  2015.  2017.
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
- dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
- allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
+ allocate dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
+ allocate dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
- strip regrid on Y: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
+ strip regrid on Y: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27603,19 +27591,19 @@ list xytvar[j=2:6:2]
  4N   / 2:  2041.  2042.  2043.  2044.
  2N   / 1:  2021.  2022.  2023.  2024.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -27631,7 +27619,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.  5043.  5045.  5047.
  2N   / 1:  5021.  5023.  5025.  5027.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -27648,16 +27636,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -27673,19 +27661,19 @@ list xytvar[i=1:7:2]
  142   / 2:  2012.  2032.  2052.  2072.
  143   / 3:  2013.  2033.  2053.  2073.
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
- dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
- allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
+ allocate dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
+ allocate dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
- strip regrid on Y: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
+ strip regrid on Y: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27701,19 +27689,19 @@ list xytvar[j=2:6:2]
  144   / 2:  2014.  2024.  2034.  2044.
  146   / 3:  2016.  2026.  2036.  2046.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -27729,7 +27717,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  5014.  5034.  5054.  5074.
  146   / 3:  5016.  5036.  5056.  5076.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -27746,16 +27734,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -27771,19 +27759,19 @@ list xytvar[i=1:7:2]
  2N   / 2:  1022.  3022.  5022.  7022.
  1N   / 1:  1012.  3012.  5012.  7012.
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
- dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
- allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
- strip regrid on Y: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
+ strip regrid on Y: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27799,19 +27787,19 @@ list xytvar[j=2:6:2]
  4N   / 2:  1042.  2042.  3042.  4042.
  2N   / 1:  1022.  2022.  3022.  4022.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -27827,7 +27815,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  1045.  3045.  5045.  7045.
  2N   / 1:  1025.  3025.  5025.  7025.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -27844,16 +27832,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -27869,19 +27857,19 @@ list xytvar[i=1:7:2]
  142   / 2:  1022.  3022.  5022.  7022.
  143   / 3:  1023.  3023.  5023.  7023.
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
- dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
- allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
- strip regrid on Y: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
+ strip regrid on Y: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27897,19 +27885,19 @@ list xytvar[j=2:6:2]
  144   / 2:  1024.  2024.  3024.  4024.
  146   / 3:  1026.  2026.  3026.  4026.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -27925,7 +27913,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -27943,17 +27931,17 @@ show grid xytvar
 list/k=1:2 xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
- dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
- allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
+ allocate dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
+ allocate dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:      1      7  J:    1    3  K:    1    2  L:   -999   -999
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    1    3  K:    1    2  L:   -999   -999
- dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -27969,20 +27957,20 @@ list/k=1:2 xytvar[i=1:7:2]
  142   / 2:  1022.  3022.  5022.  7022.
  143   / 3:  1023.  3023.  5023.  7023.
 list/k=1:2 xytvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
- dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
- allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
+ allocate dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
+ allocate dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
- strip regrid on Y: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
+ strip regrid on Y: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:      1      4  J:    2    6  K:    1    2  L:   -999   -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    2    6  K:    1    2  L:   -999   -999
- dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27998,19 +27986,19 @@ list/k=1:2 xytvar[j=2:6:2]
  144   / 2:  1024.  2024.  3024.  4024.
  146   / 3:  1026.  2026.  3026.  4026.
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -28026,7 +28014,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  canceling dset ./bn_strides.cdf
  
@@ -28051,16 +28039,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28075,26 +28063,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.  1552.
  5   / 2:  1515.  1555.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      1      5  J:    5    8  K:    3    5  L:      1      1
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28109,26 +28097,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.  1558.
  5   / 2:  1515.  1555.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on X axis:        1        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      4      8  J:    2    5  K:    3    5  L:      1      1
  doing reversing MIDVAR on X axis:        1        5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28143,7 +28131,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1582.  1542.
  5   / 2:  1585.  1545.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -28151,16 +28139,16 @@ canc data/all
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28175,7 +28163,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.  5125.
  5   / 2:  1155.  5155.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -28183,19 +28171,19 @@ canc data/all
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on X axis:        1        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    4    7  K:    3    5  L:      7      7
  doing reversing MIDVAR on X axis:        1        5 dset:   1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28210,7 +28198,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.  2775.
  5   / 2:  6745.  2745.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -28218,16 +28206,16 @@ canc data/all
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28242,26 +28230,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.  5152.
  5   / 2:  1155.  5155.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    5    8  K:    3    5  L:      7      7
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28276,7 +28264,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.  2758.
  5   / 2:  6755.  2755.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
 *** Running ferret script: bn_non_COARDS_netCDF.jnl
@@ -28566,15 +28554,15 @@ stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST --> (G###)           @LIN
  found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28593,7 +28581,7 @@ stat $1[gx=xtrop]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
@@ -28606,15 +28594,15 @@ stat $1[gx=xtrop]
  -DELETE I        M:  2 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST --> (G###)           @LIN
  found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28637,21 +28625,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
 stat $1x
  !-> stat sstx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid SSTX     C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  eval    SSTX     C:  6 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST --> (G###)           @LIN
  found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -28669,7 +28657,7 @@ stat $1x
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -28681,7 +28669,7 @@ stat $1x
  -DELETE I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  found   SSTX     M:  3 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  
@@ -28704,15 +28692,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  found   SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28731,7 +28719,7 @@ stat $1[g=gx]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -28743,13 +28731,13 @@ stat $1[g=gx]
  -DELETE I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  found   SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28771,18 +28759,18 @@ stat $1[g=gx]
 define axis/y=20s:20n:1 ytrop
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- strip regrid on X: SST --> (G003)           @LIN
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ strip regrid on X: SST --> (G###)           @LIN
  found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
  regrid  SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -28801,7 +28789,7 @@ stat $1[gx=xtrop,gy=ytrop]
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  -DELETE SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
@@ -28814,16 +28802,16 @@ stat $1[gx=xtrop,gy=ytrop]
  -DELETE I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- strip regrid on X: SST --> (G003)           @LIN
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ strip regrid on X: SST --> (G###)           @LIN
  found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
  regrid  SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -28844,7 +28832,7 @@ stat $1[gx=xtrop,gy=ytrop]
  
 define grid/like=$1/x=xtrop/y=ytrop gxyt
  !-> define grid/like=sst/x=xtrop/y=ytrop gxyt
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  -DELETE SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  getgrid EX#1     C:  6 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
@@ -28980,7 +28968,7 @@ let $1xyt = $1[g=gxyt]
  dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
  -DELETE SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  -DELETE SSTX     M:  3 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
 stat $1xyt
  !-> stat sstxyt
@@ -29357,15 +29345,15 @@ stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST5 --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST5 --> (G###)           @LIN
  found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST+5
              regrid: 1 deg on X
@@ -29384,7 +29372,7 @@ stat $1[gx=xtrop]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
@@ -29397,15 +29385,15 @@ stat $1[gx=xtrop]
  -DELETE I        M:  9 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST5 --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST5 --> (G###)           @LIN
  found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST+5
              regrid: 1 deg on X
@@ -29428,21 +29416,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
 stat $1x
  !-> stat sst5x
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid SST5X    C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  eval    SST5X    C:  6 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST5 --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST5 --> (G###)           @LIN
  found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29460,7 +29448,7 @@ stat $1x
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -29472,7 +29460,7 @@ stat $1x
  -DELETE I        M: 12 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  found   SST5X    M: 11 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  
@@ -29495,15 +29483,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  found   SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST+5
              regrid: 1 deg on X
@@ -29522,7 +29510,7 @@ stat $1[g=gx]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -29534,13 +29522,13 @@ stat $1[g=gx]
  -DELETE I        M: 12 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  found   SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST+5
              regrid: 1 deg on X
@@ -29562,7 +29550,7 @@ stat $1[g=gx]
 define axis/y=20s:20n:1 ytrop
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst5[gx=xtrop,gy=ytrop]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST5 --> GXYT             @LIN
@@ -29744,7 +29732,7 @@ let $1xyt = $1[g=gxyt]
  -DELETE SST5XYT  M: 13 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
  -DELETE SST5X    M: 11 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  -DELETE SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  -DELETE SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
@@ -30250,7 +30238,7 @@ say `a,return=isize`
  getgrid (C09,V11 C: 12 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 (C09,V11 C: 12 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  ABSTRACT  NORMAL    NORMAL
+ allocate dynamic grid (G###)          ABSTRACT  ABSTRACT  NORMAL    NORMAL
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
@@ -30328,8 +30316,8 @@ list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -30357,8 +30345,8 @@ list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
@@ -30384,8 +30372,8 @@ list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
@@ -30437,14 +30425,14 @@ show grid gg2
     GRID GG2
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX008)   LATITUDE           401 r   20S                  20N
+ (AX###)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX008)                         use count:   1
+    AXIS (AX###)                         use count:   1
  
 ! demonstrate proper management of dynamic axes
 DEFINE GRID/LIKE=gg2 gg3
@@ -30452,7 +30440,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX008)                         use count:   2
+    AXIS (AX###)                         use count:   2
 DEFINE GRID/like=temp[d=levitus_climatology] gg2
 show grid gg2
     GRID GG2
@@ -30465,17 +30453,17 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX008)                         use count:   1
+    AXIS (AX###)                         use count:   1
  
 ! SET GRID using a user-defined variable
 let g = sst[x=0:30:.1,d=coads_climatology]
 set grid g
 show grid
- Default grid for DEFINE VARIABLE is (G003)
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX009)   LONGITUDE          301 r   0E                   30E                 full
+ (AX###)   LONGITUDE          301 r   0E                   30E                 full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
@@ -30483,20 +30471,20 @@ show grid
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
 show grid
- Default grid for DEFINE VARIABLE is (G003)
- Last successful data access was on grid (G004)
-    GRID (G004)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX010)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX###)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
 show grid/dynamic
 Dynamic grids:
-    GRID (G004)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE           201 r   10S                  10N
+ (AX###)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  
@@ -30613,76 +30601,76 @@ list a1[gxz=a2]
 ! 6/01
 ! test use of expressions in dynamic grid commands
 SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
-    GRID (G006)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
-    GRID (G006)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX010)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
-    GRID (G007)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
+ (AX###)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
-    GRID (G006)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
- (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]),SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])
-    GRID (G006)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX011)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
-    GRID (G007)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  normal    Z
- (AX010)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
-    GRID (G006)
+ (AX###)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
- (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  
 load/x=160e/y=5s temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5
 SHOW GRID
- Default grid for DEFINE VARIABLE is (G003)
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX010)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SET GRID  FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) + 5
 SHOW GRID
- Default grid for DEFINE VARIABLE is (G007)
- Last successful data access was on grid (G007)
-    GRID (G007)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX007)   LATITUDE            41 r   10S                  2S                  full
+ (AX###)   LATITUDE            41 r   10S                  2S                  full
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
+ (AX###)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
 list/j=1:5 j
              VARIABLE : J
-                        axis (AX007)
+                        axis (AX###)
              SUBSET   : 5 points (LATITUDE)
  9.2S   / 5:  5.000
  9.4S   / 4:  4.000
@@ -30694,15 +30682,15 @@ SHOW GRID MYGRID
     GRID MYGRID
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX007)   LATITUDE            41 r   10S                  2S
+ (AX###)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
 SHOW GRID/DYNAMIC
 Dynamic grids:
-    GRID (G004)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX007)   LATITUDE            41 r   10S                  2S
+ (AX###)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  
@@ -31515,7 +31503,7 @@ can mem/all
  
 let xy_laplace_gridded = scat2gridlaplace_xy(xax,yax,O2_umol_kg,x[gx=x_20],y[gy=y_20],2,2)
 show grid xy_laplace_gridded
-    GRID (G005)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  X_20      LONGITUDE           20mr   50E                  70E                 full
  Y_20      LATITUDE            20 r   10N                  20N                 full
@@ -32146,7 +32134,7 @@ let xln = if xlnb lt 0. then xlnb+360. else xlnb
 let wgtl = scat2gridlaplace_xy(xln,ylt, wgt, x[gx=xlonef], y[gy=ylatef], 2., 1)
  
 show grid wgtl
-    GRID (G009)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)       full
  YLATEF    LATITUDE            73 r   47.25N               83.25N              full
@@ -33964,7 +33952,7 @@ go bn_unique_str2int
  
 SHOW FUNC/DETAIL unique_str2int
 UNIQUE_STR2INT(A)
-    Returns an ID number for each unique stringin the input array of strings (case sensitive)
+    Returns an ID number for each unique string in the input array of strings (case sensitive)
         Axes of result:
           X: inherited from argument(s)
           Y: inherited from argument(s)
@@ -34108,6 +34096,23 @@ SAMPLEN(TO_BE_SAMPLED,F_INDICES)
     sample a field at a list of F indices
     TO_BE_SAMPLED: data to sample at list of F indices supplied
     F_INDICES: list of F indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+    Fast 1D sample variable using set of indices
+    V: 1-D variable in X direction
+    Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+    Fast 1D sample string variable using set of indices
+    S: 1-D string variable in X direction (STRING)
+    Indices: List of indices at which to sample
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+    Returns data sampled by interpolating to a set of times in F direction
+    DAT_TO_SAMPLE: data to sample at set of times in F
+    YR: Year(s) yyyy
+    MO: Month(s), integer mm
+    DAY: Day(s) of month dd
+    HR: Hour(s) hh
+    MIN: Minute(s) mm
+    SEC: Second(s) ss
 SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
     Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
@@ -34129,15 +34134,14 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to L indices which may vary in IJK
     L_INDICES: ordered indices
     DAT_TO_SAMPLE: data to sample using L indices
-SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-    Returns data sampled by interpolating to a set of times in F direction
-    DAT_TO_SAMPLE: data to sample at set of times in F
-    YR: Year(s) yyyy
-    MO: Month(s), integer mm
-    DAY: Day(s) of month dd
-    HR: Hour(s) hh
-    MIN: Minute(s) mm
-    SEC: Second(s) ss
+SAMPLEM_MULTI(DAT_TO_SAMPLE,M_INDICES)
+    Returns data sampled according to M indices which may be function of IJKLN
+    DAT_TO_SAMPLE: data to sample using L indices
+    M_INDICES: ordered indices
+SAMPLEN_MULTI(DAT_TO_SAMPLE,N_INDICES)
+    Returns data sampled according to N indices which may be function of IJKLM
+    DAT_TO_SAMPLE: data to sample using L indices
+    N_INDICES: ordered indices
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
     Returns data sampled by interpolating to a set of times in T direction
     DAT_TO_SAMPLE: data to sample at set of times
@@ -34153,7 +34157,7 @@ SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
     XPTS: X values of sample points
     YPTS: Y values of sample points
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
-    Returns data sampled at a set of (X,Y) points, using nearest grid intersection
+    This function is deprecated. It is renamed to SAMPLEXY_NRST
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
     XPTS: X values of sample points
     YPTS: Y values of sample points
@@ -34178,12 +34182,23 @@ SAMPLEXY_CURV_NRST(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
     DAT_LAT: latitudes of input variable
     XPTS: X values of sample points
     YPTS: Y values of sample points
+SAMPLEXY_NRST(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled at a set of (X,Y) points, using nearest grid intersection
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X values of sample points
+    YPTS: Y values of sample points
 SAMPLEXYT(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
     Returns data sampled at a set of (X,Y,T) points, using linear interpolation
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
     XPTS: X values of sample points
     YPTS: Y values of sample points
     TPTS: T values of sample points
+SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+    Returns data sampled at a set of (X,Y,T) points, using nearest grid intersection
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X values of sample points
+    YPTS: Y values of sample points
+    TPTS: T values of sample points
 SAMPLEXZ(DAT_TO_SAMPLE,XPTS,ZPTS)
     Returns data sampled at a set of (X,Z) points, using linear interpolation
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
@@ -34194,20 +34209,6 @@ SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
     YPTS: Y values of sample points
     ZPTS: Z values of sample points
-SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-    Returns data sampled at a set of (X,Y,T) points, using nearest grid intersection
-    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    XPTS: X values of sample points
-    YPTS: Y values of sample points
-    TPTS: T values of sample points
-SAMPLE_FAST_I(V,Indices)
-    Fast 1D sample variable using set of indices
-    V: Variable to sample
-    Indices: List of indices at which to sample
-SAMPLE_FAST_I_STR(S,Indices)
-    Fast 1D sample string variable using set of indices
-    S: String Variable to sample (STRING)
-    Indices: List of indices at which to sample
 SAMPLE_FAST_I(V,Indices)
     Fast 1D sample variable using set of indices
     V: Variable to sample
@@ -35329,16 +35330,16 @@ CURV_TO_RECT(V,mapping)
     Apply mapping to regrid from curvilinear to rectangular grid
     V: Variable to regrid, on curvilinear grid V(x,y,z,t,e,f)
     mapping: mapping computed by curv_to_rect_MAP
+CURV_TO_RECT_FSU(V,mapping)
+    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+    mapping: mapping computed by curv_to_rect_MAP
 CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
     Compute mapping for regridding: curvilinear to rectangular grid.
     lon_in: Source grid longitudes (2-D) (degrees)
     lat_in: Source grid latitudes (2-D) (degrees)
     grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
     radius: Source points falling within radius are included in mapping to destination point (degrees)
-CURV_TO_RECT_FSU(V,mapping)
-    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
-    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
-    mapping: mapping computed by curv_to_rect_MAP
  
 use tripolar_subset.nc
 shade ht, geolon_vert_t, geolat_vert_t
@@ -35515,14 +35516,14 @@ let b =  a[i=18:23:2]
 list/nohead b            ! using rdstride
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid B        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    B        C:  6 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G002)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A --> (G###)           @XACT
  strip moduloing A on X axis:       18       22 dset:   1
  rdstride A        C: 11 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
  doing moduloing A on X axis:       18       20 dset:   1
@@ -35532,24 +35533,24 @@ list/nohead b            ! using rdstride
  -DELETE A        M:  1 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  nulrgd  A        M:  1 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  -DELETE A        M:  2 dset:   1 I:     18     22  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  18   / 1:  18.00
  20   / 2:  20.00
  22   / 3:   2.00
 list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G003)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A --> (G###)           @XACT
  strip moduloing A on X axis:        1       25 dset:   1
  reading A        M:  3 dset:   1 I:      1     20  J: -999 -999  K: -999 -999  L:   -999   -999
  doing moduloing A on X axis:        1       20 dset:   1
  regrid  A        M:  4 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  1    / 1:   1.00
  4    / 2:   4.00
  7    / 3:   7.00
@@ -35560,10 +35561,10 @@ list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
  22   / 8:   2.00
  25   / 9:   5.00
 list/nohead b            ! reuse of cached result
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  -DELETE A        M:  4 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  found   B        M:  2 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  18   / 1:  18.00
@@ -35766,15 +35767,15 @@ list/nohead a[i=106:145:5]
 !  ***** STRING TESTS *****
 set mode diag
 list/nohead str[i=18:23:2] ! using rdstride
- dealloc  dynamic grid (G003)          (AX001)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  -DELETE A        M:  4 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- strip regrid on X: STR --> (G002)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: STR --> (G###)           @XACT
  strip moduloing STR on X axis:       18       22 dset:   1
  rdstride STR      C:  9 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
  doing moduloing STR on X axis:       18       20 dset:   1
@@ -35784,24 +35785,24 @@ list/nohead str[i=18:23:2] ! using rdstride
  -DELETE STR      M:  4 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  nulrgd  STR      M:  4 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  -DELETE STR      M:  6 dset:   1 I:     18     22  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  18   / 1:"r"
  20   / 2:"t"
  22   / 3:"b"
 list/nohead str[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- strip regrid on X: STR --> (G003)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: STR --> (G###)           @XACT
  strip moduloing STR on X axis:        1       25 dset:   1
  reading STR      M:  6 dset:   1 I:      1     20  J: -999 -999  K: -999 -999  L:   -999   -999
  doing moduloing STR on X axis:        1       20 dset:   1
  regrid  STR      M:  8 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  1    / 1:"a"
  4    / 2:"d"
  7    / 3:"g"
@@ -36692,9 +36693,7 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
  2   / 2:"then, goodbye, my friend""then, hello, friend"     
  
 SET MODE IGNORE
-list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
- 1   / 1:........
- 2   / 2:........
+! list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+99 ELSE "goodbye"+", my ") + "friend"
  1   / 1:........
  2   / 2:........
@@ -36906,52 +36905,52 @@ show data/var
  V1       V1                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V2       V2                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V3       V3                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V4       V4                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V5       V5                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V6       V6                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V7       V7                               1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V8       V8                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V9       V9                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V10      V10                              1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  
  /DELIMITERS="\t,\,"
@@ -37480,363 +37479,363 @@ show data/full
  V1       V1                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V2       V2                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V3       V3                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V4       V4                               1:20      ...       ...       ...
        (Julian days since 1-Jan-1900)
             Data type = NUMERIC
             Conversion /TYPE=DATE
-             days on grid (G002) with -1.E+34 for missing data
+             days on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V5       V5                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V6       V6                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V7       V7                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V8       V8                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V9       V9                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V10      V10                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V11      V11                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V12      V12                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V13      V13                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V14      V14                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V15      V15                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V16      V16                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V17      V17                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V18      V18                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V19      V19                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V20      V20                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V21      V21                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V22      V22                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V23      V23                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V24      V24                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V25      V25                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V26      V26                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V27      V27                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V28      V28                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V29      V29                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V30      V30                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V31      V31                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V32      V32                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V33      V33                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V34      V34                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V35      V35                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V36      V36                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V37      V37                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V38      V38                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V39      V39                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V40      V40                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V41      V41                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V42      V42                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V43      V43                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V44      V44                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V45      V45                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V46      V46                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V47      V47                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V48      V48                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V49      V49                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V50      V50                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V51      V51                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V52      V52                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V53      V53                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V54      V54                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V55      V55                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V56      V56                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V57      V57                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V58      V58                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V59      V59                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V60      V60                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V61      V61                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V62      V62                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V63      V63                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V64      V64                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V65      V65                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V66      V66                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V67      V67                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V68      V68                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V69      V69                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V70      V70                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V71      V71                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V72      V72                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  
  /DELIMITERS="\t,\,"
@@ -38402,19 +38401,19 @@ show mem/free
 use/ord=x-y test_100x100.nc
 list/prec=1 a[i=1:100:10] !  this looks just right!!
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1    100  J:    1  100  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
- strip regrid on X: A --> (G003)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
+ strip regrid on X: A --> (G###)           @XACT
  strip reversing A on Y axis:        1      100 dset:   1
  rdstride A        C:  8 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  doing reversing A on Y axis:        1      100 dset:   1
  -DELETE A        M: 15 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  nulrgd  A        M: 15 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
  -DELETE A        M:  1 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
              VARIABLE : IF I EQ J THEN 1 ELSE A0
                         regrid: 10 delta on X
              FILENAME : test_100x100.nc
@@ -38523,10 +38522,10 @@ list/prec=1 a[i=1:100:10] !  this looks just right!!
  100   / 100:  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX003)   X                   10 r   1                    91                  10 pts
+ (AX###)   X                   10 r   1                    91                  10 pts
  YAX1_100  Y                  100 r   1                    100                 full
  normal    Z
  normal    T
@@ -38534,15 +38533,15 @@ show grid
 ! should be a diagonal path of steps all the way across the plot
 shade a[i=1:100:10]
  eval    EX#1     C:  4 dset:   1 I:      1    100  J:    1  100  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
- strip regrid on X: A --> (G003)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
+ strip regrid on X: A --> (G###)           @XACT
  strip reversing A on Y axis:        1      100 dset:   1
  rdstride A        C:  8 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  doing reversing A on Y axis:        1      100 dset:   1
  -DELETE A        M:  1 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  nulrgd  A        M:  1 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
  -DELETE A        M: 21 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
 setting up 2D plot
  -DELETE A        M: 21 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
 PPL plot 26   complete
@@ -38856,11 +38855,8 @@ save/q/clob/file=g.nc b
 can var a b
  
 sp ncrename -h -v A,a f.nc
-ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
 sp ncrename -h -v A,a -v B,b f2.nc
-ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 2 variables
 sp ncrename -h -v B,b g.nc
-ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
 use f.nc
 use f2.nc
 use g.nc
@@ -39175,6 +39171,19 @@ T0 = 01-JAN-0000 00:00:00
        3>  16-AUG 06:38:15       2191.455   01-JUL 14:54:36        5478.637
        4>  15-NOV 14:05:33       2191.455   30-SEP 22:21:54        7670.092
  
+! test reading space delimited values - trac #2549
+columns/skip=3/var="v1,v2"/typ="num,num" longax.dat
+list/clobber/file=longaxspace.dat/norow/nohead v1, v2
+let nrecs = `v1,return=isize`
+ !-> DEFINE VARIABLE nrecs = 20500
+can data/all
+define axis/x=1:`nrecs`:1 xax
+ !-> define axis/x=1:20500:1 xax
+define grid/x=xax xgrid
+columns/grid=xgrid/delim="\b"/var="v1,v2"/typ="num,num" longaxspace.dat
+! this used to cause a crash (due to improper memory advancing to skip spaces)
+load v1
+ 
 *** Running ferret script: bn542_bug_fixes.jnl
 ! bn542_bug_fixes.jnl
 ! test various fixes that went into version 5.42
@@ -39981,37 +39990,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
  dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPA
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPA
- dealloc  dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPA
- allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPA
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
  eval    EX#1     C:  4 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPA
- strip regrid on X: V2D_REG --> (G004)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
+ strip regrid on X: V2D_REG --> (G###)           @XACT
  found   V2D_REG  M: 71 dset:   1 I:      0     14  J: -999 -999  K: -999 -999  L:      1      1
  regrid  V2D_REG  M: 72 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPA
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
            ....  12.00  14.00  16.00  11.00  13.00  15.00   ....
 l200n/order=x $2[l=1,i=0:14:7]
  !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:7]
         ............
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
- dealloc  dynamic grid (G004)          (AX001)   NORMAL    NORMAL    TAX_SUBSPA
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
  -DELETE V2D_REG  M: 73 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)
- dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)
+ allocate dynamic grid (G###)          XAX_SUBSPANORMAL    NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          XAX_SUBSPANORMAL    NORMAL    (AX###)
+ allocate dynamic grid (G###)          XAX_SUBSPANORMAL    NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      8
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)
- strip regrid on T: V2D_REG --> (G004)           @XACT
+ allocate dynamic grid (G###)          XAX_SUBSPANORMAL    NORMAL    (AX###)
+ strip regrid on T: V2D_REG --> (G###)           @XACT
  strip moduloing V2D_REG on T axis:        1       15 dset:   1
  rdstride V2D_REG  C:  9 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  doing moduloing V2D_REG on T axis:        1        5 dset:   1
  -DELETE V2D_REG  M: 73 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  nulrgd  V2D_REG  M: 73 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      8
  -DELETE V2D_REG  M: 74 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1     15
- dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)
+ dealloc  dynamic grid (G###)          XAX_SUBSPANORMAL    NORMAL    (AX###)
  16-JAN-0000 / 1:   11.0
  16-MAR-0000 / 2:   71.0
  15-MAY-0000 / 3:  131.0
@@ -40512,37 +40521,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
  dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUB
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUB
- dealloc  dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUB
- allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUB
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
  eval    EX#1     C:  4 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUB
- strip regrid on X: V2D_IRR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
+ strip regrid on X: V2D_IRR --> (G###)           @XACT
  found   V2D_IRR  M:150 dset:   1 I:      0     14  J: -999 -999  K: -999 -999  L:      1      1
  regrid  V2D_IRR  M:151 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUB
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
            ....  12.00  14.00  16.00  11.00  12.10  15.00   ....
 l200n/order=x $2[l=1,i=0:14:7]
  !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:7]
         ............
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
- dealloc  dynamic grid (G006)          (AX005)   NORMAL    NORMAL    TIRREG_SUB
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
  -DELETE V2D_IRR  M:152 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)
- dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)
- allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)
+ allocate dynamic grid (G###)          XIRREG_SUBNORMAL    NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          XIRREG_SUBNORMAL    NORMAL    (AX###)
+ allocate dynamic grid (G###)          XIRREG_SUBNORMAL    NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      8
- allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)
- strip regrid on T: V2D_IRR --> (G006)           @XACT
+ allocate dynamic grid (G###)          XIRREG_SUBNORMAL    NORMAL    (AX###)
+ strip regrid on T: V2D_IRR --> (G###)           @XACT
  strip moduloing V2D_IRR on T axis:        1       15 dset:   1
  rdstride V2D_IRR  C:  9 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  doing moduloing V2D_IRR on T axis:        1        5 dset:   1
  -DELETE V2D_IRR  M:152 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  nulrgd  V2D_IRR  M:152 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      8
  -DELETE V2D_IRR  M:153 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1     15
- dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)
+ dealloc  dynamic grid (G###)          XIRREG_SUBNORMAL    NORMAL    (AX###)
  16-JAN-0000 / 1:   11.0
  15-MAR-0000 / 2:   70.2
  15-MAY-0000 / 3:  131.2
@@ -41528,8 +41537,8 @@ list/x=160e/y=5s temp[d=2,k=1,gxy=a[d=1]]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -42705,7 +42714,7 @@ SHO VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
 </axes>
 </grid>
@@ -42760,7 +42769,7 @@ SHO VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
 </axes>
 </grid>
@@ -42782,7 +42791,7 @@ SHOW VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
 </axes>
 </grid>
@@ -44087,52 +44096,52 @@ let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
 load a
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  eval    A        C:  6 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
- strip regrid on X: TAUX --> (G005)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: TAUX --> (G###)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
  nulrgd  TAUX     M: 23 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE TAUX     M: 24 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
 can mem/all
  -DELETE TAUX     M: 23 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE A        M: 24 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  
 def grid/like=taux agrid
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  getgrid EX#1     C:  6 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME
 set mode diag
 let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
  dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
 load a
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  eval    A        C:  6 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
- strip regrid on X: TAUX --> (G005)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: TAUX --> (G###)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
  nulrgd  TAUX     M: 23 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE TAUX     M: 24 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  
 can mem/all
  -DELETE TAUX     M: 23 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE A        M: 24 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
 can data/all
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
@@ -44175,16 +44184,16 @@ load var
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    2    3  K:    1    2  L:      1      1
  nulrgd  VAR      M: 22 dset:   1 I:      1      2  J:    2    3  K:    1    2  L:      1      1
  -DELETE VAR      M: 23 dset:   1 I:      2      4  J:    2    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -44199,19 +44208,19 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.  1224.
  3   / 3:  1232.  1234.
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  -DELETE VAR      M: 22 dset:   1 I:      1      2  J:    2    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M: 22 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44232,19 +44241,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  strip moduloing VAR on X axis:        1       10 dset:   1
  reading VAR      M: 24 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  doing moduloing VAR on X axis:        1        4 dset:   1
  regrid  VAR      M: 22 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -44265,18 +44274,18 @@ cancel axis/modulo XAX1_4
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M: 24 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44291,19 +44300,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  -DELETE VAR      M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M: 23 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44320,24 +44329,24 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  -DELETE VAR      M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      3      6  J:    1    1  K:    1    1  L:      1      1
  eval    A        C:  7 dset:   1 I:      3      5  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M: 23 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
  -DELETE BIGVAR   M: 24 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -44351,24 +44360,24 @@ list/j=1/k=1/l=1 a[i=3:5]
  21   / 5:  1131.
  -DELETE A        M: 22 dset:   1 I:      1      1  J:    3    5  K:    1    1  L:      1      1
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
- allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      3      6  J:    2    4  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
- strip regrid on Y: A --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ strip regrid on Y: A --> (G###)           @XACT
  eval    A        C:  8 dset:   1 I:      3      5  J:    1    7  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M: 20 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
  -DELETE BIGVAR   M: 22 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  regrid  A        M:  8 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44393,19 +44402,19 @@ cancel mem/all
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      3      6  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M: 23 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M: 24 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -44423,19 +44432,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M: 23 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
- dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
- allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
- strip regrid on X: BIGVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M: 23 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44452,24 +44461,24 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1345.  1347.  1349.
  6   / 3:  1363.  1365.  1367.  1369.
 canc data/all
- dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  canceling dset ./bn_strides.cdf
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M: 24 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44486,7 +44495,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1543.  1743.  1943.
  6   / 3:  1363.  1563.  1763.  1963.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -44497,16 +44506,16 @@ use bn_strides
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M: 23 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44524,7 +44533,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  
 use/order=tyx bn_strides
 show grid xytvar
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
     GRID EGRID
@@ -44537,16 +44546,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M: 24 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44562,7 +44571,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.  5043.  5045.  5047.
  2N   / 1:  5021.  5023.  5025.  5027.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -44581,16 +44590,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
  nulrgd  XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M: 23 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -44606,7 +44615,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
  -DELETE XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  canceling dset ./bn_strides.cdf
  
@@ -44617,16 +44626,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44641,26 +44650,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.  1552.
  5   / 2:  1515.  1555.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      1      5  J:    5    8  K:    3    5  L:      1      1
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44675,7 +44684,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.  1558.
  5   / 2:  1515.  1555.
 canc data/all
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -44683,16 +44692,16 @@ canc data/all
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44707,7 +44716,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.  5125.
  5   / 2:  1155.  5155.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -44715,19 +44724,19 @@ canc data/all
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on X axis:        1        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    4    7  K:    3    5  L:      7      7
  doing reversing MIDVAR on X axis:        1        5 dset:   1
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44742,7 +44751,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.  2775.
  5   / 2:  6745.  2745.
 canc data/all
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -44750,16 +44759,16 @@ canc data/all
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44774,26 +44783,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.  5152.
  5   / 2:  1155.  5155.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    5    8  K:    3    5  L:      7      7
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44808,7 +44817,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.  2758.
  5   / 2:  6755.  2755.
 canc data/all
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -47387,11 +47396,11 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
  Column  1: T is T (axis TCOADS)
  Column  2: TBOX is TBOX (axis TCOADS)
                          T   TBOX
-16-JAN-1946 12 / 1:  89865.  31.00
+16-JAN-1946 12 / 1:  89864.  31.00
 15-FEB-1946 00 / 2:  89894.  28.00
 16-MAR-1946 12 / 3:  89924.  31.00
 16-APR-1946 00 / 4:  89954.  30.00
-16-MAY-1946 12 / 5:  89985.  31.00
+16-MAY-1946 12 / 5:  89984.  31.00
 16-JUN-1946 00 / 6:  90015.  30.00
 can data/all
  
@@ -47406,7 +47415,7 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
  Column  1: T is T (axis TCOADS)
  Column  2: TBOX is TBOX (axis TCOADS)
                       T   TBOX
-16-JAN-1946 / 1:  89865.  30.44
+16-JAN-1946 / 1:  89864.  30.44
 15-FEB-1946 / 2:  89895.  30.44
 18-MAR-1946 / 3:  89925.  30.44
 17-APR-1946 / 4:  89956.  30.44
@@ -47824,7 +47833,7 @@ GO err580_irreg_bounds.jnl
 def ax/t/edge time = {0,1,3}
 let a = t[gt=time]
 show grid/t a
-    GRID (G001)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -48470,7 +48479,7 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "7.1"
+FERRET_VERSION = "7.2"
  
 ! history attribute
 let a = 12
@@ -48488,7 +48497,7 @@ LAB1 = "X : 0.5 to 314.5"
  
 ! show commands without an argument, lists version number at the top
 sho command
- Commands in Program FERRET  version7.1:
+ Commands in Program FERRET  version7.2:
  SET
  SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
  SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
@@ -48598,7 +48607,7 @@ sho command
         /DEGMINSE/HALFSPAC
  SPAWN
  WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
-       /TRANPOSE/NOLABEL/ZSCALE/TITLE
+       /TRANPOSE/NOLABEL/ZSCALE/COLOR/TITLE
  QUERY/ALL/FILE/IGNORE
  IF
  ELSE
@@ -48640,7 +48649,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="18-Apr-17:17:03"
+ !-> set win/title="DD-MON-YY HH:MM"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -48649,16 +48658,16 @@ set win/title="($session_date):($session_time)"
 ! If so substitute another string.
  
 DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 18-Apr-17
+ !-> DEFINE SYMBOL the_date = DD-MON-YY
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 17:03
+ !-> DEFINE SYMBOL the_time = HH:MM
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="18-Apr-17:17:03"
+ !-> SET WIN/TITLE="DD-MON-YY HH:MM"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "18-Apr-17:17:03"
+WIN_TITLE = "DD-MON-YY HH:MM"
 *** Running ferret script: bn_last_error.jnl
 ! bn_last_error.jnl
 ! acm Nov 2005
@@ -48934,7 +48943,7 @@ list  zl2,(zl2+zh2)/2,zh2
 K / 1:   0.50    1.5    2.5
 K / 2:   2.50    5.5    8.5
 K / 3:   8.50   20.5   32.5
-K / 4:  32.50  116.3  200.0
+K / 4:  32.50  116.2  200.0
 def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
  
 list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
@@ -48946,7 +48955,7 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 1.5   / 1:   0.50    1.5    2.5
 5.5   / 2:   2.50    5.5    8.5
 20.5  / 3:   8.50   20.5   32.5
-116.3 / 4:  32.50  116.3  200.0
+116.2 / 4:  32.50  116.2  200.0
  
 use gt4d011
  
@@ -48976,11 +48985,11 @@ K /  4:    60.    70.    80.
 K /  5:    80.    90.   100.
 K /  6:   100.   114.   128.
 K /  7:   128.   146.   165.
-K /  8:   165.   193.   220.
-K /  9:   220.   269.   317.
+K /  8:   165.   192.   220.
+K /  9:   220.   268.   317.
 K / 10:   317.   438.   559.
-K / 11:   559.   859.  1158.
-K / 12:  1158.  1679.  2199.
+K / 11:   559.   858.  1158.
+K / 12:  1158.  1678.  2199.
 K / 13:  2199.  2849.  3499.
 def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
  
@@ -49002,15 +49011,15 @@ list zboxlo[gz=temp], z[gz=temp], zboxhi[gz=temp]
 75      /  8:    70.    75.    80.
 85      /  9:    80.    85.    90.
 95      / 10:    90.    95.   100.
-106.3   / 11:   100.   106.   113.
-120     / 12:   113.   120.   128.
-136.3   / 13:   128.   136.   145.
+106.2   / 11:   100.   106.   112.
+120     / 12:   112.   120.   128.
+136.2   / 13:   128.   136.   145.
 155     / 14:   145.   155.   165.
 177.5   / 15:   165.   178.   190.
 205     / 16:   190.   205.   220.
 240     / 17:   220.   240.   260.
-288.5   / 18:   260.   289.   317.
-362.5   / 19:   317.   363.   408.
+288.5   / 18:   260.   288.   317.
+362.5   / 19:   317.   362.   408.
 483.5   / 20:   408.   484.   559.
 680     / 21:   559.   680.   801.
 979.5   / 22:   801.   980.  1158.
@@ -49033,12 +49042,12 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 70     /  4:    60.    70.    80.
 90     /  5:    80.    90.   100.
 113.8  /  6:   100.   114.   128.
-146.3  /  7:   128.   146.   165.
-192.5  /  8:   165.   193.   220.
-268.5  /  9:   220.   269.   317.
+146.2  /  7:   128.   146.   165.
+192.5  /  8:   165.   192.   220.
+268.5  /  9:   220.   268.   317.
 438    / 10:   317.   438.   559.
-858.5  / 11:   559.   859.  1158.
-1678.5 / 12:  1158.  1679.  2199.
+858.5  / 11:   559.   858.  1158.
+1678.5 / 12:  1158.  1678.  2199.
 2849   / 13:  2199.  2849.  3499.
 *** Running ferret script: bn_attributes.jnl
 ! bn_attributes
@@ -50570,15 +50579,15 @@ sh dat/att
   
  .                               history         CHAR        6    F       EZ.DAT
   
- a1                    FLOAT     long_name       CHAR        2    T       a1
-                                 missing_value   FLOAT       1    T       -1.E+34
+ a1                    DOUBLE    long_name       CHAR        2    T       a1
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  three           FLOAT       3    T       1 2 3
   
- a2                    FLOAT     long_name       CHAR        2    T       a2
-                                 missing_value   FLOAT       1    T       -1.E+34
+ a2                    DOUBLE    long_name       CHAR        2    T       a2
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- a3                    FLOAT     long_name       CHAR        2    T       a3
-                                 missing_value   FLOAT       1    T       -1.E+34
+ a3                    DOUBLE    long_name       CHAR        2    T       a3
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 save/file=a.nc/clobber a1,a2,a3
 sp echo "bn_attributes.jnl --- 14 attributes of data from ez data." >> all_ncdump.out
@@ -51800,11 +51809,11 @@ ELEMENT_INDEX_STR_N(VAR,STRINGS)
     VAR: string data to mask (STRING)
     STRINGS: list of strings to match (STRING)
 IS_ELEMENT_OF(VAR,VALUES)
-    Returns 1 if first argument contains any of the values in argument 2, else 0
+    Returns 1 if first argument contains any of the values in 2nd arg, else 0
     VAR: data to test
     VALUES: values to search for
 IS_ELEMENT_OF_STR(VAR,VALUES)
-    Returns 1 if first argument contains any of the values in 2nd argument (case sensitive), else 0
+    Returns 1 if first argument contains any of the values in 2nd arg (case sensitive), else 0
     VAR: string (STRING)
     VALUES: strings to search (STRING)
 IS_ELEMENT_OF_STR_N(VAR,VALUES)
@@ -53094,7 +53103,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53143,7 +53152,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53409,17 +53418,17 @@ use coads_climatology
 set axis/stride=2/offset=1 `sst, return=xaxis`
  !-> set axis/stride=2/offset=1 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX005)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX005)   LONGITUDE           90mr   23E                  19E(379)
+ (AX###)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 !can't stride it again
 set axis/stride=2/offset=1 `sst, return=xaxis`
- !-> set axis/stride=2/offset=1 (AX005)
+ !-> set axis/stride=2/offset=1 (AX###)
 show axis `sst,return=xaxis`
- !-> show axis (AX005)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX005)   LONGITUDE           90mr   23E                  19E(379)
+ (AX###)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 cancel data/all
  
@@ -53468,7 +53477,7 @@ list sst[i=11:15,j=50,k=1,l=50]
  
 ! --- after cancel striding
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX004)
+ !-> cancel axis/stride (AX###)
 list sst[i=21:30,j=50,k=1,l=50]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -53519,7 +53528,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
+    AXIS (AX###)                         use count:   1
 cancel data/all
  
 !.............7. cancel stride on a non-strided axis
@@ -53537,24 +53546,24 @@ use coads_climatology
 set axis/stride=6/offset=5 `sst,return=xaxis`
  !-> set axis/stride=6/offset=5 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX005)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX005)   LONGITUDE           30mr   31E                  19E(379)
+ (AX###)   LONGITUDE           30mr   31E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX005)
+ !-> cancel axis/stride (AX###)
  
 !--- 8.2 stride value is not an integer factor of the axis length
 ! warning: it may lose modulo property
 set axis/stride=7/offset=5 `sst,return=xaxis`
  !-> set axis/stride=7/offset=5 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX001)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX001)   LONGITUDE           25 r   31E                  7E(367)
+ (AX###)   LONGITUDE           25 r   31E                  7E(367)
    Axis span (to cell edges) = 350
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX001)
+ !-> cancel axis/stride (AX###)
 cancel data/all
  
 ! --- 8.3 testing strided modulo axis
@@ -53563,7 +53572,7 @@ set axis/stride=2/offset=1 `sst,return=xaxis`
  !-> set axis/stride=2/offset=1 COADSX
 shade/x=-180:180/y=-30:70/L=2 sst
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX005)
+ !-> cancel axis/stride (AX###)
 cancel data/all
  
 !.............9. two datasets share the same grid
@@ -53658,9 +53667,9 @@ show data/all
 set axis/stride=5 `sst,return=yaxis`
  !-> set axis/stride=5 COADSX
 show axis `sst,return=yaxis`
- !-> show axis (AX005)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX005)   LONGITUDE           36mr   21E                  11E(371)
+ (AX###)   LONGITUDE           36mr   21E                  11E(371)
    Axis span (to cell edges) = 360 (modulo length = axis span)
  
 can data/all
@@ -53761,19 +53770,19 @@ set axis/stride=2 `sst, return=taxis`
  !-> set axis/stride=2 TIME
  
 show axis `sst,return=xaxis`
- !-> show axis (AX007)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX007)   LONGITUDE           90mr   21E                  17E(377)
+ (AX###)   LONGITUDE           90mr   21E                  17E(377)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 show axis `sst,return=yaxis`
- !-> show axis (AX004)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX004)   LATITUDE            45 r   89S                  87N
+ (AX###)   LATITUDE            45 r   89S                  87N
    Axis span (to cell edges) = 180
 show axis `sst,return=taxis`
- !-> show axis (AX001)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX001)   TIME                 2 r   16-JAN-0000 06:00    17-MAR-0000 02:58
+ (AX###)   TIME                 2 r   16-JAN-0000 06:00    17-MAR-0000 02:58
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2921.94
  
@@ -53877,8 +53886,8 @@ say `temp,return=tmod`
 def ax/t=1-aug-0000:1-aug-0001/np=3/edge/units=days tsub
 let a = t[gt=tsub]
 say `a,return=tmod`
- !-> MESSAGE/CONTINUE 365.2424926757813
-365.2424926757813
+ !-> MESSAGE/CONTINUE 365.2424926757812
+365.2424926757812
  
 ! Modulo because defined on longitude coordinates
 define axis/x=130e:80w:10 xsub
@@ -54576,7 +54585,7 @@ DNCASE(STR)
 STRCAT(STR1,STR2)
 SUBSTRING(STR,OFFSET,LENGTH)
 STRFLOAT(STR)
-INNERPRODUCT(VAR1,VAR2,IDIM)
+DOT(VAR1,VAR2,IDIM)
 TRANSPOSE(VAR,DIM1,DIM2)
  
 Externally defined functions available to Ferret:
@@ -54602,9 +54611,16 @@ CONVOLVEM(COM,WEIGHT)
 CONVOLVEN(COM,WEIGHT)
 CURV_RANGE(LONGITUDES,LATITUDES,xrange_lo,xrange_hi,yrange_lo,yrange_hi,modulo flag for X coordinates)
 CURV_TO_RECT(V,mapping)
+CURV_TO_RECT_FSU(V,mapping)
 CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
 DATE1900(formatted date)
 DAYS1900TOYMDHMS(day1900)
+DOT_E(VAR1,VAR2)
+DOT_F(VAR1,VAR2)
+DOT_T(VAR1,VAR2)
+DOT_X(VAR1,VAR2)
+DOT_Y(VAR1,VAR2)
+DOT_Z(VAR1,VAR2)
 ECAT(A,B)
 ECAT_STR(A,B)
 ELEMENT_INDEX(VAR,VALUES)
@@ -54612,13 +54628,24 @@ ELEMENT_INDEX_STR(VAR,STRINGS)
 ELEMENT_INDEX_STR_N(VAR,STRINGS)
 EOF_SPACE(A,frac_timeser)
 EOF_STAT(A,frac_timeser)
+EOFSVD_SPACE(A)
+EOFSVD_STAT(A)
+EOFSVD_TFUNC(A)
 EOF_TFUNC(A,frac_timeser)
 EREVERSE(A)
+EXPND_BY_LEN(var,len,nx)
+EXPND_BY_LEN_STR(var,len,nx)
 EXPNDI_BY(dat,mask,outsize)
+EXPNDI_BY_M_COUNTS(Data,Row Sizes,Result X axis)
+EXPNDI_BY_M_COUNTS_STR(Data,Row Sizes,Result X axis)
 EXPNDI_BY_T(dat,mask,n_profiles,max_profile_len)
 EXPNDI_BY_Z(dat,mask,n_profiles,max_profile_len)
+EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
+EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EXPNDI_TO_ET(var data,time data,Rowsize (E direction),Result T)
 FCAT(A,B)
 FCAT_STR(A,B)
+FC_ISUBSET(index_list,lengths,nx,FullData)
 FFTA(A)
 FFT_IM(A)
 FFT_INVERSE(A,B)
@@ -54629,6 +54656,7 @@ FINDHI(A,XRANGE,YRANGE)
 FINDLO(A,XRANGE,YRANGE)
 FLOATSTR(A,FMT)
 FREVERSE(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
 IS_ELEMENT_OF(VAR,VALUES)
 IS_ELEMENT_OF_STR(VAR,VALUES)
 IS_ELEMENT_OF_STR_N(VAR,VALUES)
@@ -54641,27 +54669,37 @@ MINMAX(A)
 MINUTES24(formatted time)
 NCO(operator,arguments)
 NCO_ATTR(FileName,VariableName,AttributeName,AttType,Mode,AttributeValue)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
 PT_IN_POLY(A,XVERT,YVERT)
 RECT_TO_CURV(V,lon_bounds_out,lat_bounds_out,missing_allowed)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
 SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
 SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
 SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
-SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+SAMPLEM_MULTI(DAT_TO_SAMPLE,M_INDICES)
+SAMPLEN_MULTI(DAT_TO_SAMPLE,N_INDICES)
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CURV(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
 SAMPLEXY_CURV_AVG(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
 SAMPLEXY_CURV_NRST(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
+SAMPLEXY_NRST(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXYT(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
 SAMPLEXZ(DAT_TO_SAMPLE,XPTS,ZPTS)
 SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
 SCAT2DDUPS(coord 1,coord 2,epsilon 1,epsilon 2)
 SCAT2GRID_BIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
 SCAT2GRID_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRID_BIN_XYZ(XPTS,YPTS,ZPTS,F,XAXPTS,YAXPTS,ZAXPTS)
+SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
+SCAT2GRID_MINMAX_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
+SCAT2GRID_STD_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRIDGAUSS_XT(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XT_V0(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XY(XPTS,YPTS,F,XAXPTS,YAXPTS,XSCALE,YSCALE,CUTOFF,0)
@@ -54685,6 +54723,8 @@ SCAT2GRID_NBIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRID_NOBS_XY(XPTS,YPTS,XAXPTS,YAXPTS)
 SCAT2GRID_NOBS_XYT(XPTS,YPTS,TPTS,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRID_T(TPTS,TAXIS)
+SEPARATE(A,Rowsize,FixLongitudes)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
 SORTI(DAT)
 SORTI_STR(STR)
 SORTJ(DAT)
@@ -54697,6 +54737,9 @@ SORTM(DAT)
 SORTM_STR(STR)
 SORTN(DAT)
 SORTN_STR(STR)
+STR_MASK(STRING,MASK,--)
+STR_NOBLANKS(STR)
+STR_REPLACE(INSTRING,S1,S2)
 TAUTO_COR(A)
 TAX_DATESTRING(A,B,C)
 TAX_DAY(A,B)
@@ -54712,6 +54755,9 @@ TAX_YEARFRAC(A,B)
 TCAT(A,B)
 TCAT_STR(A,B)
 TEST_OPENDAP(url)
+TIME_REFORMAT(A)
+TRACKS2GRID_MASK_AVE_XYT(VAR,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS,MASK)
+TRACKS2GRID_STD_XYT(VARIABLE,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS)
 TRANSPOSE_EF(VAR)
 TRANSPOSE_TE(VAR)
 TRANSPOSE_TF(VAR)
@@ -54730,6 +54776,7 @@ TRANSPOSE_ZT(VAR)
 TREVERSE(A)
 UNIQUE_STR2INT(A)
 WRITE_WEBROW(id,name,Cruise_Mask,filename)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
 XAUTO_COR(A)
 XCAT(A,B)
 XCAT_STR(A,B)
@@ -54744,40 +54791,6 @@ ZAXREPLACE_ZLEV(V,THICKNESS,ZAX)
 ZCAT(A,B)
 ZCAT_STR(A,B)
 ZREVERSE(A)
-EOFSVD_SPACE(A)
-EOFSVD_STAT(A)
-EOFSVD_TFUNC(A)
-EXPND_BY_LEN(var,len,nx)
-EXPND_BY_LEN_STR(var,len,nx)
-FC_ISUBSET(index_list,lengths,nx,FullData)
-EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
-EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
-EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
-STR_MASK(STRING,MASK,--)
-SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-SEPARATE(A,Rowsize,FixLongitudes)
-TIME_REFORMAT(A)
-FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
-CURV_TO_RECT_FSU(V,mapping)
-PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
-SAMPLE_FAST_I(V,Indices)
-SAMPLE_FAST_I_STR(S,Indices)
-SEPARATE_STR(A,Rowsize,FixLongitudes)
-WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
-BXCAT(A,B)
-BXSEQUENCE(A)
-BXSEQUENCE_STR(A)
-BCOMPRESSI(DAT)
-SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
-STR_NOBLANKS(STR)
-STR_REPLACE(INSTRING,S1,S2)
-EXPNDI_TO_ET(var data,time data,Rowsize (E direction),Result T)
-INNERPRODUCT_X(VAR1,VAR2)
-INNERPRODUCT_Y(VAR1,VAR2)
-INNERPRODUCT_Z(VAR1,VAR2)
-INNERPRODUCT_T(VAR1,VAR2)
-INNERPRODUCT_E(VAR1,VAR2)
-INNERPRODUCT_F(VAR1,VAR2)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -55696,7 +55709,7 @@ SHOW DATA/VAR/XML 2
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="(G006)">
+<grid name="(G###)">
 <axes>
 <zaxis>ZAXIS_DES</zaxis>
 </axes>
@@ -56390,9 +56403,9 @@ LIST a_regrid[D=1,GT=b[D=2]@MOD]
                         regrid: on T at MOD
              SUBSET   : 12 points (TIME)
              CALENDAR : NOLEAP
-             LONGITUDE: 141.3W
+             LONGITUDE: 141.2W
              LATITUDE : 1S
-                        141.3W  
+                        141.2W  
                           1
  16-JAN 12      /  1:  0.05848
  15-FEB 00      /  2:  0.05188
@@ -56642,8 +56655,8 @@ SHOW DAT/ATT
   
  .                               history         CHAR        7    F       dat.dat
   
- my_asc                FLOAT     long_name       CHAR        11   T       chlorophyll
-                                 missing_value   FLOAT       1    T       3
+ my_asc                DOUBLE    long_name       CHAR        11   T       chlorophyll
+                                 missing_value   DOUBLE      1    T       3
                                  units           CHAR        12   T       micrograms/L
   
 SAVE/FILE=a.nc/CLOBBER my_asc
@@ -58940,10 +58953,10 @@ SH GRID am
  normal    T
 *** Running ferret script: bn_clock_syms.jnl
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.007998"
-CLOCK_SECS = "0.003"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:03:41"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -58952,8 +58965,8 @@ CURRENT_TIME = "17:03:41"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.041993"
-CLOCK_SECS = "0.051"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -58967,60 +58980,60 @@ repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=9
 !-> REPEAT: K=10
 let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.143978
+ !-> DEFINE VARIABLE ten_plots = 0.######
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0"
-CLOCK_SECS = "0.194"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "0.195"
+CLOCK_SECS = "######"
 repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
 let sumcpu =`sumcpu + dt`)
  !-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
 !-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.015998
- !-> DEFINE VARIABLE sumcpu =0.015998
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.015998
- !-> DEFINE VARIABLE sumcpu =0.031996
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.016997
- !-> DEFINE VARIABLE sumcpu =0.048993
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.015998
- !-> DEFINE VARIABLE sumcpu =0.064991
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.015997
- !-> DEFINE VARIABLE sumcpu =0.080988
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.015998
- !-> DEFINE VARIABLE sumcpu =0.096986
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.015997
- !-> DEFINE VARIABLE sumcpu =0.112983
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.015998
- !-> DEFINE VARIABLE sumcpu =0.128981
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.014998
- !-> DEFINE VARIABLE sumcpu =0.143979
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.015997
- !-> DEFINE VARIABLE sumcpu =0.159976
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.159976
-0.159976
+ !-> MESSAGE/CONTINUE 0.######
+0.######
 sh sym CLOCK_SECS
-CLOCK_SECS = "0.355"
+CLOCK_SECS = "######"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:03"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:03:42"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 *** Running ferret script: bn63_bug_fixes.jnl
 ! bn63_bug_fixes.jnl
 ! Fixes that go into v6.3 release
@@ -59669,7 +59682,7 @@ LIST var
  16-JAN-1969 / 20:  0.6618
  
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX010)
+ !-> CAN AXIS/STRIDE (AX###)
 SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
 LIST var
              VARIABLE : COS(T[GT=TRUEMONTH]/100)
@@ -59698,7 +59711,7 @@ LIST var
 SET MODE IGNORE_ERRROR
 ! Previously didnt check for negative offset value
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX005)
+ !-> CAN AXIS/STRIDE (AX###)
 SET AXIS/STRIDE=12/OFFSET=-1 truemonth
  
 ! Previously didnt give err msg; just ignored non-positive stride value
@@ -60134,17 +60147,17 @@ list v1234
  9   / 5:  2998.  3998.  4998.
  ---- L:4 T:   08-JAN-1980 00:00
  ---- K:3 Z:   5
- 5   / 3:  2779.  3779.  4779.
- 7   / 4:  2879.  3879.  4879.
- 9   / 5:  2979.  3979.  4979.
+ 5   / 3:  2778.  3778.  4778.
+ 7   / 4:  2878.  3878.  4878.
+ 9   / 5:  2978.  3978.  4978.
  ---- K:4 Z:   7
- 5   / 3:  2789.  3789.  4789.
- 7   / 4:  2889.  3889.  4889.
- 9   / 5:  2989.  3989.  4989.
+ 5   / 3:  2788.  3788.  4788.
+ 7   / 4:  2888.  3888.  4888.
+ 9   / 5:  2988.  3988.  4988.
  ---- K:5 Z:   9
- 5   / 3:  2799.  3799.  4799.
- 7   / 4:  2899.  3899.  4899.
- 9   / 5:  2999.  3999.  4999.
+ 5   / 3:  2798.  3798.  4798.
+ 7   / 4:  2898.  3898.  4898.
+ 9   / 5:  2998.  3998.  4998.
  ---- L:5 T:   10-JAN-1980 00:00
  ---- K:3 Z:   5
  5   / 3:  2780.  3780.  4780.
@@ -60566,8 +60579,8 @@ list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -60595,8 +60608,8 @@ list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
@@ -60622,8 +60635,8 @@ list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg12345678901234567890]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
@@ -60675,14 +60688,14 @@ show grid gg123456789012345678902
     GRID GG123456789012345678902
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX011)   LATITUDE           401 r   20S                  20N
+ (AX###)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX011)                         use count:   1
+    AXIS (AX###)                         use count:   1
  
 ! demonstrate proper management of dynamic axes
 DEFINE GRID/LIKE=gg123456789012345678902 gg123456789012345678903
@@ -60690,7 +60703,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX011)                         use count:   2
+    AXIS (AX###)                         use count:   2
 DEFINE GRID/like=temp[d=levitus_climatology] gg123456789012345678902
 show grid gg123456789012345678902
     GRID GG123456789012345678902
@@ -60703,17 +60716,17 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX011)                         use count:   1
+    AXIS (AX###)                         use count:   1
  
 ! SET GRID using a user-defined variable
 let g = sst[x=0:30:.1,d=coads_climatology]
 set grid g
 show grid
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX013)   LONGITUDE          301 r   0E                   30E                 full
+ (AX###)   LONGITUDE          301 r   0E                   30E                 full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
@@ -60721,20 +60734,20 @@ show grid
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
 show grid
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G005)
-    GRID (G005)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX014)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX###)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX014)   LATITUDE           201 r   10S                  10N
+ (AX###)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  
@@ -60758,7 +60771,7 @@ SHOW GRID mygrid_123456789012345678901234567890
     GRID MYGRID_123456789012345678901234567890
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX014)   LATITUDE            41 r   10S                  2S
+ (AX###)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
 *** Running ferret script: bn_xml_repl.jnl
@@ -61040,14 +61053,14 @@ list b  ! includes Feb 15 1150, not missing...
              SUBSET   : 11 points (TIME)
              CALENDAR : NOLEAP
  16-SEP-1149 00 /  1:  419278.
- 16-OCT-1149 12 /  2:  419309.
+ 16-OCT-1149 12 /  2:  419308.
  16-NOV-1149 00 /  3:  419339.
  16-DEC-1149 12 /  4:  419370.
- 16-JAN-1150 12 /  5:  419401.
+ 16-JAN-1150 12 /  5:  419400.
  15-FEB-1150 00 /  6:  419430.
  16-MAR-1150 12 /  7:  419460.
  16-APR-1150 00 /  8:  419490.
- 16-MAY-1150 12 /  9:  419521.
+ 16-MAY-1150 12 /  9:  419520.
  16-JUN-1150 00 / 10:  419551.
  16-JUL-1150 12 / 11:  419582.
  
@@ -61634,11 +61647,11 @@ save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
 sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
 Bytes: 197508
 sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
-Bytes: 125212
+Bytes: 125620
 sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
-Bytes: 124800
+Bytes: 125234
 sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
-Bytes: 118865
+Bytes: 119299
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -61655,9 +61668,9 @@ save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
 sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
 Bytes: 60548
 sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32392
+Bytes: 32888
 sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32569
+Bytes: 33103
  
 cancel list/all
 set list/ncformat=classic
@@ -61722,7 +61735,7 @@ define axis/t=1-jan-2010:30-mar-2010:1/units=days tin
 define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
 let tt = t[gt=tout,L=1:10]
 sh grid tt
-    GRID (G001)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -61927,7 +61940,7 @@ list/x=2:3 sgrid
  
 let tpts = 39798 + 87*RANDU(I)
 show grid tt
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  X10       X                  201 r   0                    10                  full
  Y10       Y                  201 r   0                    10                  full
@@ -61946,8 +61959,8 @@ use a.nc
 stat sgrid
  
              SCAT2GRID_BIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
-             X: 0.8 to 10.3
-             Y: 0.8 to 10.3
+             X: 0.8 to 10.2
+             Y: 0.8 to 10.2
              Z:  N/A
              TIME: 27-DEC-2009 00:00 to 06-APR-2010 00:00
              E:  N/A
@@ -61963,8 +61976,8 @@ stat sgrid
 stat ngrid
  
              SCAT2GRID_NBIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
-             X: 0.8 to 10.3
-             Y: 0.8 to 10.3
+             X: 0.8 to 10.2
+             Y: 0.8 to 10.2
              Z:  N/A
              TIME: 27-DEC-2009 00:00 to 06-APR-2010 00:00
              E:  N/A
@@ -62811,9 +62824,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 45 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v7.1 (beta/debug)"                                                
- 3    /  3:" ! Linux 2.6.32-696.1.1.el6.x86_64 64-bit - 04/18/17"                       
- 4    /  4:" ! 18-Apr-17 17:03     "                                                    
+ 2    /  2:" ! FERRET v7.2 (beta/debug)"                                                
+ 3    /  3:" ! Linux 3.10.0-514.26.2.el7.x86_64 64-bit - MM-DD-YY"                      
+ 4    /  4:" ! DD-MON-YY HH:MM     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -62901,7 +62914,7 @@ regridding transforms e.g.SST[GX=x5deg at AVE]
    @MAX        maximum                      @NRST       nearst coord
    @SUM        area-wgtd sum                @BIN        unwgtd avg
    @NGD        #gd pts, area wgtd           @NBIN       #good in bin
-   @MOD        modulo ave
+   @MOD        modulo ave                   @IIN        #indef integral
  
 auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
    code        description                  code        description
@@ -65066,9 +65079,9 @@ GO err672_dset_cx
  
 let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
-    GRID (G008)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX007)   X                    3 r   0                    2                   3 pts
+ (AX###)   X                    3 r   0                    2                   3 pts
  normal    Y
  normal    Z
  normal    T
@@ -65080,9 +65093,9 @@ sho grid/x a
  
 let a = x[gx=1:3:1]; save/clob/file=a2.nc a
 sho grid/x a
-    GRID (G008)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX002)   X                    3 r   1                    3                   3 pts
+ (AX###)   X                    3 r   1                    3                   3 pts
  normal    Y
  normal    Z
  normal    T
@@ -65305,130 +65318,130 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.984
-randu2_randn2       0.760
-randu2_randn2       0.059
-randu2_randn2       0.800
-randu2_randn2       0.018
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.095
-randu2_randn2       0.166
-randu2_randn2       0.374
-randu2_randn2       0.197
-randu2_randn2       0.116
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.430
-randu2_randn2       0.122
-randu2_randn2       0.969
-randu2_randn2       0.258
-randu2_randn2       0.197
-randu2_randn2       0.467
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.404
-randu2_randn2       0.358
-randu2_randn2       0.446
-randu2_randn2       0.532
-randu2_randn2       0.141
-randu2_randn2       0.323
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.302
-randu2_randn2       0.380
-randu2_randn2       0.926
-randu2_randn2       0.672
-randu2_randn2       0.238
-randu2_randn2       0.638
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.302
-randu2_randn2       0.380
-randu2_randn2       0.926
-randu2_randn2       0.672
-randu2_randn2       0.238
-randu2_randn2       0.638
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -1.441
-randu2_randn2      -0.355
-randu2_randn2      -0.879
-randu2_randn2       0.105
-randu2_randn2       1.220
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.813
-randu2_randn2      -0.893
-randu2_randn2       0.103
-randu2_randn2      -0.424
-randu2_randn2      -0.914
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       1.442
-randu2_randn2      -0.797
-randu2_randn2      -1.054
-randu2_randn2      -0.922
-randu2_randn2      -0.741
-randu2_randn2       0.201
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       1.390
-randu2_randn2       0.539
-randu2_randn2       0.251
-randu2_randn2       1.731
-randu2_randn2      -1.350
-randu2_randn2       2.628
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.906
-randu2_randn2      -1.503
-randu2_randn2       0.217
-randu2_randn2       0.537
-randu2_randn2       0.674
-randu2_randn2      -1.279
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.906
-randu2_randn2      -1.503
-randu2_randn2       0.217
-randu2_randn2       0.537
-randu2_randn2       0.674
-randu2_randn2      -1.279
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              Z: 1 to 140
  Column  1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
  Column  2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
  Column  3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2       1.898       1.898       0.781
-randu2_randn2       1.536       1.536       0.781
-randu2_randn2       0.781       0.781       0.487
-randu2_randn2       0.487       0.487       0.487
-randu2_randn2       0.009       0.009       0.487
-randu2_randn2      -0.627       0.009       0.487
-randu2_randn2       0.089       0.089       0.487
-randu2_randn2       0.344       0.344       0.487
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
 *** Running ferret script: bn_axis_cf.jnl
 ! Ticket 1792: Write axes with CF-compliant units
 ! and with standard name attributes for geophysical attrs.
@@ -67291,17 +67304,17 @@ list v1234
  9   / 5:  2998.  3998.  4998.
  ---- N:4 F:   1980
  ---- M:3 E:   5
- 5   / 3:  2779.  3779.  4779.
- 7   / 4:  2879.  3879.  4879.
- 9   / 5:  2979.  3979.  4979.
+ 5   / 3:  2778.  3778.  4778.
+ 7   / 4:  2878.  3878.  4878.
+ 9   / 5:  2978.  3978.  4978.
  ---- M:4 E:   7
- 5   / 3:  2789.  3789.  4789.
- 7   / 4:  2889.  3889.  4889.
- 9   / 5:  2989.  3989.  4989.
+ 5   / 3:  2788.  3788.  4788.
+ 7   / 4:  2888.  3888.  4888.
+ 9   / 5:  2988.  3988.  4988.
  ---- M:5 E:   9
- 5   / 3:  2799.  3799.  4799.
- 7   / 4:  2899.  3899.  4899.
- 9   / 5:  2999.  3999.  4999.
+ 5   / 3:  2798.  3798.  4798.
+ 7   / 4:  2898.  3898.  4898.
+ 9   / 5:  2998.  3998.  4998.
  ---- N:5 F:   1980
  ---- M:3 E:   5
  5   / 3:  2780.  3780.  4780.
@@ -69683,31 +69696,31 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
  -DELETE TEMP     M: 13 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- dealloc  dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- dealloc  dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G003)           @AVE
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G###)           @AVE
  strip regrid on F: A1 --> ENTERMED         @AVE
  eval    A1       C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
  pseudo  _E       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
  pseudo  _F       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    1
  -DELETE _F       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
  -DELETE _E       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
  regrid  A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
  regrid  A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at AVE, 96 hour on F at AVE
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -69730,21 +69743,21 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
  12-MAR-1982 00 / 15:    ....    ....
  16-MAR-1982 00 / 16:    ....    ....
 list a1[ge=eoffset at sum, gf=fax4day at sum]
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G003)           @SUM
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G###)           @SUM
  strip regrid on F: A1 --> ENTERMED         @SUM
  found   A1       M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
  regrid  A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
  regrid  A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at SUM, 96 hour on F at SUM
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -69767,21 +69780,21 @@ list a1[ge=eoffset at sum, gf=fax4day at sum]
  12-MAR-1982 00 / 15:   ....   ....
  16-MAR-1982 00 / 16:   ....   ....
 list a1[ge=eoffset at var, gf=fax4day at var]
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G003)           @VAR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G###)           @VAR
  strip regrid on F: A1 --> ENTERMED         @VAR
  found   A1       M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
  regrid  A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
  regrid  A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : Variance of _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -69805,35 +69818,35 @@ list a1[ge=eoffset at var, gf=fax4day at var]
  16-MAR-1982 00 / 16:........
  
 list a2[ge=eoffset at ave, gf=fax4day at ave]
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G004)           @AVE
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G###)           @AVE
  strip regrid on F: A2 --> ENTERMED         @AVE
  eval    A2       C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
  pseudo  _E       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
  pseudo  _F       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1   48
  -DELETE _F       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
  -DELETE _E       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
  regrid  A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  regrid  A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at AVE, 96 hour on F at AVE
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -69856,21 +69869,21 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
  12-MAR-1982 00 / 15:     ....     ....
  16-MAR-1982 00 / 16:     ....     ....
 list a2[ge=eoffset at sum, gf=fax4day at sum]
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G004)           @SUM
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G###)           @SUM
  strip regrid on F: A2 --> ENTERMED         @SUM
  found   A2       M: 14 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
  regrid  A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  regrid  A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at SUM, 96 hour on F at SUM
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -69893,21 +69906,21 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
  12-MAR-1982 00 / 15:       ....       ....
  16-MAR-1982 00 / 16:       ....       ....
 list a2[ge=eoffset at var, gf=fax4day at var]
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G004)           @VAR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G###)           @VAR
  strip regrid on F: A2 --> ENTERMED         @VAR
  found   A2       M: 14 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
  regrid  A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  regrid  A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -69933,33 +69946,33 @@ list a2[ge=eoffset at var, gf=fax4day at var]
 ! 1/00 additions to check details of @MIN, at MAX bevavior
  
 let a1 = _e[ge=e1pt]
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A2       M: 14 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
  -DELETE A1       M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
- dealloc  dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
 let a2 = _e[ge=e2pt]
 let a4 = _e[ge=e4pt]
  
 list a1[ge=eoffset at max]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- dealloc  dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A1 --> (G003)           @MAX
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A1 --> (G###)           @MAX
  eval    A1       C:  7 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
  pseudo  _E       M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
  regrid  A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E1PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
@@ -69967,25 +69980,25 @@ list a1[ge=eoffset at max]
  2.1 / 2:  2.500
 list a2[ge=eoffset at max]
  -DELETE _E       M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A2 --> (G004)           @MAX
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A2 --> (G###)           @MAX
  eval    A2       C:  7 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
  pseudo  _E       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
  regrid  A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E2PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
@@ -69993,25 +70006,25 @@ list a2[ge=eoffset at max]
  2.1 / 2:  2.500
 list a4[ge=eoffset at max]
  -DELETE _E       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A4       C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G005)           @MAX
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G###)           @MAX
  eval    A4       C:  7 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
  pseudo  _E       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
  regrid  A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
@@ -70019,36 +70032,36 @@ list a4[ge=eoffset at max]
  2.1 / 2:  2.500
 list a4[ge=eoffset at min]
  -DELETE _E       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G005)           @MIN
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G###)           @MIN
  found   A4       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
  regrid  A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MIN
              SUBSET   : 2 points (E)
  1.1 / 1:  1.500
  2.1 / 2:  2.000
 list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G005)           @SUM
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G###)           @SUM
  found   A4       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
  regrid  A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at SUM
              SUBSET   : 2 points (E)
@@ -70060,19 +70073,19 @@ define axis/f=1-jan-1990:5-jan-1990:1/units=days eday
 define axis/f=1-jan-1990:5-jan-1990:24/units=hours ehour
 let afcst = _f[gf=eday]
 list afcst
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid AFCST    C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
  eval    AFCST    C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
  pseudo  _F       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
              VARIABLE : _F[GF=EDAY]
              SUBSET   : 5 points (FORECAST)
  01-JAN-1990 00 / 1:  32493.
@@ -70082,8 +70095,8 @@ list afcst
  05-JAN-1990 00 / 5:  32497.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G005)
-    GRID (G005)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -70093,17 +70106,17 @@ show grid
  EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
 list afcst[gf=ehour at max]
  -DELETE _F       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- strip regrid on F: AFCST --> (G006)           @MAX
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ strip regrid on F: AFCST --> (G###)           @MAX
  found   AFCST    M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
  regrid  AFCST    M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
              VARIABLE : _F[GF=EDAY]
                         regrid: 24 hour on F at MAX
              SUBSET   : 5 points (FORECAST)
@@ -70114,8 +70127,8 @@ list afcst[gf=ehour at max]
  05-JAN-1990 00 / 5:  32497.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -70151,7 +70164,7 @@ show data fourfiles
  
 list/i=3 sst[T=@ave]
  getgrid EX#1     C:  5 dset:   5 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
+ allocate dynamic grid (G###)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
  strip --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
@@ -70197,7 +70210,7 @@ all data in memory:
          3/104W                9/30N              ... / ...               12/31-DEC 06:34        4/4.5              ... / ...
  
 cancel data fourfiles
- dealloc  dynamic grid (G006)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
+ dealloc  dynamic grid (G###)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
  canceling dset fourfiles
  -DELETE SST      M:  1 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:   -999   -999  M:    1    4  N: -999 -999
  -DELETE SST      M:  2 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
@@ -70260,7 +70273,7 @@ show data fourfiles
  
 list/i=3 airt[T=@ave]
  getgrid EX#1     C:  5 dset:   6 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
+ allocate dynamic grid (G###)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   6 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
  strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
@@ -70321,7 +70334,7 @@ show data/files fourfiles_gap
       7.4: ./ens4.nc
 list/i=3 airt[T=@ave]
  getgrid EX#1     C:  5 dset:   7 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
+ allocate dynamic grid (G###)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   7 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
  strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
@@ -71165,7 +71178,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71223,7 +71236,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71271,7 +71284,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71319,7 +71332,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71359,7 +71372,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71400,7 +71413,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71470,7 +71483,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71523,7 +71536,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71587,7 +71600,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71631,7 +71644,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71675,7 +71688,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71719,7 +71732,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71760,7 +71773,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71991,7 +72004,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -72032,7 +72045,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -72083,7 +72096,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -72131,7 +72144,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72157,7 +72170,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72183,7 +72196,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72623,7 +72636,7 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72652,7 +72665,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72703,7 +72716,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72913,8 +72926,6 @@ list ..history
  
 ! Just a dot is interpretd as a number.
 list .
-             VARIABLE : constant
-          0.0000
  
 set mode/last ignore
  
@@ -73073,12 +73084,12 @@ list/i=1:3 sst
              FILENAME : err684_packed_output.nc
              SUBSET   : 3 by 4 points (LONGITUDE-LATITUDE)
              TIME     : 01-OCT-2012 00:00
-              80.13E 80.38E 80.63E 
+              80.12E 80.38E 80.62E 
                 1      2      3
  15.88N / 4:   ....   ....  29.03
- 15.63N / 3:   ....  29.18  29.09
+ 15.62N / 3:   ....  29.18  29.09
  15.38N / 2:  29.36  29.21  29.10
- 15.13N / 1:  29.40  29.27  29.13
+ 15.12N / 1:  29.40  29.27  29.13
  
 ! data is SHORT, is not scaled
  
@@ -73091,12 +73102,12 @@ list/i=1:3 sst
              FILENAME : sst_new.nc
              SUBSET   : 3 by 4 points (LONGITUDE-LATITUDE)
              TIME     : 01-OCT-2012 00:00
-              80.13E 80.38E 80.63E 
+              80.12E 80.38E 80.62E 
                 1      2      3
  15.88N / 4:   ....   ....  29.03
- 15.63N / 3:   ....  29.18  29.09
+ 15.62N / 3:   ....  29.18  29.09
  15.38N / 2:  29.36  29.21  29.10
- 15.13N / 1:  29.40  29.27  29.13
+ 15.12N / 1:  29.40  29.27  29.13
  
  
 GO bn_reset
@@ -73281,10 +73292,10 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Tue Apr 18 17:03:53 2017: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V7.1  18-Apr-17" ;
+		:history = "WKD MON DD HH:MM:SS YYYY: ncks -h -A -h z1.nc append_to_this.nc\n",
+			"FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
-		:NCO = "4.4.6" ;
+		:NCO = "4.4.4" ;
 }
 *** Running ferret script: bn_nobounds.jnl
 ! bn_nobounds.jnl
@@ -73313,7 +73324,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73344,7 +73355,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73407,7 +73418,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73435,7 +73446,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74225,6 +74236,7 @@ go bn_vtree_regrid
 ! exercise 12/14 enhancements to display regrid target on a separate line
 ! updated 1/26/15 to exercise multiple regrid target outputs
 ! updated 2/23/15 to report target of regrid even when aux regridding occurs
+! 5/2017 note that the fix for #2533 causes some duplicate  UNKNOWN GRID lines
  
 ! case 1: target grid known,   regridded variable known
 let myvar = 1           ! var to be regridded is known
@@ -74569,6 +74581,7 @@ go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]]  ! dup known targets
    in default dataset levitus_climatology
    MYVAR = X[GX=X1] + Y[GY=Y1]
      regrid to TEMP
+     regrid to TEMP
      regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset levitus_climatology
@@ -74585,13 +74598,16 @@ go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad]      ! dup unknown suppressed
    MYVAR = X[GX=X1] + Y[GY=Y1]
      regrid to TEMP
      regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset levitus_climatology
    MYVAR = X[GX=X1] + Y[GY=Y1]
      regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
 /TREE=FILE
    regrid to TEMP[d=levitus_climatology]
    *unknown grid: MYBAD
+   *unknown grid: MYBAD
 the problem is UNKNOWN GRID: MYBAD
 ************************
 go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
@@ -75137,7 +75153,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75160,7 +75176,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75379,7 +75395,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75409,7 +75425,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75430,7 +75446,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75451,7 +75467,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75473,7 +75489,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75886,7 +75902,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -75903,7 +75919,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -75920,7 +75936,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -75951,13 +75967,202 @@ set mode/last ignore
 ! Tests of the F-TDS LET/REMOTE
 ! 6/2016 installed NVODS on new-bock server
 ! 9/2016 load smaller subsets of the data
-! 4/2017 Use the THREDDS server at http://ferret.pmel.noaa.gov/pmel/thredds
+! 4/2017 Update thredds server urls. To find the right URL, go to the dataset
+!        in the NVODS server, and hit the "Export to Desktop Application"
+!        button. The .jnl address is the correct F-TDS URL.
  
 ! See if the F-TDS is working and bail if not.
-let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
 load status
 if `status NE 0` then EXIT/SCRIPT
- !-> if 1 then EXIT/SCRIPT
+ !-> if 0 then EXIT/SCRIPT
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+let/D=1/remote myvar = t00an1[k=1:5 at sum]
+let/D=1/remote ave_z = t00an1[z=0:20 at ave]
+sh var
+ Created by DEFINE VARIABLE:
+     AVE_Z[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[Z=0:20 at AVE]
+     MYVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[K=1:5 at SUM]
+ >>> Definitions that replace any file variable of same name:
+     STATUS = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+set view ul; shade/l=7/x=180:200/y=20:30 myvar
+set view ur; shade/l=3/x=180:200/y=20:30 ave_z
+ 
+list/l=7/x=300:310/y=15 myvar, ave_z
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+             LONGITUDE: 60W to 50W
+             LATITUDE: 14.5N
+             TIME: 02-JUL-0003 05:27
+ Column  1: MYVAR is T00AN1[K=1:5 at SUM]
+ Column  2: AVE_Z is T00AN1[Z=0:20 at AVE]
+             MYVAR   AVE_Z
+59.5W / 301:  136.8  27.45
+58.5W / 302:  136.7  27.42
+57.5W / 303:  136.4  27.37
+56.5W / 304:  136.1  27.30
+55.5W / 305:  135.6  27.21
+54.5W / 306:  135.1  27.11
+53.5W / 307:  134.6  27.01
+52.5W / 308:  134.1  26.89
+51.5W / 309:  133.6  26.77
+50.5W / 310:  133.0  26.65
+ 
+let/D=1/remote ave_t = t00an1[L=1:12 at ave]
+set view ll; shade/z=0/x=180:200/y=20:30 ave_t
+ 
+let/D=1/remote/units="`t00an1,ret=units`"/title="Summer average Temperature" ave_summer = t00an1[t=15-jun:15-sep at ave]
+ !-> DEFINE VARIABLE/D=1/remote/units="deg C"/title="Summer average Temperature" ave_summer = t00an1[t=15-jun:15-sep at ave]
+set view lr; shade/z=0/x=180:200/y=20:30 ave_summer
+ 
+can view
+can data/all; can var/all
+ 
+! open another dataset, define more remote variables
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+let/D=2/remote sstsum = sst[L=1:5 at sum]
+let/D=2/remote airtsum = airt[L=1:5 at sum]
+sh dat
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+ name     title                             I         J         K         L
+ T00AN1   Temperature                      1:360     1:180     1:33      1:1
+ 
+    2> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl  (default)
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:12
+ AIRT     AIR TEMPERATURE                  1:180     1:90      ...       1:12
+ SPEH     SPECIFIC HUMIDITY                1:180     1:90      ...       1:12
+ WSPD     WIND SPEED                       1:180     1:90      ...       1:12
+ UWND     ZONAL WIND                       1:180     1:90      ...       1:12
+ VWND     MERIDIONAL WIND                  1:180     1:90      ...       1:12
+ SLP      SEA LEVEL PRESSURE               1:180     1:90      ...       1:12
+ ------------------------------
+ AIRTSUM[D=data_coads_climatology.jnl] (/REMOTE) = AIRT[L=1:5 at SUM]
+ SSTSUM[D=data_coads_climatology.jnl] (/REMOTE) = SST[L=1:5 at SUM]
+ 
+ 
+set view ul; plot/y=-10/x=50:150 sstsum
+set view ur; plot/y=-10/x=50:150 airtsum
+list/y=-10/x=50:59 sstsum,airtsum
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             LONGITUDE: 50E to 59E
+             LATITUDE: 11S
+ Column  1: SSTSUM is SST[L=1:5 at SUM]
+ Column  2: AIRTSUM is AIRT[L=1:5 at SUM]
+           SSTSUM  AIRTSUM
+51E   / 16:  140.5   138.3
+53E   / 17:  140.6   138.4
+55E   / 18:  141.3   139.5
+57E   / 19:  141.4   138.5
+59E   / 20:  141.5   139.1
+ 
+let both = sstsum + airtsum
+set view lower; plot/y=-10/x=50:150 both
+list/y=-10/x=50:59 sstsum, airtsum, both
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             LONGITUDE: 50E to 59E
+             LATITUDE: 11S
+ Column  1: SSTSUM is SST[L=1:5 at SUM]
+ Column  2: AIRTSUM is AIRT[L=1:5 at SUM]
+ Column  3: BOTH is SSTSUM + AIRTSUM
+           SSTSUM  AIRTSUM  BOTH
+51E   / 16:  140.5   138.3  278.7
+53E   / 17:  140.6   138.4  279.0
+55E   / 18:  141.3   139.5  280.9
+57E   / 19:  141.4   138.5  279.9
+59E   / 20:  141.5   139.1  280.6
+ 
+can dat/all; can var/all
+ 
+! make several remote definitions. They can be used together in an expression.
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+let/D=1/remote sstsum = sst[L=1:5 at sum]
+let/D=1/remote airtsum = airt[L=1:5 at sum]
+let/D=1/remote factor = 12
+let/D=1/remote combo = factor*(airtsum - sstsum)
+list/y=-5/x=130w:110w combo
+             VARIABLE : FACTOR*(AIRTSUM - SSTSUM)
+             FILENAME : data_coads_climatology.jnl
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 5S
+                 5S    
+                 43
+ 129W   / 106:  -7.04
+ 127W   / 107:  -7.88
+ 125W   / 108:  -0.59
+ 123W   / 109: -10.31
+ 121W   / 110:  -1.90
+ 119W   / 111:  -4.39
+ 117W   / 112:  -6.35
+ 115W   / 113:  -9.40
+ 113W   / 114:  -9.81
+ 111W   / 115: -11.41
+ 
+ 
+can dat/all; can var/all
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+ 
+! This is ok let/remote/D=
+let/D=1/remote myvar = t00an1[z=1:100 at ave]
+ 
+! Intentional errors:
+ 
+! But cannot put d= within the expression: the expr is evaluated on
+! the remote server so the same datsets are not open there.
+ 
+set mode ignore
+let/D=1/remote rvar = t00an1[d=1,z=1:100 at ave]
+ 
+ 
+! But, require LET/D= with /REMOTE
+let/remote rvar = t00an1[d=1,z=1:100 at ave]
+ 
+! If expressions involve local variables not defined in the remote dset,
+! then the variable can be computed but not as a remote-var.
+ 
+let a = 12
+let/D=1/remote avar = a*t00an1[L=@ave]
+list/x=300/y=15 avar
+ 
+SET MODE/LAST ignore
+ 
+! The dataset remains open, we can fix the definition.
+let/D=1/remote a = 12
+sho dat
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl  (default)
+ name     title                             I         J         K         L
+ T00AN1   Temperature                      1:360     1:180     1:33      1:1
+ ------------------------------
+ A[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = 12
+ AVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = A*T00AN1[L=@AVE]
+ MYVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[Z=1:100 at AVE]
+ 
+list/x=300/y=15/z=0:100 avar
+             VARIABLE : A*T00AN1[L=@AVE]
+             FILENAME : data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/
+             SUBSET   : 7 points (DEPTH (m))
+             LONGITUDE: 60.5W
+             LATITUDE : 14.5N
+             TIME     : 01-JUL 00:00 to 02-JUL 00:00
+               60.5W 
+              300
+ 0      / 1:  330.0
+ 10     / 2:  329.7
+ 20     / 3:  329.3
+ 30     / 4:  328.7
+ 50     / 5:  324.3
+ 75     / 6:  312.7
+ 100    / 7:  297.4
+ 
+can dat/all; can var/all
+ 
 *** Running ferret script: bn691_bug_fixes.jnl
 ! bn691_bug_fixes
 ! test various fixes that went into version 6.91
@@ -76193,7 +76398,7 @@ ensemble ens = 1,2,3
 ! MAIZE_YIELD[M=@NGD] should have values of 0, 2, and 3.
 list/y=29.25  MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3],  MAIZE_YIELD[m=@ngd]
              LONGITUDE: 8W(-8) to 6W(-6)
-             LATITUDE: 29.3N
+             LATITUDE: 29.2N
              E (realization): 0.5 to 3.5 (number of valid)
  Column  1: MAIZE_YIELD[D=maize_1] is  Maize harvest (kgC.m-2.yr-1)
  Column  2: MAIZE_YIELD[D=maize_2] is  Maize harvest (kgC.m-2.yr-1)
@@ -76474,7 +76679,7 @@ def axis/z=1:20:1 zaxis
 define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
@@ -76490,7 +76695,7 @@ load bigvar
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
@@ -76972,7 +77177,7 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 }
  
 set mode/last upcase
@@ -77065,7 +77270,7 @@ variables:
 		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V7.1  18-Apr-17" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V7.2  DD-MON-YY" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -77092,7 +77297,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V7.1  18-Apr-17 
+ FERRET V7.2  DD-MON-YY 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -77122,7 +77327,7 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V7.1  18-Apr-17 
+ ..history = The history of the fileFERRET V7.2  DD-MON-YY 
  ..Conventions = Conventions for variables named V2CF-1.6 
 *** Running ferret script: bn_center_key_labels.jnl
 ! bn_center_key_labels
@@ -79915,16 +80120,19 @@ say ($a)
 foobar
  
 ! ======
+! Note this result changes 6/30/2017, due to change in merge_grid for ticket
+! 2313, in grid-merging the grid of a constant is now a normal grid. Previously
+! it was the abstract grid.
 DEFINE SYMBOL a    "(`foobar,return=xaxis`)"
- !-> DEFINE SYMBOL a    "(ABSTRACT)"
+ !-> DEFINE SYMBOL a    "(NORMAL)"
 say ($a)
- !-> MESSAGE/CONTINUE (ABSTRACT)
-(ABSTRACT)
+ !-> MESSAGE/CONTINUE (NORMAL)
+(NORMAL)
 DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
- !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(NORMAL)_DQ_
 say ($a)
- !-> MESSAGE/CONTINUE (ABSTRACT)
-(ABSTRACT)
+ !-> MESSAGE/CONTINUE (NORMAL)
+(NORMAL)
  
 ! ======
 GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_    "_DQ_+-/_SQ_\!foobar;_SQ_"
@@ -80619,7 +80827,7 @@ use "run4.nc"
 define data/hide/F/agg fourfiles = 1,2,3,4
  
 sh grid sst
-    GRID (G007)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  LON       LONGITUDE           10mr   109W                 91W                 full
  LAT       LATITUDE             9 r   13N                  29N                 full
@@ -80935,7 +81143,7 @@ ppl list labels
           XPOS       YPOS     HGT   ROT   UNITS
  LAB 1  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASX : 0.5 to 2.5
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 2 -1.313E+00 -1.000E+00 0.500  -90  USER    X
+ LAB 2 -1.312E+00 -1.000E+00 0.500  -90  USER    X
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
  LAB 3  0.000E+00 -8.333E-01 0.500    0  USER    X
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
@@ -81191,17 +81399,17 @@ LIST/PREC=7 tempz
  getgrid DEPTH    C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL
  getgrid ZPTS     C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
- dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    (AX###)   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    (AX###)   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    (AX###)   NORMAL
+ allocate dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
+ dealloc  dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
+ allocate dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
+ allocate dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    5  L:   -999   -999
  eval    TEMPZ    C:  6 dset:   1 I:      1      2  J:    1    2  K:    1    5  L:   -999   -999
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
- strip regrid on Z: TEMP --> (G002)           @LIN
+ allocate dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
+ strip regrid on Z: TEMP --> (G###)           @LIN
  eval    DEPTH    C:  9 dset:   1 I:      1      2  J:    1    2  K:    1   20  L:   -999   -999
  pseudo  Z        M:  1 dset:   1 I:   -999   -999  J: -999 -999  K:    1   20  L:   -999   -999
  constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -81211,7 +81419,7 @@ LIST/PREC=7 tempz
  -DELETE Z        M:  1 dset:   1 I:   -999   -999  J: -999 -999  K:    1   20  L:   -999   -999
  reading TEMP     M:  1 dset:   1 I:      1      2  J:    1    2  K:    7   12  L:   -999   -999
  auxgrd  TEMP     M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    5  L:   -999   -999
- dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
+ dealloc  dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
              VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
              FILENAME : levitus_3d_subset.nc
              SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
@@ -81233,14 +81441,14 @@ LIST/PREC=7 tempz
  48.5S / 2:  5.835500  6.045001
  49.5S / 1:  4.879000  5.102500
 SHOW GRID tempz
- dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
+ dealloc  dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
  getgrid EX#1     C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
-    GRID (G002)
+ allocate dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
- (AX005)   Z                    5 r   100                  500                 full
+ (AX###)   Z                    5 r   100                  500                 full
  normal    T
 !LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
 !LIST/PREC=7 tempz
@@ -81284,7 +81492,7 @@ LIST tempzax
  48.5S / 2:  5.835  6.045
  49.5S / 1:  4.879  5.102
 SHOW GRID tempzax
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -81318,11 +81526,11 @@ LIST/PREC=7 tempz_alt
  48.5S / 2:  7.726000  7.917999
  49.5S / 1:  6.843000  7.021999
 SHOW GRID tempz_alt
-    GRID (G005)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
- (AX007)   Z                    5 r   2                    10                  5 pts
+ (AX###)   Z                    5 r   2                    10                  5 pts
  normal    T
  
 !! do same regrid using the shorhand semi-automated notation
@@ -81343,11 +81551,11 @@ LIST/PREC=7 tempz_1pt
  48.5S / 2:  7.725600  7.917999
  49.5S / 1:  6.836600  7.016000
 SHOW GRID/z tempz_1pt
-    GRID (G006)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
- (AX008)   Z                    1 r   6                    6                   1 pt
+ (AX###)   Z                    1 r   6                    6                   1 pt
  normal    T
  
        K     Z                   ZBOX      ZBOXLO
@@ -81406,7 +81614,7 @@ LIST/PREC=7 rvtempzax - tempz
  48.5S / 2:  0.0000000  0.0000000
  49.5S / 1:  0.0000000  0.0000000
 SHOW GRID rvtempzax
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -82599,7 +82807,7 @@ LIST/PREC=7 rvtempzaxave - tempz
  48.5S / 2:  0.00000000  0.00000000
  49.5S / 1:  0.00000000  0.00000000
 SHOW GRID/z rvtempzaxave
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -82666,7 +82874,7 @@ list temp[gz(density)=5:65:2.5]
  15   /  5:   2.50   2.50   ....   2.50   ....
  17.5 /  6:   3.25   3.25   ....   3.25   ....
  20   /  7:   4.00   ....   ....   4.00   ....
- 22.5 /  8:   5.25   ....   7.13   5.25   ....
+ 22.5 /  8:   5.25   ....   7.12   5.25   ....
  25   /  9:   6.50   ....   7.75   6.50   ....
  27.5 / 10:   7.75   ....   8.38   7.75   ....
  30   / 11:   9.00   ....   9.00   ....   9.00
@@ -82737,7 +82945,7 @@ list btemp[gz(bdensity)=5:65:2.5]
  15   /  5:   2.50   2.50   ....   2.50   ....
  17.5 /  6:   3.25   3.25   ....   3.25   ....
  20   /  7:   4.00   ....   ....   4.00   ....
- 22.5 /  8:   5.25   ....   7.13   5.25   ....
+ 22.5 /  8:   5.25   ....   7.12   5.25   ....
  25   /  9:   6.50   ....   7.75   6.50   ....
  27.5 / 10:   7.75   ....   8.38   7.75   ....
  30   / 11:   9.00   ....   9.00   ....   9.00
@@ -82902,7 +83110,7 @@ list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -82929,7 +83137,7 @@ list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -82956,7 +83164,7 @@ list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -82983,7 +83191,7 @@ list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83217,7 +83425,7 @@ list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83244,7 +83452,7 @@ list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83271,7 +83479,7 @@ list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83298,7 +83506,7 @@ list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83518,7 +83726,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83543,7 +83751,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83568,7 +83776,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83593,7 +83801,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83787,7 +83995,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83812,7 +84020,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83837,7 +84045,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83862,7 +84070,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84056,7 +84264,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84081,7 +84289,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84106,7 +84314,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84131,7 +84339,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84325,7 +84533,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84350,7 +84558,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84375,7 +84583,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84400,7 +84608,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84594,7 +84802,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84619,7 +84827,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84644,7 +84852,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84669,7 +84877,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -85772,20 +85980,20 @@ GO err696_time_overlay
 def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=noleap tax_nlp
 def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=julian tax_jul
 sp date
-Tue Apr 18 17:04:04 PDT 2017
+WKD MON DD HH:MM:SS ZZZ YYYY
 set view upper
 plot t[gt=tax_nlp]
 plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
 sp date
-Tue Apr 18 17:04:04 PDT 2017
+WKD MON DD HH:MM:SS ZZZ YYYY
  
 sp date
-Tue Apr 18 17:04:04 PDT 2017
+WKD MON DD HH:MM:SS ZZZ YYYY
 set view lower
 plot t[gt=tax_jul]
 plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
 sp date
-Tue Apr 18 17:04:04 PDT 2017
+WKD MON DD HH:MM:SS ZZZ YYYY
  
 GO bn_reset
 cancel mode verify
@@ -85843,7 +86051,7 @@ variables:
 		var:long_name = "0*TT + X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -85999,7 +86207,7 @@ define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
  
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
@@ -86745,7 +86953,7 @@ variables:
 		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89010,10 +89218,10 @@ save/clobber/file="tmp/test3.nc" i[i=1:3] + 3
 ! generate absolute path
 let dir = SPAWN("pwd")
 define sym use_abs_path = `DIR+"/tmp/test1.nc"`
- !-> define sym use_abs_path = /home/flat/ksmith/ferret_dev/bench/tmp/test1.nc
+ !-> define sym use_abs_path = ....../bench/tmp/test1.nc
 say ($use_abs_path)
- !-> MESSAGE/CONTINUE /home/flat/ksmith/ferret_dev/bench/tmp/test1.nc
-/home/flat/ksmith/ferret_dev/bench/tmp/test1.nc
+ !-> MESSAGE/CONTINUE ....../bench/tmp/test1.nc
+....../bench/tmp/test1.nc
  
 use tmp/test1.nc
 show data/brief
@@ -89040,17 +89248,17 @@ show data/brief
 canc data/all
  
 use "($use_abs_path)"
- !-> SET DAT/FORM=CDF "/home/flat/ksmith/ferret_dev/bench/tmp/test1.nc"
+ !-> SET DAT/FORM=CDF "....../bench/tmp/test1.nc"
 show data/brief
      currently SET data sets:
-    1> /home/flat/ksmith/ferret_dev/bench/tmp/test1.nc  (default)
+    1> ....../bench/tmp/test1.nc  (default)
 canc data/all
  
 use ($use_abs_path)
- !-> SET DAT/FORM=CDF /home/flat/ksmith/ferret_dev/bench/tmp/test1.nc
+ !-> SET DAT/FORM=CDF ....../bench/tmp/test1.nc
 show data/brief
      currently SET data sets:
-    1> /home/flat/ksmith/ferret_dev/bench/tmp/test1.nc  (default)
+    1> ....../bench/tmp/test1.nc  (default)
 canc data/all
  
 use tmp/test1.nc,tmp/test2.nc,tmp/test3.nc
@@ -89116,10 +89324,10 @@ spawn echo 'say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $
 ! generate absolute path
 let dir = SPAWN("pwd")
 define sym abs_path = `DIR+"/tmp/testMe.jnl"`
- !-> define sym abs_path = /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl
+ !-> define sym abs_path = ....../bench/tmp/testMe.jnl
 say ($abs_path)
- !-> MESSAGE/CONTINUE /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl
-/home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl
+ !-> MESSAGE/CONTINUE ....../bench/tmp/testMe.jnl
+....../bench/tmp/testMe.jnl
  
 go tmp/testMe.jnl
 say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
@@ -89132,13 +89340,13 @@ say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"
 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
  
 go ($abs_path)
- !-> go /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl
+ !-> go ....../bench/tmp/testMe.jnl
 say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
  !-> MESSAGE/CONTINUE 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
  
 go "($abs_path)"
- !-> go "/home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl"
+ !-> go "....../bench/tmp/testMe.jnl"
 say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
  !-> MESSAGE/CONTINUE 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
@@ -89154,13 +89362,13 @@ say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"
 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
  
 go ($abs_path) 5 hello "bye" "/quoted_path" /unquoted_path
- !-> go /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go ....../bench/tmp/testMe.jnl 5 hello "bye" "/quoted_path" /unquoted_path
 say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
  !-> MESSAGE/CONTINUE 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
  
 go "($abs_path)" 5 hello "bye" "/quoted_path" /unquoted_path
- !-> go "/home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl" 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go "....../bench/tmp/testMe.jnl" 5 hello "bye" "/quoted_path" /unquoted_path
 say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
  !-> MESSAGE/CONTINUE 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
@@ -89452,19 +89660,19 @@ show grid var
 ! dynamic grid
 let var = sst[y=-10:10:.1,l=1,x=160e]
 show grid var
-    GRID (G002)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX005)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX###)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  
 ! striding
 show grid sst[i=1:180:3,j=1:90:2]
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX006)   LONGITUDE           60 r   21E                  15E(375)            60 pts
- (AX007)   LATITUDE            45 r   89S                  87N                 45 pts
+ (AX###)   LONGITUDE           60 r   21E                  15E(375)            60 pts
+ (AX###)   LATITUDE            45 r   89S                  87N                 45 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  
@@ -89474,7 +89682,7 @@ use coads_vwnd
 define axis/t=1-jan-1980:31-dec-1982:1/units=days dax
 let vwnd_days = vwnd[gt=dax,t=1-jun-1982:15-jul-1982]
 sh grid vwnd_days
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -89483,7 +89691,7 @@ sh grid vwnd_days
  
 let vwnd_clim = vwnd[gt=month_irreg at mod]
 sh grid vwnd_clim[L=4:9]
-    GRID (G005)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -89539,7 +89747,7 @@ use levitus_3d_subset
 let depth =  Z[G=TEMP]+ 0*TEMP[K=1]
 let depth_rev = zreverse(depth)
 show grid depth_rev
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -89551,28 +89759,28 @@ let tpts = t[gt=dayt]
 LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
  
 show grid ffta(sample_function)
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ (AX###)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
  
 show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- (AX001)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
+ (AX###)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
  
 show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
-    GRID (G005)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                4 pts
- (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ (AX###)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
  
 can dat/all
  
@@ -89585,18 +89793,18 @@ LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
 let  TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
  
 sh grid tempz
-    GRID (G002)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
- (AX002)   Z                    5 r   100                  500                 full
+ (AX###)   Z                    5 r   100                  500                 full
  normal    T
 sh grid tempz[z=100:400]
-    GRID (G002)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
- (AX002)   Z                    5 r   100                  500                 4 pts
+ (AX###)   Z                    5 r   100                  500                 4 pts
  normal    T
  
 ! and with a grid-changing function thrown in
@@ -89611,7 +89819,7 @@ LET rvtemp  = rvtemp0[gz=temp at asn]
 LET rvdepth0 = ZREVERSE(depth)
 LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
 show grid rvtempzax
-    GRID (G002)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -89622,7 +89830,7 @@ show grid rvtempzax
  
 LET rvtempzax = rvtemp[gz(rvdepth)=zax]
 show grid rvtempzax[z=100:300]
-    GRID (G002)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -89776,22 +89984,22 @@ show data/attr my_fmrc
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
   
- FCST                  FLOAT     long_name       CHAR        18   T       FIELD + FCST_ERROR
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        18   T       FIELD + FCST_ERROR
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        20   T       RUN TF_TIMES YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
   
- TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+ TF_TIMES              DOUBLE    long_name       CHAR        25   T       Forecast time step matrix
                                  units           CHAR        31   T       days since 01-JAN-1900 00:00:00
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  _CoordinateAxisType
                                                  CHAR        4    T       Time
                                  calendar        CHAR        9    T       GREGORIAN
   
- FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        25   T       TF_CAL_F TF_TIMES YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
@@ -90039,17 +90247,17 @@ LIST tf_times
       ... listing every   2th point
                       15.2    76     136.8   197.5   258.3   319.1   379.9   440.7   501.5   562.2   623     683.8  
                        1       3       5       7       9      11      13      15      17      19      21      23
- 01-JAN-1950 /  1:  18278.  18337.  18398.  18459.  18520.  18581.  18643.  18702.  18763.  18824.  18885.  18946.
- 01-APR-1950 /  2:  18367.  18428.  18490.  18551.  18612.  18672.  18732.  18793.  18855.  18916.  18977.  19038.
- 01-JUL-1950 /  3:  18459.  18520.  18581.  18643.  18702.  18763.  18824.  18885.  18946.  19008.  19068.  19129.
- 01-OCT-1950 /  4:  18551.  18612.  18672.  18732.  18793.  18855.  18916.  18977.  19038.  19098.  19159.  19221.
- 01-JAN-1951 /  5:  18643.  18702.  18763.  18824.  18885.  18946.  19008.  19068.  19129.  19190.  19251.  19312.
- 01-APR-1951 /  6:  18732.  18793.  18855.  18916.  18977.  19038.  19098.  19159.  19221.  19282.  19343.  19403.
- 01-JUL-1951 /  7:  18824.  18885.  18946.  19008.  19068.  19129.  19190.  19251.  19312.  19374.  19433.  19494.
- 01-OCT-1951 /  8:  18916.  18977.  19038.  19098.  19159.  19221.  19282.  19343.  19403.  19463.  19524.  19586.
- 01-JAN-1952 /  9:  19008.  19068.  19129.  19190.  19251.  19312.  19374.  19433.  19494.  19555.  19616.  19677.
- 01-APR-1952 / 10:  19098.  19159.  19221.  19282.  19343.  19403.  19463.  19524.  19586.  19647.  19708.  19768.
- 01-JUL-1952 / 11:  19190.  19251.  19312.  19374.  19433.  19494.  19555.  19616.  19677.  19739.  19798.  19859.
+ 01-JAN-1950 /  1:  18278.  18336.  18398.  18458.  18520.  18581.  18642.  18702.  18762.  18824.  18885.  18946.
+ 01-APR-1950 /  2:  18367.  18428.  18490.  18550.  18612.  18672.  18732.  18793.  18854.  18916.  18976.  19038.
+ 01-JUL-1950 /  3:  18458.  18520.  18581.  18642.  18702.  18762.  18824.  18885.  18946.  19008.  19068.  19128.
+ 01-OCT-1950 /  4:  18550.  18612.  18672.  18732.  18793.  18854.  18916.  18976.  19038.  19098.  19159.  19220.
+ 01-JAN-1951 /  5:  18642.  18702.  18762.  18824.  18885.  18946.  19008.  19068.  19128.  19190.  19251.  19312.
+ 01-APR-1951 /  6:  18732.  18793.  18854.  18916.  18976.  19038.  19098.  19159.  19220.  19282.  19342.  19403.
+ 01-JUL-1951 /  7:  18824.  18885.  18946.  19008.  19068.  19128.  19190.  19251.  19312.  19374.  19432.  19494.
+ 01-OCT-1951 /  8:  18916.  18976.  19038.  19098.  19159.  19220.  19282.  19342.  19403.  19463.  19524.  19586.
+ 01-JAN-1952 /  9:  19008.  19068.  19128.  19190.  19251.  19312.  19374.  19432.  19494.  19554.  19616.  19677.
+ 01-APR-1952 / 10:  19098.  19159.  19220.  19282.  19342.  19403.  19463.  19524.  19586.  19646.  19708.  19768.
+ 01-JUL-1952 / 11:  19190.  19251.  19312.  19374.  19432.  19494.  19554.  19616.  19677.  19738.  19798.  19858.
  
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
@@ -90972,6 +91180,7 @@ set mode/last ignore
 ! 2/2016 *sh*
 ! 3/2016 - modified to test single point axis aggregations on Z axis
 ! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
+! *acm*7/2017 0=success for SPAWN_STATUS
  
 ! to avoid re-creating the test files include argument "0" as in
 !  yes?  GO bn_aggregate_tef 0
@@ -91405,17 +91614,17 @@ SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
   
  .                               aggregate name  CHAR        6    F       te_f11
   
- FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        13   T       some variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  im_everywhere   CHAR        13   F       so promote me
                                  long_name_mod   CHAR        7    F       L=31:42
   
- FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  long_name_mod   CHAR        7    F       L=31:42
   
- REALIZATION           FLOAT     long_name       CHAR        1    T       1
-                                 missing_value   FLOAT       1    T       -1.E+34
+ REALIZATION           DOUBLE    long_name       CHAR        1    T       1
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 ! define tef aggregation
@@ -91538,7 +91747,7 @@ SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (XAX)                  DOUBLE    units           CHAR        12   T       degrees_east
@@ -91593,13 +91802,13 @@ SHOW DATA/ATT te_f04_1v  ! note atts im_everwhere vs im_not_everwhere
   
  .                               aggregate name  CHAR        9    F       te_f04_1v
   
- FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        13   T       some variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  im_everywhere   CHAR        13   F       so promote me
                                  long_name_mod   CHAR        7    F       L=10:21
   
- REALIZATION           FLOAT     long_name       CHAR        1    T       1
-                                 missing_value   FLOAT       1    T       -1.E+34
+ REALIZATION           DOUBLE    long_name       CHAR        1    T       1
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 ! define fcst_2 as a LET/D variable and then do same calc
@@ -91697,7 +91906,7 @@ list/x=150E/y=15n/L=10 fcst_2
  01-JAN-1950 /  1:    227.    240.    252.    265.    277.
  01-APR-1950 /  2:    227.    240.    252.    265.    277.
  01-JUL-1950 /  3:    227.    240.    252.    265.    277.
- 01-OCT-1950 /  4:    227.    240.  19989.    265.    277.
+ 01-OCT-1950 /  4:    227.    240.  19988.    265.    277.
  01-JAN-1951 /  5:    227.    240.    252.    265.    277.
  01-APR-1951 /  6:    227.    240.    252.    265.    277.
  01-JUL-1951 /  7:    227.    240.    252.    265.    277.
@@ -91820,23 +92029,23 @@ SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
   
  .                               aggregate name  CHAR        3    F       tfe
   
- FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        13   T       some variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        25   T       RUN TF_TIMES ZAX1 YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
                                  im_everywhere   CHAR        13   F       so promote me
   
- TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+ TF_TIMES              DOUBLE    long_name       CHAR        25   T       Forecast time step matrix
                                  units           CHAR        31   T       days since 01-JAN-1900 00:00:00
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  _CoordinateAxisType
                                                  CHAR        4    T       Time
                                  calendar        CHAR        9    T       GREGORIAN
   
- FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        31   T       TF_CAL_F1 TF_TIMES ZAX1 YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
@@ -92022,7 +92231,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7.1  18-Apr-17 
+ ..history = FERRET V7.2  DD-MON-YY 
  ..Conventions = CF-1.6 
  ..dt_internal = 15
 sh att elev
@@ -92043,7 +92252,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7.1  18-Apr-17 
+ ..history = FERRET V7.2  DD-MON-YY 
  ..Conventions = CF-1.6 
 sh att elev
      attributes for dataset: ./a.nc
@@ -92063,11 +92272,11 @@ use levitus_climatology
 load/DAT=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G009)
-    GRID (G009)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX018)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX###)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  
@@ -92164,9 +92373,9 @@ flow/DAT=2/den=3/L=3 taux,tauy
 ! bn_speedtest.jnl
 ! issue large numbers of commands, timing with clock time
 can mode verify
-10K LET commands LET a = 0 takes  0.977  seconds
-Second 10K LET commands LET a = 0 takes  2.196  seconds
-5K LOAD with transform takes  3.506  seconds
+10K LET commands LET a = 0 takes [0-3] seconds
+Second 10K LET commands LET a = 0 takes [0-5] seconds
+5K LOAD with transform takes [0-9] seconds
 *** Running ferret script: bn_show_noupcase.jnl
 ! bn_show_noupcase.jnl
 ! 1/2016 ticket 1796
@@ -92188,7 +92397,7 @@ show var
  >>> Definitions that replace any file variable of same name:
      MyUpperLowerCaseVar = X[X=1:10] + T[GT=TDAY]
 show grid MyUpperLowerCaseVar
-    GRID (G001)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  ABSTRACT  X             99999999 r   1                    1.E+08              10 pts
  normal    Y
@@ -93299,7 +93508,7 @@ show dat/att 1
   
  ------------------------------
  myvar[D=coads_climatology]      long_name       CHAR        11   T       coads myvar
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 show att myvar
@@ -93361,7 +93570,7 @@ show dat/att 2
   
  ------------------------------
  myvar[D=levitus_climatology]    long_name       CHAR        13   T       Levitus myvar
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 show att myvar
      attributes for user-defined variables
@@ -94176,7 +94385,7 @@ sho command/brief v
  
 ! All the commands, no subcommands, no qualifiers
 SHOW COMMAND/BRIEF
- Commands in Program FERRET  version7.1:
+ Commands in Program FERRET  version7.2:
  SET
  SHOW
  CANCEL
@@ -95135,20 +95344,9 @@ list/nohead strindex(..title, "file")
  
  
 ! Bug 2477 plot axes are not fully drawn, some /VS plots
-go bn_reset
-cancel mode verify
-ooooooooooooooooooooooooooooooooooooooooooo
-go err700_vs_plot_axes
-! err700_vs_plot_axes.jnl
-! See ticket 2477, in some cases the plot axes are not fully drawn
-! 11/2016 ACM
- 
- 
-USE err700_vs_data.nc
- 
-! only with PLOT/VS plots, only with SYMBOLS not PLOT/VS/LINE
-PLOT/VS/THICK/COLOR=red/SIZ=0.2 lon,lat
-FRAME/FILE=bn_axis_vs.gif
+! move this to bn_gif.jnl
+! go bn_reset
+! go err700_vs_plot_axes
  
 ! Bug 2483. Fixing axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
 go bn_reset
@@ -95614,15 +95812,15 @@ save/clob/file=a.nc c
  dealloc  dynamic grid GAY1            XAX1_20   NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid C        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:     11     31  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    C        C:  6 dset:   0 I:     11     31  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
- pseudo  X        M:  8 dset:   0 I:     11     31  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ pseudo  X        M:  7 dset:   0 I:     11     31  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
  -DELETE C        M:  5 dset:   0 I:     11     30  J: -999 -999  K: -999 -999  L:   -999   -999
  
 set mode /last diag
@@ -95694,7 +95892,7 @@ use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Ha
 DEFINE DATA/AGGREGATE/F testdata = 1,2,3
 ! F axis should be  31-DEC-2016 to 02-JAN-2017
 SHOW GRID zeta
-    GRID (G013)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  LON       LONGITUDE          295mr   163.83W(-163.83)     152.52W(-152.52)    full
  LAT       LATITUDE           195 r   17.018N              23.982N             full
@@ -95877,7 +96075,7 @@ variables:
 		VAR:long_name = "X[GX=XLON]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 go bn_reset
@@ -95936,7 +96134,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -95983,7 +96181,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -96054,7 +96252,7 @@ DEFINE DATA/AGGREGATE/F testdata = 1,2,3,4
 ! using the values of quirks has a sinusoidal error that get worse with greater lead time
 !
 SHOW GRID actual
-    GRID (G019)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAX1      LONGITUDE            7mr   140W                 110W                full
  YAX       LATITUDE             4 r   45N                  60N                 full
@@ -96085,7 +96283,7 @@ FRAME /FILE=forecast_actual.gif
 !
 LET /TITLE="actual (diag view)" diagview = actual[gt(tf_times)=tf_cal_t]
 SHOW GRID diagview
-    GRID (G019)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAX1      LONGITUDE            7mr   140W                 110W                full
  YAX       LATITUDE             4 r   45N                  60N                 full
@@ -96115,7 +96313,7 @@ FRAME /FILE=forecast_diagview.gif
 !
 LET /TITLE="actual (lead view)" leadview = actual[gt(tf_times)=tf_cal_t,gf(tf_times)=tf_lag_f]
 SHOW GRID leadview
-    GRID (G008)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAX1      LONGITUDE            7mr   140W                 110W                full
  YAX       LATITUDE             4 r   45N                  60N                 full
@@ -96559,10 +96757,10 @@ sh dat/att
  .                               aggregate name  CHAR        2    F       uu
   
  SST                   FLOAT     long_name       CHAR        3    T       sst
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  TEMP                  FLOAT     long_name       CHAR        14   T       temp in uagg_5
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 can dat/all
  
@@ -96888,16 +97086,16 @@ SHOW DATA/ATT tue_f03   ! notice the promotion of fcst.im_everywhere
  .                               aggregate name  CHAR        7    F       tue_f03
   
  FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  REALIZATION           FLOAT     long_name       CHAR        1    T       1
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  FCST_3                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 ! define tuef aggregation
@@ -96977,17 +97175,17 @@ SHOW DATA/brief/files
 16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_tu3.nc
  
    13> t_f_u01_e1     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u01_e1
- 
+          Member datasets:
+      13.1: t_f01_e1
+      13.2: t_f01_e1_3
    14> t_f_u01_e2     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u01_e2
- 
+          Member datasets:
+      14.1: t_f01_e2
+      14.2: t_f01_e2_3
    16> t_f_u02_e2     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u02_e2
- 
+          Member datasets:
+      16.1: t_f02_e2
+      16.2: t_f02_e2_3
    22> tuef  (default)  Forecast aggregation
           Member datasets:
       22.1: tue_f01
@@ -97037,7 +97235,7 @@ show data tuef
        (L=1:12)
  
 sh grid fcst
-    GRID (G025)  Forecast Aggregation Grid
+    GRID (G###)  Forecast Aggregation Grid
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
  YAX       LATITUDE            11 r   10N                  20N                 full
@@ -97046,7 +97244,7 @@ sh grid fcst
  ENSEMBLE  E (realization)      2 r   1                    2                   full
  TF_CAL_F  FORECAST             3 i   01-JAN-1950 00:00    01-JUL-1950 00:00   full
 sh grid fcst_3
-    GRID (G025)  Forecast Aggregation Grid
+    GRID (G###)  Forecast Aggregation Grid
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
  YAX       LATITUDE            11 r   10N                  20N                 full
@@ -97114,8 +97312,8 @@ sh dat/att
   
  .                               history         CHAR        7    F       abc.dat
   
- abc                   FLOAT     long_name       CHAR        3    T       abc
-                                 missing_value   FLOAT       1    T       -1.E+34
+ abc                   DOUBLE    long_name       CHAR        3    T       abc
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 save/clobber/file=a.nc abc
 sp ncdump -h a.nc
@@ -97123,17 +97321,17 @@ netcdf a {
 dimensions:
 	AX002 = 5 ;
 variables:
-	double AX002(AX002) ;
+	double AX002(AX###) ;
 		AX002:point_spacing = "even" ;
 		AX002:axis = "X" ;
-	float abc(AX002) ;
-		abc:missing_value = -1.e+34f ;
-		abc:_FillValue = -1.e+34f ;
+	double abc(AX###) ;
+		abc:missing_value = -1.e+34 ;
+		abc:_FillValue = -1.e+34 ;
 		abc:long_name = "abc" ;
 		abc:history = "From abc.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -97164,8 +97362,8 @@ sh dat/att
   
  .                               history         CHAR        7    F       abc.dat
   
- abc                   FLOAT     long_name       CHAR        3    T       abc
-                                 missing_value   FLOAT       1    T       -1.E+34
+ abc                   DOUBLE    long_name       CHAR        3    T       abc
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
     2> ./bn_delimited_read_1.dat  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
@@ -97174,21 +97372,21 @@ sh dat/att
  .                               history         CHAR        23   F       bn_delimited_read_1.dat
   
  lab                   CHAR      long_name       CHAR        3    T       lab
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  nothing               CHAR      long_name       CHAR        7    T       nothing
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- var                   FLOAT     long_name       CHAR        3    T       var
-                                 missing_value   FLOAT       1    T       -1.E+34
+ var                   DOUBLE    long_name       CHAR        3    T       var
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- latitude              FLOAT     long_name       CHAR        8    T       latitude
+ latitude              DOUBLE    long_name       CHAR        8    T       latitude
                                  units           CHAR        13   T       degrees_north
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- longitude             FLOAT     long_name       CHAR        9    T       longitude
+ longitude             DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 sav/file=a.nc/clobber var,longitude,latitude
 sp ncdump -h a.nc
@@ -97196,31 +97394,31 @@ netcdf a {
 dimensions:
 	AX003 = 6 ;
 variables:
-	double AX003(AX003) ;
+	double AX003(AX###) ;
 		AX003:point_spacing = "even" ;
 		AX003:axis = "X" ;
-	float var(AX003) ;
-		var:missing_value = -1.e+34f ;
-		var:_FillValue = -1.e+34f ;
+	double var(AX###) ;
+		var:missing_value = -1.e+34 ;
+		var:_FillValue = -1.e+34 ;
 		var:long_name = "var" ;
 		var:history = "From bn_delimited_read_1.dat" ;
-	float longitude(AX003) ;
-		longitude:missing_value = -1.e+34f ;
-		longitude:_FillValue = -1.e+34f ;
+	double longitude(AX###) ;
+		longitude:missing_value = -1.e+34 ;
+		longitude:_FillValue = -1.e+34 ;
 		longitude:long_name = "longitude" ;
 		longitude:units = "degrees_east" ;
 		longitude:long_name_mod = "Longitude" ;
 		longitude:history = "From bn_delimited_read_1.dat" ;
-	float latitude(AX003) ;
-		latitude:missing_value = -1.e+34f ;
-		latitude:_FillValue = -1.e+34f ;
+	double latitude(AX###) ;
+		latitude:missing_value = -1.e+34 ;
+		latitude:_FillValue = -1.e+34 ;
 		latitude:long_name = "latitude" ;
 		latitude:units = "degrees_north" ;
 		latitude:long_name_mod = "Latitude" ;
 		latitude:history = "From bn_delimited_read_1.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -97463,9 +97661,11 @@ show data/members
  U        U                                1:5       1:4       ...       1:10
  V        V                                1:5       1:4       ...       1:10
  
-          time-dependent data files:
-31-DEC-2009 23:59 -> 31-DEC-2009 23:59    bn_agg_member_syntax.jnl
- 
+          Member datasets:
+      5.1: tmp/uagg_1.nc
+      5.2: tmp/uagg_2.nc
+      5.3: tmp/uagg_3.nc
+      5.4: tmp/uagg_4.nc
 show data 5.2
      currently SET data sets:
     2> tmp/uagg_2.nc
@@ -97907,7 +98107,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -97976,7 +98176,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -98047,7 +98247,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+ .                               history         CHAR        22   T       FERRET V7.2  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -98456,7 +98656,7 @@ variables:
 		VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98487,88 +98687,9 @@ show grid vart
  TAX1      TIME                 7 i   09-NOV-2015 02:24    13-NOV-2015 02:24   full
  
  
-GO bn_reset
-cancel mode verify
-ooooooooooooooooooooooooooooooooooooooooooo
-GO err71_plotvs_mode_label
-! err71_plotVS_mode_label.jnl
-!  *acm*3/17/17 Ticket 2517:
-! MODE LONG_LABEL, MODE LATIT_LABEL need to apply
-! to PLOT/VS plots.
- 
-can mode logo
- 
-set mode long_lab
-set mode latit_lab
- 
-let/title="|Roll|"/units="degree" abscissa_roll = {0, 20}
-let/title="Wind Speed"/units="kn" ordinate_spd  = {0, 0}
- 
-! labeled lon/lat axes. Units of "degrees" is taken to be degrees
-! east or north depending on which plot axis it is drawn on.
- 
-set view ul
-plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
-set view ur
-plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
- 
-! These modes turn off lon/lat axis labeling
- 
-cancel mode long_lab
-cancel mode latit_lab
- 
-set view ll
-plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
-set view lr
-plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
- 
-! Explicit units units of degrees_east and degrees_north:
-! degrees_east draws longitude labeling on whichever plot axis
-! the associated variable is drawn, and likewise for degrees_north.
-! Setting or cancelling the label modes applies to the variable
-! units not the plot-axis direction.
- 
-cancel view
-set mode long_lab
-set mode latit_lab
- 
-let/title="East"/units="degrees_east" lon = {10,20,30}
-let/title="North"/units="degrees_north" lat = {-10,0,10}
- 
-! longitude axis on the horizontal, latitude axis on the vertical
- 
-set view ul; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit TRUE"
- 
-! latitude axis on the horizontal, longitude axis on the vertical
- 
-set view ur; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long vertical  latit horizontal"
- 
-! longitude axis on the horizontal, latitude axis on the vertical
-! but with latitude labeling turned off
- 
-set mode long_lab
-cancel mode latit_lab
-set view ll; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit FALSE"
- 
-! latitude axis on the horizontal, longitude axis on the vertical
-! but with longitude labeling turned off
- 
-cancel mode long_lab
-set mode latit_lab
-set view lr; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long FALSE  latit TRUE"
- 
-frame/file=lon_lat_label_controls.gif
- 
- 
-! Restore default settings
-set mode long_lab
-set mode latit_lab
- 
-set mode/last logo
+! move this to bn_gif.jnl
+! GO bn_reset
+! GO err71_plotvs_mode_label
  
 GO bn_reset
 cancel mode verify
@@ -98699,7 +98820,7 @@ list a[i=2]
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    A        C:  6 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
- attrib_val attr     M:  2 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ attrib_val attr     M:  3 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SST[D=coads_climatology].DIMNAMES
              FILENAME : coads_climatology.cdf
              X        : 2
@@ -98709,9 +98830,9 @@ list a[i=2]
 GO bn_reset
 cancel mode verify
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
- -DELETE A        M:  6 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:  2 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
- -DELETE attr     M:  2 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE attr     M:  3 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  canceling dset ./coads_climatology.cdf
 ooooooooooooooooooooooooooooooooooooooooooo
 GO err71_user_var_attrib
@@ -98741,46 +98862,733 @@ use write_int_att.nc
 cancel mode upcase
 save/file=a.nc/clobber mhchla
  
+! move this to bn_gif.jnl
+! GO bn_reset
+! GO err71_vs_constant
+ 
+! run this from bn_gif.jnl
+! GO bn_reset
+! GO err71_vs_lon_over
+ 
+ 
 GO bn_reset
 cancel mode verify
 ooooooooooooooooooooooooooooooooooooooooooo
-GO err71_vs_constant
-! err71_vs_constant.jnl
-! See ticket 2318, defining plot axes when data is constant
-! 4/2017 acm
+GO err71_point_average
+! err71_point_average.jnl
+! Ticket 2538 6/2017
+! Average over a point removes dependence on that dimension.
+! previously returned missing-data
  
-! The axis ranges had been set as val-1, val+1 which
-! worked poorly for large or small data values
+let a = x[x=1:5] + y[y=1:3]
+list a
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 by 3 points (X-Y)
+             1      2      3      4      5    
+             1      2      3      4      5
+ 1   / 1:  2.000  3.000  4.000  5.000  6.000
+ 2   / 2:  3.000  4.000  5.000  6.000  7.000
+ 3   / 3:  4.000  5.000  6.000  7.000  8.000
  
+list a[y=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 points (X)
+             Y        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+ 4   / 4:  6.000
+ 5   / 5:  7.000
+list a[x=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 3 points (Y)
+             X        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+list a[y=2 at ave,x=4 at ave]  ! all prev. versions listed these as missing
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             X        : 4 (XY ave)
+             Y        : 2 (XY ave)
+          6.000
  
+let a = z[z=1:5] + t[t=1:3]
+list a[z=2 at ave]
+             VARIABLE : Z[Z=1:5] + T[T=1:3]
+             SUBSET   : 3 points (T)
+             Z        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+list a[t=2 at ave]
+             VARIABLE : Z[Z=1:5] + T[T=1:3]
+             SUBSET   : 5 points (Z)
+             T        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+ 4   / 4:  6.000
+ 5   / 5:  7.000
  
+list a[t=2 at ave,z=4 at ave]
+             VARIABLE : Z[Z=1:5] + T[T=1:3]
+             Z        : 4 (ZT ave)
+             T        : 2 (ZT ave)
+          6.000
  
-def view/xlim=   0,.333/ylim=0,.5 ll6   ! ok
-def view/xlim=   0,.333/ylim=.5,1 ul6   ! long tic labels
-def view/xlim=.333,.666/ylim=0,.5 lm6   ! long tic labels, logo corrupted
-def view/xlim=.333,.666/ylim=.5,1 um6   ! plot positioning and labels are corrupted
-def view/xlim=.666,   1/ylim=0,.5 lr6   ! no plot at all
-def view/xlim=.666,   1/ylim=.5,1 ur6   ! no vertical tic labels
+let a = _e[e=1:5] + _f[f=1:3]
+list a[f=2 at ave]
+             VARIABLE : _E[E=1:5] + _F[F=1:3]
+             SUBSET   : 5 points (E)
+             F        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+ 4   / 4:  6.000
+ 5   / 5:  7.000
+list a[e=2 at ave]
+             VARIABLE : _E[E=1:5] + _F[F=1:3]
+             SUBSET   : 3 points (F)
+             E        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+list a[f=2 at ave,e=4 at ave]
+             VARIABLE : _E[E=1:5] + _F[F=1:3]
+             E        : 4 ( ave)
+             F        : 2 ( ave)
+          6.000
  
+! Check result if the missing-flag is zero
  
-set view ul6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e4*{1,1}
-set view um6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e5*{1,1}
-set view ur6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e6*{1,1}
-set view ll6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e7*{1,1}
-set view lm6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e8*{1,1}
-set view lr6; plot/vs/color/thick/line/sym/siz=0.2 {1,2}, 1e-2*{1,1}
+let/bad=0 a = x[x=1:5] + y[y=1:3]
+list a
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 by 3 points (X-Y)
+             1      2      3      4      5    
+             1      2      3      4      5
+ 1   / 1:  2.000  3.000  4.000  5.000  6.000
+ 2   / 2:  3.000  4.000  5.000  6.000  7.000
+ 3   / 3:  4.000  5.000  6.000  7.000  8.000
  
-frame/file=bn_vs_const_value.gif
+list a[y=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 points (X)
+             Y        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+ 4   / 4:  6.000
+ 5   / 5:  7.000
+list a[x=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 3 points (Y)
+             X        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+list a[y=2 at ave,x=4 at ave]  ! all prev. versions listed these as missing
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             X        : 4 (XY ave)
+             Y        : 2 (XY ave)
+          6.000
  
-! With constant data value as the first argument
  
-can view
-set view ul6; plot/vs/color/thick/line/sym/siz=0.2  1e4*{1,1}, {1,2}
-set view um6; plot/vs/color/thick/line/sym/siz=0.2  1e5*{1,1}, {1,2}
-set view ur6; plot/vs/color/thick/line/sym/siz=0.2  1e6*{1,1}, {1,2}
-set view ll6; plot/vs/color/thick/line/sym/siz=0.2  1e7*{1,1}, {1,2}
-set view lm6; plot/vs/color/thick/line/sym/siz=0.2  1e8*{1,1}, {1,2}
-set view lr6; plot/vs/color/thick/line/sym/siz=0.2 1e-2*{1,1}, {1,2}
+! multiple directions including e,f
+ 
+use 6dfile.nc
+ 
+! average, result is on xz
+let uave = u[i=1:3,j=50 at ave,l=1 at ave,m=3 at ave,n=2 at ave]
+list uave
+             VARIABLE : U[I=1:3,J=50 at AVE,L=1 at AVE,M=3 at AVE,N=2 at AVE]
+             FILENAME : 6dfile.nc
+             SUBSET   : 3 by 27 points (LONGITUDE-DEPTH (m))
+             LATITUDE : 6.2N to 6.5N
+             TIME     : 15-MAR-1983 09:30 to 15-MAR-1983 10:30
+             E        : 2.5 to 3.5
+             F        : 2 to 4
+                161W   160W   159W   
+                  1      2      3
+ 5       /  1:  24.15  24.10  24.52
+ 15      /  2:  41.58  41.84  42.38
+ 25      /  3:  36.76  36.95  37.39
+ 35      /  4:  34.78  34.86  35.18
+ 45      /  5:  34.36  34.46  34.70
+ 55      /  6:  30.08  30.10  30.46
+ 65      /  7:  27.89  27.81  27.94
+ 75      /  8:  25.72  25.66  25.78
+ 85      /  9:  23.77  23.69  23.76
+ 95      / 10:  21.96  21.87  21.92
+ 106.2   / 11:  20.22  20.12  20.14
+ 120     / 12:  18.45  18.35  18.34
+ 136.2   / 13:  16.96  16.85  16.82
+ 155     / 14:  15.78  15.66  15.61
+ 177.5   / 15:  14.85  14.72  14.64
+ 205     / 16:  14.11  13.97  13.85
+ 240     / 17:  13.43  13.25  13.10
+ 288.5   / 18:  12.56  12.35  12.15
+ 362.5   / 19:  11.30  11.04  10.78
+ 483.5   / 20:   9.32   8.99   8.67
+ 680     / 21:   6.68   6.33   5.99
+ 979.5   / 22:   4.31   4.04   3.78
+ 1395.5  / 23:   3.09   2.96   2.85
+ 1916    / 24:   3.05   3.07   3.08
+ 2524    / 25:   3.24   3.36   3.47
+ 3174    / 26:   3.19   3.36   3.51
+ 3824    / 27:   3.19   3.39   3.56
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	PSXU69_72 = 3 ;
+	PSZT = 27 ;
+variables:
+	double PSXU69_72(PSXU69_72) ;
+		PSXU69_72:units = "degrees_east" ;
+		PSXU69_72:point_spacing = "even" ;
+		PSXU69_72:modulo = 360. ;
+		PSXU69_72:axis = "X" ;
+		PSXU69_72:standard_name = "longitude" ;
+	double PSZT(PSZT) ;
+		PSZT:units = "meters" ;
+		PSZT:positive = "down" ;
+		PSZT:point_spacing = "uneven" ;
+		PSZT:axis = "Z" ;
+		PSZT:standard_name = "depth" ;
+	double uave(PSZT, PSXU69_72) ;
+		uave:missing_value = -1.e+34 ;
+		uave:_FillValue = -1.e+34 ;
+		uave:long_name = "U[I=1:3,J=50 at AVE,L=1 at AVE,M=3 at AVE,N=2 at AVE]" ;
+		uave:history = "From 6dfile" ;
+
+// global attributes:
+		:history = "FERRET V7.2  DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+! average, result is on yt
+let uave = u[i=3 at ave,j=50:60,l=3:6,z=40 at ave,m=3 at ave,n=2 at ave]
+list uave
+             VARIABLE : U[I=3 at AVE,J=50:60,L=3:6,Z=40 at AVE,M=3 at AVE,N=2 at AVE]
+             FILENAME : 6dfile.nc
+             SUBSET   : 11 points (LATITUDE)
+             LONGITUDE: 159.5W to 158.5W
+             DEPTH (m): 35
+             TIME     : 15-MAR-1983 12:00
+             E        : 2.5 to 3.5
+             F        : 2 to 4
+ 9.67N / 60: -21.61
+ 9.33N / 59: -15.77
+ 9N    / 58: -10.95
+ 8.67N / 57:  -4.78
+ 8.33N / 56:   0.43
+ 8N    / 55:   5.49
+ 7.67N / 54:  10.50
+ 7.33N / 53:  15.96
+ 7N    / 52:  21.89
+ 6.67N / 51:  28.23
+ 6.33N / 50:  35.20
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	PSYU15_75 = 11 ;
+	TIME = UNLIMITED ; // (1 currently)
+variables:
+	double PSYU15_75(PSYU15_75) ;
+		PSYU15_75:units = "degrees_north" ;
+		PSYU15_75:point_spacing = "uneven" ;
+		PSYU15_75:axis = "Y" ;
+		PSYU15_75:standard_name = "latitude" ;
+	double TIME(TIME) ;
+		TIME:axis = "T" ;
+		TIME:units = "hour since 1980-01-14 14:00:00" ;
+		TIME:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME:standard_name = "time" ;
+	double uave(TIME, PSYU15_75) ;
+		uave:missing_value = -1.e+34 ;
+		uave:_FillValue = -1.e+34 ;
+		uave:long_name = "U[I=3 at AVE,J=50:60,L=3:6,Z=40 at AVE,M=3 at AVE,N=2 at AVE]" ;
+		uave:history = "From 6dfile" ;
+
+// global attributes:
+		:history = "FERRET V7.2  DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+! average, result is on e-f, single time
+let uave = u[i=3 at ave,y=8 at ave,z=15 at ave,t="15-MAR-1983 11:00"]
+list uave
+             VARIABLE : U[I=3 at AVE,Y=8 at AVE,Z=15 at AVE,T="15-MAR-1983 11:00"]
+             FILENAME : 6dfile.nc
+             SUBSET   : 5 by 4 points (E-F)
+             LONGITUDE: 159.5W to 158.5W
+             LATITUDE : 8N
+             DEPTH (m): 15
+             TIME     : 15-MAR-1983 11:00
+             1      2      3      4      5    
+             1      2      3      4      5
+ 1   / 1: -2.239 -1.239 -0.239  0.761  1.761
+ 3   / 2: -2.039 -1.039 -0.039  0.961  1.961
+ 5   / 3: -1.839 -0.839  0.161  1.161  2.161
+ 7   / 4: -1.639 -0.639  0.361  1.361  2.361
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	TIME = 1 ;
+	EAXIS = 5 ;
+	FAXIS = 4 ;
+variables:
+	double TIME(TIME) ;
+		TIME:point_spacing = "uneven" ;
+		TIME:axis = "T" ;
+		TIME:units = "hour since 1980-01-14 14:00:00" ;
+		TIME:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME:standard_name = "time" ;
+	double EAXIS(EAXIS) ;
+		EAXIS:point_spacing = "even" ;
+		EAXIS:axis = "E" ;
+	double FAXIS(FAXIS) ;
+		FAXIS:point_spacing = "even" ;
+		FAXIS:axis = "F" ;
+	double uave(FAXIS, EAXIS, TIME) ;
+		uave:missing_value = -1.e+34 ;
+		uave:_FillValue = -1.e+34 ;
+		uave:long_name = "U[I=3 at AVE,Y=8 at AVE,Z=15 at AVE,T=\"15-MAR-1983 11:00\"]" ;
+		uave:history = "From 6dfile" ;
+
+// global attributes:
+		:history = "FERRET V7.2  DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_2d_ave_miss0
+! err71_2d_ave_miss0.jnl
+! Ticket 2539: data with 0 as missing flag,
+! 2D average or definite integral all-missing
+! 6/5/2017 *acm*
+ 
+use gt4d011.cdf
+let temp0 = temp
+set var/bad=0. temp0
+save/clobber/file=a.nc temp0
+can dat/all
+can var/all
+use a.nc
+ 
+! Both of these should have all valid numbers,
+! previously (in v7.1+) they were all-missing.
+list/k=1/L=1:10 temp0[x=@ave,y=@ave], temp0[x=@din,y=@din]
+             DATA SET: ./a.nc
+             TIME: 14-AUG-1982 11:00 to 14-OCT-1982 07:00
+             LONGITUDE: 140W to 122W
+             LATITUDE: 3.7S to 3.7N
+             DEPTH (m): 5
+ Column  1: TEMP0[X=@AV4,Y=@AV4] is TEMP
+ Column  2: TEMP0[X=@IN4,Y=@IN4] is TEMP
+                     TEMP0     TEMP0
+17-AUG-1982 12 /  1:  26.50  4.322E+13
+23-AUG-1982 14 /  2:  26.63  4.344E+13
+29-AUG-1982 16 /  3:  26.81  4.372E+13
+04-SEP-1982 18 /  4:  27.02  4.407E+13
+10-SEP-1982 20 /  5:  27.30  4.452E+13
+16-SEP-1982 22 /  6:  27.65  4.510E+13
+23-SEP-1982 00 /  7:  28.07  4.577E+13
+29-SEP-1982 02 /  8:  28.56  4.658E+13
+05-OCT-1982 04 /  9:  29.17  4.757E+13
+11-OCT-1982 06 / 10:  29.84  4.866E+13
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_read_delim
+! err71_read_delim.jnl
+! 6/9/2017 ACM
+! Ticket 2540, Write errors when data is read using - to skip fields
+! in a delimited read
+ 
+define axis/x=1:10:1 row_ax
+define grid/x=row_ax in_grid
+ 
+ 
+FILE/FORM=delim/skip=1/grid=in_grid\
+/var="YEAR,MONTH,LON,LAT,-,HAULJOIN,LENGTH,FREQ,-,BTTM_TEMP,SST,BTTM_DEPTH,CPUE,BIN"\
+/typ="num,num,num,num,-,num,num,num,-,num,num,num,num,num,"/delim="\,"\
+ shorttest.dat
+ 
+set var/title="year" YEAR
+set var/title="month" MONTH
+set var/title="lon"/units="degrees_E" LON
+set var/title="lat"/units="degrees_N" LAT
+set var/title="hauljoin" HAULJOIN
+set var/title="length"/units="mm" LENGTH
+set var/title="freq"/units="Number" FREQ
+set var/title="bttm_temp"/units="degrees_C" BTTM_TEMP
+set var/title="SST"/units="degrees_C" SST
+set var/title="bttm_depth"/units="m" BTTM_DEPTH
+set var/title="CPUE"/units="fish/km**2" CPUE
+set var/title="bin_size"/units="mm" BIN
+ 
+! Previously this caused netcdf library errors and exited out of Ferret
+save/file=a.nc/clobber year, month, lon, lat, hauljoin, length, freq, bttm_temp, SST, bttm_depth, CPUE, bin
+ 
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	row_ax = 10 ;
+variables:
+	double row_ax(row_ax) ;
+		row_ax:point_spacing = "even" ;
+		row_ax:axis = "X" ;
+	double YEAR(row_ax) ;
+		YEAR:missing_value = -1.e+34 ;
+		YEAR:_FillValue = -1.e+34 ;
+		YEAR:long_name = "year" ;
+		YEAR:history = "From shorttest.dat" ;
+	double MONTH(row_ax) ;
+		MONTH:missing_value = -1.e+34 ;
+		MONTH:_FillValue = -1.e+34 ;
+		MONTH:long_name = "month" ;
+		MONTH:history = "From shorttest.dat" ;
+	double LON(row_ax) ;
+		LON:missing_value = -1.e+34 ;
+		LON:_FillValue = -1.e+34 ;
+		LON:long_name = "lon" ;
+		LON:units = "degrees_E" ;
+		LON:history = "From shorttest.dat" ;
+	double LAT(row_ax) ;
+		LAT:missing_value = -1.e+34 ;
+		LAT:_FillValue = -1.e+34 ;
+		LAT:long_name = "lat" ;
+		LAT:units = "degrees_N" ;
+		LAT:history = "From shorttest.dat" ;
+	double HAULJOIN(row_ax) ;
+		HAULJOIN:missing_value = -1.e+34 ;
+		HAULJOIN:_FillValue = -1.e+34 ;
+		HAULJOIN:long_name = "hauljoin" ;
+		HAULJOIN:history = "From shorttest.dat" ;
+	double LENGTH(row_ax) ;
+		LENGTH:missing_value = -1.e+34 ;
+		LENGTH:_FillValue = -1.e+34 ;
+		LENGTH:long_name = "length" ;
+		LENGTH:units = "mm" ;
+		LENGTH:history = "From shorttest.dat" ;
+	double FREQ(row_ax) ;
+		FREQ:missing_value = -1.e+34 ;
+		FREQ:_FillValue = -1.e+34 ;
+		FREQ:long_name = "freq" ;
+		FREQ:units = "Number" ;
+		FREQ:history = "From shorttest.dat" ;
+	double BTTM_TEMP(row_ax) ;
+		BTTM_TEMP:missing_value = -1.e+34 ;
+		BTTM_TEMP:_FillValue = -1.e+34 ;
+		BTTM_TEMP:long_name = "bttm_temp" ;
+		BTTM_TEMP:units = "degrees_C" ;
+		BTTM_TEMP:history = "From shorttest.dat" ;
+	double SST(row_ax) ;
+		SST:missing_value = -1.e+34 ;
+		SST:_FillValue = -1.e+34 ;
+		SST:long_name = "SST" ;
+		SST:units = "degrees_C" ;
+		SST:history = "From shorttest.dat" ;
+	double BTTM_DEPTH(row_ax) ;
+		BTTM_DEPTH:missing_value = -1.e+34 ;
+		BTTM_DEPTH:_FillValue = -1.e+34 ;
+		BTTM_DEPTH:long_name = "bttm_depth" ;
+		BTTM_DEPTH:units = "m" ;
+		BTTM_DEPTH:history = "From shorttest.dat" ;
+	double CPUE(row_ax) ;
+		CPUE:missing_value = -1.e+34 ;
+		CPUE:_FillValue = -1.e+34 ;
+		CPUE:long_name = "CPUE" ;
+		CPUE:units = "fish/km**2" ;
+		CPUE:history = "From shorttest.dat" ;
+	double BIN(row_ax) ;
+		BIN:missing_value = -1.e+34 ;
+		BIN:_FillValue = -1.e+34 ;
+		BIN:long_name = "bin_size" ;
+		BIN:units = "mm" ;
+		BIN:history = "From shorttest.dat" ;
+
+// global attributes:
+		:history = "FERRET V7.2  DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_isready_unknown
+! err71_isready_unknown.jnl
+! ticket 2533, variable b depending on undefined variable c is
+! reported not ready, but variable a with a regridding operation is
+! mistakenly reported ready.
+ 
+use coads_climatology
+let a = b[gxy=sst[d=1]]
+let b = c
+ 
+! both should return 0
+say `b,r=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `a,r=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+ 
+! And VTREE reported no unknown variables in its tree
+! The line for C should say UNKNOWN VARIABLE
+sho var/tree a
+   in default dataset coads_climatology
+   A = B[GXY=SST[D=1]]
+     B = C
+       C ??			<== UNKNOWN VARIABLE ******
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_ppl_sho_empty
+! err71_ppl_sho_empty.jnl
+! ticket 2543, PPL SHOW pplsym is a command, but it
+! gave a Fortran runtime error if given with no argument
+! Now send these errors through the Ferret errmsg routine.
+ 
+! This is a valid sequence, pplus symbol definition
+ 
+pplus set xpos 3.2
+pplus show xpos
+ XPOS                           = 3.2
+ 
+! intentional error
+ 
+set mode ignore
+ 
+! This is a correct error message, undefined symbol
+pplus show nosymbol
+ 
+! This previously hit a runtime error, symbol name missing.
+ppl show
+ 
+! Another PPL error we might hit is an invalid command.
+! Write this error message
+PPL nonsense
+ 
+set mode/last ignore
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_string_and_if
+! err71_string_and_if.jnl
+!  6/28/2018, ticket 2547
+ 
+! problem with masked strings -> unexpected values instead of strings:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+list if (test) then strings
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+! works: define a masked variable instead, then list
+let masked = if (test) then strings
+list masked
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+! alternatively, do the same listing for a float first
+let floats = {2,3,4}
+list if (test) then floats
+             VARIABLE : IF (TEST) THEN FLOATS
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000
+ 2   / 2:  3.000
+ 3   / 3:   ....
+ 
+! now, also for strings listing while masking works
+list if (test) then strings
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+ 
+ 
+! the next problem comes with xsequence
+! again unexpected numerical values instead of strings
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+let masked = if (test) then strings
+list xsequence(masked)
+             VARIABLE : XSEQUENCE(MASKED)
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+! but doing a listing first fixes it:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+list if (test) then strings
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+let masked = if (test) then strings
+list xsequence(masked)
+             VARIABLE : XSEQUENCE(MASKED)
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+ 
+! NOT fixed by defining a second masked variable before:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+let masked = if (test) then strings
+let masked2 = xsequence(masked)
+list masked2
+             VARIABLE : XSEQUENCE(MASKED)
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_expr_w_const
+! err71_expr_w_const.jnl
+! ticket 2313: return= is loading the whole
+! grid unnecessarily in the last example
+ 
+set mem/size=1
+def ax/t=1-jan-0001:1-jan-1000:1/unit=year tax
+let a = t[gt=tax] + x[gx=1:1000:1] + y[gy=1:1000:1]
+ 
+! These work fine
+say `a,return=cal`
+ !-> MESSAGE/CONTINUE GREGORIAN
+GREGORIAN
+ 
+use coads_climatology
+let s1= sst[x=@ave,y=1,L=@max]
+say `s1*a,return=cal`
+ !-> MESSAGE/CONTINUE GREGORIAN
+GREGORIAN
+ 
+! but the constant variable "let one = 1" introduced abstract
+! axes to the grid which  caused Ferret to try to load the
+! data in A which is large
+ 
+let one = 1
+let a1 = a*one
+show grid a1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ (AX###)   X                 1000 r   1                    1000                1000 pts
+ (AX###)   Y                 1000 r   1                    1000                1000 pts
+ normal    Z
+ tax       TIME              1000 r   01-JAN-0001 00:00    01-JAN-1000 06:10   full
+say `a*one,return=cal`
+ !-> MESSAGE/CONTINUE GREGORIAN
+GREGORIAN
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_colorlevs
+! err71_colorlevs
+! See ticket 2550. Top data value is not among color levels used in the plot.
+! And symbols LEV* do not list the levels used.
+ 
+use co_emac.nc
+stat co_emac
+ 
+             CO EMAC
+             LONGITUDE: 0E to 120E
+             LATITUDE: 0 to 40N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: ./co_emac.nc
+ 
+ Total # of data points: 48 (12*4*1*1*1*1)
+ # flagged as bad  data: 4
+ Minimum value: 6.152674857E-08
+ Maximum value: 0.00000018643
+ Mean    value: 0.000000087383 (unweighted average)
+ Standard deviation: 2.230821645E-08
+ 
+! previously there were 25 levels chosen by the automatic
+! method, missing the top one because of roundoff error.
+! Thus one cell went unfilled.  The LEV_MIN etc symbols were
+! set to 0 because of inadequate formatting of the tiny numbers.
+ 
+set mode nlevels 30
+shade co_emac
+sh sym lev*
+LEV_MIN = "6.E-08"
+LEV_MAX = "1.9E-07"
+LEV_NUM = "26"
+LEV_DEL = "5.E-09"
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_repeat_paren
+! err71_repeat_paren.jnl
+! Ticket 2551. The second command with an extra parenthese is not reported
+! to be a syntax error but just reports wrong info.
+ 
+repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue)
+ !-> repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue)
+!-> REPEAT: COUNT:1
+ !-> def sym count = 1
+ !-> MESSAGE/CONTINUE 1
+1
+
+!-> REPEAT: COUNT:2
+ !-> def sym count = 2
+ !-> MESSAGE/CONTINUE 2
+2
+
+!-> REPEAT: COUNT:3
+ !-> def sym count = 3
+ !-> MESSAGE/CONTINUE 3
+3
+
+ 
+! Previously the extra paren at the end did not trigger an error
+! but caused a parsing error so the command
+!   say ($count)
+! was parsed and fixed at "say 3" before the loop started.
+ 
+set mode ignore
+repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue))
+set mode/last ignore
+ 
 *** Running ferret script: bn_compressed_gather.jnl
 ! bn_compressed_gather.jnl
 ! 11/2016 (for trac #2428 enhancement)
@@ -99487,6 +100295,7 @@ LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
 *** Running ferret script: bn_dynamic_gather.jnl
 ! bn_dynamic_gather.jnl
 ! *sh* 3/2017
+! *acm*7/2017 0=success for SPAWN_STATUS
  
 ! There's not really anything "dynamic" about this benchmark, except that it
 ! excercises the split/gather improvements that were implemented together with
@@ -99506,7 +100315,7 @@ spawn "mkdir -p tmp"     ! tmp directory to store files
  
 ! see if the test file already exists
 SPAWN "ls tmp/test_dyn_mem.nc"
-IF ($SPAWN_STATUS) THEN
+IF ($SPAWN_OK) THEN
  !-> IF 0 THEN
 ELSE
   define symbol saved_memory_size = ($FERRET_MEMORY)
@@ -100973,44 +101782,44 @@ set v lr; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
  
  
 set mode/last logo
-*** Running ferret script: bn_inner.jnl
-! bn_inner.jnl
-! 3/2017 *acm*  Inner product function for matrix multiply operation
+*** Running ferret script: bn_dot_product.jnl
+! bn_dot_product.jnl
+! 3/2017 *acm*  dot product function for matrix multiply operation
  
  
-sh func innerproduct*
-INNERPRODUCT(VAR1,VAR2,IDIM)
+sh func dot*
+DOT(VAR1,VAR2,IDIM)
     Compute the inner product of two variables along given dimension
     VAR1: Variable 1
     VAR2: Variable 2
     IDIM: Dimension (e.g.1,2,...)
-INNERPRODUCT_X(VAR1,VAR2)
-    Compute the inner product of two variables along X-axis
+DOT_E(VAR1,VAR2)
+    Compute the inner product of two variables along E-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_Y(VAR1,VAR2)
-    Compute the inner product of two variables along Y-axis
+DOT_F(VAR1,VAR2)
+    Compute the inner product of two variables along F-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_Z(VAR1,VAR2)
-    Compute the inner product of two variables along Z-axis
+DOT_T(VAR1,VAR2)
+    Compute the inner product of two variables along T-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_T(VAR1,VAR2)
-    Compute the inner product of two variables along T-axis
+DOT_X(VAR1,VAR2)
+    Compute the inner product of two variables along X-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_E(VAR1,VAR2)
-    Compute the inner product of two variables along E-axis
+DOT_Y(VAR1,VAR2)
+    Compute the inner product of two variables along Y-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_F(VAR1,VAR2)
-    Compute the inner product of two variables along F-axis
+DOT_Z(VAR1,VAR2)
+    Compute the inner product of two variables along Z-axis
     VAR1: Variable 1
     VAR2: Variable 2
  
-! A call to innerproduct(var1, var2, dir) translates into call to
-! function innerproduct_q(var1,var2) where q is the pax direction
+! A call to dot(var1, var2, dir) translates into call to
+! function dot_q(var1,var2) where q is the pax direction
 ! corresponding to dir=1,2,...,6
  
 set list/pre=7
@@ -101033,15 +101842,15 @@ list var1, var2
 3   / 3:  3.000000  1.000000
 4   / 4:  4.000000  1.000000
 5   / 5:  5.000000  1.000000
-list  innerproduct(var1, var2, 1)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 1)
+list  dot(var1, var2, 1)
+             VARIABLE : DOT(VAR1, VAR2, 1)
           15.00000
 !can var/all
  
 let var1 = x[gx=xpax]
 let var2 = 1+0*x[gx=xpax]
-list  innerproduct_x(var1, var2)
-             VARIABLE : INNERPRODUCT_X(VAR1, VAR2)
+list  dot_x(var1, var2)
+             VARIABLE : DOT_X(VAR1, VAR2)
           15.00000
  
 let var1 = y[gy=ypax]
@@ -101054,8 +101863,8 @@ list var1, var2
 0.1  / 1:  0.1000000  1.000000
 0.2  / 2:  0.2000000  1.000000
 0.3  / 3:  0.3000000  1.000000
-list  innerproduct(var1, var2, 2)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 2)
+list  dot(var1, var2, 2)
+             VARIABLE : DOT(VAR1, VAR2, 2)
           0.6000000
  
 let var1 = z[gz=zpax]
@@ -101069,8 +101878,8 @@ list var1, var2
 0.02  / 2:  0.02000000  1.000000
 0.03  / 3:  0.03000000  1.000000
 0.04  / 4:  0.04000000  1.000000
-list  innerproduct(var1, var2, 3)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 3)
+list  dot(var1, var2, 3)
+             VARIABLE : DOT(VAR1, VAR2, 3)
           0.10000000
  
 let var1 = L[gt=month_reg]
@@ -101092,8 +101901,8 @@ list var1, var2
 16-OCT      / 10:  10.00000  1.000000
 15-NOV      / 11:  11.00000  1.000000
 16-DEC      / 12:  12.00000  1.000000
-list  innerproduct(var1, var2, 4)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 4)
+list  dot(var1, var2, 4)
+             VARIABLE : DOT(VAR1, VAR2, 4)
           78.00000
  
 let var1 = _e[ge=epax]
@@ -101106,8 +101915,8 @@ list var1, var2
 -3   / 1: -3.000000  1.000000
 -2   / 2: -2.000000  1.000000
 -1   / 3: -1.000000  1.000000
-list  innerproduct(var1, var2, 5)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 5)
+list  dot(var1, var2, 5)
+             VARIABLE : DOT(VAR1, VAR2, 5)
          -6.000000
  
 let var1 = _f[gf=fpax]
@@ -101121,8 +101930,8 @@ list var1, var2
 -0.3  / 2: -0.3000000  1.000000
 -0.2  / 3: -0.2000000  1.000000
 -0.1  / 4: -0.1000000  1.000000
-list  innerproduct(var1, var2, 6)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 6)
+list  dot(var1, var2, 6)
+             VARIABLE : DOT(VAR1, VAR2, 6)
          -1.000000
  
 let axy = x[gx=xpax] + y[gy=ypax]
@@ -101210,8 +102019,8 @@ list axy, bxz
 3   / 3:  3.300000  0.4000000
 4   / 4:  4.300000  0.4000000
 5   / 5:  5.300000  0.4000000
-list innerproduct(axy, bxz, 1)
-             VARIABLE : INNERPRODUCT(AXY, BXZ, 1)
+list dot(axy, bxz, 1)
+             VARIABLE : DOT(AXY, BXZ, 1)
              SUBSET   : 3 by 4 points (Y-Z)
                 0.1       0.2       0.3    
                  1         2         3
@@ -101221,8 +102030,8 @@ list innerproduct(axy, bxz, 1)
  0.04  / 4:  6.200000  6.400000  6.600000
  
 let byz = y[gy=ypax]+  10*Z[GZ=Zpax]
-list innerproduct(axy, byz, 2)
-             VARIABLE : INNERPRODUCT(AXY, BYZ, 2)
+list dot(axy, byz, 2)
+             VARIABLE : DOT(AXY, BYZ, 2)
              SUBSET   : 5 by 4 points (X-Z)
                 1         2         3         4         5      
                  1         2         3         4         5
@@ -101233,14 +102042,14 @@ list innerproduct(axy, byz, 2)
  
 let lvar = L[gt=month_reg] - 1
 let axyt = axy + lvar
-let multi_inner = innerproduct(axyt, byz, 2)
-save/file=a.nc/clobber multi_inner
+let multi_dot = dot(axyt, byz, 2)
+save/file=a.nc/clobber multi_dot
  
-can var multi_inner
+can var multi_dot
 use a.nc
-!  This should be the same as innerproduct(axy, byz, 2)
-list/l=1 multi_inner
-             VARIABLE : INNERPRODUCT(AXYT, BYZ, 2)
+!  This should be the same as dot(axy, byz, 2)
+list/l=1 multi_dot
+             VARIABLE : DOT(AXYT, BYZ, 2)
              FILENAME : a.nc
              SUBSET   : 5 by 4 points (X-Z)
              TIME     : 16-JAN 06:00
@@ -101256,8 +102065,8 @@ list/l=1 multi_inner
  
 let axz = x[gx=xpax] + z[gz=zpax]
 let bzt = 0*z[gz=zpax]+  10*L[gt=month_reg]
-list innerproduct(axz, bzt, 3)
-             VARIABLE : INNERPRODUCT(AXZ, BZT, 3)
+list dot(axz, bzt, 3)
+             VARIABLE : DOT(AXZ, BZT, 3)
              SUBSET   : 5 by 12 points (X-TIME)
                        1         2         3         4         5      
                         1         2         3         4         5
@@ -101275,8 +102084,8 @@ list innerproduct(axz, bzt, 3)
  16-DEC      / 12:   492.000   972.000  1452.000  1932.000  2412.000
  
 let ayt = y[gy=ypax]+ 10*L[gt=month_reg]
-list innerproduct(ayt, bzt, 4)
-             VARIABLE : INNERPRODUCT(AYT, BZT, 4)
+list dot(ayt, bzt, 4)
+             VARIABLE : DOT(AYT, BZT, 4)
              SUBSET   : 3 by 4 points (Y-Z)
                 0.1       0.2       0.3    
                  1         2         3
@@ -101288,14 +102097,14 @@ list innerproduct(ayt, bzt, 4)
  
 let xvar = x[gx=xpax] - 1
 let axyt = ayt + xvar
-let multi_inner = innerproduct(axyt, bzt, 4)
-save/file=a.nc/clobber multi_inner
+let multi_dot = dot(axyt, bzt, 4)
+save/file=a.nc/clobber multi_dot
  
-can var multi_inner
+can var multi_dot
 use a.nc
-!  This should be the same as innerproduct(ayt, bzt, 4)
-list/i=1 multi_inner
-             VARIABLE : INNERPRODUCT(AXYT, BYZ, 2)
+!  This should be the same as dot(ayt, bzt, 4)
+list/i=1 multi_dot
+             VARIABLE : DOT(AXYT, BYZ, 2)
              FILENAME : a.nc
              SUBSET   : 4 by 12 points (Z-TIME)
              X        : 1
@@ -101320,8 +102129,8 @@ can dat/all
  
 let ayf = _f[gf=fpax] + y[gy=ypax]
 let bfe = 0*_f[gf=fpax]+  10*_e[ge=epax]
-list innerproduct(ayf, bfe, 6)
-             VARIABLE : INNERPRODUCT(AYF, BFE, 6)
+list dot(ayf, bfe, 6)
+             VARIABLE : DOT(AYF, BFE, 6)
              SUBSET   : 3 by 3 points (Y-E)
                0.1       0.2       0.3    
                 1         2         3
@@ -101330,8 +102139,8 @@ list innerproduct(ayf, bfe, 6)
  -1   / 3:   6.00000   2.00000  -2.00000
  
 let aze = z[gz=zpax]+ 10*_e[ge=epax]
-list innerproduct(aze, bfe, 5)
-             VARIABLE : INNERPRODUCT(AZE, BFE, 5)
+list dot(aze, bfe, 5)
+             VARIABLE : DOT(AZE, BFE, 5)
              SUBSET   : 4 by 4 points (Z-F)
                0.01      0.02      0.03      0.04    
                  1         2         3         4
@@ -101342,14 +102151,14 @@ list innerproduct(aze, bfe, 5)
  
 let xvar = x[gx=xpax] - 1
 let azex = aze + xvar
-let multi_inner = innerproduct(azex, bfe, 5)
-save/file=a.nc/clobber multi_inner
+let multi_dot = dot(azex, bfe, 5)
+save/file=a.nc/clobber multi_dot
  
-can var multi_inner
+can var multi_dot
 use a.nc
-!  This should be the same as innerproduct(azex, bfe, 5)
-list/i=1 multi_inner
-             VARIABLE : INNERPRODUCT(AZEX, BFE, 5)
+!  This should be the same as dot(azex, bfe, 5)
+list/i=1 multi_dot
+             VARIABLE : DOT(AZEX, BFE, 5)
              FILENAME : a.nc
              SUBSET   : 4 by 4 points (Z-F)
              X        : 1
@@ -101367,6 +102176,7 @@ cancel list/precision
  ! 1/2017 - try to force Ferret into a complex juggling of dependencies
 ! and cache maintenance in order to reproduce the problem seen in trac
 ! ticket #2485 (from Ned Cokelet)
+! *acm*7/2017 0=success for SPAWN_STATUS
  
 ! Ferret's cache of memory-resident results is full when it holds 500 of them.
 ! At that point it must delete cached results to make room for new variables.
@@ -101402,7 +102212,7 @@ define axis/x=1:1000000:1 xmillion
 SPAWN "mkdir -p tmp"     ! tmp directory to store files
 SPAWN ls tmp/test_auto_cache_($nsets).nc
  !-> SPAWN ls tmp/test_auto_cache_20.nc
-IF ($SPAWN_STATUS) THEN
+IF ($SPAWN_OK) THEN
  !-> IF 0 THEN
 ELSE
  say creating test files
@@ -101905,6 +102715,549 @@ list/l=1 var
  9    /  9:  19.60  22.19  24.59  25.76  27.27  29.37  30.92
  10   / 10:  20.46  23.48  25.95  27.66  29.79  32.46  34.16
  
+*** Running ferret script: bn_iin_regrid.jnl
+! bn_iin_regrid.jnl
+! @IIN as a regridding transform See Ticket 2346
+ 
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+ 
+let xlo = xboxlo[gx=a]
+def ax/x aline_edges = xcat(xlo[i=1], xboxhi[gx=a])
+ 
+! new @IIN regridding
+show axis/x aline_edges
+ name       axis              # pts   start                end
+ ALINE_EDGES X                 11 r   0                    10
+   Axis span (to cell edges) = 11
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0                     1          -0.5
+       2>  1                     1          0.5
+       3>  2                     1          1.5
+       4>  3                     1          2.5
+       5>  4                     1          3.5
+       6>  5                     1          4.5
+       7>  6                     1          5.5
+       8>  7                     1          6.5
+       9>  8                     1          7.5
+      10>  9                     1          8.5
+      11>  10                    1          9.5
+ 
+let c = a[gx=aline_edges at iin]
+list a
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+             SUBSET   : 10 points (X)
+ 0.5 /  1:  1.000
+ 1.5 /  2:  0.000
+ 2.5 /  3:  1.000
+ 3.5 /  4:  0.000
+ 4.5 /  5:  1.000
+ 5.5 /  6:  0.000
+ 6.5 /  7:  1.000
+ 7.5 /  8:  0.000
+ 8.5 /  9:  1.000
+ 9.5 / 10:  0.000
+list c
+             VARIABLE : A[GX=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (X)
+ 0    /  1:  0.000
+ 1    /  2:  1.000
+ 2    /  3:  1.000
+ 3    /  4:  2.000
+ 4    /  5:  2.000
+ 5    /  6:  3.000
+ 6    /  7:  3.000
+ 7    /  8:  4.000
+ 8    /  9:  4.000
+ 9    / 10:  5.000
+ 10   / 11:  5.000
+ 
+ 
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+ 
+! Intentional error
+ 
+set mode ignore
+! Different delta
+ 
+define axis/x=0.5:10.5:0.5 alinenew
+list a[gx=alinenew at iin]
+ 
+set mode/last ignore
+ 
+ 
+! result out of range, returns missing
+define axis/x=100:111:1 alinenew
+list a[gx=alinenew at iin]
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 12 points (X)
+ 100   /  1:....
+ 101   /  2:....
+ 102   /  3:....
+ 103   /  4:....
+ 104   /  5:....
+ 105   /  6:....
+ 106   /  7:....
+ 107   /  8:....
+ 108   /  9:....
+ 109   / 10:....
+ 110   / 11:....
+ 111   / 12:....
+ 
+! partially out of range
+define axis/x=2.5:15.5:1 alinenew
+list a[gx=alinenew at iin]
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 14 points (X)
+ 2.5  /  1:  0.000
+ 3.5  /  2:  0.000
+ 4.5  /  3:  1.000
+ 5.5  /  4:  1.000
+ 6.5  /  5:  2.000
+ 7.5  /  6:  2.000
+ 8.5  /  7:  3.000
+ 9.5  /  8:  3.000
+ 10.5 /  9:   ....
+ 11.5 / 10:   ....
+ 12.5 / 11:   ....
+ 13.5 / 12:   ....
+ 14.5 / 13:   ....
+ 15.5 / 14:   ....
+ 
+! same range, outer boxes
+define axis/x=-0.5:10.5:1 alinenew
+list a[gx=alinenew at iin]
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 12 points (X)
+ -0.5 /  1:   ....
+ 0.5  /  2:  0.000
+ 1.5  /  3:  1.000
+ 2.5  /  4:  1.000
+ 3.5  /  5:  2.000
+ 4.5  /  6:  2.000
+ 5.5  /  7:  3.000
+ 6.5  /  8:  3.000
+ 7.5  /  9:  4.000
+ 8.5  / 10:  4.000
+ 9.5  / 11:  5.000
+ 10.5 / 12:   ....
+can mem
+! plots in different directions
+ 
+can view; can var/all
+! In X
+ 
+set win/asp=0.5
+set v left
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[x=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let xlo = xboxlo[gx=a]
+def ax/x aline_edges = xcat(xlo[i=1], xboxhi[gx=a])
+let a_iin_edges = a_iin[gx=aline_edges at asn]
+let a_int = IF i[gx=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[x=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+ 
+show axis/x aline_edges
+ name       axis              # pts   start                end
+ ALINE_EDGES X                 11 r   0                    10
+   Axis span (to cell edges) = 11
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0                     1          -0.5
+       2>  1                     1          0.5
+       3>  2                     1          1.5
+       4>  3                     1          2.5
+       5>  4                     1          3.5
+       6>  5                     1          4.5
+       7>  6                     1          5.5
+       8>  7                     1          6.5
+       9>  8                     1          7.5
+      10>  9                     1          8.5
+      11>  10                    1          9.5
+let c = a[gx=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[x=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gx=aline_edges at asn]
+let b_int = IF i[gx=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[x=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gx=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GX=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (X)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gx=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 11 by 2 points (X-Z)
+             0      1      2      3      4      5      6      7      8      9     10    
+             1      2      3      4      5      6      7      8      9     10     11
+ 1   / 1:   0.00   2.00   4.00   6.00   8.00  10.00  12.00  14.00  16.00  18.00  20.00
+ 2   / 2:   0.00   3.00   6.00   9.00  12.00  15.00  18.00  21.00  24.00  27.00  30.00
+ 
+ 
+can view; can var/all
+! In Y
+ 
+set win/asp=0.5
+set v left
+def ax/edge/y=0:10:1 aline
+let a = mod(.5+y[gy=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[y=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let ylo = yboxlo[gy=a]
+def ax/y aline_edges = ycat(ylo[j=1], yboxhi[gy=a])
+ 
+let a_iin_edges = a_iin[gy=aline_edges at asn]
+let a_int = IF j[gy=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[y=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gy=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[y=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gy=aline_edges at asn]
+let b_int = IF j[gy=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[y=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gy=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GY=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (Y)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gy=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on Y at IIN
+             SUBSET   : 11 by 2 points (Y-Z)
+             0      1      2      3      4      5      6      7      8      9     10    
+             1      2      3      4      5      6      7      8      9     10     11
+ 1   / 1:   0.00   2.00   4.00   6.00   8.00  10.00  12.00  14.00  16.00  18.00  20.00
+ 2   / 2:   0.00   3.00   6.00   9.00  12.00  15.00  18.00  21.00  24.00  27.00  30.00
+ 
+ 
+can view; can var/all
+! in Z
+ 
+set win/asp=0.5
+set v left
+def ax/edge/z=0:10:1 aline
+let a = mod(.5+z[gz=aline],2)
+plot/step=con/hl=-1:6:1/vl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[z=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let zlo = zboxlo[gz=a]
+def ax/z aline_edges = zcat(zlo[k=1], zboxhi[gz=a])
+ 
+let a_iin_edges = a_iin[gz=aline_edges at asn]
+let a_int = IF k[gz=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[z=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gz=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/hl=-1:12:1/vl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[z=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gz=aline_edges at asn]
+let b_int = IF k[gz=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[z=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gz=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GZ=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (Z)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/e=1:2:1 otheraxis
+let b2d = b + _e[ge=otheraxis]
+list b2d[gz=aline_edges at iin]
+             VARIABLE : B + _E[GE=OTHERAXIS]
+                        regrid: 1 delta on Z at IIN
+             SUBSET   : 11 by 2 points (Z-E)
+             0      1      2      3      4      5      6      7      8      9     10    
+             1      2      3      4      5      6      7      8      9     10     11
+ 1   / 1:   0.00   2.00   4.00   6.00   8.00  10.00  12.00  14.00  16.00  18.00  20.00
+ 2   / 2:   0.00   3.00   6.00   9.00  12.00  15.00  18.00  21.00  24.00  27.00  30.00
+ 
+ 
+can view; can var/all
+! In T
+ 
+set win/asp=0.5
+set v left
+def ax/edge/t=0:10:1 aline
+let a = mod(.5+t[gt=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[t=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let tlo = tboxlo[gt=a]
+def ax/t aline_edges = tcat(tlo[l=1], tboxhi[gt=a])
+ 
+let a_iin_edges = a_iin[gt=aline_edges at asn]
+let a_int = IF l[gt=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[t=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gt=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[t=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gt=aline_edges at asn]
+let b_int = IF l[gt=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[t=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gt=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GT=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (T)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gt=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on T at IIN
+             SUBSET   : 2 by 11 points (Z-T)
+               1      2    
+               1      2
+ 0    /  1:   0.00   0.00
+ 1    /  2:   2.00   3.00
+ 2    /  3:   4.00   6.00
+ 3    /  4:   6.00   9.00
+ 4    /  5:   8.00  12.00
+ 5    /  6:  10.00  15.00
+ 6    /  7:  12.00  18.00
+ 7    /  8:  14.00  21.00
+ 8    /  9:  16.00  24.00
+ 9    / 10:  18.00  27.00
+ 10   / 11:  20.00  30.00
+ 
+ 
+can view; can var/all
+! in E
+ 
+set win/asp=0.5
+set v left
+def ax/edge/e=0:10:1 aline
+let a = mod(.5+_e[ge=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[e=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let elo = eboxlo[ge=a]
+def ax/e aline_edges = ecat(elo[m=1], eboxhi[ge=a])
+ 
+let a_iin_edges = a_iin[ge=aline_edges at asn]
+let a_int = IF _m[ge=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[e=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[ge=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/hl=-1:12:1/vl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[e=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[ge=aline_edges at asn]
+let b_int = IF _m[ge=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[e=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[ge=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GE=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (E)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[ge=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on E at IIN
+             SUBSET   : 2 by 11 points (Z-E)
+               1      2    
+               1      2
+ 0    /  1:   0.00   0.00
+ 1    /  2:   2.00   3.00
+ 2    /  3:   4.00   6.00
+ 3    /  4:   6.00   9.00
+ 4    /  5:   8.00  12.00
+ 5    /  6:  10.00  15.00
+ 6    /  7:  12.00  18.00
+ 7    /  8:  14.00  21.00
+ 8    /  9:  16.00  24.00
+ 9    / 10:  18.00  27.00
+ 10   / 11:  20.00  30.00
+ 
+ 
+can view; can var/all
+! In F
+ 
+set win/asp=0.5
+set v left
+def ax/edge/f=0:10:1 aline
+let a = mod(.5+_f[gf=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[f=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let flo = fboxlo[gf=a]
+def ax/f aline_edges = fcat(flo[n=1], fboxhi[gf=a])
+ 
+let a_iin_edges = a_iin[gf=aline_edges at asn]
+let a_int = IF _n[gf=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[f=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gf=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[f=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gf=aline_edges at asn]
+let b_int = IF _n[gf=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[f=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gf=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GF=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (F)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gf=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on F at IIN
+             SUBSET   : 2 by 11 points (Z-F)
+               1      2    
+               1      2
+ 0    /  1:   0.00   0.00
+ 1    /  2:   2.00   3.00
+ 2    /  3:   4.00   6.00
+ 3    /  4:   6.00   9.00
+ 4    /  5:   8.00  12.00
+ 5    /  6:  10.00  15.00
+ 6    /  7:  12.00  18.00
+ 7    /  8:  14.00  21.00
+ 8    /  9:  16.00  24.00
+ 9    / 10:  18.00  27.00
+ 10   / 11:  20.00  30.00
 *** Running ferret script: bn_gif.jnl
 ! bn450_gif.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of gif file in batch mode using
@@ -102374,14 +103727,14 @@ ppl list levels
          -1.00E+01     DASH        3        0
          -7.88E+00     DASH        3        0
          -5.75E+00     DASH        3        0
-         -3.63E+00     DASH        3        0
+         -3.62E+00     DASH        3        0
          -1.50E+00     DASH        3        0
           6.25E-01     LINE        3        0
           2.75E+00     LINE        3        0
           4.88E+00     LINE        3        0
           7.00E+00     LINE        3        0
-          9.13E+00     LINE        3        0
-          1.13E+01     LINE        3        0
+          9.12E+00     LINE        3        0
+          1.12E+01     LINE        3        0
  
 ! Now make the same setting with CONTOUR/SIGDIG=
 contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/sigdig=4/title="CONTOUR/SIGDIG=4"  10*sin(i/3)*cos(j/4)
@@ -102394,15 +103747,15 @@ ppl list levels
          -1.00E+01     DASH        3        0
          -7.88E+00     DASH        3        0
          -5.75E+00     DASH        3        0
-         -3.63E+00     DASH        3        0
+         -3.62E+00     DASH        3        0
          -1.50E+00     DASH        3        0
           0.00E+00     DARK       -1        0
           6.25E-01     LINE        3        0
           2.75E+00     LINE        3        0
           4.88E+00     LINE        3        0
           7.00E+00     LINE        3        0
-          9.13E+00     LINE        3        0
-          1.13E+01     LINE        3        0
+          9.12E+00     LINE        3        0
+          1.12E+01     LINE        3        0
  
 ! test CONTOUR/SET; CONSET; PPL CONTOUR settings
 contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
@@ -102441,6 +103794,161 @@ shade/over d10[i=1:10:2,j=1:10]
  
 frame/file=bn_subspan_mod_strides.gif
  
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_plotvs_mode_label
+! err71_plotvs_mode_label.jnl
+!  *acm*3/17/17 Ticket 2517:
+! MODE LONG_LABEL, MODE LATIT_LABEL need to apply
+! to PLOT/VS plots.
+ 
+can mode logo
+ 
+set mode long_lab
+set mode latit_lab
+ 
+let/title="|Roll|"/units="degree" abscissa_roll = {0, 20}
+let/title="Wind Speed"/units="kn" ordinate_spd  = {0, 0}
+ 
+! labeled lon/lat axes. Units of "degrees" is taken to be degrees
+! east or north depending on which plot axis it is drawn on.
+ 
+set view ul
+plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
+set view ur
+plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
+ 
+! These modes turn off lon/lat axis labeling
+ 
+cancel mode long_lab
+cancel mode latit_lab
+ 
+set view ll
+plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
+set view lr
+plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
+ 
+! Explicit units units of degrees_east and degrees_north:
+! degrees_east draws longitude labeling on whichever plot axis
+! the associated variable is drawn, and likewise for degrees_north.
+! Setting or cancelling the label modes applies to the variable
+! units not the plot-axis direction.
+ 
+cancel view
+set mode long_lab
+set mode latit_lab
+ 
+let/title="East"/units="degrees_east" lon = {10,20,30}
+let/title="North"/units="degrees_north" lat = {-10,0,10}
+ 
+! longitude axis on the horizontal, latitude axis on the vertical
+ 
+set view ul; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit TRUE"
+ 
+! latitude axis on the horizontal, longitude axis on the vertical
+ 
+set view ur; plot/vs/line/sym/vlim=0:40/hlim=-20:20 lat,lon
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long vertical  latit horizontal"
+ 
+! longitude axis on the horizontal, latitude axis on the vertical
+! but with latitude labeling turned off
+ 
+set mode long_lab
+cancel mode latit_lab
+set view ll; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit FALSE"
+ 
+! latitude axis on the horizontal, longitude axis on the vertical
+! but with longitude labeling turned off
+ 
+cancel mode long_lab
+set mode latit_lab
+set view lr; plot/vs/line/sym/vlim=0:40/hlim=-20:20 lat,lon
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long FALSE  latit TRUE"
+ 
+frame/file=lon_lat_label_controls.gif
+ 
+ 
+! Restore default settings
+set mode long_lab
+set mode latit_lab
+ 
+set mode/last logo
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err700_vs_plot_axes
+! err700_vs_plot_axes.jnl
+! See ticket 2477, in some cases the plot axes are not fully drawn
+! 11/2016 ACM
+ 
+ 
+USE err700_vs_data.nc
+ 
+! only with PLOT/VS plots, only with SYMBOLS not PLOT/VS/LINE
+PLOT/VS/THICK/COLOR=red/SIZ=0.2 lon,lat
+FRAME/FILE=bn_axis_vs.gif
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_vs_constant
+! err71_vs_constant.jnl
+! See ticket 2318, defining plot axes when data is constant
+! 4/2017 acm
+ 
+! The axis ranges had been set as val-1, val+1 which
+! worked poorly for large or small data values
+ 
+ 
+ 
+ 
+def view/xlim=   0,.333/ylim=0,.5 ll6   ! ok
+def view/xlim=   0,.333/ylim=.5,1 ul6   ! long tic labels
+def view/xlim=.333,.666/ylim=0,.5 lm6   ! long tic labels, logo corrupted
+def view/xlim=.333,.666/ylim=.5,1 um6   ! plot positioning and labels are corrupted
+def view/xlim=.666,   1/ylim=0,.5 lr6   ! no plot at all
+def view/xlim=.666,   1/ylim=.5,1 ur6   ! no vertical tic labels
+ 
+ 
+set view ul6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e4*{1,1}
+set view um6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e5*{1,1}
+set view ur6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e6*{1,1}
+set view ll6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e7*{1,1}
+set view lm6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e8*{1,1}
+set view lr6; plot/vs/color/thick/line/sym/siz=0.2 {1,2}, 1e-2*{1,1}
+ 
+frame/file=bn_vs_const_value.gif
+ 
+! With constant data value as the first argument
+ 
+can view
+set view ul6; plot/vs/color/thick/line/sym/siz=0.2  1e4*{1,1}, {1,2}
+set view um6; plot/vs/color/thick/line/sym/siz=0.2  1e5*{1,1}, {1,2}
+set view ur6; plot/vs/color/thick/line/sym/siz=0.2  1e6*{1,1}, {1,2}
+set view ll6; plot/vs/color/thick/line/sym/siz=0.2  1e7*{1,1}, {1,2}
+set view lm6; plot/vs/color/thick/line/sym/siz=0.2  1e8*{1,1}, {1,2}
+set view lr6; plot/vs/color/thick/line/sym/siz=0.2 1e-2*{1,1}, {1,2}
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_vs_lon_over
+! err71_vs_lon_over.jnl
+! PLOT/VS/OVER does longitude moduloing if the xpts
+!  variable has units of degrees east.
+ 
+use coads_climatology
+shade/l=1/x=0:360/nolab/nokey if sst then 1
+let/units=degrees_east xpts = {-170,-150,-100, 100, 150, 170}
+let/units=degrees_north ypts = {-30, -20, -10,   0,  10,  20}
+ 
+plot/vs/over/thick/siz=0.2/sym=19 xpts,ypts
+frame/file=vs_lon_over.gif
+ 
 exit/command
 *** Running ferret script: bn_ps.jnl
 ! bn450_ps.JNL - copied from bn450_plot.jnl
@@ -103348,22 +104856,23 @@ exit/command
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 3.10.0-514.26.2.el7.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:06"
-SESSION_PID = "29013"
-DELTA_CPU = "0.020996"
-CLOCK_SECS = "0.015"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:06:28"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
@@ -105503,4 +107012,3 @@ can axis/all
  
 ! Dump the contents of the decimated-data DSG file
 sp ncdump -h 492C19881104_dec.nc >> all_ncdump.out
-Ended at Tue Apr 18 17:06:31 PDT 2017
diff --git a/bench/test_results/ferret_run_tests_ncdump b/bench/test_results/ferret_run_tests_ncdump
index 0297282..e5fb27b 100644
--- a/bench/test_results/ferret_run_tests_ncdump
+++ b/bench/test_results/ferret_run_tests_ncdump
@@ -51,7 +51,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -76,7 +76,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -113,7 +113,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -152,7 +152,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -187,7 +187,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -257,7 +257,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -314,7 +314,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -371,7 +371,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -426,7 +426,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -474,7 +474,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -568,7 +568,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -638,7 +638,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -689,7 +689,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -780,7 +780,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -807,7 +807,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -831,7 +831,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title, longer than the previous limit of 80 characters.  Previously various buffers were set to 80, and storage in ds_title was also too short." ;
 data:
@@ -858,14 +858,14 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_tab_comma_multivar.jnl
 *** Running ferret script: bn_element_functions.jnl
 *** Running ferret script: bn_long_revision_num.jnl
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 *** Running ferret script: bn_window_title.jnl
 *** Running ferret script: bn_last_error.jnl
 *** Running ferret script: bn_deg_min.jnl
@@ -901,7 +901,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -974,7 +974,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1018,7 +1018,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1060,7 +1060,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1168,7 +1168,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -1209,7 +1209,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -1232,7 +1232,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1258,7 +1258,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1278,7 +1278,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1299,7 +1299,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1342,7 +1342,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -1382,7 +1382,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -1420,7 +1420,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -1428,28 +1428,28 @@ netcdf a {
 dimensions:
 	AX002 = 5 ;
 variables:
-	double AX002(AX002) ;
+	double AX002(AX###) ;
 		AX002:point_spacing = "even" ;
 		AX002:axis = "X" ;
-	float A1(AX002) ;
-		A1:missing_value = -1.e+34f ;
-		A1:_FillValue = -1.e+34f ;
+	double A1(AX###) ;
+		A1:missing_value = -1.e+34 ;
+		A1:_FillValue = -1.e+34 ;
 		A1:long_name = "a1" ;
 		A1:three = 1.f, 2.f, 3.f ;
 		A1:history = "From EZ.DAT" ;
-	float A2(AX002) ;
-		A2:missing_value = -1.e+34f ;
-		A2:_FillValue = -1.e+34f ;
+	double A2(AX###) ;
+		A2:missing_value = -1.e+34 ;
+		A2:_FillValue = -1.e+34 ;
 		A2:long_name = "a2" ;
 		A2:history = "From EZ.DAT" ;
-	float A3(AX002) ;
-		A3:missing_value = -1.e+34f ;
-		A3:_FillValue = -1.e+34f ;
+	double A3(AX###) ;
+		A3:missing_value = -1.e+34 ;
+		A3:_FillValue = -1.e+34 ;
 		A3:long_name = "a3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1466,23 +1466,23 @@ netcdf a {
 dimensions:
 	AX012 = 5 ;
 variables:
-	double AX012(AX012) ;
+	double AX012(AX###) ;
 		AX012:point_spacing = "even" ;
 		AX012:axis = "X" ;
-	float V1(AX012) ;
-		V1:missing_value = -1.e+34f ;
-		V1:_FillValue = -1.e+34f ;
+	double V1(AX###) ;
+		V1:missing_value = -1.e+34 ;
+		V1:_FillValue = -1.e+34 ;
 		V1:long_name = "V1" ;
 		V1:strval = "2" ;
 		V1:history = "From EZ.DAT" ;
-	float V4(AX012) ;
-		V4:missing_value = -1.e+34f ;
-		V4:_FillValue = -1.e+34f ;
+	double V4(AX###) ;
+		V4:missing_value = -1.e+34 ;
+		V4:_FillValue = -1.e+34 ;
 		V4:long_name = "V4" ;
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1508,7 +1508,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1554,7 +1554,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -1661,7 +1661,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -1703,7 +1703,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1786,7 +1786,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1823,7 +1823,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1863,7 +1863,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1914,7 +1914,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1973,7 +1973,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2018,7 +2018,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2061,7 +2061,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2096,7 +2096,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2130,7 +2130,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -2160,7 +2160,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -2189,7 +2189,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -2250,7 +2250,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2295,7 +2295,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_transforms.jnl
@@ -2336,7 +2336,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2366,7 +2366,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2396,7 +2396,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2449,7 +2449,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2491,7 +2491,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2509,7 +2509,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_no_valid_on_plot.jnl
@@ -2520,36 +2520,36 @@ netcdf a {
 dimensions:
 	AX002 = 3 ;
 variables:
-	double AX002(AX002) ;
+	double AX002(AX###) ;
 		AX002:point_spacing = "even" ;
 		AX002:axis = "X" ;
-	float MY_ASC(AX002) ;
-		MY_ASC:missing_value = 3.f ;
-		MY_ASC:_FillValue = 3.f ;
+	double MY_ASC(AX###) ;
+		MY_ASC:missing_value = 3. ;
+		MY_ASC:_FillValue = 3. ;
 		MY_ASC:long_name = "chlorophyll" ;
 		MY_ASC:units = "micrograms/L" ;
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
 	AX002 = 3 ;
 variables:
-	double AX002(AX002) ;
+	double AX002(AX###) ;
 		AX002:point_spacing = "even" ;
 		AX002:axis = "X" ;
-	float MY_UNF(AX002) ;
-		MY_UNF:missing_value = 5.f ;
-		MY_UNF:_FillValue = 5.f ;
+	double MY_UNF(AX###) ;
+		MY_UNF:missing_value = 5. ;
+		MY_UNF:_FillValue = 5. ;
 		MY_UNF:long_name = "Some Unformatted input" ;
 		MY_UNF:units = "metres" ;
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -2566,7 +2566,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2587,7 +2587,7 @@ variables:
 		A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2658,7 +2658,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_cdf_keepax.jnl
@@ -2687,7 +2687,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -2714,7 +2714,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_key_label_minmax.jnl
@@ -2819,7 +2819,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -2851,7 +2851,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -2884,7 +2884,7 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_repeated_coords.jnl
@@ -2961,7 +2961,7 @@ variables:
 		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2999,7 +2999,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -3051,7 +3051,7 @@ variables:
 		MYVAR:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -3065,7 +3065,7 @@ variables:
 		MYVAR:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_list_clim_axes.jnl
@@ -3088,9 +3088,10 @@ variables:
 *** Running ferret script: bn_dynamic_gather.jnl
 *** Running ferret script: bn_stat_precision.jnl
 *** Running ferret script: bn_plot_vs_with_time.jnl
-*** Running ferret script: bn_inner.jnl
+*** Running ferret script: bn_dot_product.jnl
 *** Running ferret script: bn_cache_management.jnl
 *** Running ferret script: bn_transp_choose.jnl
+*** Running ferret script: bn_iin_regrid.jnl
 *** Running ferret script: bn_gif.jnl
 *** Running ferret script: bn_ps.jnl
 *** Running ferret script: bn_all_ef.jnl
@@ -3749,7 +3750,7 @@ variables:
 		tmonth:history = "added to /home/data/socat/socatV3/492C/492C19881104.nc" ;
 
 // global attributes:
-		:history = "FERRET V7.1  18-Apr-17" ;
+		:history = "FERRET V7.2  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:featureType = "Trajectory" ;
 		:decimation = "218 original number of obs. Piecewise decimated to 23 obs using tolerances: lon 1, lat 1, fco2_rec 4" ;
diff --git a/bench/test_results/flowlines.pdf b/bench/test_results/flowlines.pdf
index f1bae62..91b53ff 100644
Binary files a/bench/test_results/flowlines.pdf and b/bench/test_results/flowlines.pdf differ
diff --git a/bench/test_results/forecast_actual.gif b/bench/test_results/forecast_actual.gif
index a7de84e..d8501e9 100644
Binary files a/bench/test_results/forecast_actual.gif and b/bench/test_results/forecast_actual.gif differ
diff --git a/bench/test_results/forecast_diagview.gif b/bench/test_results/forecast_diagview.gif
index 72624f3..689410b 100644
Binary files a/bench/test_results/forecast_diagview.gif and b/bench/test_results/forecast_diagview.gif differ
diff --git a/bench/test_results/forecast_leadview.gif b/bench/test_results/forecast_leadview.gif
index 6a77c95..483c616 100644
Binary files a/bench/test_results/forecast_leadview.gif and b/bench/test_results/forecast_leadview.gif differ
diff --git a/bench/test_results/gif_dashbug.gif b/bench/test_results/gif_dashbug.gif
index e580d9e..21120f5 100644
Binary files a/bench/test_results/gif_dashbug.gif and b/bench/test_results/gif_dashbug.gif differ
diff --git a/bench/test_results/graticules.pdf b/bench/test_results/graticules.pdf
index 17853a3..d4419cd 100644
Binary files a/bench/test_results/graticules.pdf and b/bench/test_results/graticules.pdf differ
diff --git a/bench/test_results/legend_1d_plots.gif b/bench/test_results/legend_1d_plots.gif
index 4fb79d9..0b6f71b 100644
Binary files a/bench/test_results/legend_1d_plots.gif and b/bench/test_results/legend_1d_plots.gif differ
diff --git a/bench/test_results/levels_one_level.gif b/bench/test_results/levels_one_level.gif
index c42f3b9..4336537 100644
Binary files a/bench/test_results/levels_one_level.gif and b/bench/test_results/levels_one_level.gif differ
diff --git a/bench/test_results/linecolors.pdf b/bench/test_results/linecolors.pdf
index b35f327..4b2eda1 100644
Binary files a/bench/test_results/linecolors.pdf and b/bench/test_results/linecolors.pdf differ
diff --git a/bench/test_results/lon_lat_label_controls.gif b/bench/test_results/lon_lat_label_controls.gif
index 339520c..1b610ec 100644
Binary files a/bench/test_results/lon_lat_label_controls.gif and b/bench/test_results/lon_lat_label_controls.gif differ
diff --git a/bench/test_results/lon_lat_label_controls.png b/bench/test_results/lon_lat_label_controls.png
index 17ce5a7..81a9020 100644
Binary files a/bench/test_results/lon_lat_label_controls.png and b/bench/test_results/lon_lat_label_controls.png differ
diff --git a/bench/test_results/multi_line_labels.pdf b/bench/test_results/multi_line_labels.pdf
index 9b2a541..a04e53f 100644
Binary files a/bench/test_results/multi_line_labels.pdf and b/bench/test_results/multi_line_labels.pdf differ
diff --git a/bench/test_results/outline_poly.pdf b/bench/test_results/outline_poly.pdf
index 1c83d45..1e2d883 100644
Binary files a/bench/test_results/outline_poly.pdf and b/bench/test_results/outline_poly.pdf differ
diff --git a/bench/test_results/polygon_plot.pdf b/bench/test_results/polygon_plot.pdf
index e813e3d..3edec80 100644
Binary files a/bench/test_results/polygon_plot.pdf and b/bench/test_results/polygon_plot.pdf differ
diff --git a/bench/test_results/pyferret_run_tests_err b/bench/test_results/pyferret_run_tests_err
index fae4d24..b498f4b 100644
--- a/bench/test_results/pyferret_run_tests_err
+++ b/bench/test_results/pyferret_run_tests_err
@@ -1,317 +1,3 @@
-Using FERRET /home/flat/ksmith/PyFerret/bin/pyferret
--rwxr-xr-x. 1 ksmith oerdnewp 1404 Apr 18 17:14 /home/flat/ksmith/PyFerret/bin/pyferret
-Using external functions from /home/flat/ksmith/PyFerret/ext_func/pylibs
-Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for PyFerret
-****** Restricting Ferret paths to bench directory ******
-FER_DAT=.
-FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_FONTS=/home/flat/ksmith/PyFerret/ppl/fonts
-FER_GO=. /home/flat/ksmith/PyFerret/go /home/flat/ksmith/PyFerret/examples /home/flat/ksmith/PyFerret/contrib
-FER_GRIDS=.
-FER_LIBS=/home/flat/ksmith/PyFerret/lib
-FER_PALETTE=. /home/flat/ksmith/PyFerret/ppl
-FER_WEB_BROWSER=firefox
-PYFER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/PyFerret/ext_func/pylibs
-Benchmark scripts that will be run:
-   bn_syntax.jnl
-   bn_dollar.jnl
-   bn_grave.jnl
-   bn_letd.jnl
-   bn_if.jnl
-   bn_expressions.jnl
-   bn_geometry.jnl
-   bn_output.jnl
-   bn_in_plane.jnl
-   bn_compress.jnl
-   bn_interpolate.jnl
-   bn_regrid.jnl
-   bn_ez.jnl
-   bn_plot.jnl
-   bn_curv.jnl
-   bn_symbols.jnl
-   bn_comma_delimited.jnl
-   bn_dynamic_grids.jnl
-   bn_cdf.jnl
-   bn_regrid_transforms.jnl
-   bn_axis_limits.jnl
-   bn_movie.jnl
-   bn_ez_order.jnl
-   bn_user.jnl
-   bn_stream.jnl
-   bn_mc.jnl
-   bn_negative_t.jnl
-   bn_xact_regrid.jnl
-   bn_gc_functions.jnl
-   bn491_bug_fixes.jnl
-   bn_odd_variable_name.jnl
-   bn_test_stream.jnl
-   bn_define_axes.jnl
-   bn_polygon.jnl
-   bn500_bug_fixes.jnl
-   bn_sample.jnl
-   bn_strides_revs_perms.jnl
-   bn_non_COARDS_netCDF.jnl
-   bn_cache_hits.jnl
-   bn_regrid_to_user.jnl
-   bn_calendar.jnl
-   bn_dash_dot.jnl
-   bn_flowlines.jnl
-   bn_logaxes.jnl
-   bn_internal_external_functions.jnl
-   bn_modulo_strides.jnl
-   bn_axis_viewports.jnl
-   bn_strings.jnl
-   bn_axcontrol.jnl
-   bn_vec_curv.jnl
-   bn_delimited_read.jnl
-   bn541_bug_fixes.jnl
-   bn_cancel_axes.jnl
-   bn542_bug_fixes.jnl
-   bn_subspan_modulo.jnl
-   bn_dots.jnl
-   bn_lev_symbols.jnl
-   bn_mode_logo_lab.jnl
-   bn_modulo_attribute.jnl
-   bn550_bug_fixes.jnl
-   bn551_bug_fixes.jnl
-   bn_multi_line_labels.jnl
-   bn552_bug_fixes.jnl
-   bn_set_var_scale_off.jnl
-   bn_longvarnames.jnl
-   bn_shakey.jnl
-   bn_eof_4d.jnl
-   bn_abstract_axis_names.jnl
-   bn_many_polygons.jnl
-   bn_fill_irregular.jnl
-   bn_xml_output.jnl
-   bn_test_nan.jnl
-   bn553_bug_fixes.jnl
-   bn_graticules.jnl
-   bn_repeat_range.jnl
-   bn554_bug_fixes.jnl
-   bn_bounds.jnl
-   bn_all_leap.jnl
-   bn570_bug_fixes.jnl
-   bn_modstats.jnl
-   bn_mc_vary_scale.jnl
-   bn_plot_nokey.jnl
-   bn580_bug_fixes.jnl
-   bn_inf_levels.jnl
-   bn_regulart.jnl
-   bn_labwid.jnl
-   bn_redefine_taxis_mc.jnl
-   bn_illegal_axisname.jnl
-   bn_exit_script.jnl
-   bn_exit_cycle.jnl
-   bn_curv_mod.jnl
-   bn_shade_keycont.jnl
-   bn581_bug_fixes.jnl
-   bn_tab_comma_multivar.jnl
-   bn_element_functions.jnl
-   bn_long_revision_num.jnl
-   bn_window_title.jnl
-   bn_last_error.jnl
-   bn_deg_min.jnl
-   bn_dp_readscale.jnl
-   bn_bounds_defineax.jnl
-   bn_attributes.jnl
-   bn_transforms.jnl
-   bn_variance.jnl
-   bn_linecolors.jnl
-   bn_cdf_errmsg.jnl
-   bn600_bug_fixes.jnl
-   bn601_bug_fixes.jnl
-   bn_set_strides.jnl
-   bn_lsl_lowpass.jnl
-   bn_return_xmod_tmod.jnl
-   bn602_bug_fixes.jnl
-   bn_modnbd.jnl
-   bn_fifty_files.jnl
-   bn603_bug_fixes.jnl
-   bn_set_var_name.jnl
-   bn_memory_symbol.jnl
-   bn605_bug_fixes.jnl
-   bn608_bug_fixes.jnl
-   bn_shade_trim.jnl
-   bn_mode_nlevels.jnl
-   bn61_bug_fixes.jnl
-   bn_test_opendap.jnl
-   bn611_bug_fixes.jnl
-   bn_no_valid_on_plot.jnl
-   bn_median.jnl
-   bn614_bug_fixes.jnl
-   bn_mode_nodata_lab.jnl
-   bn_proleptic_gregorian_calendar.jnl
-   bn_string_ngd_nbd.jnl
-   bn_cat_string.jnl
-   bn_sort_strings.jnl
-   bn_samplexyt.jnl
-   bn_last_go_file.jnl
-   bn_cancel_upcase_uservar.jnl
-   bn_cdf_keepax.jnl
-   bn_keep_axisnames.jnl
-   bn_key_label_minmax.jnl
-   bn62_bug_fixes.jnl
-   bn_convolve.jnl
-   bn_tax_tstep.jnl
-   bn_grads_z.jnl
-   bn_clock_syms.jnl
-   bn63_bug_fixes.jnl
-   bn_axis_reversed_syms.jnl
-   bn_isdepth.jnl
-   bn_var_hist_levels.jnl
-   bn64_bug_fixes.jnl
-   bn_long_grid_names.jnl
-   bn_xml_repl.jnl
-   bn65_bug_fixes.jnl
-   bn_txtype_dmy.jnl
-   bn_n_open_dsets_sym.jnl
-   bn_multi_decade.jnl
-   bn_show_xml_file.jnl
-   bn66_bug_fixes.jnl
-   bn_netcdf4.jnl
-   bn_scat2grid_bin.jnl
-   bn_axis_dir_symbols.jnl
-   bn663_bug_fixes.jnl
-   bn_set_axis_regular.jnl
-   bn_set_cancel_redirect.jnl
-   bn_min_max_smoothers.jnl
-   bn_vector_symbols.jnl
-   bn_variance_large.jnl
-   bn_labnum_calendar.jnl
-   bn665_bug_fixes.jnl
-   bn_floatstr.jnl
-   bn67_bug_fixes.jnl
-   bn_NaN_note.jnl
-   bn671_bug_fixes.jnl
-   bn68_bug_fixes.jnl
-   bn_ifv.jnl
-   bn_randu2_randn2.jnl
-   bn_axis_cf.jnl
-   bn_repeated_coords.jnl
-   bn_xml_header.jnl
-   bn_eof_simple.jnl
-   bn_eof_simple2.jnl
-   bn_interpolate_6d.jnl
-   bn_regrid_6d.jnl
-   bn_syntax_6d.jnl
-   bn_expressions_6d.jnl
-   bn_direction_fcns_6d.jnl
-   bn_regrid_transforms_6d.jnl
-   bn_aggregate_e.jnl
-   bn_6d_lab_mode.jnl
-   bn682_bug_fixes.jnl
-   bn683_bug_fixes.jnl
-   bn_outtype.jnl
-   bn_ribbon_plot.jnl
-   bn_descr_4digit.jnl
-   bn_axis_outtype.jnl
-   bn_axis_nonmonotonic.jnl
-   bn_vec_mod.jnl
-   bn685_bug_fixes.jnl
-   bn_dsg_e_x.jnl
-   bn_nco_append.jnl
-   bn_nobounds.jnl
-   bn_write_integer_att.jnl
-   bn_descriptor_mc.jnl
-   bn_plot_color_only.jnl
-   bn_vtree.jnl
-   bn686_bug_fixes.jnl
-   bn_long_symnames.jnl
-   bn_strdim.jnl
-   bn_single_colorlev.jnl
-   bn69_bug_fixes.jnl
-   bn_bad_axis_bounds.jnl
-   bn_enter_exit_GO.jnl
-   bn_stddev.jnl
-   bn_set_axis_name.jnl
-   bn_let_remote.jnl
-   bn691_bug_fixes.jnl
-   bn_append_dsg.jnl
-   bn_global_atts.jnl
-   bn_conventions_history.jnl
-   bn_center_key_labels.jnl
-   bn_wgt_transform.jnl
-   bn_show_outfile.jnl
-   bn_date1900_array.jnl
-   bn_spawn_size.jnl
-   bn_polygon_log.jnl
-   bn694_bug_fixes.jnl
-   bn_permute_ascii.jnl
-   bn_lon_lat_time_string.jnl
-   bn_save_justdim.jnl
-   bn_time2d.jnl
-   bn_legend_labels.jnl
-   bn_DQ.jnl
-   bn695_bug_fixes.jnl
-   bn_f_tax_fcns.jnl
-   bn_fmrc.jnl
-   bn_return_defined.jnl
-   bn_can_var_noerr.jnl
-   bn_annotate.jnl
-   bn_auxiliary.jnl
-   bn_plot_ribbon_gaploc.jnl
-   bn_time_short_axes.jnl
-   bn_floatstr_extended.jnl
-   bn696_bug_fixes.jnl
-   bn_bin_regrid.jnl
-   bn697_bug_fixes.jnl
-   bn_aggregate_t.jnl
-   bn_unquoted_args.jnl
-   bn_long_lists.jnl
-   bn_show_uvar_grid.jnl
-   bn_aggregate_f.jnl
-   bn_aggregate_tef.jnl
-   bn_dataset_qualifier.jnl
-   bn_speedtest.jnl
-   bn_show_noupcase.jnl
-   bn_letd_attributes.jnl
-   bn_list_clim_axes.jnl
-   bn_climatology_attr.jnl
-   bn_plot_along.jnl
-   bn_show_commands.jnl
-   bn_plot_decimate.jnl
-   bn_auto_tprec.jnl
-   bn_coordvars_atts.jnl
-   bn710_bug_fixes.jnl
-   bn_delim_datetime.jnl
-   bn_aggregate_u.jnl
-   bn_ez_noupcase.jnl
-   bn_spawn_fail.jnl
-   bn_ave_of_ave.jnl
-   bn_agg_member_syntax.jnl
-   bn_true_monthly.jnl
-   bn720_bug_fixes.jnl
-   bn_compressed_gather.jnl
-   bn_dynamic_gather.jnl
-   bn_stat_precision.jnl
-   bn_plot_vs_with_time.jnl
-   bn_inner.jnl
-   bn_cache_management.jnl
-   bn_transp_choose.jnl
-   bn_gif.jnl
-   bn_ps.jnl
-   bn_all_ef.jnl
-   bn_startupfile.jnl
-   err700_decimate.jnl
-   bn_outline_poly.jnl
-   bn_contourcolor.jnl
-   bn_inf2missing.jnl
-   testgetstrdata.py
-   testferregion.py
-   testferdset.py
-   testfervar.py
-   testferaggdset.py
-   testferaxis.py
-   testfergrid.py
-   testferpyvar.py
-   testfermethods.py
-Beginning at Tue Apr 18 17:14:32 PDT 2017
 *** Running ferret script: bn_syntax.jnl
            *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
@@ -630,7 +316,7 @@ list temp[i=2:5,gx=130e:80w:10]
 list temp[gx=130e:80w]
  **ERROR: variable unknown or not in data set: NOEXIST
 list temp[gx=u]	+ noexist
- **ERROR: illegal limits: TEMP on grid (G005) does not exist at K=30
+ **ERROR: illegal limits: TEMP on grid (G###) does not exist at K=30
           Axis extremes are K=1:27
 list temp[gx=u,k=30]
  **ERROR: illegal limits: TEMP does not contain K=20
@@ -646,7 +332,7 @@ list tu
 list tu
  **ERROR: variable unknown or not in data set: NOEXIST
 list tu
- **ERROR: illegal limits: TEMP on grid (G005) does not exist at K=30
+ **ERROR: illegal limits: TEMP on grid (G###) does not exist at K=30
           Axis extremes are K=1:27
 list tu
  **ERROR: illegal limits: TEMP does not contain K=20
@@ -1397,6 +1083,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
+ LISTing to file longaxspace.dat
 *** Running ferret script: bn542_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1417,9 +1104,9 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
            *** NOTE: Not deleted: TEST_IRREG
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Axis is in use by grid (G###)
            *** NOTE: Not deleted: TEST_IRREG
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Axis is in use by grid (G###)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -1516,7 +1203,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-rm: cannot remove `input.txt': No such file or directory
+rm: cannot remove ‘input.txt’: No such file or directory
 ls: cannot access input.txt: No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2263,8 +1950,6 @@ Replacing definition of axis TIME
  **TMAP ERR: non-existent or not on line
              this_is_not_a_file.nc
 SET DAT/FORM=CDF this_is_not_a_file.nc
-syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
  **Internet Data error
              NetCDF: file not found (OPeNDAP/netCDF Error code -90)
              Data set: http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
@@ -2430,7 +2115,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_set_strides.jnl
  **ERROR: invalid command: it is a child axis already
-set axis/stride=2/offset=1 (AX005)
+set axis/stride=2/offset=1 (AX###)
  **ERROR: invalid command: not a strided axis: COADSX
 cancel axis/stride COADSX
  **ERROR: invalid command: offset must be less than stride value
@@ -3493,7 +3178,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
-           *** NOTE: /home/flat/ksmith/PyFerret/go/magnify.jnl
+           *** NOTE: ....../go/magnify.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -3642,6 +3327,8 @@ list a.units
 list ..history
  **ERROR: variable unknown or not in data set: ..HISTORY
 list ..history
+ **ERROR: command syntax: .
+list .
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -3827,8 +3514,59 @@ set axis/name=45 x_in_meters
  **ERROR: invalid command: illegal new name given for axis .fr
 set axis/name=.fr x_in_meters
 *** Running ferret script: bn_let_remote.jnl
-syntax error, unexpected WORD_WORD, expecting SCAN_ATTR or SCAN_DATASET or SCAN_ERROR
-context: <!DOCTYPE^ html PUBLIC "-//W3C//DTD HTML+RDFa 1.1//EN"><html lang="en" dir="ltr" version="HTML+RDFa 1.1" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/ [...]
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+ **ERROR: command syntax: /REMOTE variable expression may not contain [d=
+DEFINE VARIABLE/D=1/remote rvar = t00an1[d=1,z=1:100 at ave]
+ **ERROR: command syntax: /REMOTE variable definition must also specify /D=
+DEFINE VARIABLE/remote rvar = t00an1[d=1,z=1:100 at ave]
+ **netCDF error
+             Unable to open URL with REMOTE variable definitions:
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+ **TMAP ERR: attribute reading error
+             Unable to get varid for LET/REMOTE variable: NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+ **TMAP ERR: attribute reading error
+             Unable to get bad-value for LET/REMOTE variable: NetCDF: Attribute not found (OPeNDAP/netCDF Error code -43)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+ **netCDF error
+             NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+list/x=300/y=15 avar
 *** Running ferret script: bn691_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3960,7 +3698,7 @@ list substring("hello",1,-2)
  **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
 list substring("hello",1,-3)
 *** Running ferret script: bn_append_dsg.jnl
-rm: cannot remove `test_save_dsg.nc': No such file or directory
+rm: cannot remove ‘test_save_dsg.nc’: No such file or directory
 *** Running ferret script: bn_global_atts.jnl
  LISTing to file anew_global.nc
 *** Running ferret script: bn_conventions_history.jnl
@@ -4142,7 +3880,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-rm: cannot remove `WestCoastCarbon_9d9c_f562_77b5_5.nc': No such file or directory
+rm: cannot remove ‘WestCoastCarbon_9d9c_f562_77b5_5.nc’: No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -4190,7 +3928,7 @@ def anno/nou/xpos=0/hal=1/val=0 "My Lab"
  **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
 def anno/nou/user/xpos=0/ypos=0 "My Lab"
 *** Running ferret script: bn_auxiliary.jnl
-rm: cannot remove `layerz_test_data.txt': No such file or directory
+rm: cannot remove ‘layerz_test_data.txt’: No such file or directory
  LISTing to file layerz_test_data.txt
  **ERROR: variable unknown or not in data set: (data set ok ?): noexist
 SET VAR/layerz=depth noexist
@@ -4278,8 +4016,6 @@ load/l=1:5 bigvar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-Cannot create cookie file
-Cannot create cookie file
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -4377,7 +4113,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file tmp/tagg_reg_no_T.nc
  LISTing to file tmp/tagg_reg_2_overlarge.nc
            *** NOTE: Not deleted: TDAY
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Axis is in use by grid (G###)
  LISTing to file tmp/tagg_irreg_1.nc
  LISTing to file tmp/tagg_irreg_2.nc
  LISTing to file tmp/tagg_irreg_3.nc
@@ -4391,7 +4127,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TDAY_IR
  LISTing to file tmp/tagg_irreg_2_reg.nc
            *** NOTE: Not deleted: TDAY_IR
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Axis is in use by grid (G###)
  LISTing to file tmp/tagg_T0varying_1.nc
 Replacing definition of axis TDAY_TVAR
  LISTing to file tmp/tagg_T0varying_2.nc
@@ -4427,15 +4163,15 @@ Replacing definition of axis TDAY_TVAR
  LISTing to file tmp/tagg_disjoint_T0varying_3.nc
  LISTing to file tmp/tagg_disjoint_T0varying_4_wrong.nc
            *** NOTE: Not deleted: TDAY_WRONG
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Axis is in use by grid (G###)
  LISTing to file tmp/tagg_single_1.nc
  LISTing to file tmp/tagg_single_2.nc
  LISTing to file tmp/tagg_single_3.nc
  LISTing to file tmp/tagg_single_4.nc
  LISTing to file tmp/tagg_single_5.nc
  LISTing to file tmp/tagg_single_6.nc
-           *** NOTE: Not deleted: tday
-           *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: Not deleted: TDAY
+           *** NOTE: Axis is in use by grid (G###)
            *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: invalid command: given aggregation dataset name already in use: myagg2
@@ -4482,9 +4218,9 @@ go/garbage tmp/testMe
  **ERROR: unknown command qualifier: garbage
 go/garbage "tmp/testMe"
  **ERROR: unknown command qualifier: garbage
-go/garbage /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl
+go/garbage ....../bench/tmp/testMe.jnl
  **ERROR: unknown command qualifier: garbage
-go/garbage "/home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl"
+go/garbage "....../bench/tmp/testMe.jnl"
 *** Running ferret script: bn_long_lists.jnl
  **ERROR: command syntax: command line too long -- exceeds 2048
 DEFINE VARIABLE a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7 [...]
@@ -4815,9 +4551,6 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAXIS
 Replacing definition of axis YAXIS
 Replacing definition of axis TAXIS
@@ -4962,8 +4695,8 @@ list index,edtim,udtim,udate,edate
  LISTing to file a.nc
 *** Running ferret script: bn_spawn_fail.jnl
 ls: cannot access notafile.nowhere: No such file or directory
-rm: cannot remove `nothing.dat': No such file or directory
-cp: cannot stat `nofile.dat': No such file or directory
+rm: cannot remove ‘nothing.dat’: No such file or directory
+cp: cannot stat ‘nofile.dat’: No such file or directory
 *** Running ferret script: bn_ave_of_ave.jnl
 *** Running ferret script: bn_agg_member_syntax.jnl
  **ERROR: unknown data set: D=5.3
@@ -5069,6 +4802,18 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+           *** NOTE: Saving E or F axis with time axis uses /RIGID in time
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -5076,6 +4821,31 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **ERROR: PPLUS command syntax error: Symbol not found PPLUS show nosymbol
+pplus show nosymbol
+ **ERROR: PPLUS command syntax error: Symbol not found PPLUS show
+ppl show
+ **ERROR: PPLUS command syntax error:  Command not recognized: PPLUS NONSENSE
+PPL nonsense
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis tax
+           *** NOTE: Ambiguous coordinates on T axis: S1*A
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **ERROR: invalid command: Mismatched parentheses within REPEAT loop
+repeat/range=1:3:1/name=count (def sym count = `count`; say 3; message/continue))
 *** Running ferret script: bn_compressed_gather.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -5312,7 +5082,7 @@ SET MODE FRUGAL:95
 *** Running ferret script: bn_plot_vs_with_time.jnl
 Replacing definition of axis TIME
 Replacing definition of axis TIME
-*** Running ferret script: bn_inner.jnl
+*** Running ferret script: bn_dot_product.jnl
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -5362,6 +5132,25 @@ ls: cannot access tmp/test_auto_cache_20.nc: No such file or directory
  LISTing to file test_auto_cache.out
 *** Running ferret script: bn_transp_choose.jnl
  TEMPORARY data cleared from memory
+*** Running ferret script: bn_iin_regrid.jnl
+ **ERROR: regridding: @IIN regridding must be to axis with same grid-cell sizes
+list a[gx=alinenew at iin]
+Replacing definition of axis ALINENEW
+Replacing definition of axis ALINENEW
+Replacing definition of axis ALINENEW
+ TEMPORARY data cleared from memory
+Replacing definition of axis ALINE
+Replacing definition of axis ALINE_EDGES
+Replacing definition of axis ALINE
+Replacing definition of axis ALINE_EDGES
+Replacing definition of axis OTHERAXIS
+Replacing definition of axis ALINE
+Replacing definition of axis ALINE_EDGES
+Replacing definition of axis OTHERAXIS
+Replacing definition of axis ALINE
+Replacing definition of axis ALINE_EDGES
+Replacing definition of axis ALINE
+Replacing definition of axis ALINE_EDGES
 *** Running ferret script: bn_gif.jnl
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
@@ -5427,6 +5216,24 @@ ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Re-defining viewport LL6
+Re-defining viewport UL6
+Re-defining viewport LM6
+Re-defining viewport UM6
+Re-defining viewport LR6
+Re-defining viewport UR6
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_ps.jnl
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
@@ -5471,6 +5278,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
 *** Running ferret script: err700_decimate.jnl
+*** Running ferret script: bn_color_wire.jnl
 *** Running ferret script: bn_outline_poly.jnl
 *** Running ferret script: bn_contourcolor.jnl
 *** Running ferret script: bn_inf2missing.jnl
@@ -5483,11 +5291,11 @@ ooooooooooooooooooooooooooooooooooooooooooo
 *** Running python script: testfervar.py
 >>> ... ... >>> >>> >>> Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
-  File "/home/flat/ksmith/PyFerret/lib/python2.6/site-packages/pyferret/ferdset.py", line 230, in __delattr__
+  File "....../lib/python2.7/site-packages/pyferret/ferdset.py", line 230, in __delattr__
     self.__delitem__(name)
-  File "/home/flat/ksmith/PyFerret/lib/python2.6/site-packages/pyferret/ferdset.py", line 165, in __delitem__
+  File "....../lib/python2.7/site-packages/pyferret/ferdset.py", line 165, in __delitem__
     value._removefromferret()
-  File "/home/flat/ksmith/PyFerret/lib/python2.6/site-packages/pyferret/fervar.py", line 882, in _removefromferret
+  File "....../lib/python2.7/site-packages/pyferret/fervar.py", line 882, in _removefromferret
     raise NotImplementedError('%s is a file variable; close the dataset to remove' % fername)
 NotImplementedError: SST[d=coads_climatology.cdf] is a file variable; close the dataset to remove
 
@@ -5502,4 +5310,3 @@ NotImplementedError: SST[d=coads_climatology.cdf] is a file variable; close the
 >>> ... ... >>> >>> >>> 
 *** Running python script: testfermethods.py
 >>> ... ... >>> >>> >>> 
-Ended at Tue Apr 18 17:19:10 PDT 2017
diff --git a/bench/test_results/pyferret_run_tests_log b/bench/test_results/pyferret_run_tests_log
index 953c137..86c94d7 100644
--- a/bench/test_results/pyferret_run_tests_log
+++ b/bench/test_results/pyferret_run_tests_log
@@ -1,22 +1,4 @@
-Using FERRET /home/flat/ksmith/PyFerret/bin/pyferret
--rwxr-xr-x. 1 ksmith oerdnewp 1404 Apr 18 17:14 /home/flat/ksmith/PyFerret/bin/pyferret
-Using external functions from /home/flat/ksmith/PyFerret/ext_func/pylibs
-Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for PyFerret
 ****** Restricting Ferret paths to bench directory ******
-FER_DAT=.
-FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_FONTS=/home/flat/ksmith/PyFerret/ppl/fonts
-FER_GO=. /home/flat/ksmith/PyFerret/go /home/flat/ksmith/PyFerret/examples /home/flat/ksmith/PyFerret/contrib
-FER_GRIDS=.
-FER_LIBS=/home/flat/ksmith/PyFerret/lib
-FER_PALETTE=. /home/flat/ksmith/PyFerret/ppl
-FER_WEB_BROWSER=firefox
-PYFER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/PyFerret/ext_func/pylibs
 Benchmark scripts that will be run:
    bn_syntax.jnl
    bn_dollar.jnl
@@ -291,14 +273,16 @@ Benchmark scripts that will be run:
    bn_dynamic_gather.jnl
    bn_stat_precision.jnl
    bn_plot_vs_with_time.jnl
-   bn_inner.jnl
+   bn_dot_product.jnl
    bn_cache_management.jnl
    bn_transp_choose.jnl
+   bn_iin_regrid.jnl
    bn_gif.jnl
    bn_ps.jnl
    bn_all_ef.jnl
    bn_startupfile.jnl
    err700_decimate.jnl
+   bn_color_wire.jnl
    bn_outline_poly.jnl
    bn_contourcolor.jnl
    bn_inf2missing.jnl
@@ -311,9 +295,8 @@ Benchmark scripts that will be run:
    testfergrid.py
    testferpyvar.py
    testfermethods.py
-Beginning at Tue Apr 18 17:14:32 PDT 2017
 *** Running ferret script: bn_syntax.jnl
-[?1034h! bn401_syntax.JNL
+! bn401_syntax.JNL
 ! - test syntax interpretation of Program FERRET
 ! - major changes for FERRET ver 2.00 5/90
 ! - changed mode REMOTE to mode STUPID - REMOTE removed in V2.30
@@ -457,7 +440,7 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  V1       V1                               1:2       ...       ...       ...
-               on grid (G008) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=-0.5:1.5  
  
  /FORMAT = FREE
@@ -1256,7 +1239,7 @@ J1111111112222222222333333333344444444445555555555666666666677777777778888888888
 *** A111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000B111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000C111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000D111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000E111111111222222222233333333334444444444555555555566666666667777777777888888888899999999 [...]
  
 *** Running ferret script: bn_dollar.jnl
-[?1034h! test this with GO journal hello
+! test this with GO journal hello
  
 ! V510: 3/00 *sh* added tests of backslash escapes and surrounding quotations
 ! V532: 5/01 *sh* added tests of 2-digit arguments; made mode ignore stricter
@@ -1425,7 +1408,7 @@ set mode ignore
   say ($10)0      ! argument 10 not defined
 set mode/last ignore
 *** Running ferret script: bn_grave.jnl
-[?1034h! bn420_grave
+! bn420_grave
 ! benchmark to test evaluation of grave accent-enclosed expressions
 ! requires FERRET version 4.00 or later
  
@@ -1748,7 +1731,7 @@ say `sst,return=trash`
 set mode/last ignore_errors
  
 *** Running ferret script: bn_letd.jnl
-[?1034h! bn420_letd.jnl
+! bn420_letd.jnl
 ! 9/1/95
  
 ! test LET definitions with the /D qualifier:  LET, SHOW, SET VAR, CANCEL
@@ -2022,7 +2005,7 @@ list q[d=v12file]
  3   / 3:   4.00   5.00   6.00   7.00   8.00   9.00  10.00  11.00
  
 *** Running ferret script: bn_if.jnl
-[?1034h! bn430_if
+! bn430_if
 ! 5/6/96
 ! 5/22/96 - added nested multi-line IF with nesting in REJECTED clause
  
@@ -2114,7 +2097,7 @@ IF yes THEN
   say ---->... now inside of IF clause
 ---->... now inside of IF clause
 *** Running ferret script: bn_expressions.jnl
-[?1034h! bn450_expressions.JNL
+! bn450_expressions.JNL
 ! test all manner of expressions
 ! V450 - commented out MODE POLISH test -- mode was eliminated
 ! V530 - new pseudo-variables XBOXLO, YBOXHI, etc.
@@ -2642,7 +2625,7 @@ LIST/L=5:7 TBOXLO, TBOXHI
 6   / 6:  5.500  6.500
 7   / 7:  6.500  7.500
 *** Running ferret script: bn_geometry.jnl
-[?1034h! bn200_geometry.JNL
+! bn200_geometry.JNL
 ! benchmark various geometries for accessing FERRET data
 ! similar tests are performed on:
 !	abstract variable
@@ -3935,7 +3918,7 @@ SET MODE/LAST IGNORE_ERRORS
  
  
 *** Running ferret script: bn_output.jnl
-[?1034h! bn200_output.JNL
+! bn200_output.JNL
 ! - test various output methods in FERRET
 ! rev 0.0  4/27/90 *sh*
 ! 4/17 *acm* LIST/CLOBBER files (these are removed by run_all too)
@@ -6922,7 +6905,7 @@ SET MODE/LAST IGNORE
 CANCEL LIST
  
 *** Running ferret script: bn_in_plane.jnl
-[?1034h! bn200_in_plane.JNL
+! bn200_in_plane.JNL
 ! benchmark various geometries with in-plane transformation applied (@SBX)
 ! this benchmark is layered on the compress benchmark to obtain the geometries
 ! similar tests are performed on:
@@ -7436,7 +7419,7 @@ LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
             2      3      4
          -2.855 -1.567 -0.836
 *** Running ferret script: bn_compress.jnl
-[?1034h! bn200_compress.JNL
+! bn200_compress.JNL
 ! benchmark various geometries obtained by compressing FERRET data with @AVE
 ! similar tests are performed on:
 !	abstract variable
@@ -7942,7 +7925,7 @@ LIST/ORDER=X v[i=@ave,j=@ave,k=@ave,l=@ave]
 ! remove call to bn200_compress.sub_qady for portable benchmarks *kob* 5/99
 ! ****
 *** Running ferret script: bn_interpolate.jnl
-[?1034h! bn200_interpolate.JNL
+! bn200_interpolate.JNL
 ! benchmark interpolation along various axes
  
 SET LIST/PRECISION=6
@@ -8337,7 +8320,7 @@ LIST v[@xpt, at ypt, at zpt, at tpt]
              T        : 1.0005 (interpolated)
           1113.00
 *** Running ferret script: bn_regrid.jnl
-[?1034h! bn200_regrid.JNL
+! bn200_regrid.JNL
 ! test regridding
 ! first test consists of regridding and re-regridding back and comparing
 ! when the variable, v is linear along all axes results should be exact
@@ -8470,17 +8453,17 @@ list v1234
  9   / 5:  2998.  3998.  4998.
  ---- L:4 T:   08-JAN-1980 00:00
  ---- K:3 Z:   5
- 5   / 3:  2779.  3779.  4779.
- 7   / 4:  2879.  3879.  4879.
- 9   / 5:  2979.  3979.  4979.
+ 5   / 3:  2778.  3778.  4778.
+ 7   / 4:  2878.  3878.  4878.
+ 9   / 5:  2978.  3978.  4978.
  ---- K:4 Z:   7
- 5   / 3:  2789.  3789.  4789.
- 7   / 4:  2889.  3889.  4889.
- 9   / 5:  2989.  3989.  4989.
+ 5   / 3:  2788.  3788.  4788.
+ 7   / 4:  2888.  3888.  4888.
+ 9   / 5:  2988.  3988.  4988.
  ---- K:5 Z:   9
- 5   / 3:  2799.  3799.  4799.
- 7   / 4:  2899.  3899.  4899.
- 9   / 5:  2999.  3999.  4999.
+ 5   / 3:  2798.  3798.  4798.
+ 7   / 4:  2898.  3898.  4898.
+ 9   / 5:  2998.  3998.  4998.
  ---- L:5 T:   10-JAN-1980 00:00
  ---- K:3 Z:   5
  5   / 3:  2780.  3780.  4780.
@@ -9714,7 +9697,7 @@ list a24[g=g48]-a48
  05-JAN-1980 00 / 3: -438312.
  07-JAN-1980 00 / 4: -438312.
 *** Running ferret script: bn_ez.jnl
-[?1034h! bn401_ez.JNL
+! bn401_ez.JNL
 ! test all manner of accessing non-TMAP data files
 ! V401 modified from bn200_ez.jnl by the addition of a test of UNF reading
  
@@ -9727,7 +9710,7 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  V1       V1                               1:5       ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:5.5  
  
  /FORMAT = FREE
@@ -9757,10 +9740,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:5       ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:5.5  
  X2       X2                               1:5       ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:5.5  
  
  /FORMAT = FREE
@@ -9793,10 +9776,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = FREE
@@ -9837,10 +9820,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = FREE
@@ -9875,10 +9858,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = FREE
@@ -9910,10 +9893,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = (3(F14.0,F7.0))
@@ -9948,10 +9931,10 @@ SHOW DATA/FULL
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  X2       X2                               1:15      ...       ...       ...
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:15.5  
  
  /FORMAT = (3(F14.0,F7.0)/)
@@ -10092,14 +10075,14 @@ LIST X1
              VARIABLE : X1
              FILENAME : EZ.DAT
              SUBSET   : 8 points (X)
- 1   / 1:  0.0060
- 2   / 2:  0.1760
- 3   / 3:  0.2820
- 4   / 4:  0.3550
- 5   / 5:  0.3790
- 6   / 6:  0.3930
- 7   / 7:    ....
- 8   / 8:  0.0000
+ 1   / 1:  6.000E-03
+ 2   / 2:  1.760E-01
+ 3   / 3:  2.820E-01
+ 4   / 4:  3.550E-01
+ 5   / 5:  3.790E-01
+ 6   / 6:  3.930E-01
+ 7   / 7:       ....
+ 8   / 8:  4.981+173
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
@@ -10127,7 +10110,7 @@ list my_var
  9    /  9:   9.00
  10   / 10:  10.00
 *** Running ferret script: bn_plot.jnl
-[?1034h! bn450_plot.JNL - updated 9/97 from bn320_plot.jnl
+! bn450_plot.JNL - updated 9/97 from bn320_plot.jnl
 ! upgraded from bn320 to provide method for testing batch mode.  Also remove
 ! all labels to create "master" gif and ps files to compare against
 ! *kob*
@@ -10325,7 +10308,7 @@ polygon/thick/color=red/palette=blue {1,2,1}, {2,1,0.5}
  
 set mode/last logo
 *** Running ferret script: bn_curv.jnl
-[?1034hcancel mode ignore
+cancel mode ignore
 !
 ! Your basic map projection
 !
@@ -10502,7 +10485,7 @@ can mode ignore
  
 set mode meta bnplot.plt
 *** Running ferret script: bn_symbols.jnl
-[?1034h! bn420_symbols
+! bn420_symbols
 ! benchmark to test machinery of symbol definition and use
 ! requires FERRET version 4.00 or later
  
@@ -10523,22 +10506,23 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 3.10.0-514.26.2.el7.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:14"
-SESSION_PID = "13862"
-DELTA_CPU = "0.215966"
-CLOCK_SECS = "0.102"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:14:41"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
 PEAK_MEMORY = "0"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
  
 ! define some symbols ... syntax variations
 define symbol s1 = hello
@@ -10554,22 +10538,23 @@ show symbol/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 3.10.0-514.26.2.el7.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:14"
-SESSION_PID = "13862"
-DELTA_CPU = "0.006999"
-CLOCK_SECS = "0.11"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:14:41"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
 PEAK_MEMORY = "0"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10577,10 +10562,11 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:14"
-SESSION_PID = "13862"
-SPAWN_STATUS = "1"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10590,17 +10576,19 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:14"
-SESSION_PID = "13862"
-SPAWN_STATUS = "1"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:14"
-SESSION_PID = "13862"
-SPAWN_STATUS = "1"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10728,25 +10716,26 @@ show symbols/all
 PPL$XPIXEL = "819"
 PPL$YPIXEL = "707"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 3.10.0-514.26.2.el7.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:14"
-SESSION_PID = "13862"
-DELTA_CPU = "0.017998"
-CLOCK_SECS = "0.128"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:14:41"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
 PEAK_MEMORY = "201"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
  
 *** Running ferret script: bn_comma_delimited.jnl
-[?1034h! bn420_comma_delimited
+! bn420_comma_delimited
  
 ! 10/2/95 - test comma and tab-delimited outputs
  
@@ -12404,7 +12393,7 @@ LIST/FORMAT=comma/precision=5 10*j+i
 2,21,22,23,24,25
 3,31,32,33,34,35
 *** Running ferret script: bn_dynamic_grids.jnl
-[?1034h! bn420_dynamic_grids
+! bn420_dynamic_grids
 ! 9/95-9/11/95 - test the creation, destruction, and use of dynamic grids
 ! 2/96 - added GX=lo:hi:delta notation
 ! 4/98 *sh* changes once again to confine_axis -- earlier trapped error is once
@@ -12432,7 +12421,7 @@ set region/l=1/k=1/i=101:105/j=46:50
 load temp[gx=u]
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12479,7 +12468,7 @@ Dynamic axes:
 list temp[gx=u,k=20]		! err during read
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12519,7 +12508,7 @@ list temp[gx=a]			! uvar for grid name
  0.17N / 46:  23.90  23.79  23.70  23.65  23.69
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12562,7 +12551,7 @@ let  tu = temp[gx=u,k=20]
 list tu				! err during read
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12594,7 +12583,7 @@ list temp[gz=z999999,z=5:15]	! err during regrid
     The size of the requested object was: : 24999975 (250%)
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12606,7 +12595,7 @@ set mem/siz=`save_mem`
 shade 1/0 * temp[gx=u]		! err during plot
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12634,7 +12623,7 @@ list temp[gx=psxu]
  0.17N / 46:  23.90  23.79  23.70  23.65  23.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12672,7 +12661,7 @@ list temp[gx=u]
  0.17N / 46:  23.90  23.79  23.70  23.65  23.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12709,7 +12698,7 @@ list  temp[gx=psxu] + 5
  0.17N / 46:  28.90  28.79  28.70  28.65  28.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12731,7 +12720,7 @@ list  5 + temp[gx=psxu]
  0.17N / 46:  28.90  28.79  28.70  28.65  28.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12754,14 +12743,14 @@ list tu
  0.17N / 46:  23.90  23.79  23.70  23.65  23.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
 show grid tu
-    GRID (G005)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  PSXU      LONGITUDE          160mr   131E                 70W                 full
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
@@ -12784,7 +12773,7 @@ list tu
  0.17N / 46:  28.90  28.79  28.70  28.65  28.69
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12859,7 +12848,7 @@ list temp[gx=taux]		! X only
  0.17S / 45:  27.87  27.79  27.72  27.65  27.56  27.45
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
  PSXU      LONGITUDE          160mr   131E                 70W
  PSYT      LATITUDE           100 i   28.836S              48.568N
@@ -12968,7 +12957,7 @@ Dynamic axes:
 ! * * * dynamic generation of pseudo-variables * * *
 list x[x=.1:1:.1]			! dynamic abstract
              VARIABLE : X
-                        axis (AX010)
+                        axis (AX###)
              SUBSET   : 10 points (X)
  0.1  /  1:  0.100
  0.2  /  2:  0.200
@@ -12982,7 +12971,7 @@ list x[x=.1:1:.1]			! dynamic abstract
  1    / 10:  1.000
 list x[gx=psxu,x=130:150:2.5]		! dynamic based on named axis
              VARIABLE : X
-                        axis (AX009)
+                        axis (AX###)
              SUBSET   : 9 points (LONGITUDE)
  130E   / 1:  130.0
  132.5E / 2:  132.5
@@ -13067,10 +13056,10 @@ list a[y=95:115:7]
  109   / 3:  109.1  110.6  112.1  113.6  115.1  116.6  118.1
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX011)   X                    7 r   0.1                  9.1
- (AX009)   Y                    3 r   95                   109
+ (AX###)   X                    7 r   0.1                  9.1
+ (AX###)   Y                    3 r   95                   109
  normal    Z
  normal    T
  
@@ -13090,9 +13079,9 @@ list/order=x a
            1.20   4.20   7.20  10.20  13.20  16.20  19.20
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
- (AX009)   X                    7 r   0.1                  9.1
+ (AX###)   X                    7 r   0.1                  9.1
  normal    Y
  normal    Z
  normal    T
@@ -13119,10 +13108,10 @@ let/quiet b = a[i=1:10:2]
 load b     ! "child" irregular axis
 show grid/x
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G005)
-    GRID (G005)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX011)   X                    5 i   1                    6561                5 pts
+ (AX###)   X                    5 i   1                    6561                5 pts
  normal    Y
  normal    Z
  normal    T
@@ -13152,7 +13141,7 @@ list/i=1:10 x[gx=temp]			! from named variable
  139.5E / 10:  139.5
 list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX012)
+                        axis (AX###)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.0
@@ -13166,7 +13155,7 @@ list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
  130W   / 9:  230.0
 list x[gx=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX010)
+                        axis (AX###)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.0
@@ -13194,9 +13183,9 @@ list/i=101:105/j=46:50/l=1/k=1 temp+x	! grid inherited from expression
  0.17N / 46:  254.5  255.3  256.2  257.2  258.1
 show grid/dyn
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX011)   X                    5 i   1                    6561
+ (AX###)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
@@ -13219,9 +13208,9 @@ list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[i=101:120:4]	! NOT !!!
  0.17N / 46:  125.0  128.6  133.0  136.4  140.4
 show grid/dynamic
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX009)   LONGITUDE            5 r   129.5W               113.5W
+ (AX###)   LONGITUDE            5 r   129.5W               113.5W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13247,7 +13236,7 @@ SET REGION/I=101:105/J=46:50/l=1/k=1
 ! deliberate errors:  ****
 list x[i=5:1:1]		! not an error: inverted order
              VARIABLE : X
-                        axis (AX009)
+                        axis (AX###)
              SUBSET   : 5 points (X)
  1   / 1:  1.000
  2   / 2:  2.000
@@ -13290,9 +13279,9 @@ list temp[i=-200:-190:2]! was: "completely out of range"  now: ok - subspan modu
 canc mode ignore
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX009)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
+ (AX###)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13360,10 +13349,10 @@ list temp[y=0.5s:5n:1.5]
  0.5S / 1:  24.07  23.99  23.89  23.79  23.70
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX009)   LATITUDE             4 r   0.5S                 4N
+ (AX###)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  
@@ -13525,10 +13514,10 @@ list temp[x=130w:120W:3,y=0.5s:5n:1.5]
  0.5S / 1:  24.11  23.84  23.66  23.64
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX012)   LONGITUDE            4 r   130W                 121W
- (AX010)   LATITUDE             4 r   0.5S                 4N
+ (AX###)   LONGITUDE            4 r   130W                 121W
+ (AX###)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  
@@ -13696,9 +13685,9 @@ list a[x=138w:110w:5]
  0.17N / 46:   ....   ....  23.81  23.86   ....   ....
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX010)   LONGITUDE            6 r   138W                 113W
+ (AX###)   LONGITUDE            6 r   138W                 113W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13837,9 +13826,9 @@ list temp[x=90w:60W:4]
  0.17N / 46:  26.54  26.90  27.28   ....   ....   ....  29.63  29.61
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX012)   LONGITUDE            8 r   90W                  62W
+ (AX###)   LONGITUDE            8 r   90W                  62W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -14022,9 +14011,9 @@ list a[x=101w:50w:6]
 cancel axis/modulo psxt
 show grid/dyn
 Dynamic grids:
-    GRID (G006)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
- (AX011)   LONGITUDE            9 r   101W                 53W
+ (AX###)   LONGITUDE            9 r   101W                 53W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -14061,7 +14050,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
 list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`]			! pseudo-var
  !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
-                        axis (AX009)
+                        axis (AX###)
              SUBSET   : 3 points (TIME)
  15-JAN-1982 00 / 1:  723925.
  17-JAN-1982 00 / 2:  723927.
@@ -14077,7 +14066,7 @@ set axis/modulo psxt
  
 set mode/last diag
 *** Running ferret script: bn_cdf.jnl
-[?1034h! bn320_cdf
+! bn320_cdf
 ! benchmark to test netCDF input and output
 ! requires version 3.20 or later
 ! updated from version 2.3 1/26/95
@@ -14963,7 +14952,7 @@ list/x=180 fcn_rev_sub
  0    / 11:  0.0000
  1S   / 10:  0.3166
 *** Running ferret script: bn_regrid_transforms.jnl
-[?1034h! bn500_regrid_transforms
+! bn500_regrid_transforms
 ! benchmark to test regridding transformations and syntax
 ! requires version 2.30 or later
 ! 8/92
@@ -15080,17 +15069,17 @@ load temp[g=u,gx=@ave,gy=@asn]
 load temp[gx=u]  		! changed V4.20 --> implicit regrid
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
+ allocate dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
+ dealloc  dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
+ allocate dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
  eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      3      4
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
- strip regrid on X: TEMP --> (G009)           @LIN
+ allocate dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
+ strip regrid on X: TEMP --> (G###)           @LIN
  found   TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
  regrid  TEMP     M:  4 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      3      4
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
+ dealloc  dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
 stat temp[g=u] - temp[g=u at ave,gx=u at lin,gy=u at lin,gz=u at lin,gt=u at lin]  ! == 0
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
+ dealloc  dynamic grid (G###)          PSXU      PSYT      PSZT      TIME2
  -DELETE TEMP     M:  4 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      3      4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
@@ -17291,21 +17280,21 @@ list a1[gx=xoffset at ave]
  dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @AVE
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @AVE
  eval    A1       C:  7 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:182 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  regrid  A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17318,18 +17307,18 @@ list a1[gx=xoffset at ave]
  7.1 / 7:   ....
 list a1[gx=xoffset at sum] ! should sum to 5
  -DELETE X        M:182 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @SUM
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @SUM
  found   A1       M:183 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17341,18 +17330,18 @@ list a1[gx=xoffset at sum] ! should sum to 5
  6.1 / 6:   ....
  7.1 / 7:   ....
 list a1[gx=xoffset at var] ! should be all missing
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @VAR
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @VAR
  found   A1       M:183 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X1PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17365,25 +17354,25 @@ list a1[gx=xoffset at var] ! should be all missing
  7.1 / 7:....
  
 list a2[gx=xoffset at ave]
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @AVE
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @AVE
  eval    A2       C:  7 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:184 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  regrid  A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17396,18 +17385,18 @@ list a2[gx=xoffset at ave]
  7.1 / 7:   ....
 list a2[gx=xoffset at sum] ! should sum to 5+6=11
  -DELETE X        M:184 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @SUM
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @SUM
  found   A2       M:182 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17419,18 +17408,18 @@ list a2[gx=xoffset at sum] ! should sum to 5+6=11
  6.1 / 6:  5.400
  7.1 / 7:   ....
 list a2[gx=xoffset at var]
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @VAR
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @VAR
  found   A2       M:182 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X2PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17448,42 +17437,42 @@ define axis/y=5/npoints=1 y1pt
 define axis/y=5:6:1 y2pt
  
 let a1 = x[gx=x1pt]+y[gy=y1pt]
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A2       M:185 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  -DELETE A2       M:182 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  -DELETE A1       M:183 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
 let a2 = x[gx=x2pt]+y[gy=y2pt]
  
 list a1[gx=xoffset at ave, gy=yoffset at ave]
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL
- dealloc  dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          NORMAL    Y1PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    Y1PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      Y1PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @AVE
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @AVE
  strip regrid on Y: A1 --> XNTERMED         @AVE
  eval    A1       C:  8 dset:   0 I:      1      1  J:    1    1  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:183 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          NORMAL    Y1PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          NORMAL    Y1PT      NORMAL    NORMAL
  pseudo  Y        M:182 dset:   0 I:   -999   -999  J:    1    1  K: -999 -999  L:   -999   -999
  -DELETE Y        M:182 dset:   0 I:   -999   -999  J:    1    1  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          NORMAL    Y1PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    Y1PT      NORMAL    NORMAL
  -DELETE X        M:183 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  regrid  A1       M:183 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A1       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A1       M:183 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]+Y[GY=Y1PT]
                         regrid: 1 delta on X at AVE, 1 delta on Y at AVE
              SUBSET   : 7 by 7 points (X-Y)
@@ -17497,21 +17486,21 @@ list a1[gx=xoffset at ave, gy=yoffset at ave]
  6.1 / 6:   ....   ....   ....   ....   ....   ....   ....
  7.1 / 7:   ....   ....   ....   ....   ....   ....   ....
 list a1[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A1       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @SUM
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @SUM
  strip regrid on Y: A1 --> XNTERMED         @SUM
  found   A1       M:185 dset:   0 I:      1      1  J:    1    1  K: -999 -999  L:   -999   -999
  regrid  A1       M:182 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A1       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A1       M:182 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]+Y[GY=Y1PT]
                         regrid: 1 delta on X at SUM, 1 delta on Y at SUM
              SUBSET   : 7 by 7 points (X-Y)
@@ -17525,21 +17514,21 @@ list a1[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10
  6.1 / 6:   ....   ....   ....   ....   ....   ....   ....
  7.1 / 7:   ....   ....   ....   ....   ....   ....   ....
 list a1[gx=xoffset at var, gy=yoffset at var] ! should be all missing
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A1       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @VAR
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @VAR
  strip regrid on Y: A1 --> XNTERMED         @VAR
  found   A1       M:185 dset:   0 I:      1      1  J:    1    1  K: -999 -999  L:   -999   -999
  regrid  A1       M:183 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A1       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A1       M:183 dset:   0 I:      1      1  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X1PT]+Y[GY=Y1PT]
                         regrid: 1 delta on X at VAR, 1 delta on Y at VAR
              SUBSET   : 7 by 7 points (X-Y)
@@ -17554,35 +17543,35 @@ list a1[gx=xoffset at var, gy=yoffset at var] ! should be all missing
  7.1 / 7:............................
  
 list a2[gx=xoffset at ave, gy=yoffset at ave]
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A1       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          NORMAL    Y2PT      NORMAL    NORMAL
- dealloc  dynamic grid (G010)          NORMAL    Y2PT      NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      Y2PT      NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          NORMAL    Y2PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @AVE
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @AVE
  strip regrid on Y: A2 --> XNTERMED         @AVE
  eval    A2       C:  8 dset:   0 I:      1      2  J:    1    2  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:182 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G013)          NORMAL    Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G###)          NORMAL    Y2PT      NORMAL    NORMAL
  pseudo  Y        M:183 dset:   0 I:   -999   -999  J:    1    2  K: -999 -999  L:   -999   -999
  -DELETE Y        M:183 dset:   0 I:   -999   -999  J:    1    2  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G013)          NORMAL    Y2PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    Y2PT      NORMAL    NORMAL
  -DELETE X        M:182 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  regrid  A2       M:182 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A2       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A2       M:182 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]+Y[GY=Y2PT]
                         regrid: 1 delta on X at AVE, 1 delta on Y at AVE
              SUBSET   : 7 by 7 points (X-Y)
@@ -17596,21 +17585,21 @@ list a2[gx=xoffset at ave, gy=yoffset at ave]
  6.1 / 6:   ....   ....   ....  11.00  11.10  12.00   ....
  7.1 / 7:   ....   ....   ....   ....   ....   ....   ....
 list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A2       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @SUM
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @SUM
  strip regrid on Y: A2 --> XNTERMED         @SUM
  found   A2       M:184 dset:   0 I:      1      2  J:    1    2  K: -999 -999  L:   -999   -999
  regrid  A2       M:183 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A2       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A2       M:183 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]+Y[GY=Y2PT]
                         regrid: 1 delta on X at SUM, 1 delta on Y at SUM
              SUBSET   : 7 by 7 points (X-Y)
@@ -17625,21 +17614,21 @@ list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
  7.1 / 7:   ....   ....   ....   ....   ....   ....   ....
  ! NOTE: as of V5.1 NO xy_var trans exists.  Need it to be complete ...!
 list a2[gx=xoffset at var, gy=yoffset at var]
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A2       M:182 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @VAR
+ allocate dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @VAR
  strip regrid on Y: A2 --> XNTERMED         @VAR
  found   A2       M:184 dset:   0 I:      1      2  J:    1    2  K: -999 -999  L:   -999   -999
  regrid  A2       M:182 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999
  regrid  A2       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A2       M:182 dset:   0 I:      1      2  J:    1    7  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X2PT]+Y[GY=Y2PT]
                         regrid: 1 delta on X at VAR, 1 delta on Y at VAR
              SUBSET   : 7 by 7 points (X-Y)
@@ -17660,33 +17649,33 @@ define axis/x=5:6:1 x2pt
 define axis/x=5:6.5:.5 x4pt
  
 let a1 = x[gx=x1pt]
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   YOFFSET   NORMAL    NORMAL
  -DELETE A2       M:183 dset:   0 I:      1      7  J:    1    7  K: -999 -999  L:   -999   -999
  -DELETE A2       M:184 dset:   0 I:      1      2  J:    1    2  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X2PT      Y2PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      Y2PT      NORMAL    NORMAL
  -DELETE A1       M:185 dset:   0 I:      1      1  J:    1    1  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      Y1PT      NORMAL    NORMAL
 let a2 = x[gx=x2pt]
 let a4 = x[gx=x4pt]
  
 list a1[gx=xoffset at max]
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A1 --> (G010)           @MAX
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A1 --> (G###)           @MAX
  eval    A1       C:  7 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:185 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
  regrid  A1       M:183 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17699,25 +17688,25 @@ list a1[gx=xoffset at max]
  7.1 / 7:   ....
 list a2[gx=xoffset at max]
  -DELETE X        M:185 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A1       M:183 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A2 --> (G011)           @MAX
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A2 --> (G###)           @MAX
  eval    A2       C:  7 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:183 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  regrid  A2       M:182 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17730,25 +17719,25 @@ list a2[gx=xoffset at max]
  7.1 / 7:   ....
 list a4[gx=xoffset at max]
  -DELETE X        M:183 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A2       M:182 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A4       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A4 --> (G012)           @MAX
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A4 --> (G###)           @MAX
  eval    A4       C:  7 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
  pseudo  X        M:182 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
  regrid  A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17761,18 +17750,18 @@ list a4[gx=xoffset at max]
  7.1 / 7:   ....
 list a4[gx=xoffset at min]
  -DELETE X        M:182 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A4 --> (G012)           @MIN
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A4 --> (G###)           @MIN
  found   A4       M:183 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MIN
              SUBSET   : 7 points (X)
@@ -17784,18 +17773,18 @@ list a4[gx=xoffset at min]
  6.1 / 6:  6.000
  7.1 / 7:   ....
 list a4[gx=xoffset at sum] ! 5+5.5+6+6.5=23
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
- strip regrid on X: A4 --> (G012)           @SUM
+ allocate dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A4 --> (G###)           @SUM
  found   A4       M:183 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17812,25 +17801,25 @@ define axis/x=1:5:1 x5
 define axis/x=0.5:5.5:1 x5_edges
 let a5 = x[gx=x5_edges]
 list a5[gx=x5 at max]   ! note: top dest axis point, only, looks at point above
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          XOFFSET   NORMAL    NORMAL    NORMAL
  -DELETE A4       M:186 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A5       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G013)           @MAX
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ strip regrid on X: A5 --> (G###)           @MAX
  eval    A5       C:  7 dset:   0 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
  pseudo  X        M:186 dset:   0 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
  regrid  A5       M:187 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -17840,35 +17829,35 @@ list a5[gx=x5 at max]   ! note: top dest axis point, only, looks at point above
  4   / 4:  3.500
  5   / 5:  5.500
 let a5 = x[gx=x5_edges, i=3]
- dealloc  dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  -DELETE A5       M:187 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  -DELETE A5       M:182 dset:   0 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
  -DELETE X        M:186 dset:   0 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
  -DELETE A4       M:183 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X4PT      NORMAL    NORMAL    NORMAL
  -DELETE A2       M:185 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X2PT      NORMAL    NORMAL    NORMAL
  -DELETE A1       M:184 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X1PT      NORMAL    NORMAL    NORMAL
 list a5[gx=x5 at max]
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A5       C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G010)           @MAX
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ strip regrid on X: A5 --> (G###)           @MAX
  eval    A5       C:  7 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
  pseudo  X        M:184 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5_EDGES  NORMAL    NORMAL    NORMAL
  regrid  A5       M:183 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -17879,34 +17868,34 @@ list a5[gx=x5 at max]
  5   / 5:   ....
 list a5[gx=x5 at max,i=3]
  -DELETE X        M:184 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  -DELETE A5       M:183 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G010)           @MAX
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ strip regrid on X: A5 --> (G###)           @MAX
  found   A5       M:185 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid  A5       M:183 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 3
           2.500
 list a5[gx=x5 at max,i=4]
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  -DELETE A5       M:183 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
- strip regrid on X: A5 --> (G010)           @MAX
+ allocate dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
+ strip regrid on X: A5 --> (G###)           @MAX
  found   A5       M:185 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 4
@@ -17917,19 +17906,19 @@ define axis/t=1-jan-1990:5-jan-1990:1/units=days tday
 define axis/t=1-jan-1990:5-jan-1990:24/units=hours thour
 let atime = T[gt=tday]
 list atime
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          X5        NORMAL    NORMAL    NORMAL
  -DELETE A5       M:183 dset:   0 I:      4      4  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid ATIME    C:  7 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
  eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
  eval    ATIME    C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
  pseudo  T        M:183 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
              VARIABLE : T[GT=TDAY]
              SUBSET   : 5 points (TIME)
  01-JAN-1990 00 / 1:  32493.
@@ -17939,8 +17928,8 @@ list atime
  05-JAN-1990 00 / 5:  32497.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G010)
-    GRID (G010)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -17948,17 +17937,17 @@ show grid
  TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
 list atime[gt=thour at max]
  -DELETE T        M:183 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    TDAY
  getgrid EX#1     C:  5 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    THOUR
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    THOUR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    THOUR
  eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR
- strip regrid on T: ATIME --> (G011)           @MAX
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    THOUR
+ strip regrid on T: ATIME --> (G###)           @MAX
  found   ATIME    M:184 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
  regrid  ATIME    M:183 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    THOUR
              VARIABLE : T[GT=TDAY]
                         regrid: 24 hour on T at MAX
              SUBSET   : 5 points (TIME)
@@ -17969,8 +17958,8 @@ list atime[gt=thour at max]
  05-JAN-1990 00 / 5:  32497.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G011)
-    GRID (G011)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -17984,7 +17973,7 @@ set mode/last diag
  
  
 *** Running ferret script: bn_axis_limits.jnl
-[?1034h!bn301_axis_limits.jnl
+!bn301_axis_limits.jnl
 ! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
  
 define axis/x=20e:10w:10/unit=degree xax
@@ -18136,7 +18125,7 @@ set view v44
 contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28000:29000:-400/trans sin(x/3)*sin(t/100)
  
 *** Running ferret script: bn_movie.jnl
-[?1034h! bn301_movie.JNL
+! bn301_movie.JNL
 ! - test on-HDF movie creation by Program FERRET
 ! - FERRET ver 3.10 10/93
  
@@ -18145,7 +18134,7 @@ contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/
 ! Dont run this script - fails with hdf5 libraries
 exit/script
 *** Running ferret script: bn_ez_order.jnl
-[?1034h! bn420_ez_order
+! bn420_ez_order
 ! updated from bn311_ez_order 9/95 - improved testing of /FORMAT=STREAM
  
 ! create test files
@@ -19178,7 +19167,7 @@ sp rm -f test_perm48.dat
 sp rm -f test_perm48_10.dat
  
 *** Running ferret script: bn_user.jnl
-[?1034h! bn312_user.jnl
+! bn312_user.jnl
  
 ! test the USER command options
  
@@ -19192,7 +19181,7 @@ set window/size=.5/aspect=.75 2
  
 exit/script
 *** Running ferret script: bn_stream.jnl
-[?1034h! bn420_stream.jnl
+! bn420_stream.jnl
  
 ! jan 96
 ! note that although this benchmark was added only in 1/96 the STREAM
@@ -19253,7 +19242,7 @@ list myv1,myv2
 cancel data stream_data_link.unf
  
 *** Running ferret script: bn_mc.jnl
-[?1034h!bn430_mc.jnl
+!bn430_mc.jnl
 ! kob - 9/5/96
 !     - simple test of mc data access for both irregular and regular time
 !       axis
@@ -19588,7 +19577,7 @@ CAN MODE VERIFY
  53S   / 19:   1.67   3.02   4.17   3.51   4.64   6.95   7.65   8.51   9.70   9.24   ....   8.19  10.25   7.31   3.81   1.86   1.46
  55S   / 18:   1.33   2.57   3.64   2.67   3.82   5.58   5.95   7.96   8.88   7.36   ....   8.18   8.69   6.56   1.84   1.25   1.05
  57S   / 17:   0.98   1.63   3.34   2.49   3.08   4.83   4.86   7.36   5.90   4.51   ....   ....   7.19   4.30   1.71   0.81   1.00
- 59S   / 16:   1.16   1.61   1.97   1.96   3.52   3.47   2.90   5.87   4.63   2.35   ....   ....   6.40   2.56   1.26   0.87   1.13
+ 59S   / 16:   1.16   1.61   1.97   1.96   3.52   3.47   2.90   5.87   4.63   2.35   ....   ....   6.40   2.56   1.26   0.87   1.12
  61S   / 15:   0.99   1.22   1.48   1.75   1.82   3.70   2.08   4.52   2.76   1.36   ....   5.02   4.46   1.05   0.09   0.28   0.80
  63S   / 14:   1.06   1.20   0.88   1.19   1.21   1.49   1.31   3.01   1.19   1.29   2.50   2.70   3.14  -0.02   0.31   0.36   1.16
  65S   / 13:   0.67   0.97   0.14   0.48  -0.29   0.51   0.45   1.58   0.22   0.31   0.00   2.30   1.67  -1.01   0.00  -0.22   0.45
@@ -19698,7 +19687,7 @@ CAN MODE VERIFY
  
  
 *** Running ferret script: bn_negative_t.jnl
-[?1034h! bn450_negative_t - 10/97
+! bn450_negative_t - 10/97
  
 ! test behavior of negative time step values (unsupported except as absolute
 ! dates prior to Ferret version 4.5)
@@ -20687,7 +20676,7 @@ LIST a[gt=tcal]		! deliberate error
 CANCEL MODE ignore_error
  
 *** Running ferret script: bn_xact_regrid.jnl
-[?1034h! BN450_xact_regrid.jnl
+! BN450_xact_regrid.jnl
  
 ! 10/97 - test "exact match" regridding
 ! wherein destination points are filled only if they exactly match
@@ -22083,7 +22072,7 @@ LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
  
  
 *** Running ferret script: bn_gc_functions.jnl
-[?1034h! bn500_gc_functions.jnl
+! bn500_gc_functions.jnl
  
 ! 10/97 - first version - test GC functions released in V4.9
 ! 3/98 - added single test of a dynamic axis passed to GC fcn
@@ -22669,7 +22658,7 @@ LIST/x=0/l=1 Z10_flow - bottom_flow
 set view lr
 shade/x=0/l=1/ylim=0:200:-20/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[z=0:200:.5])
 *** Running ferret script: bn491_bug_fixes.jnl
-[?1034h! bn491_bug_fixes.jnl
+! bn491_bug_fixes.jnl
 ! test various fixes that went into version 4.91
 ! 2/98 *kob*
 !
@@ -23392,7 +23381,7 @@ list elev
  58.5947N /   1:   ....   ....   ....   ....  2.940  2.940  2.940  2.940  2.940   ....   ....   ....
  
 *** Running ferret script: bn_odd_variable_name.jnl
-[?1034h! make sure memory is limited; otherwise the abstract axis will list
+! make sure memory is limited; otherwise the abstract axis will list
 let save_mem = ($ferret_memory)
  !-> DEFINE VARIABLE save_mem = 25.6
 set mem /size=10
@@ -23682,7 +23671,7 @@ list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
 set mem /size=`save_mem`
  !-> set mem /size=25.6
 *** Running ferret script: bn_test_stream.jnl
-[?1034h 
+ 
 canc data/all
  
 sp rm -f permutedBinaryTest.dat
@@ -24343,7 +24332,7 @@ list num1
  2   / 2:  20.00  21.00
  3   / 3:  22.00  23.00
 *** Running ferret script: bn_define_axes.jnl
-[?1034h! bn_define_axes.jnl
+! bn_define_axes.jnl
 ! *sh* 5/99
 ! *sh* 12/99 -  with streamlined syntax
 ! *acm* 12/16 - change to a comment only
@@ -24816,7 +24805,7 @@ show axis xax2
 ! cleanup
 set mode/last ignore
 *** Running ferret script: bn_polygon.jnl
-[?1034h! Demo of new POLYGON command
+! Demo of new POLYGON command
 ! *jd * 3.99
  
 let xsqr = YSEQUENCE({0,.1,.1,0})
@@ -24838,7 +24827,7 @@ polygon/trans/line=4/over/i=1:100/nolabel xpts+xsqr-.25, ypts+ysqr, x*x/10
  
 can mode meta
 *** Running ferret script: bn500_bug_fixes.jnl
-[?1034h! bn500_bug_fixes.jnl
+! bn500_bug_fixes.jnl
 ! test various fixes that went into version 5.00
 ! 5/99 *kob*
  
@@ -25025,9 +25014,9 @@ set mode ignore
 define axis/z=1:10:1 z10
 set grid z[gz=z10]
 show grid
- Default grid for DEFINE VARIABLE is (G001)
- Last successful data access was on grid (G001)
-    GRID (G001)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -25110,7 +25099,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Tue Apr 18 17:14:50 PDT 2017
+WKD MON DD HH:MM:SS ZZZ YYYY
  
 GO bn_reset
 cancel mode verify
@@ -25180,7 +25169,7 @@ GO err500_IF_THEN_ELSE_quote.jnl
 IF 1 THEN SAY "I is too big" ENDIF
 I is too big
 *** Running ferret script: bn_sample.jnl
-[?1034h! bn_sample.jnl
+! bn_sample.jnl
 ! 10/99 *sh*
 ! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
  
@@ -25247,14 +25236,14 @@ cancel memory/all
 set mode diagnostic
 list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    (C01,V02 C:  7 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25290,10 +25279,10 @@ cancel memory/all
  -DELETE (C01,V02 M: 15 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M: 15 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25319,11 +25308,11 @@ cancel memory/all
  -DELETE SST      M:  8 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
  -DELETE EX#1     M: 13 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  8 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25357,13 +25346,13 @@ cancel memory/all
  -DELETE A        M: 15 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
  -DELETE A        M: 16 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  eval    (C01,V02 C:  7 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
@@ -25387,8 +25376,8 @@ let/quiet a = sst[i=30:40]
  -DELETE (C09,V02 M:  9 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  -DELETE (C01,V02 M: 15 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
 cancel memory/all
  -DELETE SST      M: 12 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
@@ -25396,7 +25385,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  8 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M: 12 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25420,9 +25409,9 @@ cancel memory/all
  -DELETE EX#1     M: 15 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
  -DELETE SST      M: 16 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30}     M: 16 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25447,12 +25436,12 @@ cancel memory/all
  -DELETE A        M: 14 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
  -DELETE EX#1     M: 15 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C11,V02 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  eval    (C01,V02 C:  7 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
@@ -25482,8 +25471,8 @@ cancel memory/all
 let/quiet fsst = sst[x=@fln] 		! fill holes to allow @iin to work
 let/quiet a = fsst[i=@iin]		! @iin forces all-at-once
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
 list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -25491,7 +25480,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  getgrid FSST     C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25529,7 +25518,7 @@ cancel memory/all
 ! now test optimization that uses large memory chunks if available
 cancel memory/all
 load/l=1/y=0 sst[I=30:50]
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
@@ -25538,7 +25527,7 @@ load/l=1/y=0 sst[I=30:50]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25562,7 +25551,7 @@ cancel memory/all
  -DELETE EX#1     M: 12 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M: 15 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:39]
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
@@ -25571,7 +25560,7 @@ load/l=1/y=0 sst[I=30:39]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M: 12 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25599,7 +25588,7 @@ cancel memory/all
  -DELETE EX#1     M: 13 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M: 15 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:40]
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
@@ -25608,7 +25597,7 @@ load/l=1/y=0 sst[I=30:40]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25634,7 +25623,7 @@ cancel memory/all
  -DELETE SST      M:  9 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M: 15 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:41]
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
@@ -25643,7 +25632,7 @@ load/l=1/y=0 sst[I=30:41]
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M:  9 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25715,10 +25704,10 @@ list SAMPLEI(sst[l=1,y=1s:1n:.5],{30,40,50})
  1S    / 1:  28.15  28.56  28.83
 show grid/dyn
 Dynamic grids:
-    GRID (G003)                          use count:   2
+    GRID (G###)                          use count:   2
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX004)   LATITUDE             5 r   1S                   1N
+ (AX###)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 cancel memory/all
@@ -25737,10 +25726,10 @@ list SAMPLEI(a,{30,40,50})
  1S    / 1:  28.15  28.56  28.83
 show grid/dyn
 Dynamic grids:
-    GRID (G002)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX005)   LATITUDE             5 r   1S                   1N
+ (AX###)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  
@@ -25899,15 +25888,15 @@ list SAMPLEI(Y[y=110:200:10],{3,4,7})
 cancel memory/all
 set mode diagnostic
 list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
- dealloc  dynamic grid (G003)          NORMAL    (AX004)   NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  (AX004)   NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    (AX###)   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          ABSTRACT  (AX###)   NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          ABSTRACT  (AX###)   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          ABSTRACT  COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    (C01,V02 C:  6 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  const_v {31,...} M: 15 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -26221,7 +26210,7 @@ list SAMPLEL(X[x=110:200:10],{3,4,7})	! normal axis
  3   / 3:........................................
  
 *** Running ferret script: bn_strides_revs_perms.jnl
-[?1034h! bn_strides_revs_perms.jnl
+! bn_strides_revs_perms.jnl
 ! *sh* 6/99
  
 ! exercise special netCDF performance and robustness enhancements to allow
@@ -26501,16 +26490,16 @@ SHOW DATA
 ! basic strides
 LIST VAR[i=2:4:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  2 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE VAR      M:  1 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26530,9 +26519,9 @@ LIST VAR[i=2:4:2]
 ! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
 LIST VAR[i=2:4:2]
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  found   VAR      M:  2 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26552,22 +26541,22 @@ LIST VAR[i=2:4:2]
 ! cache hit through non-file variable
 let a = VAR[i=2:4:2]
 list a
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  -DELETE VAR      M:  2 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  eval    A        C:  6 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  9 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  1 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE VAR      M:  2 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -26605,7 +26594,7 @@ cancel memory/all
  -DELETE VAR      M:  1 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE A        M:  2 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
 load var
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
@@ -26613,16 +26602,16 @@ load var
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
  -DELETE VAR      M:  1 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26639,18 +26628,18 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.  1224.
  3   / 3:  1232.  1234.
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:  1 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26672,19 +26661,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  strip moduloing VAR on X axis:        1       10 dset:   1
  reading VAR      M:  4 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  doing moduloing VAR on X axis:        1        4 dset:   1
  regrid  VAR      M:  2 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -26705,18 +26694,18 @@ cancel axis/modulo XAX1_4
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:  4 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26731,19 +26720,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  -DELETE VAR      M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
- allocate dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M:  3 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26760,7 +26749,7 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! deliberate error
 set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
- dealloc  dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  -DELETE VAR      M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
@@ -26769,15 +26758,15 @@ set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
 LIST VAR[i=2:4:2 at ave]
  dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @AVE
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @AVE
  reading VAR      M:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  regrid  VAR      M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X at AVE
              FILENAME : bn_strides.cdf
@@ -26796,25 +26785,25 @@ LIST VAR[i=2:4:2 at ave]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  -DELETE VAR      M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  eval    A        C:  7 dset:   1 I:      3      5  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M:  2 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
  -DELETE BIGVAR   M:  3 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -26828,24 +26817,24 @@ list/j=1/k=1/l=1 a[i=3:5]
  21   / 5:  1131.
  -DELETE A        M:  1 dset:   1 I:      1      1  J:    3    5  K:    1    1  L:      1      1
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
- allocate dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
- strip regrid on Y: A --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ strip regrid on Y: A --> (G###)           @XACT
  eval    A        C:  8 dset:   1 I:      3      5  J:    1    7  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M:  5 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
  -DELETE BIGVAR   M:  1 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  regrid  A        M:  6 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26862,7 +26851,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
 ! reference data
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
  -DELETE A        M:  6 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
@@ -26890,17 +26879,17 @@ cancel mem/all
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  5 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  6 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -26916,9 +26905,9 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  found   UNE-NVAR M:  5 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -26932,25 +26921,25 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  
 ! cache hit through non-file variable
 let a = UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  5 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
 list/order=x/j=1/k=1/l=1 a
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  eval    A        C:  7 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C: 10 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  6 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  5 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -26979,7 +26968,7 @@ cancel memory/all
  -DELETE A        M:  5 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  6 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
 load/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
@@ -26988,17 +26977,17 @@ load/k=1/l=1 UNEVENVAR
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  4 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  5 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27011,19 +27000,19 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  0.3  / 1:  1112.
  0.6  / 2:  1114.
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    5  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  5 dset:   1 I:      2      4  J:    1    5  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  doing limits reconciliation on Y axis: UNEVENVAR
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27045,19 +27034,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XUNEVEN
 LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  strip moduloing UNEVENVAR on X axis:        1       29 dset:   1
  reading UNE-NVAR M:  6 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  doing moduloing UNEVENVAR on X axis:        1       10 dset:   1
  regrid  UNE-NVAR M:  3 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27075,19 +27064,19 @@ cancel axis/modulo XUNEVEN
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    3  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  6 dset:   1 I:      2      4  J:    1    3  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27099,20 +27088,20 @@ LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
  0    / 1:  1112.  1114.
  0.95 / 2:  1132.  1134.
 LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      6  J:    1    5  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  6 dset:   1 I:      1      3  J:    1    3  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  4 dset:   1 I:      2      6  J:    1    5  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27127,19 +27116,19 @@ LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
  
 ! averaging causes bypass of strides
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  6 dset:   1 I:      1      3  J:    1    3  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @AVE
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @AVE
  reading UNE-NVAR M:  6 dset:   1 I:      1      9  J:    1    1  K:    1    1  L:      1      1
  regrid  UNE-NVAR M:  4 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27154,20 +27143,20 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
  0.78 / 3:  1115.87072
  0.9  / 4:  1117.90449
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  4 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      8  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M:  3 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  4 dset:   1 I:      2      8  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27184,19 +27173,19 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
  
 ! test special logic in tm_world_recur for endpoints of strides on irreg axis
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=1:10:2 at ave]
- dealloc  dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  3 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @AVE
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @AVE
  reading UNE-NVAR M:  3 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  regrid  UNE-NVAR M:  4 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27219,19 +27208,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2]
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M:  4 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  5 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  4 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
- dealloc  dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27248,19 +27237,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1233.  1235.  1237.  1239.
  4   / 4:  1243.  1245.  1247.  1249.
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  -DELETE BIGVAR   M:  5 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
- allocate dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
- strip regrid on Y: BIGVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
+ strip regrid on Y: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  4 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  5 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
- dealloc  dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27277,19 +27266,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1243.  1244.  1245.  1246.
  6   / 3:  1263.  1264.  1265.  1266.
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          XAX1_40   (AX###)   ZAX1_20   TAX1_10
  -DELETE BIGVAR   M:  4 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
- dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
- allocate dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
- strip regrid on X: BIGVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  4 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27306,9 +27295,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1345.  1347.  1349.
  6   / 3:  1363.  1365.  1367.  1369.
 canc data/all
- dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  canceling dset ./bn_strides.cdf
  -DELETE UNE-NVAR M:  3 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  6 dset:   1 I:      1      9  J:    1    1  K:    1    1  L:      1      1
@@ -27316,16 +27305,16 @@ canc data/all
 use/order=zyx bn_strides
 list bigvar[i=3:9:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
- dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
- allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  3 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  6 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27342,19 +27331,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1332.  1532.  1732.  1932.
  4   / 4:  1342.  1542.  1742.  1942.
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   XAX1_40   TAX1_10
  -DELETE BIGVAR   M:  3 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
- dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
- allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
- strip regrid on Y: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
+ strip regrid on Y: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  6 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  3 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27371,19 +27360,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1342.  1442.  1542.  1642.
  6   / 3:  1362.  1462.  1562.  1662.
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   XAX1_40   TAX1_10
  -DELETE BIGVAR   M:  6 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  6 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27400,23 +27389,23 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1543.  1743.  1943.
  6   / 3:  1363.  1563.  1763.  1963.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=zxy bn_strides
 list bigvar[i=3:9:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
- dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
- allocate dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  6 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  3 dset:   1 I:      3      9  J:    2    4  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27433,19 +27422,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1323.  1523.  1723.  1923.
  4   / 4:  1324.  1524.  1724.  1924.
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   XAX1_40   YAX1_30   TAX1_10
  -DELETE BIGVAR   M:  6 dset:   1 I:      1      4  J:    2    4  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
- dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
- allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
- strip regrid on Y: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
+ strip regrid on Y: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
  nulrgd  BIGVAR   M:  3 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  6 dset:   1 I:      3      6  J:    2    6  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27462,19 +27451,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1324.  1424.  1524.  1624.
  6   / 3:  1326.  1426.  1526.  1626.
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G###)          ZAX1_20   (AX###)   YAX1_30   TAX1_10
  -DELETE BIGVAR   M:  3 dset:   1 I:      3      6  J:    1    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M:  3 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27491,7 +27480,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1334.  1534.  1734.  1934.
  6   / 3:  1336.  1536.  1736.  1936.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -27511,16 +27500,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -27536,19 +27525,19 @@ list xytvar[i=1:7:2]
  2N   / 2:  2021.  2023.  2025.  2027.
  1N   / 1:  2011.  2013.  2015.  2017.
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    TTIME
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
- dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
- allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
+ allocate dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
+ allocate dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
- strip regrid on Y: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
+ strip regrid on Y: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27564,19 +27553,19 @@ list xytvar[j=2:6:2]
  4N   / 2:  2041.  2042.  2043.  2044.
  2N   / 1:  2021.  2022.  2023.  2024.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          XLON      (AX###)   NORMAL    TTIME
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -27592,7 +27581,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.  5043.  5045.  5047.
  2N   / 1:  5021.  5023.  5025.  5027.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -27609,16 +27598,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -27634,19 +27623,19 @@ list xytvar[i=1:7:2]
  142   / 2:  2012.  2032.  2052.  2072.
  143   / 3:  2013.  2033.  2053.  2073.
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    TTIME
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
- dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
- allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
+ allocate dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
+ allocate dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
- strip regrid on Y: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
+ strip regrid on Y: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27662,19 +27651,19 @@ list xytvar[j=2:6:2]
  144   / 2:  2014.  2024.  2034.  2044.
  146   / 3:  2016.  2026.  2036.  2046.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME
+ dealloc  dynamic grid (G###)          YLAT      (AX###)   NORMAL    TTIME
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -27690,7 +27679,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  5014.  5034.  5054.  5074.
  146   / 3:  5016.  5036.  5056.  5076.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -27707,16 +27696,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -27732,19 +27721,19 @@ list xytvar[i=1:7:2]
  2N   / 2:  1022.  3022.  5022.  7022.
  1N   / 1:  1012.  3012.  5012.  7012.
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON
+ dealloc  dynamic grid (G###)          (AX###)   YLAT      NORMAL    XLON
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
- dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
- allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
- strip regrid on Y: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
+ strip regrid on Y: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27760,19 +27749,19 @@ list xytvar[j=2:6:2]
  4N   / 2:  1042.  2042.  3042.  4042.
  2N   / 1:  1022.  2022.  3022.  4022.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    XLON
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -27788,7 +27777,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  1045.  3045.  5045.  7045.
  2N   / 1:  1025.  3025.  5025.  7025.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -27805,16 +27794,16 @@ show grid xytvar
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      7  J:    1    3  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -27830,19 +27819,19 @@ list xytvar[i=1:7:2]
  142   / 2:  1022.  3022.  5022.  7022.
  143   / 3:  1023.  3023.  5023.  7023.
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT
+ dealloc  dynamic grid (G###)          (AX###)   XLON      NORMAL    YLAT
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
- dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
- allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
- strip regrid on Y: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
+ strip regrid on Y: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    2    6  K: -999 -999  L:      1      2
- dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27858,19 +27847,19 @@ list xytvar[j=2:6:2]
  144   / 2:  1024.  2024.  3024.  4024.
  146   / 3:  1026.  2026.  3026.  4026.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   NORMAL    YLAT
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -27886,7 +27875,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -27904,17 +27893,17 @@ show grid xytvar
 list/k=1:2 xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
- dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
- allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
+ allocate dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
+ allocate dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:      1      7  J:    1    3  K:    1    2  L:   -999   -999
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    1    3  K:    1    2  L:   -999   -999
- dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -27930,20 +27919,20 @@ list/k=1:2 xytvar[i=1:7:2]
  142   / 2:  1022.  3022.  5022.  7022.
  143   / 3:  1023.  3023.  5023.  7023.
 list/k=1:2 xytvar[j=2:6:2]
- dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   XLON      YLAT      NORMAL
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
- dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
- allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
+ allocate dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
+ allocate dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
- strip regrid on Y: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
+ strip regrid on Y: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:      1      4  J:    2    6  K:    1    2  L:   -999   -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    2    6  K:    1    2  L:   -999   -999
- dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27959,19 +27948,19 @@ list/k=1:2 xytvar[j=2:6:2]
  144   / 2:  1024.  2024.  3024.  4024.
  146   / 3:  1026.  2026.  3026.  4026.
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL
+ dealloc  dynamic grid (G###)          TTIME     (AX###)   YLAT      NORMAL
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
  nulrgd  XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -27987,7 +27976,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  canceling dset ./bn_strides.cdf
  
@@ -28012,16 +28001,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28036,26 +28025,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.  1552.
  5   / 2:  1515.  1555.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      1      5  J:    5    8  K:    3    5  L:      1      1
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28070,26 +28059,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.  1558.
  5   / 2:  1515.  1555.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on X axis:        1        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      4      8  J:    2    5  K:    3    5  L:      1      1
  doing reversing MIDVAR on X axis:        1        5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28104,7 +28093,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1582.  1542.
  5   / 2:  1585.  1545.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -28112,16 +28101,16 @@ canc data/all
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28136,7 +28125,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.  5125.
  5   / 2:  1155.  5155.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -28144,19 +28133,19 @@ canc data/all
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on X axis:        1        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    4    7  K:    3    5  L:      7      7
  doing reversing MIDVAR on X axis:        1        5 dset:   1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28171,7 +28160,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.  2775.
  5   / 2:  6745.  2745.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -28179,16 +28168,16 @@ canc data/all
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28203,26 +28192,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.  5152.
  5   / 2:  1155.  5155.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    5    8  K:    3    5  L:      7      7
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28237,11 +28226,11 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.  2758.
  5   / 2:  6755.  2755.
 canc data/all
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
 *** Running ferret script: bn_non_COARDS_netCDF.jnl
-[?1034h! bn_non_COARDS_netCDF.jnl
+! bn_non_COARDS_netCDF.jnl
 ! *sh* 3/99
 ! *sh* 6/00 -- added true scalar variable, TRUE_SCALAR
  
@@ -28449,7 +28438,7 @@ list HAS_BACKWARDS_AXIS
  
 ! list/i=1:5 BIG_IRREG
 *** Running ferret script: bn_cache_hits.jnl
-[?1034h! bn_cache_hits.jnl
+! bn_cache_hits.jnl
  
 ! 3/99 *sh*
 ! Test the success of Ferret in recalling past results
@@ -28527,15 +28516,15 @@ stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST --> (G###)           @LIN
  found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28554,7 +28543,7 @@ stat $1[gx=xtrop]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
@@ -28567,15 +28556,15 @@ stat $1[gx=xtrop]
  -DELETE I        M:  2 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST --> (G###)           @LIN
  found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28598,21 +28587,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
 stat $1x
  !-> stat sstx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid SSTX     C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  eval    SSTX     C:  6 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST --> (G###)           @LIN
  found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -28630,7 +28619,7 @@ stat $1x
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -28642,7 +28631,7 @@ stat $1x
  -DELETE I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  found   SSTX     M:  3 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  
@@ -28665,15 +28654,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  found   SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28692,7 +28681,7 @@ stat $1[g=gx]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -28704,13 +28693,13 @@ stat $1[g=gx]
  -DELETE I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  found   SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28732,18 +28721,18 @@ stat $1[g=gx]
 define axis/y=20s:20n:1 ytrop
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- strip regrid on X: SST --> (G003)           @LIN
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ strip regrid on X: SST --> (G###)           @LIN
  found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
  regrid  SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -28762,7 +28751,7 @@ stat $1[gx=xtrop,gy=ytrop]
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  -DELETE SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
@@ -28775,16 +28764,16 @@ stat $1[gx=xtrop,gy=ytrop]
  -DELETE I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
- strip regrid on X: SST --> (G003)           @LIN
+ allocate dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
+ strip regrid on X: SST --> (G###)           @LIN
  found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
  regrid  SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -28805,7 +28794,7 @@ stat $1[gx=xtrop,gy=ytrop]
  
 define grid/like=$1/x=xtrop/y=ytrop gxyt
  !-> define grid/like=sst/x=xtrop/y=ytrop gxyt
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     YTROP     NORMAL    TIME
  -DELETE SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  getgrid EX#1     C:  6 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
@@ -28941,7 +28930,7 @@ let $1xyt = $1[g=gxyt]
  dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
  -DELETE SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  -DELETE SSTX     M:  3 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
 stat $1xyt
  !-> stat sstxyt
@@ -29318,15 +29307,15 @@ stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST5 --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST5 --> (G###)           @LIN
  found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST+5
              regrid: 1 deg on X
@@ -29345,7 +29334,7 @@ stat $1[gx=xtrop]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
@@ -29358,15 +29347,15 @@ stat $1[gx=xtrop]
  -DELETE I        M:  9 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST5 --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST5 --> (G###)           @LIN
  found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST+5
              regrid: 1 deg on X
@@ -29389,21 +29378,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
 stat $1x
  !-> stat sst5x
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid SST5X    C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  eval    SST5X    C:  6 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- strip regrid on X: SST5 --> (G002)           @LIN
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ strip regrid on X: SST5 --> (G###)           @LIN
  found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29421,7 +29410,7 @@ stat $1x
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -29433,7 +29422,7 @@ stat $1x
  -DELETE I        M: 12 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  found   SST5X    M: 11 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  
@@ -29456,15 +29445,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  found   SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST+5
              regrid: 1 deg on X
@@ -29483,7 +29472,7 @@ stat $1[g=gx]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -29495,13 +29484,13 @@ stat $1[g=gx]
  -DELETE I        M: 12 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ allocate dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  found   SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  
              SST+5
              regrid: 1 deg on X
@@ -29523,7 +29512,7 @@ stat $1[g=gx]
 define axis/y=20s:20n:1 ytrop
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst5[gx=xtrop,gy=ytrop]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST5 --> GXYT             @LIN
@@ -29705,7 +29694,7 @@ let $1xyt = $1[g=gxyt]
  -DELETE SST5XYT  M: 13 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
  -DELETE SST5X    M: 11 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G###)          XTROP     COADSY    NORMAL    TIME
  -DELETE SST5     M:  9 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
  -DELETE SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  -DELETE SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
@@ -30211,7 +30200,7 @@ say `a,return=isize`
  getgrid (C09,V11 C: 12 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 (C09,V11 C: 12 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          ABSTRACT  ABSTRACT  NORMAL    NORMAL
+ allocate dynamic grid (G###)          ABSTRACT  ABSTRACT  NORMAL    NORMAL
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
@@ -30250,7 +30239,7 @@ set mode/last diag
 ! v5.4 *kob* 10/01 - need to add exit/script - new exit command qualifiers
 EXIT/SCRIPT
 *** Running ferret script: bn_regrid_to_user.jnl
-[?1034h! bn_regrid_to_user
+! bn_regrid_to_user
 ! 8/99 *sh*
 ! 5/01 *sh* - changes to accomodate truncated levitus_climatology.cdf
 !           - additions to test use of expressions in SET/SHOW/DEFINE grid
@@ -30289,8 +30278,8 @@ list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -30318,8 +30307,8 @@ list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
@@ -30345,8 +30334,8 @@ list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
@@ -30398,14 +30387,14 @@ show grid gg2
     GRID GG2
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX008)   LATITUDE           401 r   20S                  20N
+ (AX###)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX008)                         use count:   1
+    AXIS (AX###)                         use count:   1
  
 ! demonstrate proper management of dynamic axes
 DEFINE GRID/LIKE=gg2 gg3
@@ -30413,7 +30402,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX008)                         use count:   2
+    AXIS (AX###)                         use count:   2
 DEFINE GRID/like=temp[d=levitus_climatology] gg2
 show grid gg2
     GRID GG2
@@ -30426,17 +30415,17 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX008)                         use count:   1
+    AXIS (AX###)                         use count:   1
  
 ! SET GRID using a user-defined variable
 let g = sst[x=0:30:.1,d=coads_climatology]
 set grid g
 show grid
- Default grid for DEFINE VARIABLE is (G003)
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX009)   LONGITUDE          301 r   0E                   30E                 full
+ (AX###)   LONGITUDE          301 r   0E                   30E                 full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
@@ -30444,20 +30433,20 @@ show grid
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
 show grid
- Default grid for DEFINE VARIABLE is (G003)
- Last successful data access was on grid (G004)
-    GRID (G004)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX010)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX###)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
 show grid/dynamic
 Dynamic grids:
-    GRID (G004)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE           201 r   10S                  10N
+ (AX###)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  
@@ -30574,76 +30563,76 @@ list a1[gxz=a2]
 ! 6/01
 ! test use of expressions in dynamic grid commands
 SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
-    GRID (G006)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
-    GRID (G006)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX010)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
-    GRID (G007)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
+ (AX###)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
-    GRID (G006)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
- (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]),SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])
-    GRID (G006)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX011)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
-    GRID (G007)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  normal    Z
- (AX010)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
-    GRID (G006)
+ (AX###)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
- (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  
 load/x=160e/y=5s temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5
 SHOW GRID
- Default grid for DEFINE VARIABLE is (G003)
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX010)   LATITUDE            41 r   10S                  2S                  41 pts
+ (AX###)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
 SET GRID  FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) + 5
 SHOW GRID
- Default grid for DEFINE VARIABLE is (G007)
- Last successful data access was on grid (G007)
-    GRID (G007)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX007)   LATITUDE            41 r   10S                  2S                  full
+ (AX###)   LATITUDE            41 r   10S                  2S                  full
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
+ (AX###)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
 list/j=1:5 j
              VARIABLE : J
-                        axis (AX007)
+                        axis (AX###)
              SUBSET   : 5 points (LATITUDE)
  9.2S   / 5:  5.000
  9.4S   / 4:  4.000
@@ -30655,20 +30644,20 @@ SHOW GRID MYGRID
     GRID MYGRID
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX007)   LATITUDE            41 r   10S                  2S
+ (AX###)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
 SHOW GRID/DYNAMIC
 Dynamic grids:
-    GRID (G004)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX007)   LATITUDE            41 r   10S                  2S
+ (AX###)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  
 *** Running ferret script: bn_calendar.jnl
-[?1034h! bn_calendar.jnl
+! bn_calendar.jnl
 ! Version 5.3
 ! Add definitions of calendar axes as a NetCDF attribute of the time axis
 ! DEFINE AXIS/CALENDAR
@@ -30949,7 +30938,7 @@ T0 = 1-JAN-1980
 ! also see bn_all_leap.jnl, 6/2004
 ! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
 *** Running ferret script: bn_dash_dot.jnl
-[?1034h! new PLOT/DASH and PLOT/SYMBOL=DOT  qualifiers
+! new PLOT/DASH and PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 5/01
 ! *acm* 8/02 Remove calls to SYMBOL=DOT until postscript issues are resolved.
  
@@ -30969,7 +30958,7 @@ set mode ignore
 plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
 plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
 *** Running ferret script: bn_flowlines.jnl
-[?1034h! bn_flowlines.jnl
+! bn_flowlines.jnl
 ! VECTOR/FLOW
 ! 6/2001
 ! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
@@ -31015,7 +31004,7 @@ set reg/l=1
 vec/noax/xskip=16/yskip=8/len=15/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
 vec/over/flow/noax/xskip=16/yskip=8/len=5/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
 *** Running ferret script: bn_logaxes.jnl
-[?1034h!  Test the qualifiers /HLOG and /VLOG for setting
+!  Test the qualifiers /HLOG and /VLOG for setting
 !  log axes.  On a depth axis, inverse log plot.
  
 ! use /VLOG
@@ -31057,7 +31046,7 @@ def axis/x dlog = -1*(10-i[i=1:10])
 let fcn = (i[gx=dlog])^2
 plot/hlog fcn
 *** Running ferret script: bn_internal_external_functions.jnl
-[?1034h! test internal external functions.  These moved from bn_external_functions
+! test internal external functions.  These moved from bn_external_functions
 !  6/01 because on systems w/out external functions support, the internal
 !  functions were not being tested - most notably win32   *kob*
  
@@ -31474,7 +31463,7 @@ can mem/all
  
 let xy_laplace_gridded = scat2gridlaplace_xy(xax,yax,O2_umol_kg,x[gx=x_20],y[gy=y_20],2,2)
 show grid xy_laplace_gridded
-    GRID (G005)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  X_20      LONGITUDE           20mr   50E                  70E                 full
  Y_20      LATITUDE            20 r   10N                  20N                 full
@@ -32105,7 +32094,7 @@ let xln = if xlnb lt 0. then xlnb+360. else xlnb
 let wgtl = scat2gridlaplace_xy(xln,ylt, wgt, x[gx=xlonef], y[gy=ylatef], 2., 1)
  
 show grid wgtl
-    GRID (G009)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)       full
  YLATEF    LATITUDE            73 r   47.25N               83.25N              full
@@ -33923,7 +33912,7 @@ go bn_unique_str2int
  
 SHOW FUNC/DETAIL unique_str2int
 UNIQUE_STR2INT(A)
-    Returns an ID number for each unique stringin the input array of strings (case sensitive)
+    Returns an ID number for each unique string in the input array of strings (case sensitive)
         Axes of result:
           X: inherited from argument(s)
           Y: inherited from argument(s)
@@ -34067,6 +34056,23 @@ SAMPLEN(TO_BE_SAMPLED,F_INDICES)
     sample a field at a list of F indices
     TO_BE_SAMPLED: data to sample at list of F indices supplied
     F_INDICES: list of F indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+    Fast 1D sample variable using set of indices
+    V: 1-D variable in X direction
+    Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+    Fast 1D sample string variable using set of indices
+    S: 1-D string variable in X direction (STRING)
+    Indices: List of indices at which to sample
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+    Returns data sampled by interpolating to a set of times in F direction
+    DAT_TO_SAMPLE: data to sample at set of times in F
+    YR: Year(s) yyyy
+    MO: Month(s), integer mm
+    DAY: Day(s) of month dd
+    HR: Hour(s) hh
+    MIN: Minute(s) mm
+    SEC: Second(s) ss
 SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
     Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
@@ -34088,15 +34094,14 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to L indices which may vary in IJK
     L_INDICES: ordered indices
     DAT_TO_SAMPLE: data to sample using L indices
-SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-    Returns data sampled by interpolating to a set of times in F direction
-    DAT_TO_SAMPLE: data to sample at set of times in F
-    YR: Year(s) yyyy
-    MO: Month(s), integer mm
-    DAY: Day(s) of month dd
-    HR: Hour(s) hh
-    MIN: Minute(s) mm
-    SEC: Second(s) ss
+SAMPLEM_MULTI(DAT_TO_SAMPLE,M_INDICES)
+    Returns data sampled according to M indices which may be function of IJKLN
+    DAT_TO_SAMPLE: data to sample using L indices
+    M_INDICES: ordered indices
+SAMPLEN_MULTI(DAT_TO_SAMPLE,N_INDICES)
+    Returns data sampled according to N indices which may be function of IJKLM
+    DAT_TO_SAMPLE: data to sample using L indices
+    N_INDICES: ordered indices
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
     Returns data sampled by interpolating to a set of times in T direction
     DAT_TO_SAMPLE: data to sample at set of times
@@ -34112,7 +34117,7 @@ SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
     XPTS: X values of sample points
     YPTS: Y values of sample points
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
-    Returns data sampled at a set of (X,Y) points, using nearest grid intersection
+    This function is deprecated. It is renamed to SAMPLEXY_NRST
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
     XPTS: X values of sample points
     YPTS: Y values of sample points
@@ -34137,12 +34142,23 @@ SAMPLEXY_CURV_NRST(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
     DAT_LAT: latitudes of input variable
     XPTS: X values of sample points
     YPTS: Y values of sample points
+SAMPLEXY_NRST(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled at a set of (X,Y) points, using nearest grid intersection
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X values of sample points
+    YPTS: Y values of sample points
 SAMPLEXYT(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
     Returns data sampled at a set of (X,Y,T) points, using linear interpolation
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
     XPTS: X values of sample points
     YPTS: Y values of sample points
     TPTS: T values of sample points
+SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+    Returns data sampled at a set of (X,Y,T) points, using nearest grid intersection
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X values of sample points
+    YPTS: Y values of sample points
+    TPTS: T values of sample points
 SAMPLEXZ(DAT_TO_SAMPLE,XPTS,ZPTS)
     Returns data sampled at a set of (X,Z) points, using linear interpolation
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
@@ -34153,20 +34169,6 @@ SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
     YPTS: Y values of sample points
     ZPTS: Z values of sample points
-SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-    Returns data sampled at a set of (X,Y,T) points, using nearest grid intersection
-    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    XPTS: X values of sample points
-    YPTS: Y values of sample points
-    TPTS: T values of sample points
-SAMPLE_FAST_I(V,Indices)
-    Fast 1D sample variable using set of indices
-    V: Variable to sample
-    Indices: List of indices at which to sample
-SAMPLE_FAST_I_STR(S,Indices)
-    Fast 1D sample string variable using set of indices
-    S: String Variable to sample (STRING)
-    Indices: List of indices at which to sample
 SAMPLE_FAST_I(V,Indices)
     Fast 1D sample variable using set of indices
     V: Variable to sample
@@ -35288,16 +35290,16 @@ CURV_TO_RECT(V,mapping)
     Apply mapping to regrid from curvilinear to rectangular grid
     V: Variable to regrid, on curvilinear grid V(x,y,z,t,e,f)
     mapping: mapping computed by curv_to_rect_MAP
+CURV_TO_RECT_FSU(V,mapping)
+    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+    mapping: mapping computed by curv_to_rect_MAP
 CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
     Compute mapping for regridding: curvilinear to rectangular grid.
     lon_in: Source grid longitudes (2-D) (degrees)
     lat_in: Source grid latitudes (2-D) (degrees)
     grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
     radius: Source points falling within radius are included in mapping to destination point (degrees)
-CURV_TO_RECT_FSU(V,mapping)
-    Alt func to Apply mapping to regrid from curvilinear to rectangular grid
-    V: Variable to regrid, on curvilinear grid V(x,y,z,t)
-    mapping: mapping computed by curv_to_rect_MAP
  
 use tripolar_subset.nc
 shade ht, geolon_vert_t, geolat_vert_t
@@ -35454,7 +35456,7 @@ list/l=1 samplexy(sst,{321,323.5,325}, {1,1,1}), sampleij(sst,{321,323,324.5}, {
  
  
 *** Running ferret script: bn_modulo_strides.jnl
-[?1034h! bn_modulo_strides.jnl
+! bn_modulo_strides.jnl
 ! 6/01 *sh*
 ! exercise the combination of modulo and netCDF strides IO
  
@@ -35474,14 +35476,14 @@ let b =  a[i=18:23:2]
 list/nohead b            ! using rdstride
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid B        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    B        C:  6 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G002)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A --> (G###)           @XACT
  strip moduloing A on X axis:       18       22 dset:   1
  rdstride A        C: 11 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
  doing moduloing A on X axis:       18       20 dset:   1
@@ -35491,24 +35493,24 @@ list/nohead b            ! using rdstride
  -DELETE A        M:  1 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  nulrgd  A        M:  1 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  -DELETE A        M:  2 dset:   1 I:     18     22  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  18   / 1:  18.00
  20   / 2:  20.00
  22   / 3:   2.00
 list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G003)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A --> (G###)           @XACT
  strip moduloing A on X axis:        1       25 dset:   1
  reading A        M:  3 dset:   1 I:      1     20  J: -999 -999  K: -999 -999  L:   -999   -999
  doing moduloing A on X axis:        1       20 dset:   1
  regrid  A        M:  4 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  1    / 1:   1.00
  4    / 2:   4.00
  7    / 3:   7.00
@@ -35519,10 +35521,10 @@ list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
  22   / 8:   2.00
  25   / 9:   5.00
 list/nohead b            ! reuse of cached result
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  -DELETE A        M:  4 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  found   B        M:  2 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  18   / 1:  18.00
@@ -35725,15 +35727,15 @@ list/nohead a[i=106:145:5]
 !  ***** STRING TESTS *****
 set mode diag
 list/nohead str[i=18:23:2] ! using rdstride
- dealloc  dynamic grid (G003)          (AX001)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  -DELETE A        M:  4 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:   -999   -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
- strip regrid on X: STR --> (G002)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: STR --> (G###)           @XACT
  strip moduloing STR on X axis:       18       22 dset:   1
  rdstride STR      C:  9 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
  doing moduloing STR on X axis:       18       20 dset:   1
@@ -35743,24 +35745,24 @@ list/nohead str[i=18:23:2] ! using rdstride
  -DELETE STR      M:  4 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  nulrgd  STR      M:  4 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  -DELETE STR      M:  6 dset:   1 I:     18     22  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  18   / 1:"r"
  20   / 2:"t"
  22   / 3:"b"
 list/nohead str[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
- strip regrid on X: STR --> (G003)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: STR --> (G###)           @XACT
  strip moduloing STR on X axis:        1       25 dset:   1
  reading STR      M:  6 dset:   1 I:      1     20  J: -999 -999  K: -999 -999  L:   -999   -999
  doing moduloing STR on X axis:        1       20 dset:   1
  regrid  STR      M:  8 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    NORMAL
  1    / 1:"a"
  4    / 2:"d"
  7    / 3:"g"
@@ -35833,7 +35835,7 @@ list/nohead str[i=105:145:5]
  140   / 8:"t"
  145   / 9:"e"
 *** Running ferret script: bn_axis_viewports.jnl
-[?1034h! bn_axis_viewports
+! bn_axis_viewports
 ! *sh* 9/01
  
 ! demonstrate vieport layout using the /AXES qualifier
@@ -36176,7 +36178,7 @@ ppl list yaxis
          AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 1.40E+00  AUTO LABELLING
 *** Running ferret script: bn_strings.jnl
-[?1034h! bn_strings.jnl
+! bn_strings.jnl
  
 ! 7/01 - test string syntax and behaviors
  
@@ -36658,9 +36660,7 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
  2   / 2:"then, goodbye, my friend""then, hello, friend"     
  
 SET MODE IGNORE
-list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
- 1   / 1:........
- 2   / 2:........
+! list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
 list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+99 ELSE "goodbye"+", my ") + "friend"
  1   / 1:........
  2   / 2:........
@@ -36736,7 +36736,7 @@ list a[i=@rsum]
  
 set mode/last stupid
 *** Running ferret script: bn_axcontrol.jnl
-[?1034h ! NOAA/PMEL TMAP
+ ! NOAA/PMEL TMAP
  ! Program FERRET (alpha)
  ! Version 5.33 - 07/12/01
  ! 12-Jul-01 14:47
@@ -36775,7 +36775,7 @@ fill/l=1/axes sst
 can view
 polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
 *** Running ferret script: bn_vec_curv.jnl
-[?1034h! bn_vec_curv.jnl
+! bn_vec_curv.jnl
 !
 ! vector plots with curvilinear coordinates
 !
@@ -36846,7 +36846,7 @@ vec/title="Stretched grid" a,b,mxpage,mypage
 can mode meta
  
 *** Running ferret script: bn_delimited_read.jnl
-[?1034h! bn_delimited_read.jnl
+! bn_delimited_read.jnl
 ! 10/01 *sh*
  
 ! test delimiited (spreadsheet) reads in Ferret
@@ -36872,52 +36872,52 @@ show data/var
  V1       V1                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V2       V2                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V3       V3                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V4       V4                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V5       V5                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V6       V6                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V7       V7                               1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V8       V8                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V9       V9                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  V10      V10                              1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G001) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:7.5  
  
  /DELIMITERS="\t,\,"
@@ -37446,363 +37446,363 @@ show data/full
  V1       V1                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V2       V2                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V3       V3                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V4       V4                               1:20      ...       ...       ...
        (Julian days since 1-Jan-1900)
             Data type = NUMERIC
             Conversion /TYPE=DATE
-             days on grid (G002) with -1.E+34 for missing data
+             days on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V5       V5                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V6       V6                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V7       V7                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V8       V8                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V9       V9                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V10      V10                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V11      V11                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V12      V12                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V13      V13                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V14      V14                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V15      V15                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V16      V16                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V17      V17                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V18      V18                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V19      V19                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V20      V20                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V21      V21                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V22      V22                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V23      V23                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V24      V24                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V25      V25                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V26      V26                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V27      V27                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V28      V28                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V29      V29                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V30      V30                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V31      V31                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V32      V32                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V33      V33                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V34      V34                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V35      V35                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V36      V36                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V37      V37                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V38      V38                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V39      V39                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V40      V40                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V41      V41                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V42      V42                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V43      V43                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V44      V44                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V45      V45                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V46      V46                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V47      V47                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V48      V48                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V49      V49                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V50      V50                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V51      V51                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V52      V52                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V53      V53                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V54      V54                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V55      V55                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V56      V56                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V57      V57                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V58      V58                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V59      V59                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V60      V60                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V61      V61                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V62      V62                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V63      V63                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V64      V64                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V65      V65                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V66      V66                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V67      V67                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V68      V68                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V69      V69                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V70      V70                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V71      V71                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  V72      V72                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
-               on grid (G002) with -1.E+34 for missing data
+               on grid (G###) with -1.E+34 for missing data
              X=0.5:20.5  
  
  /DELIMITERS="\t,\,"
@@ -37908,7 +37908,7 @@ file/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
 cancel mode ignore
  
 *** Running ferret script: bn541_bug_fixes.jnl
-[?1034h! bn541_bug_fixes.jnl
+! bn541_bug_fixes.jnl
 ! test various fixes that went into version 5.41
 ! 3/02 *acm*
 !
@@ -38370,19 +38370,19 @@ show mem/free
 use/ord=x-y test_100x100.nc
 list/prec=1 a[i=1:100:10] !  this looks just right!!
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1    100  J:    1  100  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
- strip regrid on X: A --> (G003)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
+ strip regrid on X: A --> (G###)           @XACT
  strip reversing A on Y axis:        1      100 dset:   1
  rdstride A        C:  8 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  doing reversing A on Y axis:        1      100 dset:   1
  -DELETE A        M: 15 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  nulrgd  A        M: 15 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
  -DELETE A        M:  1 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
              VARIABLE : IF I EQ J THEN 1 ELSE A0
                         regrid: 10 delta on X
              FILENAME : test_100x100.nc
@@ -38491,10 +38491,10 @@ list/prec=1 a[i=1:100:10] !  this looks just right!!
  100   / 100:  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX003)   X                   10 r   1                    91                  10 pts
+ (AX###)   X                   10 r   1                    91                  10 pts
  YAX1_100  Y                  100 r   1                    100                 full
  normal    Z
  normal    T
@@ -38502,15 +38502,15 @@ show grid
 ! should be a diagonal path of steps all the way across the plot
 shade a[i=1:100:10]
  eval    EX#1     C:  4 dset:   1 I:      1    100  J:    1  100  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
- strip regrid on X: A --> (G003)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
+ strip regrid on X: A --> (G###)           @XACT
  strip reversing A on Y axis:        1      100 dset:   1
  rdstride A        C:  8 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  doing reversing A on Y axis:        1      100 dset:   1
  -DELETE A        M:  1 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
  nulrgd  A        M:  1 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
  -DELETE A        M: 21 dset:   1 I:      1     91  J:    1  100  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_100  NORMAL    NORMAL
 setting up 2D plot
  -DELETE A        M: 21 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
 PPL plot 26   complete
@@ -38824,11 +38824,8 @@ save/q/clob/file=g.nc b
 can var a b
  
 sp ncrename -h -v A,a f.nc
-ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
 sp ncrename -h -v A,a -v B,b f2.nc
-ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 2 variables
 sp ncrename -h -v B,b g.nc
-ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
 use f.nc
 use f2.nc
 use g.nc
@@ -38894,7 +38891,7 @@ list b[d=1]
  
  
 *** Running ferret script: bn_cancel_axes.jnl
-[?1034h! bn_cancel_axes.jnl
+! bn_cancel_axes.jnl
  
 let ind1 = 1*i
 let tim1 = 20500*randu(ind1[i=1:20500])
@@ -39143,8 +39140,21 @@ T0 = 01-JAN-0000 00:00:00
        3>  16-AUG 06:38:15       2191.455   01-JUL 14:54:36        5478.637
        4>  15-NOV 14:05:33       2191.455   30-SEP 22:21:54        7670.092
  
+! test reading space delimited values - trac #2549
+columns/skip=3/var="v1,v2"/typ="num,num" longax.dat
+list/clobber/file=longaxspace.dat/norow/nohead v1, v2
+let nrecs = `v1,return=isize`
+ !-> DEFINE VARIABLE nrecs = 20500
+can data/all
+define axis/x=1:`nrecs`:1 xax
+ !-> define axis/x=1:20500:1 xax
+define grid/x=xax xgrid
+columns/grid=xgrid/delim="\b"/var="v1,v2"/typ="num,num" longaxspace.dat
+! this used to cause a crash (due to improper memory advancing to skip spaces)
+load v1
+ 
 *** Running ferret script: bn542_bug_fixes.jnl
-[?1034h! bn542_bug_fixes.jnl
+! bn542_bug_fixes.jnl
 ! test various fixes that went into version 5.42
 ! 10/02 *acm*
 !
@@ -39357,7 +39367,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 ! GO err541_date_delim
  
 *** Running ferret script: bn_subspan_modulo.jnl
-[?1034h! bn_subspan_modulo.jnl
+! bn_subspan_modulo.jnl
 ! *sh* 11/02
  
 ! a subspan modulo axis is one which is modulo, but the wrapping length
@@ -39949,37 +39959,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
  dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPA
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPA
- dealloc  dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPA
- allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPA
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
  eval    EX#1     C:  4 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPA
- strip regrid on X: V2D_REG --> (G004)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
+ strip regrid on X: V2D_REG --> (G###)           @XACT
  found   V2D_REG  M: 71 dset:   1 I:      0     14  J: -999 -999  K: -999 -999  L:      1      1
  regrid  V2D_REG  M: 72 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPA
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
            ....  12.00  14.00  16.00  11.00  13.00  15.00   ....
 l200n/order=x $2[l=1,i=0:14:7]
  !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:7]
         ............
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
- dealloc  dynamic grid (G004)          (AX001)   NORMAL    NORMAL    TAX_SUBSPA
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TAX_SUBSPA
  -DELETE V2D_REG  M: 73 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)
- dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)
+ allocate dynamic grid (G###)          XAX_SUBSPANORMAL    NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          XAX_SUBSPANORMAL    NORMAL    (AX###)
+ allocate dynamic grid (G###)          XAX_SUBSPANORMAL    NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      8
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)
- strip regrid on T: V2D_REG --> (G004)           @XACT
+ allocate dynamic grid (G###)          XAX_SUBSPANORMAL    NORMAL    (AX###)
+ strip regrid on T: V2D_REG --> (G###)           @XACT
  strip moduloing V2D_REG on T axis:        1       15 dset:   1
  rdstride V2D_REG  C:  9 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  doing moduloing V2D_REG on T axis:        1        5 dset:   1
  -DELETE V2D_REG  M: 73 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  nulrgd  V2D_REG  M: 73 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      8
  -DELETE V2D_REG  M: 74 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1     15
- dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)
+ dealloc  dynamic grid (G###)          XAX_SUBSPANORMAL    NORMAL    (AX###)
  16-JAN-0000 / 1:   11.0
  16-MAR-0000 / 2:   71.0
  15-MAY-0000 / 3:  131.0
@@ -40480,37 +40490,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
  dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUB
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUB
- dealloc  dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUB
- allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUB
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
  eval    EX#1     C:  4 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUB
- strip regrid on X: V2D_IRR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
+ strip regrid on X: V2D_IRR --> (G###)           @XACT
  found   V2D_IRR  M:150 dset:   1 I:      0     14  J: -999 -999  K: -999 -999  L:      1      1
  regrid  V2D_IRR  M:151 dset:   1 I:      1      8  J: -999 -999  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUB
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
            ....  12.00  14.00  16.00  11.00  12.10  15.00   ....
 l200n/order=x $2[l=1,i=0:14:7]
  !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:7]
         ............
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
- dealloc  dynamic grid (G006)          (AX005)   NORMAL    NORMAL    TIRREG_SUB
+ dealloc  dynamic grid (G###)          (AX###)   NORMAL    NORMAL    TIRREG_SUB
  -DELETE V2D_IRR  M:152 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)
- dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)
- allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)
+ allocate dynamic grid (G###)          XIRREG_SUBNORMAL    NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          XIRREG_SUBNORMAL    NORMAL    (AX###)
+ allocate dynamic grid (G###)          XIRREG_SUBNORMAL    NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      8
- allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)
- strip regrid on T: V2D_IRR --> (G006)           @XACT
+ allocate dynamic grid (G###)          XIRREG_SUBNORMAL    NORMAL    (AX###)
+ strip regrid on T: V2D_IRR --> (G###)           @XACT
  strip moduloing V2D_IRR on T axis:        1       15 dset:   1
  rdstride V2D_IRR  C:  9 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  doing moduloing V2D_IRR on T axis:        1        5 dset:   1
  -DELETE V2D_IRR  M:152 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      5
  nulrgd  V2D_IRR  M:152 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      8
  -DELETE V2D_IRR  M:153 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1     15
- dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)
+ dealloc  dynamic grid (G###)          XIRREG_SUBNORMAL    NORMAL    (AX###)
  16-JAN-0000 / 1:   11.0
  15-MAR-0000 / 2:   70.2
  15-MAY-0000 / 3:  131.2
@@ -40604,7 +40614,7 @@ list $1_strings[i=1013:1024] 	! via IS_MODULO
  
  
 *** Running ferret script: bn_dots.jnl
-[?1034h! PLOT/SYMBOL=DOT  qualifiers
+! PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 12/02
 ! ACM 4/2005 set mode meta to save this plot for the metafile checks.
 !            and cancel mode logo, so that .plt files are comparable.
@@ -40623,7 +40633,7 @@ plot/symbol=dot/size=0.5/over/i=1:1000 -0.5*sin(62.8*(i+10) )
  
 vector/i=1:5/j=1:5 0.*(i+j),0*(i+j)
 *** Running ferret script: bn_lev_symbols.jnl
-[?1034h! Test symbols which capture the latest LEVELS settings
+! Test symbols which capture the latest LEVELS settings
 ! LEV_TEXT  The argument, if any, to the LEV qualifier
 ! LEV_MIN  Minimum level
 ! LEV_MAX  Maximum level
@@ -40698,7 +40708,7 @@ LEV_MAX = "33"
 LEV_NUM = "1"
 LEV_DEL = "none"
 *** Running ferret script: bn_mode_logo_lab.jnl
-[?1034h 
+ 
 ! bn_mode_logo_lab.jnl
 ! cancel both logo and labels
 ! NOTE this script redefined the pre-defined viewports ul, ur, ll, lr...
@@ -40795,7 +40805,7 @@ cancel view
 cancel mode logo
 set mode labels
 *** Running ferret script: bn_modulo_attribute.jnl
-[?1034h! Ferret V5.50 m
+! Ferret V5.50 m
  
 ! Modulo attribute can take numerical values to indicate
 ! the modulo length of axis (subspan modulo changes)
@@ -40834,7 +40844,7 @@ T0 = %%
    Axis span (to cell edges) = 40 (modulo length = axis span)
  
 *** Running ferret script: bn550_bug_fixes.jnl
-[?1034h! bn550_bug_fixes.jnl
+! bn550_bug_fixes.jnl
 ! test various fixes that went into version 5.5
 ! 10/02 *acm*
 !
@@ -40852,7 +40862,7 @@ shade pc
 poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
  
 *** Running ferret script: bn551_bug_fixes.jnl
-[?1034h! bn551_bug_fixes.jnl
+! bn551_bug_fixes.jnl
 ! test various fixes that went into version 5.51
 ! 2/03 *acm*
 !
@@ -41089,7 +41099,7 @@ GO err550_dots_thickpens.jnl
  
 plot/sym=dot/color=8/i=1:10 i
 *** Running ferret script: bn_multi_line_labels.jnl
-[?1034h     ! bn_multi_line_labels.jnl
+     ! bn_multi_line_labels.jnl
 ! March 31, 2003
 !
 ! ACM 4/2005 ! set mode meta to save this plot for the metafile checks.
@@ -41217,7 +41227,7 @@ ppl plot
  
 ppl rlabs,4,0
 *** Running ferret script: bn552_bug_fixes.jnl
-[?1034h! bn552_bug_fixes.jnl
+! bn552_bug_fixes.jnl
 ! test various fixes that went into version 5.52
 ! 3/03 *acm*
 !
@@ -41488,8 +41498,8 @@ list/x=160e/y=5s temp[d=2,k=1,gxy=a[d=1]]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
-    GRID (G003)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -41711,7 +41721,7 @@ list/t=1-jan-1990 dummy
  
 SET MODE/LAST IGNORE_ERROR
 *** Running ferret script: bn_set_var_scale_off.jnl
-[?1034h! Qualifiers /SCALEFACTOR=  and /OFFSET  for SET VARIABLE.
+! Qualifiers /SCALEFACTOR=  and /OFFSET  for SET VARIABLE.
 ! Only for NetCDF datasets
 ! Applied after NetCDF Scale_factor and add_offset attributes
 ! New RETURN= arguments NC_SCALE, NC_OFF for values of NetCDF attributes
@@ -41756,7 +41766,7 @@ SET VAR/SCALE=10 x2
  
 SET MODE/LAST IGNORE_ERROR
 *** Running ferret script: bn_longvarnames.jnl
-[?1034h! variable names up to 128 characters long
+! variable names up to 128 characters long
 ! 3/2006 make them 127 to be able to add the null terminator for C strings
 !        else not used correctly in linked-list attribute structure.
  
@@ -41859,7 +41869,7 @@ LIST/K=2/L=3 a234567890b234567890c234567890d234567890e234567890f234567890g234567
  3   / 3:   9.00  15.00  21.00  27.00  33.00
  4   / 4:  11.00  19.00  27.00  35.00  43.00
 *** Running ferret script: bn_shakey.jnl
-[?1034h! Changes to shade key:
+! Changes to shade key:
 ! - Default size is a little bigger
 ! - To put key labels on the left or bottom of the key, multiply the size by -1
 ! - Previously ALL OF kx_lo, kx_hi,ky_lo, ky_hi had to be set, or none of them
@@ -41984,7 +41994,7 @@ ppl list shakey
          X LO     X HI     Y LO     Y HI
          1.20     9.20    -1.40    -1.31
 *** Running ferret script: bn_eof_4d.jnl
-[?1034h! bn_eof_4d.jnl
+! bn_eof_4d.jnl
 ! test EOFs on XYZT grids
  
 ! In version 6.8 (double precision), the old eof functions are not available
@@ -42191,7 +42201,7 @@ list/nohead/i=1:5/j=3/k=9 eofst
  
 exit/script
 *** Running ferret script: bn_abstract_axis_names.jnl
-[?1034h! bn_abstract_axis_names.jnl
+! bn_abstract_axis_names.jnl
 ! acm 6/12/03
 !
 ! Write and read datafiles with no clues about axis orientation from
@@ -42374,7 +42384,7 @@ sh grid v
  DDD       T                    7 r   1                    13                  full
 can data 1
 *** Running ferret script: bn_many_polygons.jnl
-[?1034h! testing large number of polygons in a plot.  Map plot has
+! testing large number of polygons in a plot.  Map plot has
 ! 130501 polygons; previously we had an upper limit of 100K polygons
  
 use coads_climatology
@@ -42402,7 +42412,7 @@ let xpts = 180 + 30*randu(i[i=1:10])
 let ypts = 30*randu(1+i[i=1:10])
 polygon xtriangle+xpts, ytriangle+ypts, i[i=1:10]
 *** Running ferret script: bn_fill_irregular.jnl
-[?1034h! FILL on vars with irregular axes
+! FILL on vars with irregular axes
  
 use gtbc011
 fill/i=70/l=1 temp
@@ -42423,7 +42433,7 @@ fill v2d_irr[t=1-jan-1990:1-jan-1995]
 use coads_clim_irreg.des
 fill/x=180 sst
 *** Running ferret script: bn_xml_output.jnl
-[?1034h!bn_xml_output.jnl
+!bn_xml_output.jnl
 ! new-V553 output in XML-style format
 ! Illustrate the SHOW commands with /XML xml-style output
 ! V5.80 11/04 new tests for SHOW VAR/XML; global variables.
@@ -42665,7 +42675,7 @@ SHO VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
 </axes>
 </grid>
@@ -42720,7 +42730,7 @@ SHO VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
 </axes>
 </grid>
@@ -42742,7 +42752,7 @@ SHOW VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
 </axes>
 </grid>
@@ -42910,7 +42920,7 @@ SHO DATA/VAR/XML 1
 </axis>
 </axes>
 *** Running ferret script: bn_test_nan.jnl
-[?1034h!bn_test_nan.jnl
+!bn_test_nan.jnl
 ! test to make sure that NaN is able to be set by user
 !  as bad value.  If this fails, Ferret will crash
 !  Test on a file which is nothing but NaN's, and use
@@ -42986,7 +42996,7 @@ can var/all
  
  
 *** Running ferret script: bn553_bug_fixes.jnl
-[?1034h! bn553_bug_fixes.jnl
+! bn553_bug_fixes.jnl
 ! test various fixes that went into version 5.52
 ! 9/03 *kob*
 !
@@ -43074,7 +43084,7 @@ ppl shakey 1,1,.12
 ppl shade
  
 *** Running ferret script: bn_graticules.jnl
-[?1034h! /GRAT, /HGRAT and /VGRAT to set graticule lines
+! /GRAT, /HGRAT and /VGRAT to set graticule lines
 ! ACM March 12, 2004
 ! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
 !            and cancel mode logo, so that .plt files are comparable.
@@ -43182,7 +43192,7 @@ can mode graticule
 pplus/reset   ! restore tics etc
  
 *** Running ferret script: bn_repeat_range.jnl
-[?1034h! REPEAT/RANGE=[/NAME=]  for looping without depending
+! REPEAT/RANGE=[/NAME=]  for looping without depending
 ! on the grid\
 ! ACM March 12, 2004
  
@@ -43682,7 +43692,7 @@ repeat/range=1:4/name=a (repeat/range=3:1:-1/name=a list a)
 !-> REPEAT: A:4
 cancel mode ignore
 *** Running ferret script: bn554_bug_fixes.jnl
-[?1034h! bn554_bug_fixes.jnl
+! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.54
 ! 11/03 *acm*
 !
@@ -44048,52 +44058,52 @@ let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
 load a
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  eval    A        C:  6 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
- strip regrid on X: TAUX --> (G005)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: TAUX --> (G###)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
  nulrgd  TAUX     M: 23 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE TAUX     M: 24 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
 can mem/all
  -DELETE TAUX     M: 23 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE A        M: 24 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  
 def grid/like=taux agrid
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  getgrid EX#1     C:  6 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME
 set mode diag
 let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
  dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
 load a
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  eval    A        C:  6 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
- strip regrid on X: TAUX --> (G005)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: TAUX --> (G###)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
  nulrgd  TAUX     M: 23 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE TAUX     M: 24 dset:   1 I:     50     54  J:   44   50  K: -999 -999  L:      1    161
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  
 can mem/all
  -DELETE TAUX     M: 23 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
  -DELETE A        M: 24 dset:   1 I:      1      3  J:    1    3  K: -999 -999  L:      1     21
 can data/all
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
@@ -44136,16 +44146,16 @@ load var
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    3  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    2    3  K:    1    2  L:      1      1
  nulrgd  VAR      M: 22 dset:   1 I:      1      2  J:    2    3  K:    1    2  L:      1      1
  -DELETE VAR      M: 23 dset:   1 I:      2      4  J:    2    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -44160,19 +44170,19 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.  1224.
  3   / 3:  1232.  1234.
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  -DELETE VAR      M: 22 dset:   1 I:      1      2  J:    2    3  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M: 22 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44193,19 +44203,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  strip moduloing VAR on X axis:        1       10 dset:   1
  reading VAR      M: 24 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  doing moduloing VAR on X axis:        1        4 dset:   1
  regrid  VAR      M: 22 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -44226,18 +44236,18 @@ cancel axis/modulo XAX1_4
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_3    ZAX1_2    TAX1_1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M: 24 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44252,19 +44262,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  -DELETE VAR      M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
- dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
- allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
- strip regrid on X: VAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G###)           @XACT
  rdstride VAR      C:  7 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
  nulrgd  VAR      M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE VAR      M: 23 dset:   1 I:      2      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44281,24 +44291,24 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_2    TAX1_1
  -DELETE VAR      M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      3      6  J:    1    1  K:    1    1  L:      1      1
  eval    A        C:  7 dset:   1 I:      3      5  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M: 23 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
  -DELETE BIGVAR   M: 24 dset:   1 I:      1     36  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -44312,24 +44322,24 @@ list/j=1/k=1/l=1 a[i=3:5]
  21   / 5:  1131.
  -DELETE A        M: 22 dset:   1 I:      1      1  J:    3    5  K:    1    1  L:      1      1
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
- dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
- allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      3      6  J:    2    4  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
- strip regrid on Y: A --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
+ strip regrid on Y: A --> (G###)           @XACT
  eval    A        C:  8 dset:   1 I:      3      5  J:    1    7  K:    1    1  L:      1      1
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
  nulrgd  BIGVAR   M: 20 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
  -DELETE BIGVAR   M: 22 dset:   1 I:      1     36  J:    1    7  K:    1    1  L:      1      1
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  regrid  A        M:  8 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44354,19 +44364,19 @@ cancel mem/all
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   ZAX1_20   TAX1_10
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
- dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
- allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      3      6  J:    1    1  K:    1    1  L:      1      1
- allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
- strip regrid on X: UNEVENVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G###)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
  nulrgd  UNE-NVAR M: 23 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M: 24 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
- dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -44384,19 +44394,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
  -DELETE UNE-NVAR M: 23 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
- dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
- allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
- strip regrid on X: BIGVAR --> (G007)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M: 23 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44413,24 +44423,24 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1345.  1347.  1349.
  6   / 3:  1363.  1365.  1367.  1369.
 canc data/all
- dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
  canceling dset ./bn_strides.cdf
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
- strip regrid on X: BIGVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
+ strip regrid on X: BIGVAR --> (G###)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
  nulrgd  BIGVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  -DELETE BIGVAR   M: 24 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44447,7 +44457,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1543.  1743.  1943.
  6   / 3:  1363.  1563.  1763.  1963.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -44458,16 +44468,16 @@ use bn_strides
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M: 23 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44485,7 +44495,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  
 use/order=tyx bn_strides
 show grid xytvar
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  getgrid EX#1     C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
     GRID EGRID
@@ -44498,16 +44508,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
  nulrgd  XYTVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  -DELETE XYTVAR   M: 24 dset:   1 I:      1      7  J:    2    6  K: -999 -999  L:      3      5
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44523,7 +44533,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.  5043.  5045.  5047.
  2N   / 1:  5021.  5023.  5025.  5027.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
@@ -44542,16 +44552,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      2
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
- strip regrid on X: XYTVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
+ strip regrid on X: XYTVAR --> (G###)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
  nulrgd  XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  -DELETE XYTVAR   M: 23 dset:   1 I:      1      7  J:    2    6  K:    3    5  L:   -999   -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -44567,7 +44577,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
  -DELETE XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  canceling dset ./bn_strides.cdf
  
@@ -44578,16 +44588,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44602,26 +44612,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.  1552.
  5   / 2:  1515.  1555.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      1      5  J:    5    8  K:    3    5  L:      1      1
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44636,7 +44646,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.  1558.
  5   / 2:  1515.  1555.
 canc data/all
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -44644,16 +44654,16 @@ canc data/all
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44668,7 +44678,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.  5125.
  5   / 2:  1155.  5155.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -44676,19 +44686,19 @@ canc data/all
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on X axis:        1        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    4    7  K:    3    5  L:      7      7
  doing reversing MIDVAR on X axis:        1        5 dset:   1
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44703,7 +44713,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.  2775.
  5   / 2:  6745.  2745.
 canc data/all
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -44711,16 +44721,16 @@ canc data/all
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44735,26 +44745,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.  5152.
  5   / 2:  1155.  5155.
 canc data/all
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
- strip regrid on X: MIDVAR --> (G006)           @XACT
+ allocate dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G###)           @XACT
  strip reversing MIDVAR on Y axis:        2        5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:      2      6  J:    5    8  K:    3    5  L:      7      7
  doing reversing MIDVAR on Y axis:        2        5 dset:   1
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
  nulrgd  MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      5  J:    2    5  K:    3    5  L:      1      1
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44769,7 +44779,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.  2758.
  5   / 2:  6755.  2755.
 canc data/all
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  canceling dset ./bn_strides.cdf
  
@@ -45155,7 +45165,7 @@ list/wid=1024/y=1:2 sin(x[gx=xax]) + y[gy=yax]
  
 can mode ignore
 *** Running ferret script: bn_bounds.jnl
-[?1034h 
+ 
 ! bn_bounds.jnl
 ! testing CDF read and write of file with irregular axes and bounds
 ! and DEFINE AXIS/BOUNDS
@@ -45517,7 +45527,7 @@ sh axis/t tax
        4>  10                    1          9.5
        5>  11                    1          10.5
 *** Running ferret script: bn_all_leap.jnl
-[?1034h! bn_all_leap.jnl
+! bn_all_leap.jnl
 ! ACM 6/2004
 ! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
 ! leap year every year
@@ -45567,7 +45577,7 @@ def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  
 can mode ignore
 *** Running ferret script: bn570_bug_fixes.jnl
-[?1034h! bn554_bug_fixes.jnl
+! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.70
 ! 11/03 *acm*
 !
@@ -45810,7 +45820,7 @@ plot v[gt=tax at asn]
 def axis/t=07-feb-0599:07-feb-0600:1/units=years tt
 plot t[gt=tt]
 *** Running ferret script: bn_modstats.jnl
-[?1034h! bn_modstats.jnl
+! bn_modstats.jnl
 ! acm 8/25/04
 ! There was never a benchmark test of modulo statistics.
 ! (and a bug had crept into @MODVAR when there was missing data)
@@ -45957,7 +45967,7 @@ list var[gt=month_reg at modngd]
  15-NOV      / 11:  10.00
  16-DEC      / 12:  10.00
 *** Running ferret script: bn_mc_vary_scale.jnl
-[?1034h! bn_mc_vary_scale.jnl
+! bn_mc_vary_scale.jnl
 !   Allow stepfiles to have different internal scale and offset.
 !   read and apply when opening each stepfile. Previously, the
 !   scale and offset from the first stepfile were applied.
@@ -46035,7 +46045,7 @@ list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
 I / *:     2.000 -0.02000
  
 *** Running ferret script: bn_plot_nokey.jnl
-[?1034h! bn_plot_nokey.jnl (bug 1089)
+! bn_plot_nokey.jnl (bug 1089)
 ! 22-nov-2004
  
 ! Test new PLOT/NOKEY qualifier
@@ -46054,7 +46064,7 @@ PLOT/X=180/Y=0/K=1 temp
 PLOT/OVER/NOKEY/X=180/Y=-1/K=1 temp
 PLOT/OVER/NOKEY/X=180/Y=1/K=1 temp
 *** Running ferret script: bn580_bug_fixes.jnl
-[?1034h! bn580_bug_fixes.jnl
+! bn580_bug_fixes.jnl
 ! test various fixes that went into version 5.80
 ! 7/04 *acm*
 !
@@ -47238,7 +47248,7 @@ POLYGON XT, YT, I[I=1:10]
  
 PLOT/VS XT, YT
 *** Running ferret script: bn_inf_levels.jnl
-[?1034h! Run FERRET/fer/ferretdods_gui
+! Run FERRET/fer/ferretdods_gui
 ! test open upper and lower levels (-INF) (INF)
  
 can mode logo
@@ -47329,7 +47339,7 @@ go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequen
  
  
 *** Running ferret script: bn_regulart.jnl
-[?1034h! bn_regulart.jnl
+! bn_regulart.jnl
 ! 5/12/2005 ACM
  
 ! Test of the USE/REGULART qualifier
@@ -47346,11 +47356,11 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
  Column  1: T is T (axis TCOADS)
  Column  2: TBOX is TBOX (axis TCOADS)
                          T   TBOX
-16-JAN-1946 12 / 1:  89865.  31.00
+16-JAN-1946 12 / 1:  89864.  31.00
 15-FEB-1946 00 / 2:  89894.  28.00
 16-MAR-1946 12 / 3:  89924.  31.00
 16-APR-1946 00 / 4:  89954.  30.00
-16-MAY-1946 12 / 5:  89985.  31.00
+16-MAY-1946 12 / 5:  89984.  31.00
 16-JUN-1946 00 / 6:  90015.  30.00
 can data/all
  
@@ -47365,7 +47375,7 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
  Column  1: T is T (axis TCOADS)
  Column  2: TBOX is TBOX (axis TCOADS)
                       T   TBOX
-16-JAN-1946 / 1:  89865.  30.44
+16-JAN-1946 / 1:  89864.  30.44
 15-FEB-1946 / 2:  89895.  30.44
 18-MAR-1946 / 3:  89925.  30.44
 17-APR-1946 / 4:  89956.  30.44
@@ -47373,7 +47383,7 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
 17-JUN-1946 / 6:  90017.  30.44
  
 *** Running ferret script: bn_labwid.jnl
-[?1034h! LABWID returns the length in Denbo inches of the
+! LABWID returns the length in Denbo inches of the
 ! string.  For multi-line strings, returns length of
 ! the longest line.
  
@@ -47430,7 +47440,7 @@ LIST LABWID("@IISTRING<NL>@SSSTRING", .15)
              X        : 1
           0.9808
 *** Running ferret script: bn_redefine_taxis_mc.jnl
-[?1034h! bn_redefine_taxis_mc.jnl
+! bn_redefine_taxis_mc.jnl
 ! ACM 15-Apr-2005
  
 ! Redefine the time axis of a multi-file data set.
@@ -47493,7 +47503,7 @@ list/x=180/y=0 sst
  5   / 5:  28.49
  6   / 6:  28.32
 *** Running ferret script: bn_illegal_axisname.jnl
-[?1034h! Some OPenDAP HDF files have illegal axis names, e.g. with a dot in the name.
+! Some OPenDAP HDF files have illegal axis names, e.g. with a dot in the name.
 ! This is a test of using such names, in a redefinition of the axes of the data.
 ! The file has a variable with axis names COADSX.ILLEGAL, COADSY.ILLEGAL. The axes contain
 ! just indices.  The file also has variables NEW.LONGITUDES and NEW.LATITUDES which contain
@@ -47544,7 +47554,7 @@ sh grid sst
  normal    Z
  normal    T
 *** Running ferret script: bn_exit_script.jnl
-[?1034h! bn_exit_script.jnl
+! bn_exit_script.jnl
 ! 5/2005 ACM
 ! tests of EXIT/SCRIPT command, in combination with IF and REPEAT
 ! 3/2007 add a check for exit/script within a loop (fixes for bug 1304)
@@ -47630,7 +47640,7 @@ loop
 3
 loop
 *** Running ferret script: bn_exit_cycle.jnl
-[?1034h! bn_exit_cycle.jnl
+! bn_exit_cycle.jnl
 ! 5/2005 ACM
 ! EXIT/CYCLE skips remaining commands in this repetition of a loop
  
@@ -47658,7 +47668,7 @@ say 16384 if bigger than 500
  
 loop finished 16384 gt 10000
 *** Running ferret script: bn_curv_mod.jnl
-[?1034h! bn_curv_mod
+! bn_curv_mod
 ! Test of fill/mod and contour/mod
 ! 5/24/2005 Ferret v5.81
  
@@ -47676,7 +47686,7 @@ fill/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,
 contour/over/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,j=1:24]
  
 *** Running ferret script: bn_shade_keycont.jnl
-[?1034h! Continuous shade key
+! Continuous shade key
 ! test setting it and whether default is restored on next command.
 ! also whether behavior consistent when we call shakey
  
@@ -47769,7 +47779,7 @@ ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
  !-> ppl shakey ,0,-.12,3,,,2.2,5.212,1.4
 ppl fill
 *** Running ferret script: bn581_bug_fixes.jnl
-[?1034h! bn581_bug_fixes.jnl
+! bn581_bug_fixes.jnl
 ! test various fixes that went into version 5.81
 ! 2/05 *acm*
 !
@@ -47788,7 +47798,7 @@ GO err580_irreg_bounds.jnl
 def ax/t/edge time = {0,1,3}
 let a = t[gt=time]
 show grid/t a
-    GRID (G001)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -48261,7 +48271,7 @@ POLYGON/LINE/fill xp, yp, ypts
 ! GO err580_regrid_prec.jnl
  
 *** Running ferret script: bn_tab_comma_multivar.jnl
-[?1034h! bn_tab_comma_multivar.jnl
+! bn_tab_comma_multivar.jnl
 !
 ! Fixes for bug 1273
 ! v5.90 8/9/2005
@@ -48303,7 +48313,7 @@ COUNTRY	ID	AA	BB	NEWCOUNTRY	THE_DATA_VAR
 "JP"	2	8000	2000500	"c"	5  
 "US"	3	12000	3000500	"e"	4  
 *** Running ferret script: bn_element_functions.jnl
-[?1034h ! NOAA/PMEL TMAP
+ ! NOAA/PMEL TMAP
  ! FERRET v5.81
  ! Solaris 5.6 - 08/08/05
  !  9-Aug-05 14:36
@@ -48427,14 +48437,14 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
  2   / 2:   ....  3.000
  
 *** Running ferret script: bn_long_revision_num.jnl
-[?1034h! bn_long_revision_num.jnl
+! bn_long_revision_num.jnl
 ! ACM 8/30/05
 ! revision numbers were previously limited to 2 decimal places: v5.81
 ! Now they can be longer, for minor revisions between releases: v5.8101
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "7.1"
+FERRET_VERSION = "7.2"
  
 ! history attribute
 let a = 12
@@ -48452,7 +48462,7 @@ LAB1 = "X : 0.5 to 314.5"
  
 ! show commands without an argument, lists version number at the top
 sho command
- Commands in Program PyFerret (beta/debug) version7.1:
+ Commands in Program PyFerret (beta/debug) version7.2:
  SET
  SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE/QUALITY/ANTIALIA/NOANTIAL
       /ENGINE/COLOR/OPACITY/THICKEN/XPIXELS/YPIXELS/XINCHES/YINCHES/TEXTPROM
@@ -48568,7 +48578,7 @@ sho command
         /OPACITY/DEGMINSE/HALFSPAC
  SPAWN
  WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
-       /TRANPOSE/NOLABEL/ZSCALE/TITLE
+       /TRANPOSE/NOLABEL/ZSCALE/COLOR/THICKNES/OPACITY/TITLE
  QUERY/ALL/FILE/IGNORE
  IF
  ELSE
@@ -48582,7 +48592,7 @@ sho command
  
  Use SHOW ALIAS to see alternative command names
 *** Running ferret script: bn_window_title.jnl
-[?1034h! bn_window_title.jnl
+! bn_window_title.jnl
 ! Define a title for windows rather than just FERRET_1, FERRET_2, ...
 ! If no title is set, use SESSION_DATE:SESSION_TIME
  
@@ -48593,7 +48603,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "18-Apr-17_17:15"
+WIN_TITLE = "DD-MON-YY HH:MM"
  
 set win/title="set the title"
 sho sym win_title
@@ -48611,7 +48621,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="18-Apr-17:17:15"
+ !-> set win/title="DD-MON-YY HH:MM"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -48620,18 +48630,18 @@ set win/title="($session_date):($session_time)"
 ! If so substitute another string.
  
 DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 18-Apr-17
+ !-> DEFINE SYMBOL the_date = DD-MON-YY
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 17:15
+ !-> DEFINE SYMBOL the_time = HH:MM
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="18-Apr-17:17:15"
+ !-> SET WIN/TITLE="DD-MON-YY HH:MM"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "18-Apr-17:17:15"
+WIN_TITLE = "DD-MON-YY HH:MM"
 *** Running ferret script: bn_last_error.jnl
-[?1034h! bn_last_error.jnl
+! bn_last_error.jnl
 ! acm Nov 2005
 !
 ! - test the symbol FER_LAST_ERROR (Commands from various bn scripts)
@@ -48684,7 +48694,7 @@ FER_LAST_ERROR = "**ERROR: error in external function. Bailing out of external f
  
 SET MODE/LAST IGNORE_ERROR
 *** Running ferret script: bn_deg_min.jnl
-[?1034h! bn_deg_min.jnl
+! bn_deg_min.jnl
 ! label axes with degrees and minutes rather than degrees and decimal degrees.
 ! 19-May-06 add seconds as well...
  
@@ -48734,7 +48744,7 @@ plot/x=223./DEGMIN/HALFSP rose
 plot/y=58.52/DEGMIN=2/HALFSP rose
 plot/vs/HALFSP  xpts, ypts
 *** Running ferret script: bn_dp_readscale.jnl
-[?1034h! bn_dp_readscale.jnl
+! bn_dp_readscale.jnl
 ! 9-Feb-2006 ACM
  
 ! When there is a double precision variable,
@@ -48810,7 +48820,7 @@ list xax
  
 cancel list/precision
 *** Running ferret script: bn_bounds_defineax.jnl
-[?1034h! bn_bounds_defineax.jnl
+! bn_bounds_defineax.jnl
 ! 3/22/2006
 ! Previously only allowed 2*N definition of bounds in DEFINE AXIS/BOUNDS
 ! Now allow N+1 definition of bounds, or three equal-lenght lists of
@@ -48905,7 +48915,7 @@ list  zl2,(zl2+zh2)/2,zh2
 K / 1:   0.50    1.5    2.5
 K / 2:   2.50    5.5    8.5
 K / 3:   8.50   20.5   32.5
-K / 4:  32.50  116.3  200.0
+K / 4:  32.50  116.2  200.0
 def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
  
 list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
@@ -48917,7 +48927,7 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 1.5   / 1:   0.50    1.5    2.5
 5.5   / 2:   2.50    5.5    8.5
 20.5  / 3:   8.50   20.5   32.5
-116.3 / 4:  32.50  116.3  200.0
+116.2 / 4:  32.50  116.2  200.0
  
 use gt4d011
  
@@ -48947,11 +48957,11 @@ K /  4:    60.    70.    80.
 K /  5:    80.    90.   100.
 K /  6:   100.   114.   128.
 K /  7:   128.   146.   165.
-K /  8:   165.   193.   220.
-K /  9:   220.   269.   317.
+K /  8:   165.   192.   220.
+K /  9:   220.   268.   317.
 K / 10:   317.   438.   559.
-K / 11:   559.   859.  1158.
-K / 12:  1158.  1679.  2199.
+K / 11:   559.   858.  1158.
+K / 12:  1158.  1678.  2199.
 K / 13:  2199.  2849.  3499.
 def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
  
@@ -48973,15 +48983,15 @@ list zboxlo[gz=temp], z[gz=temp], zboxhi[gz=temp]
 75      /  8:    70.    75.    80.
 85      /  9:    80.    85.    90.
 95      / 10:    90.    95.   100.
-106.3   / 11:   100.   106.   113.
-120     / 12:   113.   120.   128.
-136.3   / 13:   128.   136.   145.
+106.2   / 11:   100.   106.   112.
+120     / 12:   112.   120.   128.
+136.2   / 13:   128.   136.   145.
 155     / 14:   145.   155.   165.
 177.5   / 15:   165.   178.   190.
 205     / 16:   190.   205.   220.
 240     / 17:   220.   240.   260.
-288.5   / 18:   260.   289.   317.
-362.5   / 19:   317.   363.   408.
+288.5   / 18:   260.   288.   317.
+362.5   / 19:   317.   362.   408.
 483.5   / 20:   408.   484.   559.
 680     / 21:   559.   680.   801.
 979.5   / 22:   801.   980.  1158.
@@ -49004,15 +49014,15 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 70     /  4:    60.    70.    80.
 90     /  5:    80.    90.   100.
 113.8  /  6:   100.   114.   128.
-146.3  /  7:   128.   146.   165.
-192.5  /  8:   165.   193.   220.
-268.5  /  9:   220.   269.   317.
+146.2  /  7:   128.   146.   165.
+192.5  /  8:   165.   192.   220.
+268.5  /  9:   220.   268.   317.
 438    / 10:   317.   438.   559.
-858.5  / 11:   559.   859.  1158.
-1678.5 / 12:  1158.  1679.  2199.
+858.5  / 11:   559.   858.  1158.
+1678.5 / 12:  1158.  1678.  2199.
 2849   / 13:  2199.  2849.  3499.
 *** Running ferret script: bn_attributes.jnl
-[?1034h! bn_attributes
+! bn_attributes
 ! test attribute handling on netcdf intput/output and
 ! programatic access to attribute information
 ! needs new cdf files modfalse.nc, test0.nc
@@ -50541,15 +50551,15 @@ sh dat/att
   
  .                               history         CHAR        6    F       EZ.DAT
   
- a1                    FLOAT     long_name       CHAR        2    T       a1
-                                 missing_value   FLOAT       1    T       -1.E+34
+ a1                    DOUBLE    long_name       CHAR        2    T       a1
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  three           FLOAT       3    T       1 2 3
   
- a2                    FLOAT     long_name       CHAR        2    T       a2
-                                 missing_value   FLOAT       1    T       -1.E+34
+ a2                    DOUBLE    long_name       CHAR        2    T       a2
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- a3                    FLOAT     long_name       CHAR        2    T       a3
-                                 missing_value   FLOAT       1    T       -1.E+34
+ a3                    DOUBLE    long_name       CHAR        2    T       a3
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 save/file=a.nc/clobber a1,a2,a3
 sp echo "bn_attributes.jnl --- 14 attributes of data from ez data." >> all_ncdump.out
@@ -51310,7 +51320,7 @@ list temp.test_counter[i=3:5]
  4   / 4:  4.000
  5   / 5:  5.000
 *** Running ferret script: bn_transforms.jnl
-[?1034h! Test the transforms
+! Test the transforms
  
 use coads_climatology
  
@@ -51514,7 +51524,7 @@ list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl],
 21N   / 56:  23.95  24.06  24.06  181.6  24.08    ....
 23N   / 57:  23.84  23.69  23.69  181.6  23.66    ....
 *** Running ferret script: bn_variance.jnl
-[?1034h ! bn_variance.jnl
+ ! bn_variance.jnl
  ! the @VAR transform is not tested in bn_transforms.jnl script.
  
 use coads_climatology
@@ -51550,7 +51560,7 @@ list/y=3/l=1/x=233 u[z=@var]
              TIME     : 17-AUG-1982 12:00
           11.33
 *** Running ferret script: bn_linecolors.jnl
-[?1034h! bn_linecolors.jnl
+! bn_linecolors.jnl
 ! 5/2006 ACM
 ! test setting more line colors
  
@@ -51615,7 +51625,7 @@ can win/all
 set win/new
  
 *** Running ferret script: bn_cdf_errmsg.jnl
-[?1034h! bn_cdf_errmsg.jnl
+! bn_cdf_errmsg.jnl
 ! ACM 7/13/2006
 ! test reporting of cdf error messages from OPeNDAP library v3.6.2
  
@@ -51660,7 +51670,7 @@ use asc.nc
 set mode/last ignore
  
 *** Running ferret script: bn600_bug_fixes.jnl
-[?1034h! bn600_bug_fixes.jnl
+! bn600_bug_fixes.jnl
 ! test various fixes that went into version 6.00
 ! 8/05 *acm*
 !
@@ -51771,11 +51781,11 @@ ELEMENT_INDEX_STR_N(VAR,STRINGS)
     VAR: string data to mask (STRING)
     STRINGS: list of strings to match (STRING)
 IS_ELEMENT_OF(VAR,VALUES)
-    Returns 1 if first argument contains any of the values in argument 2, else 0
+    Returns 1 if first argument contains any of the values in 2nd arg, else 0
     VAR: data to test
     VALUES: values to search for
 IS_ELEMENT_OF_STR(VAR,VALUES)
-    Returns 1 if first argument contains any of the values in 2nd argument (case sensitive), else 0
+    Returns 1 if first argument contains any of the values in 2nd arg (case sensitive), else 0
     VAR: string (STRING)
     VALUES: strings to search (STRING)
 IS_ELEMENT_OF_STR_N(VAR,VALUES)
@@ -52478,7 +52488,7 @@ set mem /size=25.6
  
  
 *** Running ferret script: bn601_bug_fixes.jnl
-[?1034h! bn601_bug_fixes.jnl
+! bn601_bug_fixes.jnl
 ! test various fixes that went into version 6.01
 ! 20-Sep-2006 ACM
 !
@@ -53065,7 +53075,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53114,7 +53124,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53337,7 +53347,7 @@ stat rose[j=12,d=1]
  Mean    value: 62.717 (unweighted average)
  Standard deviation: 156.25
 *** Running ferret script: bn_set_strides.jnl
-[?1034h! bn_set_strides.jnl
+! bn_set_strides.jnl
 ! Jing Li, 11/2006
 ! tests for SET AXIS/STRIDES
  
@@ -53380,17 +53390,17 @@ use coads_climatology
 set axis/stride=2/offset=1 `sst, return=xaxis`
  !-> set axis/stride=2/offset=1 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX005)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX005)   LONGITUDE           90mr   23E                  19E(379)
+ (AX###)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 !can't stride it again
 set axis/stride=2/offset=1 `sst, return=xaxis`
- !-> set axis/stride=2/offset=1 (AX005)
+ !-> set axis/stride=2/offset=1 (AX###)
 show axis `sst,return=xaxis`
- !-> show axis (AX005)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX005)   LONGITUDE           90mr   23E                  19E(379)
+ (AX###)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 cancel data/all
  
@@ -53439,7 +53449,7 @@ list sst[i=11:15,j=50,k=1,l=50]
  
 ! --- after cancel striding
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX004)
+ !-> cancel axis/stride (AX###)
 list sst[i=21:30,j=50,k=1,l=50]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -53490,7 +53500,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
+    AXIS (AX###)                         use count:   1
 cancel data/all
  
 !.............7. cancel stride on a non-strided axis
@@ -53508,24 +53518,24 @@ use coads_climatology
 set axis/stride=6/offset=5 `sst,return=xaxis`
  !-> set axis/stride=6/offset=5 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX005)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX005)   LONGITUDE           30mr   31E                  19E(379)
+ (AX###)   LONGITUDE           30mr   31E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX005)
+ !-> cancel axis/stride (AX###)
  
 !--- 8.2 stride value is not an integer factor of the axis length
 ! warning: it may lose modulo property
 set axis/stride=7/offset=5 `sst,return=xaxis`
  !-> set axis/stride=7/offset=5 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX001)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX001)   LONGITUDE           25 r   31E                  7E(367)
+ (AX###)   LONGITUDE           25 r   31E                  7E(367)
    Axis span (to cell edges) = 350
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX001)
+ !-> cancel axis/stride (AX###)
 cancel data/all
  
 ! --- 8.3 testing strided modulo axis
@@ -53534,7 +53544,7 @@ set axis/stride=2/offset=1 `sst,return=xaxis`
  !-> set axis/stride=2/offset=1 COADSX
 shade/x=-180:180/y=-30:70/L=2 sst
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX005)
+ !-> cancel axis/stride (AX###)
 cancel data/all
  
 !.............9. two datasets share the same grid
@@ -53629,9 +53639,9 @@ show data/all
 set axis/stride=5 `sst,return=yaxis`
  !-> set axis/stride=5 COADSX
 show axis `sst,return=yaxis`
- !-> show axis (AX005)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX005)   LONGITUDE           36mr   21E                  11E(371)
+ (AX###)   LONGITUDE           36mr   21E                  11E(371)
    Axis span (to cell edges) = 360 (modulo length = axis span)
  
 can data/all
@@ -53732,19 +53742,19 @@ set axis/stride=2 `sst, return=taxis`
  !-> set axis/stride=2 TIME
  
 show axis `sst,return=xaxis`
- !-> show axis (AX007)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX007)   LONGITUDE           90mr   21E                  17E(377)
+ (AX###)   LONGITUDE           90mr   21E                  17E(377)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 show axis `sst,return=yaxis`
- !-> show axis (AX004)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX004)   LATITUDE            45 r   89S                  87N
+ (AX###)   LATITUDE            45 r   89S                  87N
    Axis span (to cell edges) = 180
 show axis `sst,return=taxis`
- !-> show axis (AX001)
+ !-> show axis (AX###)
  name       axis              # pts   start                end
- (AX001)   TIME                 2 r   16-JAN-0000 06:00    17-MAR-0000 02:58
+ (AX###)   TIME                 2 r   16-JAN-0000 06:00    17-MAR-0000 02:58
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2921.94
  
@@ -53774,7 +53784,7 @@ show axis `sst,return=taxis`
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
 *** Running ferret script: bn_lsl_lowpass.jnl
-[?1034h! bn_lsl_lowpass.jnl
+! bn_lsl_lowpass.jnl
 ! Test lsl_lowpass, now included as a statically-linked external function
  
 use gtsa056_2
@@ -53807,7 +53817,7 @@ LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
 14-MAR-1982 09 / 20:   27.42   27.43
  
 *** Running ferret script: bn_return_xmod_tmod.jnl
-[?1034h! New `var,return=xmod` `var,return=tmod`
+! New `var,return=xmod` `var,return=tmod`
 ! Return modulo lengths, or blank if not modulo
  
 use ocean_atlas_temp
@@ -53848,8 +53858,8 @@ say `temp,return=tmod`
 def ax/t=1-aug-0000:1-aug-0001/np=3/edge/units=days tsub
 let a = t[gt=tsub]
 say `a,return=tmod`
- !-> MESSAGE/CONTINUE 365.2424926757813
-365.2424926757813
+ !-> MESSAGE/CONTINUE 365.2424926757812
+365.2424926757812
  
 ! Modulo because defined on longitude coordinates
 define axis/x=130e:80w:10 xsub
@@ -53876,7 +53886,7 @@ say `axy,return=xmod`
  !-> MESSAGE/CONTINUE 2
 2
 *** Running ferret script: bn602_bug_fixes.jnl
-[?1034h! bn602_bug_fixes.jnl
+! bn602_bug_fixes.jnl
 ! test various fixes that went into version 6.02
 ! 09-Nov-2006 ACM
  
@@ -54138,7 +54148,7 @@ list a
  3   / 3:"" 
  
 *** Running ferret script: bn_modnbd.jnl
-[?1034h! Test MODNBD regridding statistic.
+! Test MODNBD regridding statistic.
  
 use gtsa056_2.cdf
 !use climatological_axes
@@ -54200,7 +54210,7 @@ list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD
 15-NOV      / 11:  10.00   0.00  10.00  10.00
 16-DEC      / 12:  10.00   0.00  10.00  10.00
 *** Running ferret script: bn_fifty_files.jnl
-[?1034h! bn_fifty_files.jnl
+! bn_fifty_files.jnl
 ! We build OPeNDAP so that 100 files can be opened at a time.
 ! Test with fifty.
  
@@ -54260,7 +54270,7 @@ use weird_name1.cdf
 cancel mode ignore_error
  
 *** Running ferret script: bn603_bug_fixes.jnl
-[?1034h! bn603_bug_fixes.jnl
+! bn603_bug_fixes.jnl
 ! test various fixes that went into version 6.03
 ! 11-May-2006 ACM
  
@@ -54376,7 +54386,7 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 TEMP,SALT
 136.5W / 94:  27.17807  2.380348E-04
  
 *** Running ferret script: bn_set_var_name.jnl
-[?1034h! bn_set_var_name.jnl
+! bn_set_var_name.jnl
 ! This has been in Ferret since v5.3 but never a benchmark test of it!
 ! ACM 8/2007
  
@@ -54421,7 +54431,7 @@ LIST/X=179:183/Y=40/L=3 sst
  177W   / 82:  36.24
  
 *** Running ferret script: bn_memory_symbol.jnl
-[?1034h! bn_memory_symbol.jnl
+! bn_memory_symbol.jnl
 ! Ferret v6.06 15-Aug-07
 ! Symbol FERRET_MEMORY shows current size of Ferret memory in MWords
  
@@ -54450,7 +54460,7 @@ show memory
     Peak demand: 0 words
     Current cache: 0 words
 *** Running ferret script: bn605_bug_fixes.jnl
-[?1034h! bn604_bug_fixes.jnl
+! bn604_bug_fixes.jnl
 ! test various fixes that went into version 6.05
 ! 27-July-2007 ACM
  
@@ -54547,7 +54557,7 @@ DNCASE(STR)
 STRCAT(STR1,STR2)
 SUBSTRING(STR,OFFSET,LENGTH)
 STRFLOAT(STR)
-INNERPRODUCT(VAR1,VAR2,IDIM)
+DOT(VAR1,VAR2,IDIM)
 TRANSPOSE(VAR,DIM1,DIM2)
  
 Externally defined functions available to Ferret:
@@ -54573,9 +54583,16 @@ CONVOLVEM(COM,WEIGHT)
 CONVOLVEN(COM,WEIGHT)
 CURV_RANGE(LONGITUDES,LATITUDES,xrange_lo,xrange_hi,yrange_lo,yrange_hi,modulo flag for X coordinates)
 CURV_TO_RECT(V,mapping)
+CURV_TO_RECT_FSU(V,mapping)
 CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
 DATE1900(formatted date)
 DAYS1900TOYMDHMS(day1900)
+DOT_E(VAR1,VAR2)
+DOT_F(VAR1,VAR2)
+DOT_T(VAR1,VAR2)
+DOT_X(VAR1,VAR2)
+DOT_Y(VAR1,VAR2)
+DOT_Z(VAR1,VAR2)
 ECAT(A,B)
 ECAT_STR(A,B)
 ELEMENT_INDEX(VAR,VALUES)
@@ -54583,13 +54600,24 @@ ELEMENT_INDEX_STR(VAR,STRINGS)
 ELEMENT_INDEX_STR_N(VAR,STRINGS)
 EOF_SPACE(A,frac_timeser)
 EOF_STAT(A,frac_timeser)
+EOFSVD_SPACE(A)
+EOFSVD_STAT(A)
+EOFSVD_TFUNC(A)
 EOF_TFUNC(A,frac_timeser)
 EREVERSE(A)
+EXPND_BY_LEN(var,len,nx)
+EXPND_BY_LEN_STR(var,len,nx)
 EXPNDI_BY(dat,mask,outsize)
+EXPNDI_BY_M_COUNTS(Data,Row Sizes,Result X axis)
+EXPNDI_BY_M_COUNTS_STR(Data,Row Sizes,Result X axis)
 EXPNDI_BY_T(dat,mask,n_profiles,max_profile_len)
 EXPNDI_BY_Z(dat,mask,n_profiles,max_profile_len)
+EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
+EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EXPNDI_TO_ET(var data,time data,Rowsize (E direction),Result T)
 FCAT(A,B)
 FCAT_STR(A,B)
+FC_ISUBSET(index_list,lengths,nx,FullData)
 FFTA(A)
 FFT_IM(A)
 FFT_INVERSE(A,B)
@@ -54600,6 +54628,7 @@ FINDHI(A,XRANGE,YRANGE)
 FINDLO(A,XRANGE,YRANGE)
 FLOATSTR(A,FMT)
 FREVERSE(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
 IS_ELEMENT_OF(VAR,VALUES)
 IS_ELEMENT_OF_STR(VAR,VALUES)
 IS_ELEMENT_OF_STR_N(VAR,VALUES)
@@ -54612,27 +54641,37 @@ MINMAX(A)
 MINUTES24(formatted time)
 NCO(operator,arguments)
 NCO_ATTR(FileName,VariableName,AttributeName,AttType,Mode,AttributeValue)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
 PT_IN_POLY(A,XVERT,YVERT)
 RECT_TO_CURV(V,lon_bounds_out,lat_bounds_out,missing_allowed)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
 SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
 SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
 SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
-SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+SAMPLEM_MULTI(DAT_TO_SAMPLE,M_INDICES)
+SAMPLEN_MULTI(DAT_TO_SAMPLE,N_INDICES)
 SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
 SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXY_CURV(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
 SAMPLEXY_CURV_AVG(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
 SAMPLEXY_CURV_NRST(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
+SAMPLEXY_NRST(DAT_TO_SAMPLE,XPTS,YPTS)
 SAMPLEXYT(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
 SAMPLEXZ(DAT_TO_SAMPLE,XPTS,ZPTS)
 SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
 SCAT2DDUPS(coord 1,coord 2,epsilon 1,epsilon 2)
 SCAT2GRID_BIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
 SCAT2GRID_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRID_BIN_XYZ(XPTS,YPTS,ZPTS,F,XAXPTS,YAXPTS,ZAXPTS)
+SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
+SCAT2GRID_MINMAX_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
+SCAT2GRID_STD_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRIDGAUSS_XT(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XT_V0(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XY(XPTS,YPTS,F,XAXPTS,YAXPTS,XSCALE,YSCALE,CUTOFF,0)
@@ -54656,6 +54695,8 @@ SCAT2GRID_NBIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRID_NOBS_XY(XPTS,YPTS,XAXPTS,YAXPTS)
 SCAT2GRID_NOBS_XYT(XPTS,YPTS,TPTS,XAXPTS,YAXPTS,TAXPTS)
 SCAT2GRID_T(TPTS,TAXIS)
+SEPARATE(A,Rowsize,FixLongitudes)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
 SORTI(DAT)
 SORTI_STR(STR)
 SORTJ(DAT)
@@ -54668,6 +54709,9 @@ SORTM(DAT)
 SORTM_STR(STR)
 SORTN(DAT)
 SORTN_STR(STR)
+STR_MASK(STRING,MASK,--)
+STR_NOBLANKS(STR)
+STR_REPLACE(INSTRING,S1,S2)
 TAUTO_COR(A)
 TAX_DATESTRING(A,B,C)
 TAX_DAY(A,B)
@@ -54683,6 +54727,9 @@ TAX_YEARFRAC(A,B)
 TCAT(A,B)
 TCAT_STR(A,B)
 TEST_OPENDAP(url)
+TIME_REFORMAT(A)
+TRACKS2GRID_MASK_AVE_XYT(VAR,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS,MASK)
+TRACKS2GRID_STD_XYT(VARIABLE,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS)
 TRANSPOSE_EF(VAR)
 TRANSPOSE_TE(VAR)
 TRANSPOSE_TF(VAR)
@@ -54701,6 +54748,7 @@ TRANSPOSE_ZT(VAR)
 TREVERSE(A)
 UNIQUE_STR2INT(A)
 WRITE_WEBROW(id,name,Cruise_Mask,filename)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
 XAUTO_COR(A)
 XCAT(A,B)
 XCAT_STR(A,B)
@@ -54715,40 +54763,6 @@ ZAXREPLACE_ZLEV(V,THICKNESS,ZAX)
 ZCAT(A,B)
 ZCAT_STR(A,B)
 ZREVERSE(A)
-EOFSVD_SPACE(A)
-EOFSVD_STAT(A)
-EOFSVD_TFUNC(A)
-EXPND_BY_LEN(var,len,nx)
-EXPND_BY_LEN_STR(var,len,nx)
-FC_ISUBSET(index_list,lengths,nx,FullData)
-EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
-EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
-EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
-STR_MASK(STRING,MASK,--)
-SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-SEPARATE(A,Rowsize,FixLongitudes)
-TIME_REFORMAT(A)
-FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
-CURV_TO_RECT_FSU(V,mapping)
-PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
-SAMPLE_FAST_I(V,Indices)
-SAMPLE_FAST_I_STR(S,Indices)
-SEPARATE_STR(A,Rowsize,FixLongitudes)
-WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
-BXCAT(A,B)
-BXSEQUENCE(A)
-BXSEQUENCE_STR(A)
-BCOMPRESSI(DAT)
-SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
-STR_NOBLANKS(STR)
-STR_REPLACE(INSTRING,S1,S2)
-EXPNDI_TO_ET(var data,time data,Rowsize (E direction),Result T)
-INNERPRODUCT_X(VAR1,VAR2)
-INNERPRODUCT_Y(VAR1,VAR2)
-INNERPRODUCT_Z(VAR1,VAR2)
-INNERPRODUCT_T(VAR1,VAR2)
-INNERPRODUCT_E(VAR1,VAR2)
-INNERPRODUCT_F(VAR1,VAR2)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -54941,7 +54955,7 @@ SHAPEFILE_WRITEXYVAL(SHAPEFILE,GRIDX,GRIDY,VALUE,VALNAME,MAPPRJ)
 SHAPEFILE_WRITEXYZVAL(SHAPEFILE,GRIDX,GRIDY,GRIDZ,VALUE,VALNAME,MAPPRJ)
  
 *** Running ferret script: bn608_bug_fixes.jnl
-[?1034h! bn608_bug_fixes
+! bn608_bug_fixes
 ! test various fixes that went into version 6.08
 ! 24-Sep ACM
  
@@ -55108,7 +55122,7 @@ SHADE/LEV=300/I=1:100/J=1:100 i+j
  
 SET MODE/LAST ignore
 *** Running ferret script: bn_shade_trim.jnl
-[?1034h! bn_shade_trim.jnl
+! bn_shade_trim.jnl
 ! Test new qualifier SHADE/TRIM which trims the region of
 ! shade plot as is done by FILL. For LAS scripts which do
 ! shade underlay for FILL plots.
@@ -55142,7 +55156,7 @@ YAXIS_MIN = "30.5000000"
 YAXIS_MAX = "43.5000000"
  
 *** Running ferret script: bn_mode_nlevels.jnl
-[?1034h! bn_mode_nlevels.jnl
+! bn_mode_nlevels.jnl
 ! 3-mar-2008
 ! v6.1 MODE NLEVELS (default is 40)
  
@@ -55180,7 +55194,7 @@ LEV_DEL = "0.5"
 set mode nlevels 40
  
 *** Running ferret script: bn61_bug_fixes.jnl
-[?1034h! bn608_bug_fixes
+! bn608_bug_fixes
 ! test various fixes that went into version 6.1
 ! 2-Jan-2008 ACM
  
@@ -55236,7 +55250,7 @@ SAY `1.23456789e-15,prec=10`
  !-> MESSAGE/CONTINUE   1.23456789E-15
 1.23456789E-15
 *** Running ferret script: bn_test_opendap.jnl
-[?1034h! Test the test_opendap function: returns 0 if successful, or error code if not.
+! Test the test_opendap function: returns 0 if successful, or error code if not.
 SET MODE IGNORE
  
 !! Change to another server, this one not working 3/2012
@@ -55256,7 +55270,7 @@ list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA0
  
 CANCEL MODE IGNORE
 *** Running ferret script: bn611_bug_fixes.jnl
-[?1034h! bn611_bug_fixes.jnl
+! bn611_bug_fixes.jnl
 ! Fixes that go into v6.11 release
  
 GO bn_reset
@@ -55835,7 +55849,7 @@ SHOW DATA/VAR/XML 2
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<grid name="(G006)">
+<grid name="(G###)">
 <axes>
 <zaxis>ZAXIS_DES</zaxis>
 </axes>
@@ -55983,7 +55997,7 @@ list b
 save/clob/file=b.nc b
  
 *** Running ferret script: bn_no_valid_on_plot.jnl
-[?1034h! bn_no_valid_on_plot.jnl
+! bn_no_valid_on_plot.jnl
 ! Bug 1038 points out that the No Valid Data label that is
 ! put onto 2D plot if there is no good data, is not put onto
 ! 1D plots.  Add it to the variable title so it shows up in the key
@@ -56049,7 +56063,7 @@ VECTOR/Y=80:90 sst[L=1], sst[L=1]
  
 SET MODE/last nodata_lab
 *** Running ferret script: bn_median.jnl
-[?1034h! Test median smoothing tranform
+! Test median smoothing tranform
 ! Default length is 3
  
 use gtsa056_2.cdf
@@ -56154,7 +56168,7 @@ plot/trans var, var[z=@med:4]
 set mode/last ignore
  
 *** Running ferret script: bn614_bug_fixes.jnl
-[?1034h! bn614_bug_fixes.jnl
+! bn614_bug_fixes.jnl
 ! Fixes that go into v6.14 release
  
 GO bn_reset
@@ -56517,9 +56531,9 @@ LIST a_regrid[D=1,GT=b[D=2]@MOD]
                         regrid: on T at MOD
              SUBSET   : 12 points (TIME)
              CALENDAR : NOLEAP
-             LONGITUDE: 141.3W
+             LONGITUDE: 141.2W
              LATITUDE : 1S
-                        141.3W  
+                        141.2W  
                           1
  16-JAN 12      /  1:  0.05848
  15-FEB 00      /  2:  0.05188
@@ -56769,8 +56783,8 @@ SHOW DAT/ATT
   
  .                               history         CHAR        7    F       dat.dat
   
- my_asc                FLOAT     long_name       CHAR        11   T       chlorophyll
-                                 missing_value   FLOAT       1    T       3
+ my_asc                DOUBLE    long_name       CHAR        11   T       chlorophyll
+                                 missing_value   DOUBLE      1    T       3
                                  units           CHAR        12   T       micrograms/L
   
 SAVE/FILE=a.nc/CLOBBER my_asc
@@ -57022,7 +57036,7 @@ fill/ov/pal=greyscale/x=-360:360 b
 cont/ov/x=-360:360 b
  
 *** Running ferret script: bn_mode_nodata_lab.jnl
-[?1034h! bn_mode_nodata_lab
+! bn_mode_nodata_lab
 ! turns off the No Valid Data label on plots
 ! (for line plots this is added to the plot label,
 !  if the mode is SET).
@@ -57051,7 +57065,7 @@ contour/fill/y=40:50/x=70e:110e/L=1 vwnd
 set mode/last nodata_lab
  
 *** Running ferret script: bn_proleptic_gregorian_calendar.jnl
-[?1034h! proleptic_gregorian_calendar.jnl
+! proleptic_gregorian_calendar.jnl
 ! Allow PROLEPTIC_GREGORIAN as a calendar attribute
 ! for the default Ferret calendar.
  
@@ -57068,7 +57082,7 @@ show axis tdays
 T0 = 15-JAN-1901 00:00:00
    Axis span (to cell edges) = 32
 *** Running ferret script: bn_string_ngd_nbd.jnl
-[?1034h! @NGD and @NBD for strings
+! @NGD and @NBD for strings
 ! Bad data is taken to be the null string
 ! Compare with results for numeric data
 ! *ACM 11/2008
@@ -57384,7 +57398,7 @@ list av[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
              T        : 0.5 to 2.5 (XYZT # valid)
           16.00
 *** Running ferret script: bn_cat_string.jnl
-[?1034h! bn_cat_string.jnl
+! bn_cat_string.jnl
 ! Test concatenation functions for string variables
 ! ACM nov 08  See bug 1577
  
@@ -57450,7 +57464,7 @@ list tcat(a,b)
  5   / 5:"V"
  6   / 6:"W"
 *** Running ferret script: bn_sort_strings.jnl
-[?1034h! bn_sort_strings.jnl
+! bn_sort_strings.jnl
 ! 11/08 acm
  
 ! show func/detail now shows the alternative function for
@@ -57626,7 +57640,7 @@ list indx_bl, samplel(bl,indx_bl)
 7   / 7:    .... ""   
  
 *** Running ferret script: bn_samplexyt.jnl
-[?1034h! bn_samplexyt.jnl
+! bn_samplexyt.jnl
 ! 1/2009
  
 ! Check the SAMPLEXYT function, should give missing results for T sample points
@@ -57696,14 +57710,14 @@ plot/vs/color=red/over tpts, sampl_pts
  
 set mode calendar
 *** Running ferret script: bn_last_go_file.jnl
-[?1034h! bn_last_go_file.jnl
+! bn_last_go_file.jnl
 ! test the automatically-defined symbol LAST_GO_FILE
  
 show sym last_go_file
 LAST_GO_FILE = "./bn_last_go_file.jnl"
  
 *** Running ferret script: bn_cancel_upcase_uservar.jnl
-[?1034h! bn_cancel_upcase_uservar.jnl
+! bn_cancel_upcase_uservar.jnl
 !
 ! Ferret v6.2
 ! MODE upcase_only cancelled, now writes lowercase
@@ -57735,7 +57749,7 @@ SP ncdump -h a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
 *** Running ferret script: bn_cdf_keepax.jnl
-[?1034h! bn320_cdf
+! bn320_cdf
 ! benchmark to test netCDF input and output
 ! This is the same as bn_cdf with /KEEP_AXNAMES added to SAVE commands.
  
@@ -58583,7 +58597,7 @@ list/x=180 fcn_rev_sub
  0    / 11:  0.0000
  1S   / 10:  0.3166
 *** Running ferret script: bn_keep_axisnames.jnl
-[?1034h! bn_keep_axisnames.jnl
+! bn_keep_axisnames.jnl
 ! 2/2009 ACM
  
 ! save/KEEP_AXISNAMES prevents changes to
@@ -58610,7 +58624,7 @@ sp echo "bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES" >> all_ncdump.out
 sp ncdump -h a.nc >> all_ncdump.out
  
 *** Running ferret script: bn_key_label_minmax.jnl
-[?1034h! bn_key_label_minmax.jnl
+! bn_key_label_minmax.jnl
  
 ! Label data min and max on vertical and horizontal keys
  
@@ -58690,7 +58704,7 @@ set mode/last logo
 shade/lev=35 sst[L=1]
  
 *** Running ferret script: bn62_bug_fixes.jnl
-[?1034h! bn62_bug_fixes.jnl
+! bn62_bug_fixes.jnl
 ! Fixes that go into v6.2 release
  
 GO bn_reset
@@ -58763,7 +58777,7 @@ plot/title="vertical profile" yp4
 GO error_bars polygon/color=red/thickness=2/title="variability" yp4 errors
  
 *** Running ferret script: bn_convolve.jnl
-[?1034h! bn_convolve.jnl
+! bn_convolve.jnl
 ! test convolutions, including with missing-data.
 ! compare behavior with smoothing transform spz.
  
@@ -58891,7 +58905,7 @@ list a, a[i=@spz], convolvei(a,{.25,.5,.25})
  
  
 *** Running ferret script: bn_tax_tstep.jnl
-[?1034h! bn_tax_tstep.jnl
+! bn_tax_tstep.jnl
 !
 ! Working with the coordinates of this axis loses accuracy because its
 ! time origin is so far back from the time it represents
@@ -59003,7 +59017,7 @@ LIST/L=1:15 TAX_TSTEP(tt, "`reset_date`")
  01-JAN-1902 00:01:05 / 14:  65.00000
  01-JAN-1902 00:01:10 / 15:  70.00000
 *** Running ferret script: bn_grads_z.jnl
-[?1034h! bn_grads_z.jnl
+! bn_grads_z.jnl
 ! acm 3/31/09
 ! Fixing bug 1651.
 ! The file has no axis attributes other than units and long_name,
@@ -59066,11 +59080,11 @@ SH GRID am
  CAXIS     DEPTH (m)            5 r-  2                    10                  full
  normal    T
 *** Running ferret script: bn_clock_syms.jnl
-[?1034hSH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.205968"
-CLOCK_SECS = "0.096"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:15:42"
+SH SYM delta_cpu, clock_secs, current_date, current_time
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -59079,8 +59093,8 @@ CURRENT_TIME = "17:15:42"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.021996"
-CLOCK_SECS = "0.118"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -59094,62 +59108,62 @@ repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=9
 !-> REPEAT: K=10
 let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.059991
+ !-> DEFINE VARIABLE ten_plots = 0.######
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0"
-CLOCK_SECS = "0.178"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "0.179"
+CLOCK_SECS = "######"
 repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
 let sumcpu =`sumcpu + dt`)
  !-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
 !-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.006999
- !-> DEFINE VARIABLE sumcpu =0.006999
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.007999
- !-> DEFINE VARIABLE sumcpu =0.014998
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.007998
- !-> DEFINE VARIABLE sumcpu =0.022996
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.007999
- !-> DEFINE VARIABLE sumcpu =0.030995
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.006999
- !-> DEFINE VARIABLE sumcpu =0.037994
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.008999
- !-> DEFINE VARIABLE sumcpu =0.046993
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.006999
- !-> DEFINE VARIABLE sumcpu =0.053992
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.007999
- !-> DEFINE VARIABLE sumcpu =0.061991
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.007998
- !-> DEFINE VARIABLE sumcpu =0.069989
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.007999
- !-> DEFINE VARIABLE sumcpu =0.077988
+ !-> DEFINE VARIABLE dt = 0.######
+ !-> DEFINE VARIABLE sumcpu = 0.######
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.077988
-0.077988
+ !-> MESSAGE/CONTINUE 0.######
+0.######
 sh sym CLOCK_SECS
-CLOCK_SECS = "0.259"
+CLOCK_SECS = "######"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:15"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:15:42"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 *** Running ferret script: bn63_bug_fixes.jnl
-[?1034h! bn63_bug_fixes.jnl
+! bn63_bug_fixes.jnl
 ! Fixes that go into v6.3 release
  
 GO bn_reset
@@ -59796,7 +59810,7 @@ LIST var
  16-JAN-1969 / 20:  0.6618
  
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX010)
+ !-> CAN AXIS/STRIDE (AX###)
 SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
 LIST var
              VARIABLE : COS(T[GT=TRUEMONTH]/100)
@@ -59825,7 +59839,7 @@ LIST var
 SET MODE IGNORE_ERRROR
 ! Previously didnt check for negative offset value
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX005)
+ !-> CAN AXIS/STRIDE (AX###)
 SET AXIS/STRIDE=12/OFFSET=-1 truemonth
  
 ! Previously didnt give err msg; just ignored non-positive stride value
@@ -59870,7 +59884,7 @@ LIST 1 EQ 2 OR "A" EQ "B"    ! should be 0
           0.0000
  
 *** Running ferret script: bn_axis_reversed_syms.jnl
-[?1034h! bn_axis_reversed_syms.jnl
+! bn_axis_reversed_syms.jnl
 ! XAXIS_REVERSED and YAXIS_REVERSED are
 ! set to 0 or if the reversed-axis is
 ! plotted upside-down, set to 1
@@ -59954,7 +59968,7 @@ XAXIS_REVERSED = "0"
 YAXIS_REVERSED = "1"
  
 *** Running ferret script: bn_isdepth.jnl
-[?1034h! Tests of `var,RETURN=ISDEPTH`
+! Tests of `var,RETURN=ISDEPTH`
  
 define axis/units=meters/z=0:100:2 zup
 let zz = z[gz=zup]
@@ -59987,7 +60001,7 @@ say `temp,return=isdepth`
 0
  
 *** Running ferret script: bn_var_hist_levels.jnl
-[?1034h! bn_var_hist_levels.jnl
+! bn_var_hist_levels.jnl
 ! Syntax for variance-based or histogram-based levels
 !
  
@@ -60044,7 +60058,7 @@ shade/line/key/lev=20c,1d/title="/LEV=20c,1d" cvar[K=1]
 shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
  
 *** Running ferret script: bn64_bug_fixes.jnl
-[?1034h! bn64_bug_fixes.jnl
+! bn64_bug_fixes.jnl
 ! Fixes that go into v6.4 release
  
 ! (changes were made to err62_if_inside_repeat.jnl
@@ -60134,7 +60148,7 @@ list v1
              X        : 1
         "ZAIRA"
 *** Running ferret script: bn_long_grid_names.jnl
-[?1034h! bn_long_grid_names.jnl
+! bn_long_grid_names.jnl
 ! test longer grid names (16 --> 64 chars)
 ! tests taken from other bn scripts but with longer grid names
  
@@ -60261,17 +60275,17 @@ list v1234
  9   / 5:  2998.  3998.  4998.
  ---- L:4 T:   08-JAN-1980 00:00
  ---- K:3 Z:   5
- 5   / 3:  2779.  3779.  4779.
- 7   / 4:  2879.  3879.  4879.
- 9   / 5:  2979.  3979.  4979.
+ 5   / 3:  2778.  3778.  4778.
+ 7   / 4:  2878.  3878.  4878.
+ 9   / 5:  2978.  3978.  4978.
  ---- K:4 Z:   7
- 5   / 3:  2789.  3789.  4789.
- 7   / 4:  2889.  3889.  4889.
- 9   / 5:  2989.  3989.  4989.
+ 5   / 3:  2788.  3788.  4788.
+ 7   / 4:  2888.  3888.  4888.
+ 9   / 5:  2988.  3988.  4988.
  ---- K:5 Z:   9
- 5   / 3:  2799.  3799.  4799.
- 7   / 4:  2899.  3899.  4899.
- 9   / 5:  2999.  3999.  4999.
+ 5   / 3:  2798.  3798.  4798.
+ 7   / 4:  2898.  3898.  4898.
+ 9   / 5:  2998.  3998.  4998.
  ---- L:5 T:   10-JAN-1980 00:00
  ---- K:3 Z:   5
  5   / 3:  2780.  3780.  4780.
@@ -60693,8 +60707,8 @@ list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -60722,8 +60736,8 @@ list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
@@ -60749,8 +60763,8 @@ list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg12345678901234567890]
           29.52
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
@@ -60802,14 +60816,14 @@ show grid gg123456789012345678902
     GRID GG123456789012345678902
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX011)   LATITUDE           401 r   20S                  20N
+ (AX###)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX011)                         use count:   1
+    AXIS (AX###)                         use count:   1
  
 ! demonstrate proper management of dynamic axes
 DEFINE GRID/LIKE=gg123456789012345678902 gg123456789012345678903
@@ -60817,7 +60831,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX011)                         use count:   2
+    AXIS (AX###)                         use count:   2
 DEFINE GRID/like=temp[d=levitus_climatology] gg123456789012345678902
 show grid gg123456789012345678902
     GRID GG123456789012345678902
@@ -60830,17 +60844,17 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX011)                         use count:   1
+    AXIS (AX###)                         use count:   1
  
 ! SET GRID using a user-defined variable
 let g = sst[x=0:30:.1,d=coads_climatology]
 set grid g
 show grid
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX013)   LONGITUDE          301 r   0E                   30E                 full
+ (AX###)   LONGITUDE          301 r   0E                   30E                 full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
@@ -60848,20 +60862,20 @@ show grid
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
 show grid
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G005)
-    GRID (G005)
+ Default grid for DEFINE VARIABLE is (G###)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX014)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX###)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
 show grid/dynamic
 Dynamic grids:
-    GRID (G005)                          use count:   1
+    GRID (G###)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX014)   LATITUDE           201 r   10S                  10N
+ (AX###)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  
@@ -60885,11 +60899,11 @@ SHOW GRID mygrid_123456789012345678901234567890
     GRID MYGRID_123456789012345678901234567890
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX014)   LATITUDE            41 r   10S                  2S
+ (AX###)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
 *** Running ferret script: bn_xml_repl.jnl
-[?1034h! bn_xml_repl.jnl
+! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
  
 ! make a short file
@@ -60934,7 +60948,7 @@ sh dat/xml/var
 <axes>
 </axes>
 *** Running ferret script: bn65_bug_fixes.jnl
-[?1034h! bn65_bug_fixes.jnl
+! bn65_bug_fixes.jnl
 ! Fixes that go into v6.5 release
  
 GO bn_reset
@@ -61167,14 +61181,14 @@ list b  ! includes Feb 15 1150, not missing...
              SUBSET   : 11 points (TIME)
              CALENDAR : NOLEAP
  16-SEP-1149 00 /  1:  419278.
- 16-OCT-1149 12 /  2:  419309.
+ 16-OCT-1149 12 /  2:  419308.
  16-NOV-1149 00 /  3:  419339.
  16-DEC-1149 12 /  4:  419370.
- 16-JAN-1150 12 /  5:  419401.
+ 16-JAN-1150 12 /  5:  419400.
  15-FEB-1150 00 /  6:  419430.
  16-MAR-1150 12 /  7:  419460.
  16-APR-1150 00 /  8:  419490.
- 16-MAY-1150 12 /  9:  419521.
+ 16-MAY-1150 12 /  9:  419520.
  16-JUN-1150 00 / 10:  419551.
  16-JUL-1150 12 / 11:  419582.
  
@@ -61203,7 +61217,7 @@ go polymark "poly/ov/nolab/pal=red/line=1" pos pos " " circle .5
  
  
 *** Running ferret script: bn_txtype_dmy.jnl
-[?1034h! bn_txtype_dmy.jnl
+! bn_txtype_dmy.jnl
 ! 2/2010 ACM
 !
 ! Testing Time Axis plot style "DMY" labels the year
@@ -61326,7 +61340,7 @@ ppl plot
 plot/y=-1/k=1/t=5-mar-1982:28-mar-1982/x=144w temp
 plot/y=-1/k=1/t=5-mar-1982:28-apr-1982/x=144w temp
 *** Running ferret script: bn_n_open_dsets_sym.jnl
-[?1034h !  bn_n_open_dsets_sym.jnl
+ !  bn_n_open_dsets_sym.jnl
 ! Ferret v6.5
 ! New special symbol N_OPEN_DSETS, evaulated when requested.
 ! Gives a count of the number of open datasets.
@@ -61367,7 +61381,7 @@ sh sym N_OPEN_DSETS
 N_OPEN_DSETS = "0"
  
 *** Running ferret script: bn_multi_decade.jnl
-[?1034h! bn_multi_decade.jnl
+! bn_multi_decade.jnl
 ! New default no-small tics for multi-decade plots
 ! See bug 670
  
@@ -61428,7 +61442,7 @@ set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
   ppl tics,0.1,0.25
   ppl plot
 *** Running ferret script: bn_show_xml_file.jnl
-[?1034h! bn_show_xml_file.jnl
+! bn_show_xml_file.jnl
 ! Testing SHOW DATA/OUTFILE
 !         SHOW AXIS/OUTFILE
 !         SHOW VAR/OUTFILE
@@ -61608,7 +61622,7 @@ sp cat the_xml_file.xml
 </data>
  
 *** Running ferret script: bn66_bug_fixes.jnl
-[?1034h! bn66_bug_fixes.jnl
+! bn66_bug_fixes.jnl
 ! Fixes that go into v6.6 release
  
  
@@ -61705,7 +61719,7 @@ stat temp[z=@ave,t=@ave,y=-2:2]
  
 cancel region
 *** Running ferret script: bn_netcdf4.jnl
-[?1034h! bn_netcdf4.jnl
+! bn_netcdf4.jnl
 ! test syntax for controling NetCDF-4 intput and output.
 ! 2/2016 change file name in second intentinal-error case
 !        Also list the file sizes for compressed data
@@ -61761,11 +61775,11 @@ save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
 sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
 Bytes: 197520
 sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
-Bytes: 125226
+Bytes: 125634
 sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
-Bytes: 124814
+Bytes: 125248
 sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
-Bytes: 118879
+Bytes: 119313
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -61782,9 +61796,9 @@ save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
 sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
 Bytes: 60560
 sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32406
+Bytes: 32902
 sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32583
+Bytes: 33117
  
 cancel list/all
 set list/ncformat=classic
@@ -61840,7 +61854,7 @@ save/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychun
 can mode ignore
  
 *** Running ferret script: bn_scat2grid_bin.jnl
-[?1034h! bn_scat2grid_bin.jnl
+! bn_scat2grid_bin.jnl
 ! Tests of scat2grid_bin and scat2grid_nbin functions.
  
 ! define some variables (as in bench_gridding)
@@ -61849,7 +61863,7 @@ define axis/t=1-jan-2010:30-mar-2010:1/units=days tin
 define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
 let tt = t[gt=tout,L=1:10]
 sh grid tt
-    GRID (G001)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -62054,7 +62068,7 @@ list/x=2:3 sgrid
  
 let tpts = 39798 + 87*RANDU(I)
 show grid tt
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  X10       X                  201 r   0                    10                  full
  Y10       Y                  201 r   0                    10                  full
@@ -62073,8 +62087,8 @@ use a.nc
 stat sgrid
  
              SCAT2GRID_BIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
-             X: 0.8 to 10.3
-             Y: 0.8 to 10.3
+             X: 0.8 to 10.2
+             Y: 0.8 to 10.2
              Z:  N/A
              TIME: 27-DEC-2009 00:00 to 06-APR-2010 00:00
              E:  N/A
@@ -62090,8 +62104,8 @@ stat sgrid
 stat ngrid
  
              SCAT2GRID_NBIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
-             X: 0.8 to 10.3
-             Y: 0.8 to 10.3
+             X: 0.8 to 10.2
+             Y: 0.8 to 10.2
              Z:  N/A
              TIME: 27-DEC-2009 00:00 to 06-APR-2010 00:00
              E:  N/A
@@ -62173,7 +62187,7 @@ can axis tout
 can axis tin
  
 *** Running ferret script: bn_axis_dir_symbols.jnl
-[?1034h! bn_axis_dir_symbols.jnl
+! bn_axis_dir_symbols.jnl
 ! 5/2010
 !
 ! For LAS:
@@ -62199,7 +62213,7 @@ shade/x=180 sst; show sym ax*; can sym ax*
 AX_HORIZ = "T"
 AX_VERT = "Y"
 *** Running ferret script: bn663_bug_fixes.jnl
-[?1034h! bn663_bug_fixes.jnl
+! bn663_bug_fixes.jnl
 ! Fixes that go into v6.63 release
  
  
@@ -62236,7 +62250,7 @@ SHADE/L=1/X=60:70/Y=40:50/LEV=v sst
  
 FILL/L=2/X=60:70/Y=40:50/LEV=v sst
 *** Running ferret script: bn_set_axis_regular.jnl
-[?1034h! bn_set_axis_regular.jnl
+! bn_set_axis_regular.jnl
 ! Karl Smith, 5/2010
 ! tests for SET AXIS /REGULAR
  
@@ -62500,7 +62514,7 @@ show grid
  normal    T
  
 *** Running ferret script: bn_set_cancel_redirect.jnl
-[?1034h! bn_set_cancel_redirect.jnl
+! bn_set_cancel_redirect.jnl
 ! Karl Smith, 5/2010
 ! test for SET REDIRECT and CANCEL REDIRECT
  
@@ -62938,9 +62952,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 45 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! PyFerret v7.1 (beta/debug)"                                              
- 3    /  3:" ! Linux 2.6.32-696.1.1.el6.x86_64 - 04/18/17"                              
- 4    /  4:" ! 18-Apr-17 17:15     "                                                    
+ 2    /  2:" ! PyFerret v7.2 (beta/debug)"                                              
+ 3    /  3:" ! Linux 3.10.0-514.26.2.el7.x86_64 - MM-DD-YY"                             
+ 4    /  4:" ! DD-MON-YY HH:MM     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -62990,7 +63004,7 @@ cancel grid mygrid
  
 !!! NOTE: journal mode is now turned off !!!
 *** Running ferret script: bn_min_max_smoothers.jnl
-[?1034h! bn_min_max_smoothers.jnl
+! bn_min_max_smoothers.jnl
 ! New transforms @SMN and @SMX, smoothers based on the
 ! min and max of the data in the window.
 sh trans
@@ -63028,7 +63042,7 @@ regridding transforms e.g.SST[GX=x5deg at AVE]
    @MAX        maximum                      @NRST       nearst coord
    @SUM        area-wgtd sum                @BIN        unwgtd avg
    @NGD        #gd pts, area wgtd           @NBIN       #good in bin
-   @MOD        modulo ave
+   @MOD        modulo ave                   @IIN        #indef integral
  
 auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
    code        description                  code        description
@@ -63278,7 +63292,7 @@ list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
 95    / 10:  23.54  24.51  24.51  23.54
  
 *** Running ferret script: bn_vector_symbols.jnl
-[?1034h! bn_vector_symbols.jnl
+! bn_vector_symbols.jnl
 ! ACM 7/16/21010 Ferret V6.6.3
 !
 ! On any vector plot command, define symbols
@@ -63323,7 +63337,7 @@ VECTOR/NOLAB/KEY/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=6 i/j,j/i
  
 VECTOR/OVER/KEY/NOLAB/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=4 i/j,j/i
 *** Running ferret script: bn_variance_large.jnl
-[?1034h! bn_variance_large.jnl
+! bn_variance_large.jnl
 ! Previous to v6.6.4, these returned messages **too big**
  
 USE coads_climatology
@@ -63369,7 +63383,7 @@ SHADE/L=1/LEV=v huge
  
 CANCEL SYMBOL lev*
 *** Running ferret script: bn_labnum_calendar.jnl
-[?1034h! bn_labnum_calendar.jn.
+! bn_labnum_calendar.jn.
 ! Define new symbol, when a Calendar label is on
 ! the plot, pointing to its ppl label number.
  
@@ -63387,7 +63401,7 @@ sh sym lab($labnum_calend)
 LAB4 = "CALENDAR: NOLEAP"
  
 *** Running ferret script: bn665_bug_fixes.jnl
-[?1034h! bn65_bug_fixes.jnl
+! bn65_bug_fixes.jnl
 ! test various fixes that went into version 6.6.5
 ! 11/2010 ACM
 !
@@ -63772,7 +63786,7 @@ list tax_year(a,a)
  JUL-0005 / 6:"01-JUL-0005"
  
 *** Running ferret script: bn_floatstr.jnl
-[?1034h! bn_floatstr.jnl
+! bn_floatstr.jnl
 ! testing new function to convert floating-point
 ! variables to strings.
  
@@ -63893,7 +63907,7 @@ LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
  137W   / 102:  0.000
  135W   / 103:  0.000
 *** Running ferret script: bn67_bug_fixes.jnl
-[?1034h! bn67_bug_fixes.jnl
+! bn67_bug_fixes.jnl
 ! test various fixes that went into version 6.7
 ! 2/2011 ACM
  
@@ -64259,7 +64273,7 @@ sh dat
  
  
 *** Running ferret script: bn_NaN_note.jnl
-[?1034h! bn_NaN_note.jnl
+! bn_NaN_note.jnl
 ! Ferret v6.7  2/2011
 ! The message about no missing flags, and assuming NaN,
 ! is issued only when MODE DIAGNOSTIC is turned on.
@@ -64277,7 +64291,7 @@ SET MODE diag
 USE test0
 CANCEL MODE diag
 *** Running ferret script: bn671_bug_fixes.jnl
-[?1034h! bn671_bug_fixes.jnl
+! bn671_bug_fixes.jnl
 ! test various fixes that went into version 6.71
 ! 4/2011 ACM
  
@@ -64572,7 +64586,7 @@ list var
  390   / 10:   ....
  400   / 11:   ....
 *** Running ferret script: bn68_bug_fixes.jnl
-[?1034h! bn68_bug_fixes.jnl
+! bn68_bug_fixes.jnl
 ! test various fixes that went into version 6.8
 !
 GO bn_reset
@@ -65193,9 +65207,9 @@ GO err672_dset_cx
  
 let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
-    GRID (G008)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX007)   X                    3 r   0                    2                   3 pts
+ (AX###)   X                    3 r   0                    2                   3 pts
  normal    Y
  normal    Z
  normal    T
@@ -65207,9 +65221,9 @@ sho grid/x a
  
 let a = x[gx=1:3:1]; save/clob/file=a2.nc a
 sho grid/x a
-    GRID (G008)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX002)   X                    3 r   1                    3                   3 pts
+ (AX###)   X                    3 r   1                    3                   3 pts
  normal    Y
  normal    Z
  normal    T
@@ -65281,7 +65295,7 @@ list x[gx=a[d=1],i=1:3]
  1   / 2:  1.000
  2   / 3:  2.000
 *** Running ferret script: bn_ifv.jnl
-[?1034h! bn_ifv.jnl
+! bn_ifv.jnl
 ! test IFV IfValid masking for a variety of combos
  
  
@@ -65416,7 +65430,7 @@ list IFV strings EQ "a" THEN "" ELSE strings
  2   / 2:"b"
  3   / 3:"" 
 *** Running ferret script: bn_randu2_randn2.jnl
-[?1034h! Test randu2 and randn2 with newer random-number algorithm.
+! Test randu2 and randn2 with newer random-number algorithm.
 ! 9/2011 acm
 ! Note that most of these results will differe from one
 ! run of the benchmarks to the next.
@@ -65432,132 +65446,132 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.808
-randu2_randn2       0.850
-randu2_randn2       0.488
-randu2_randn2       0.076
-randu2_randn2       0.486
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.168
-randu2_randn2       0.183
-randu2_randn2       0.603
-randu2_randn2       0.139
-randu2_randn2       0.651
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.977
-randu2_randn2       0.506
-randu2_randn2       0.567
-randu2_randn2       0.509
-randu2_randn2       0.726
-randu2_randn2       0.597
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.781
-randu2_randn2       0.994
-randu2_randn2       0.943
-randu2_randn2       0.554
-randu2_randn2       0.582
-randu2_randn2       0.170
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.302
-randu2_randn2       0.380
-randu2_randn2       0.926
-randu2_randn2       0.672
-randu2_randn2       0.238
-randu2_randn2       0.638
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.302
-randu2_randn2       0.380
-randu2_randn2       0.926
-randu2_randn2       0.672
-randu2_randn2       0.238
-randu2_randn2       0.638
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.877
-randu2_randn2      -0.894
-randu2_randn2      -0.584
-randu2_randn2      -1.907
-randu2_randn2      -2.199
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.100
-randu2_randn2      -0.167
-randu2_randn2       0.402
-randu2_randn2       0.806
-randu2_randn2       1.172
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.304
-randu2_randn2      -0.480
-randu2_randn2      -2.544
-randu2_randn2      -1.544
-randu2_randn2       0.812
-randu2_randn2      -0.691
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       2.575
-randu2_randn2       0.289
-randu2_randn2       0.585
-randu2_randn2      -1.139
-randu2_randn2      -2.485
-randu2_randn2       0.020
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.906
-randu2_randn2      -1.503
-randu2_randn2       0.217
-randu2_randn2       0.537
-randu2_randn2       0.674
-randu2_randn2      -1.279
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.906
-randu2_randn2      -1.503
-randu2_randn2       0.217
-randu2_randn2       0.537
-randu2_randn2       0.674
-randu2_randn2      -1.279
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
              Z: 1 to 140
  Column  1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
  Column  2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
  Column  3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2       1.072       1.073       1.072
-randu2_randn2       1.073       1.073       1.072
-randu2_randn2       1.168       1.073       0.310
-randu2_randn2      -0.149      -0.149       0.310
-randu2_randn2      -0.420      -0.386       0.310
-randu2_randn2      -0.386      -0.386       0.310
-randu2_randn2       0.310       0.071       0.310
-randu2_randn2       0.071       0.310       0.310
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
+randu2_randn2      ......
 *** Running ferret script: bn_axis_cf.jnl
-[?1034h! Ticket 1792: Write axes with CF-compliant units
+! Ticket 1792: Write axes with CF-compliant units
 ! and with standard name attributes for geophysical attrs.
  
  
@@ -65623,7 +65637,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
  
 *** Running ferret script: bn_repeated_coords.jnl
-[?1034h! Test the use of micro-adjusting on NetCDF read
+! Test the use of micro-adjusting on NetCDF read
 ! when coordinates are repeated.
 ! See ticket 1910
  
@@ -65691,7 +65705,7 @@ list aa[L=1:71:10]
  01-JAN-2001 01:10:00 / 8:  0.6997
  
 *** Running ferret script: bn_xml_header.jnl
-[?1034h! bn_xml_header.jnl
+! bn_xml_header.jnl
 ! run the exact script that LAS uses to make XML header files
  
 go xml_header_script.jnl xml_use_coads.jnl xml_out.xml
@@ -65912,7 +65926,7 @@ sp grep -A5 dimension xml_out_string.xml
 </dimensions>
 </data>
 *** Running ferret script: bn_eof_simple.jnl
-[?1034h! bn_eof_simple
+! bn_eof_simple
 ! Define a simple function with two known functions.
 ! decompose with EOFs.
 ! 7/2012
@@ -66532,7 +66546,7 @@ can axis xaxis
  
 exit/script
 *** Running ferret script: bn_eof_simple2.jnl
-[?1034h! bn_eof_simple2
+! bn_eof_simple2
 ! Define a simple function with four known functions, two of which are degenerate.
 ! decompose with EOFs.
 ! 7/2012
@@ -66890,7 +66904,7 @@ can axis xaxis
  
 exit/script
 *** Running ferret script: bn_interpolate_6d.jnl
-[?1034h! bn_interpolate_6d.JNL
+! bn_interpolate_6d.JNL
 ! benchmark interpolation along various axes
 ! including the E and F axis
 ! note with fix to ticket 2399 mode calendar applies to F axis
@@ -67290,7 +67304,7 @@ LIST v[@xpt, at ypt, at ept, at fpt]
  
 set mode/last calendar
 *** Running ferret script: bn_regrid_6d.jnl
-[?1034h! bn_regrid_6d.jnl
+! bn_regrid_6d.jnl
 ! version of bn_regrid, using E and F directions.
 ! note with fix to ticket 2399 mode calendar applies to F axis
  
@@ -67418,17 +67432,17 @@ list v1234
  9   / 5:  2998.  3998.  4998.
  ---- N:4 F:   1980
  ---- M:3 E:   5
- 5   / 3:  2779.  3779.  4779.
- 7   / 4:  2879.  3879.  4879.
- 9   / 5:  2979.  3979.  4979.
+ 5   / 3:  2778.  3778.  4778.
+ 7   / 4:  2878.  3878.  4878.
+ 9   / 5:  2978.  3978.  4978.
  ---- M:4 E:   7
- 5   / 3:  2789.  3789.  4789.
- 7   / 4:  2889.  3889.  4889.
- 9   / 5:  2989.  3989.  4989.
+ 5   / 3:  2788.  3788.  4788.
+ 7   / 4:  2888.  3888.  4888.
+ 9   / 5:  2988.  3988.  4988.
  ---- M:5 E:   9
- 5   / 3:  2799.  3799.  4799.
- 7   / 4:  2899.  3899.  4899.
- 9   / 5:  2999.  3999.  4999.
+ 5   / 3:  2798.  3798.  4798.
+ 7   / 4:  2898.  3898.  4898.
+ 9   / 5:  2998.  3998.  4998.
  ---- N:5 F:   1980
  ---- M:3 E:   5
  5   / 3:  2780.  3780.  4780.
@@ -68673,7 +68687,7 @@ set mode/last long_label
 set mode/last calendar
  
 *** Running ferret script: bn_syntax_6d.jnl
-[?1034h! bn_syntax_6d.JNL
+! bn_syntax_6d.JNL
 ! - test syntax interpretation of Program FERRET 6D
  
 ! SET - SHOW - CANCEL DATA
@@ -68791,7 +68805,7 @@ cancel variables/all;\
      currently SET data sets:
           3.000
 *** Running ferret script: bn_expressions_6d.jnl
-[?1034h! bn_expressions_6d.jnl
+! bn_expressions_6d.jnl
 ! testing expressions syntax in E and F directions.
 ! Note pseudo-variables are _E,
  
@@ -69271,7 +69285,7 @@ LIST/n=5:7 FBOXLO, FBOXHI
 6   / 6:  5.500  6.500
 7   / 7:  6.500  7.500
 *** Running ferret script: bn_direction_fcns_6d.jnl
-[?1034h! bn_direction_functions_6d
+! bn_direction_functions_6d
 ! Tests of sort, sample, reverse, convolve, compress, and compess_by
 ! functions in the E and F directions.
  
@@ -69488,7 +69502,7 @@ list compressn_by(fsequence({10,20,30,40,50}),mask)
  4   / 4:   ....   ....
  5   / 5:   ....   ....
 *** Running ferret script: bn_regrid_transforms_6d.jnl
-[?1034h! bn_regrid_transforms_6d.jnl
+! bn_regrid_transforms_6d.jnl
 ! benchmark to test regridding transformations and syntax
 ! version of bn_regrid_transforms, using E and F directions.
 ! note with fix to ticket 2399 mode calendar applies to F axis
@@ -69810,31 +69824,31 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
  -DELETE TEMP     M: 13 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- dealloc  dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- dealloc  dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G003)           @AVE
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G###)           @AVE
  strip regrid on F: A1 --> ENTERMED         @AVE
  eval    A1       C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
  pseudo  _E       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
  pseudo  _F       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    1
  -DELETE _F       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
  -DELETE _E       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
  regrid  A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
  regrid  A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at AVE, 96 hour on F at AVE
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -69857,21 +69871,21 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
  12-MAR-1982 00 / 15:    ....    ....
  16-MAR-1982 00 / 16:    ....    ....
 list a1[ge=eoffset at sum, gf=fax4day at sum]
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G003)           @SUM
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G###)           @SUM
  strip regrid on F: A1 --> ENTERMED         @SUM
  found   A1       M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
  regrid  A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
  regrid  A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at SUM, 96 hour on F at SUM
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -69894,21 +69908,21 @@ list a1[ge=eoffset at sum, gf=fax4day at sum]
  12-MAR-1982 00 / 15:   ....   ....
  16-MAR-1982 00 / 16:   ....   ....
 list a1[ge=eoffset at var, gf=fax4day at var]
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G003)           @VAR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G###)           @VAR
  strip regrid on F: A1 --> ENTERMED         @VAR
  found   A1       M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
  regrid  A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
  regrid  A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : Variance of _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -69932,35 +69946,35 @@ list a1[ge=eoffset at var, gf=fax4day at var]
  16-MAR-1982 00 / 16:........
  
 list a2[ge=eoffset at ave, gf=fax4day at ave]
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A1       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G004)           @AVE
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G###)           @AVE
  strip regrid on F: A2 --> ENTERMED         @AVE
  eval    A2       C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
  pseudo  _E       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
  pseudo  _F       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1   48
  -DELETE _F       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
  -DELETE _E       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
  regrid  A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  regrid  A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at AVE, 96 hour on F at AVE
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -69983,21 +69997,21 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
  12-MAR-1982 00 / 15:     ....     ....
  16-MAR-1982 00 / 16:     ....     ....
 list a2[ge=eoffset at sum, gf=fax4day at sum]
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G004)           @SUM
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G###)           @SUM
  strip regrid on F: A2 --> ENTERMED         @SUM
  found   A2       M: 14 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
  regrid  A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  regrid  A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at SUM, 96 hour on F at SUM
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -70020,21 +70034,21 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
  12-MAR-1982 00 / 15:       ....       ....
  16-MAR-1982 00 / 16:       ....       ....
 list a2[ge=eoffset at var, gf=fax4day at var]
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G004)           @VAR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G###)           @VAR
  strip regrid on F: A2 --> ENTERMED         @VAR
  found   A2       M: 14 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
  regrid  A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  regrid  A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
              SUBSET   : 2 by 16 points (E-FORECAST)
@@ -70060,33 +70074,33 @@ list a2[ge=eoffset at var, gf=fax4day at var]
 ! 1/00 additions to check details of @MIN, at MAX bevavior
  
 let a1 = _e[ge=e1pt]
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  -DELETE A2       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
  -DELETE A2       M: 14 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
  -DELETE A1       M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
- dealloc  dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
 let a2 = _e[ge=e2pt]
 let a4 = _e[ge=e4pt]
  
 list a1[ge=eoffset at max]
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- dealloc  dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A1 --> (G003)           @MAX
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A1 --> (G###)           @MAX
  eval    A1       C:  7 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
  pseudo  _E       M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
  regrid  A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E1PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
@@ -70094,25 +70108,25 @@ list a1[ge=eoffset at max]
  2.1 / 2:  2.500
 list a2[ge=eoffset at max]
  -DELETE _E       M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A1       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A2 --> (G004)           @MAX
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A2 --> (G###)           @MAX
  eval    A2       C:  7 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
  pseudo  _E       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
  regrid  A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E2PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
@@ -70120,25 +70134,25 @@ list a2[ge=eoffset at max]
  2.1 / 2:  2.500
 list a4[ge=eoffset at max]
  -DELETE _E       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A2       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid A4       C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G005)           @MAX
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G###)           @MAX
  eval    A4       C:  7 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
- allocate dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
  pseudo  _E       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G004)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
  regrid  A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
@@ -70146,36 +70160,36 @@ list a4[ge=eoffset at max]
  2.1 / 2:  2.500
 list a4[ge=eoffset at min]
  -DELETE _E       M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G005)           @MIN
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G###)           @MIN
  found   A4       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
  regrid  A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MIN
              SUBSET   : 2 points (E)
  1.1 / 1:  1.500
  2.1 / 2:  2.000
 list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G005)           @SUM
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G###)           @SUM
  found   A4       M: 13 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
  regrid  A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at SUM
              SUBSET   : 2 points (E)
@@ -70187,19 +70201,19 @@ define axis/f=1-jan-1990:5-jan-1990:1/units=days eday
 define axis/f=1-jan-1990:5-jan-1990:24/units=hours ehour
 let afcst = _f[gf=eday]
 list afcst
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A4       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid AFCST    C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
  eval    AFCST    C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
- allocate dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
  pseudo  _F       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
              VARIABLE : _F[GF=EDAY]
              SUBSET   : 5 points (FORECAST)
  01-JAN-1990 00 / 1:  32493.
@@ -70209,8 +70223,8 @@ list afcst
  05-JAN-1990 00 / 5:  32497.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G005)
-    GRID (G005)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -70220,17 +70234,17 @@ show grid
  EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
 list afcst[gf=ehour at max]
  -DELETE _F       M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- strip regrid on F: AFCST --> (G006)           @MAX
+ allocate dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ strip regrid on F: AFCST --> (G###)           @MAX
  found   AFCST    M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
  regrid  AFCST    M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
              VARIABLE : _F[GF=EDAY]
                         regrid: 24 hour on F at MAX
              SUBSET   : 5 points (FORECAST)
@@ -70241,8 +70255,8 @@ list afcst[gf=ehour at max]
  05-JAN-1990 00 / 5:  32497.
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
-    GRID (G006)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -70254,7 +70268,7 @@ show grid
 set mode/last diag
 set mode/last calendar
 *** Running ferret script: bn_aggregate_e.jnl
-[?1034h! bn_aggregate_e.jnl
+! bn_aggregate_e.jnl
 ! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt.
  
@@ -70278,7 +70292,7 @@ show data fourfiles
  
 list/i=3 sst[T=@ave]
  getgrid EX#1     C:  5 dset:   5 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
+ allocate dynamic grid (G###)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
  strip --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
@@ -70324,7 +70338,7 @@ all data in memory:
          3/104W                9/30N              ... / ...               12/31-DEC 06:34        4/4.5              ... / ...
  
 cancel data fourfiles
- dealloc  dynamic grid (G006)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
+ dealloc  dynamic grid (G###)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
  canceling dset fourfiles
  -DELETE SST      M:  1 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:   -999   -999  M:    1    4  N: -999 -999
  -DELETE SST      M:  2 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
@@ -70387,7 +70401,7 @@ show data fourfiles
  
 list/i=3 airt[T=@ave]
  getgrid EX#1     C:  5 dset:   6 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
+ allocate dynamic grid (G###)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   6 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
  strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
@@ -70448,7 +70462,7 @@ show data/files fourfiles_gap
       7.4: ./ens4.nc
 list/i=3 airt[T=@ave]
  getgrid EX#1     C:  5 dset:   7 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
+ allocate dynamic grid (G###)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   7 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
  strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
@@ -70767,7 +70781,7 @@ show data/brief
     1> ./coads_climatology.cdf  (default)
  
 *** Running ferret script: bn_6d_lab_mode.jnl
-[?1034h! bn_6d_lab_mode.jnl
+! bn_6d_lab_mode.jnl
 !
 ! Tests of CANCEL MODE 6d_lab, writes SHOW and STAT output in classic 4D form.
 !
@@ -70915,7 +70929,7 @@ can mode diag
 ! restore default setting
 set mode 6d_lab
 *** Running ferret script: bn682_bug_fixes.jnl
-[?1034h! bn682_bug_fixes.jnl
+! bn682_bug_fixes.jnl
 ! test various fixes that went into version 6.82
 ! 8/2012 ACM
  
@@ -70963,7 +70977,7 @@ sho grid lon_c
  normal    T
  
 *** Running ferret script: bn683_bug_fixes.jnl
-[?1034h! bn683_bug_fixes.jnl
+! bn683_bug_fixes.jnl
 ! test various fixes that went into version 6.83
 ! 8/2012 ACM
  
@@ -71261,7 +71275,7 @@ list temp  ! values should match those above.
  
 set mode/last upcase_output
 *** Running ferret script: bn_outtype.jnl
-[?1034h! bn_outtype
+! bn_outtype
 ! Tests of output-type control:
 !  SET VAR/OUTTYPE
 !  SET LIST/OUTTYPE
@@ -71293,7 +71307,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71351,7 +71365,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71399,7 +71413,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71447,7 +71461,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71487,7 +71501,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71528,7 +71542,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71598,7 +71612,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71651,7 +71665,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71715,7 +71729,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71759,7 +71773,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71803,7 +71817,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71847,7 +71861,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71888,7 +71902,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71928,7 +71942,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
 ! Go back to default setting.
 can list/outtype
 *** Running ferret script: bn_ribbon_plot.jnl
-[?1034h! bn_ribbon_plot.jnl
+! bn_ribbon_plot.jnl
 ! Test color-line-by variable style of plots
  
 show alias ribbon
@@ -72071,7 +72085,7 @@ RIBBON/vs/over/nolab/thick=3/sym=20/key/set xpts, ypts, var
 ppl shakey,1,0
 ppl ribbon/over
 *** Running ferret script: bn_descr_4digit.jnl
-[?1034h ! bn_descr_4digit.jnl
+ ! bn_descr_4digit.jnl
  ! See ticket 1969: step files have 3- or 4-digit extensions
  ! coads_clim.999, coads_clim.1000, coads_clim.1001
  
@@ -72098,7 +72112,7 @@ list/x=180/y=0 sst
  17-MAY-1900 / 5:  28.49
  17-JUN-1900 / 6:  28.32
 *** Running ferret script: bn_axis_outtype.jnl
-[?1034h! bn_axis_outtype.jnl
+! bn_axis_outtype.jnl
 !  SET AXIS/OUTTYPE
 ! 23-Oct-2012
  
@@ -72119,7 +72133,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -72160,7 +72174,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -72211,7 +72225,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -72259,7 +72273,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72285,7 +72299,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72311,7 +72325,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72352,7 +72366,7 @@ save/clobber/file=mytype.nc my_data
 cancel mode ignore
  
 *** Running ferret script: bn_axis_nonmonotonic.jnl
-[?1034h! bn_axis_nonmonotonic.jnl
+! bn_axis_nonmonotonic.jnl
 ! bn_define_axis doesnt test the case where the varible is not monotonic
 ! ACM 11/2012  With Ferret v6.83+ the message tells us the index value
  
@@ -72364,7 +72378,7 @@ define axis/t/units=days tax = tvar
  
 cancel mode ignore
 *** Running ferret script: bn_vec_mod.jnl
-[?1034h! bn_vec_mod.jnl
+! bn_vec_mod.jnl
 ! /MODULO qualifier for the vector command.
 ! 12/12/2012 ACM
 !
@@ -72385,7 +72399,7 @@ vec/MOD/HLIM=-180:180 u,fakev,geolon_c,geolat_c
  
 can view
 *** Running ferret script: bn685_bug_fixes.jnl
-[?1034h! bn685_bug_fixes.jnl
+! bn685_bug_fixes.jnl
 ! test various fixes that went into version 6.85
 ! 1/2013 ACM
  
@@ -72751,7 +72765,7 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72780,7 +72794,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72831,7 +72845,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73041,8 +73055,6 @@ list ..history
  
 ! Just a dot is interpretd as a number.
 list .
-             VARIABLE : constant
-          0.0000
  
 set mode/last ignore
  
@@ -73201,12 +73213,12 @@ list/i=1:3 sst
              FILENAME : err684_packed_output.nc
              SUBSET   : 3 by 4 points (LONGITUDE-LATITUDE)
              TIME     : 01-OCT-2012 00:00
-              80.13E 80.38E 80.63E 
+              80.12E 80.38E 80.62E 
                 1      2      3
  15.88N / 4:   ....   ....  29.03
- 15.63N / 3:   ....  29.18  29.09
+ 15.62N / 3:   ....  29.18  29.09
  15.38N / 2:  29.36  29.21  29.10
- 15.13N / 1:  29.40  29.27  29.13
+ 15.12N / 1:  29.40  29.27  29.13
  
 ! data is SHORT, is not scaled
  
@@ -73219,12 +73231,12 @@ list/i=1:3 sst
              FILENAME : sst_new.nc
              SUBSET   : 3 by 4 points (LONGITUDE-LATITUDE)
              TIME     : 01-OCT-2012 00:00
-              80.13E 80.38E 80.63E 
+              80.12E 80.38E 80.62E 
                 1      2      3
  15.88N / 4:   ....   ....  29.03
- 15.63N / 3:   ....  29.18  29.09
+ 15.62N / 3:   ....  29.18  29.09
  15.38N / 2:  29.36  29.21  29.10
- 15.13N / 1:  29.40  29.27  29.13
+ 15.12N / 1:  29.40  29.27  29.13
  
  
 GO bn_reset
@@ -73268,7 +73280,7 @@ define axis/y=54:66:0.5/units=degrees_north lat_ax
 define grid/x=lon_ax/y=lat_ax/z=zax three_d_grd
  
 *** Running ferret script: bn_dsg_e_x.jnl
-[?1034h! bn_dsg_e.jnl
+! bn_dsg_e.jnl
 !
 !  Discrete Sampling Geometries files
 !  Create grids such that the instance dimension
@@ -73361,7 +73373,7 @@ sh grid pco2
  normal    Z
  normal    T
 *** Running ferret script: bn_nco_append.jnl
-[?1034h! bn_nco_append.jnl
+! bn_nco_append.jnl
 ! 5/2013 add a test appending files with ncks
  
  ! These functions use Unix NCO utilities, found at http://nco.sourceforge.net/
@@ -73409,13 +73421,13 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Tue Apr 18 17:16:05 2017: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "WKD MON DD HH:MM:SS YYYY: ncks -h -A -h z1.nc append_to_this.nc\n",
+			"PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
-		:NCO = "4.4.6" ;
+		:NCO = "4.4.4" ;
 }
 *** Running ferret script: bn_nobounds.jnl
-[?1034h! bn_nobounds.jnl
+! bn_nobounds.jnl
 ! The SAVE/NOBOUNDS qualifier causes bounds never to be written
 ! even if the data is irregular, and even if the axis came into
 ! Ferret with bounds.
@@ -73441,7 +73453,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73472,7 +73484,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73535,7 +73547,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73563,12 +73575,12 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
 *** Running ferret script: bn_write_integer_att.jnl
-[?1034h! bn_write_integer_att.jnl
+! bn_write_integer_att.jnl
 !  ACM 6/2013
 !
 ! This file has an integer attribute
@@ -73599,7 +73611,7 @@ sp ncdump a.nc | grep numberOfObservations
  
  
 *** Running ferret script: bn_descriptor_mc.jnl
-[?1034h! bn_descriptor_mc.jnl
+! bn_descriptor_mc.jnl
 ! 7/2013 ACM
 ! See ticket 2087
 !
@@ -73638,7 +73650,7 @@ list /x=300/y=10 sst
  16-MAY-0000 / 3:  27.22
  16-JUN-0000 / 4:  27.66
 *** Running ferret script: bn_plot_color_only.jnl
-[?1034h! bn_plot_color_only.jnl
+! bn_plot_color_only.jnl
 ! 9/20/2013 ACM
 ! ticket 2094
 !  PLOT/COLOR with no argument skips the black pen and starts with the next one.
@@ -73713,7 +73725,7 @@ set mode/last ignore
  
  
 *** Running ferret script: bn_vtree.jnl
-[?1034h! bn_tree.jnl
+! bn_tree.jnl
  
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
 ! 12/14 update to test regridding output using bn_vtree_regrid.jnl
@@ -74353,6 +74365,7 @@ go bn_vtree_regrid
 ! exercise 12/14 enhancements to display regrid target on a separate line
 ! updated 1/26/15 to exercise multiple regrid target outputs
 ! updated 2/23/15 to report target of regrid even when aux regridding occurs
+! 5/2017 note that the fix for #2533 causes some duplicate  UNKNOWN GRID lines
  
 ! case 1: target grid known,   regridded variable known
 let myvar = 1           ! var to be regridded is known
@@ -74697,6 +74710,7 @@ go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]]  ! dup known targets
    in default dataset levitus_climatology
    MYVAR = X[GX=X1] + Y[GY=Y1]
      regrid to TEMP
+     regrid to TEMP
      regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset levitus_climatology
@@ -74713,13 +74727,16 @@ go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad]      ! dup unknown suppressed
    MYVAR = X[GX=X1] + Y[GY=Y1]
      regrid to TEMP
      regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
 /TREE=USER
    in default dataset levitus_climatology
    MYVAR = X[GX=X1] + Y[GY=Y1]
      regrid to MYBAD ??		<== UNKNOWN GRID ******
+     regrid to MYBAD ??		<== UNKNOWN GRID ******
 /TREE=FILE
    regrid to TEMP[d=levitus_climatology]
    *unknown grid: MYBAD
+   *unknown grid: MYBAD
 the problem is UNKNOWN GRID: MYBAD
 ************************
 go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
@@ -74868,7 +74885,7 @@ vtree=all tempz4
  
  
 *** Running ferret script: bn686_bug_fixes.jnl
-[?1034h! bn686_bug_fixes
+! bn686_bug_fixes
 ! test various fixes that went into version 6.86
 ! 11/2013 ACM
  
@@ -75207,7 +75224,7 @@ LEV_NUM = "4"
 LEV_DEL = "5"
  
 *** Running ferret script: bn_long_symnames.jnl
-[?1034h! bn_long_symnames.jnl
+! bn_long_symnames.jnl
 ! *ACM* 11/22/2013
 ! Allow longer names for Ferret symbols
  
@@ -75244,7 +75261,7 @@ show symbol q*
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890 = "5"
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567XXX = "6"
 *** Running ferret script: bn_strdim.jnl
-[?1034h! bn_strdim.jnl
+! bn_strdim.jnl
 ! Keep the string dimension name and size from the intput file
 ! on writing the string variable.
  
@@ -75269,7 +75286,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75292,12 +75309,12 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
 *** Running ferret script: bn_single_colorlev.jnl
-[?1034h! bn_single_colorlev.jnl
+! bn_single_colorlev.jnl
 ! Ticket 2123, mis-labeled color bars when
 ! single level is specified with a range of values
  
@@ -75314,7 +75331,7 @@ shade/lev=(25)/L=1 INT(sst)
 fill/lev=(20,30,10)/L=1 sst
  
 *** Running ferret script: bn69_bug_fixes.jnl
-[?1034h! bn69_bug_fixes
+! bn69_bug_fixes
 ! test various fixes that went into version 6.9
 ! 02/2014 ACM
  
@@ -75511,7 +75528,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75541,7 +75558,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75562,7 +75579,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75583,7 +75600,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75605,7 +75622,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75786,7 +75803,7 @@ set var/name=diff w
  
 SET MODE/LAST ignore
 *** Running ferret script: bn_bad_axis_bounds.jnl
-[?1034h! bn_bad_axis_bounds
+! bn_bad_axis_bounds
 ! Ticket 2146 If there are invalid axis bounds
 ! make them into a dependent variable.
  
@@ -75801,7 +75818,7 @@ show data
  TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12
  
 *** Running ferret script: bn_enter_exit_GO.jnl
-[?1034h! GO bn_enter_exit_GO
+! GO bn_enter_exit_GO
 ! Lines to allow trace of GO scripts:
 !
 ! ! Enter_GO and ! Exit_GO lines written to the journal file
@@ -75868,7 +75885,7 @@ plot/i=1:15/color=red/thick i
  
 cancel redirect
 *** Running ferret script: bn_stddev.jnl
-[?1034h! bn_std.jnl
+! bn_std.jnl
 ! New StdDev transform
  
 use coads_climatology
@@ -75929,7 +75946,7 @@ list/y=3/l=1 temp[z=@std,x=@std]
              TIME     : 17-AUG-1982 12:00
           0.9487
 *** Running ferret script: bn_set_axis_name.jnl
-[?1034h! bn_set_axis_name.jnl
+! bn_set_axis_name.jnl
 ! ticket 2160 Implementing new qualifier SET AXIS/NAME
 ! 3/2014
 !
@@ -76018,7 +76035,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76035,7 +76052,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76052,7 +76069,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76079,19 +76096,208 @@ set axis/name=.fr x_in_meters
  
 set mode/last ignore
 *** Running ferret script: bn_let_remote.jnl
-[?1034h! bn_let_remote.jnl
+! bn_let_remote.jnl
 ! Tests of the F-TDS LET/REMOTE
 ! 6/2016 installed NVODS on new-bock server
 ! 9/2016 load smaller subsets of the data
-! 4/2017 Use the THREDDS server at http://ferret.pmel.noaa.gov/pmel/thredds
+! 4/2017 Update thredds server urls. To find the right URL, go to the dataset
+!        in the NVODS server, and hit the "Export to Desktop Application"
+!        button. The .jnl address is the correct F-TDS URL.
  
 ! See if the F-TDS is working and bail if not.
-let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
 load status
 if `status NE 0` then EXIT/SCRIPT
- !-> if 1 then EXIT/SCRIPT
+ !-> if 0 then EXIT/SCRIPT
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+let/D=1/remote myvar = t00an1[k=1:5 at sum]
+let/D=1/remote ave_z = t00an1[z=0:20 at ave]
+sh var
+ Created by DEFINE VARIABLE:
+     AVE_Z[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[Z=0:20 at AVE]
+     MYVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[K=1:5 at SUM]
+ >>> Definitions that replace any file variable of same name:
+     STATUS = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+set view ul; shade/l=7/x=180:200/y=20:30 myvar
+set view ur; shade/l=3/x=180:200/y=20:30 ave_z
+ 
+list/l=7/x=300:310/y=15 myvar, ave_z
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+             LONGITUDE: 60W to 50W
+             LATITUDE: 14.5N
+             TIME: 02-JUL-0003 05:27
+ Column  1: MYVAR is T00AN1[K=1:5 at SUM]
+ Column  2: AVE_Z is T00AN1[Z=0:20 at AVE]
+             MYVAR   AVE_Z
+59.5W / 301:  136.8  27.45
+58.5W / 302:  136.7  27.42
+57.5W / 303:  136.4  27.37
+56.5W / 304:  136.1  27.30
+55.5W / 305:  135.6  27.21
+54.5W / 306:  135.1  27.11
+53.5W / 307:  134.6  27.01
+52.5W / 308:  134.1  26.89
+51.5W / 309:  133.6  26.77
+50.5W / 310:  133.0  26.65
+ 
+let/D=1/remote ave_t = t00an1[L=1:12 at ave]
+set view ll; shade/z=0/x=180:200/y=20:30 ave_t
+ 
+let/D=1/remote/units="`t00an1,ret=units`"/title="Summer average Temperature" ave_summer = t00an1[t=15-jun:15-sep at ave]
+ !-> DEFINE VARIABLE/D=1/remote/units="deg C"/title="Summer average Temperature" ave_summer = t00an1[t=15-jun:15-sep at ave]
+set view lr; shade/z=0/x=180:200/y=20:30 ave_summer
+ 
+can view
+can data/all; can var/all
+ 
+! open another dataset, define more remote variables
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+let/D=2/remote sstsum = sst[L=1:5 at sum]
+let/D=2/remote airtsum = airt[L=1:5 at sum]
+sh dat
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+ name     title                             I         J         K         L
+ T00AN1   Temperature                      1:360     1:180     1:33      1:1
+ 
+    2> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl  (default)
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:12
+ AIRT     AIR TEMPERATURE                  1:180     1:90      ...       1:12
+ SPEH     SPECIFIC HUMIDITY                1:180     1:90      ...       1:12
+ WSPD     WIND SPEED                       1:180     1:90      ...       1:12
+ UWND     ZONAL WIND                       1:180     1:90      ...       1:12
+ VWND     MERIDIONAL WIND                  1:180     1:90      ...       1:12
+ SLP      SEA LEVEL PRESSURE               1:180     1:90      ...       1:12
+ ------------------------------
+ AIRTSUM[D=data_coads_climatology.jnl] (/REMOTE) = AIRT[L=1:5 at SUM]
+ SSTSUM[D=data_coads_climatology.jnl] (/REMOTE) = SST[L=1:5 at SUM]
+ 
+ 
+set view ul; plot/y=-10/x=50:150 sstsum
+set view ur; plot/y=-10/x=50:150 airtsum
+list/y=-10/x=50:59 sstsum,airtsum
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             LONGITUDE: 50E to 59E
+             LATITUDE: 11S
+ Column  1: SSTSUM is SST[L=1:5 at SUM]
+ Column  2: AIRTSUM is AIRT[L=1:5 at SUM]
+           SSTSUM  AIRTSUM
+51E   / 16:  140.5   138.3
+53E   / 17:  140.6   138.4
+55E   / 18:  141.3   139.5
+57E   / 19:  141.4   138.5
+59E   / 20:  141.5   139.1
+ 
+let both = sstsum + airtsum
+set view lower; plot/y=-10/x=50:150 both
+list/y=-10/x=50:59 sstsum, airtsum, both
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             LONGITUDE: 50E to 59E
+             LATITUDE: 11S
+ Column  1: SSTSUM is SST[L=1:5 at SUM]
+ Column  2: AIRTSUM is AIRT[L=1:5 at SUM]
+ Column  3: BOTH is SSTSUM + AIRTSUM
+           SSTSUM  AIRTSUM  BOTH
+51E   / 16:  140.5   138.3  278.7
+53E   / 17:  140.6   138.4  279.0
+55E   / 18:  141.3   139.5  280.9
+57E   / 19:  141.4   138.5  279.9
+59E   / 20:  141.5   139.1  280.6
+ 
+can dat/all; can var/all
+ 
+! make several remote definitions. They can be used together in an expression.
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+let/D=1/remote sstsum = sst[L=1:5 at sum]
+let/D=1/remote airtsum = airt[L=1:5 at sum]
+let/D=1/remote factor = 12
+let/D=1/remote combo = factor*(airtsum - sstsum)
+list/y=-5/x=130w:110w combo
+             VARIABLE : FACTOR*(AIRTSUM - SSTSUM)
+             FILENAME : data_coads_climatology.jnl
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 5S
+                 5S    
+                 43
+ 129W   / 106:  -7.04
+ 127W   / 107:  -7.88
+ 125W   / 108:  -0.59
+ 123W   / 109: -10.31
+ 121W   / 110:  -1.90
+ 119W   / 111:  -4.39
+ 117W   / 112:  -6.35
+ 115W   / 113:  -9.40
+ 113W   / 114:  -9.81
+ 111W   / 115: -11.41
+ 
+ 
+can dat/all; can var/all
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl"
+ 
+! This is ok let/remote/D=
+let/D=1/remote myvar = t00an1[z=1:100 at ave]
+ 
+! Intentional errors:
+ 
+! But cannot put d= within the expression: the expr is evaluated on
+! the remote server so the same datsets are not open there.
+ 
+set mode ignore
+let/D=1/remote rvar = t00an1[d=1,z=1:100 at ave]
+ 
+ 
+! But, require LET/D= with /REMOTE
+let/remote rvar = t00an1[d=1,z=1:100 at ave]
+ 
+! If expressions involve local variables not defined in the remote dset,
+! then the variable can be computed but not as a remote-var.
+ 
+let a = 12
+let/D=1/remote avar = a*t00an1[L=@ave]
+list/x=300/y=15 avar
+ 
+SET MODE/LAST ignore
+ 
+! The dataset remains open, we can fix the definition.
+let/D=1/remote a = 12
+sho dat
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl  (default)
+ name     title                             I         J         K         L
+ T00AN1   Temperature                      1:360     1:180     1:33      1:1
+ ------------------------------
+ A[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = 12
+ AVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = A*T00AN1[L=@AVE]
+ MYVAR[D=data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl] (/REMOTE) = T00AN1[Z=1:100 at AVE]
+ 
+list/x=300/y=15/z=0:100 avar
+             VARIABLE : A*T00AN1[L=@AVE]
+             FILENAME : data_ferret.pmel.noaa.gov_pmel_thredds_dodsC_data_PMEL_WOA05nc_annual_t00an1.nc.jnl
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_annual/
+             SUBSET   : 7 points (DEPTH (m))
+             LONGITUDE: 60.5W
+             LATITUDE : 14.5N
+             TIME     : 01-JUL 00:00 to 02-JUL 00:00
+               60.5W 
+              300
+ 0      / 1:  330.0
+ 10     / 2:  329.7
+ 20     / 3:  329.3
+ 30     / 4:  328.7
+ 50     / 5:  324.3
+ 75     / 6:  312.7
+ 100    / 7:  297.4
+ 
+can dat/all; can var/all
+ 
 *** Running ferret script: bn691_bug_fixes.jnl
-[?1034h! bn691_bug_fixes
+! bn691_bug_fixes
 ! test various fixes that went into version 6.91
 ! 04/2014 ACM
  
@@ -76325,7 +76531,7 @@ ensemble ens = 1,2,3
 ! MAIZE_YIELD[M=@NGD] should have values of 0, 2, and 3.
 list/y=29.25  MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3],  MAIZE_YIELD[m=@ngd]
              LONGITUDE: 8W(-8) to 6W(-6)
-             LATITUDE: 29.3N
+             LATITUDE: 29.2N
              E (realization): 0.5 to 3.5 (number of valid)
  Column  1: MAIZE_YIELD[D=maize_1] is  Maize harvest (kgC.m-2.yr-1)
  Column  2: MAIZE_YIELD[D=maize_2] is  Maize harvest (kgC.m-2.yr-1)
@@ -76606,7 +76812,7 @@ def axis/z=1:20:1 zaxis
 define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
@@ -76622,7 +76828,7 @@ load bigvar
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
@@ -77027,7 +77233,7 @@ list substring("hello",1,-3)
  
 set mode/last ignore
 *** Running ferret script: bn_append_dsg.jnl
-[?1034h! bn_append_dsg.jnl
+! bn_append_dsg.jnl
 !From SOCAT 3: appending to a dsg file where the new variable is on the obs
 ! dimension. THe file has no coordinate variable, and we want to keep it that way.
 ! Ferret needs to detect the dimension-only axis and keep it as-is. Do not upcase,
@@ -77104,13 +77310,13 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 }
  
 set mode/last upcase
  
 *** Running ferret script: bn_global_atts.jnl
-[?1034h! bn_global_atts
+! bn_global_atts
 ! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
  
 cancel mode upcase
@@ -77197,7 +77403,7 @@ variables:
 		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "CruiseDsgNcFile 1.0PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -77224,14 +77430,14 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- PyFerret V7.1 (beta/debug) 18-Apr-17 
+ PyFerret V7.2 (beta/debug) DD-MON-YY 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
 set mode/last upcase
  
 *** Running ferret script: bn_conventions_history.jnl
-[?1034h! bn_conventions_history.jnl
+! bn_conventions_history.jnl
 ! ticket 2169:
 ! Write conventions CF-1.6
 ! When appending to the Conventions and history
@@ -77254,10 +77460,10 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the filePyFerret V7.1 (beta/debug) 18-Apr-17 
+ ..history = The history of the filePyFerret V7.2 (beta/debug) DD-MON-YY 
  ..Conventions = Conventions for variables named V2CF-1.6 
 *** Running ferret script: bn_center_key_labels.jnl
-[?1034h! bn_center_key_labels
+! bn_center_key_labels
 !  6/2014
 !
 ! Arguments to /KEY qualifier on color plots
@@ -77302,7 +77508,7 @@ can data coads_climatology
 shade temp
  
 *** Running ferret script: bn_wgt_transform.jnl
-[?1034h! bn_wgt_transform.jnl  test new @WGT transform,
+! bn_wgt_transform.jnl  test new @WGT transform,
 ! returns weights used in the equiv. average or integral transform
 ! ACM 7/2014
  
@@ -77412,7 +77618,7 @@ list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
  35    / 4:  10.00
  45    / 5:   3.50
 *** Running ferret script: bn_show_outfile.jnl
-[?1034h! bn_show_outfile
+! bn_show_outfile
 ! Adding tests for SHOW/OUTFILE=
 ! Previously only tests when SHOW/XML/OUTFILE=
 !  Bugs in SHOW/OUTFILE reported in ticket 2194
@@ -78054,7 +78260,7 @@ f is ready and AVAILABLE
  
  
 *** Running ferret script: bn_date1900_array.jnl
-[?1034h! bn_date1900_array.jnl
+! bn_date1900_array.jnl
 ! Let date1900 accept an array of date strings, returning a list
 ! of coordinate values, days since 1-jan-1900.
  
@@ -78103,7 +78309,7 @@ list t[gt=taxis]
  30-JUL-2002 00 / 3:  37465.
  
 *** Running ferret script: bn_spawn_size.jnl
-[?1034h! bn_spawn_size.jnl
+! bn_spawn_size.jnl
 ! Added 9/9/2014
 ! Fix for ticket 981
 ! Return the size of the result of a spawn, not
@@ -78180,7 +78386,7 @@ say `name_len, return=isize`
 sp rm bn_spawn_size*.dat bn_spawn_size*.cdf
  
 *** Running ferret script: bn_polygon_log.jnl
-[?1034h! bn_polygon_log.jnl
+! bn_polygon_log.jnl
 ! polygon plots on a log axis need tests
  
 let xsqr = YSEQUENCE({0,.1,.1,0})
@@ -78214,7 +78420,7 @@ poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
  
 set mode/last ignore
 *** Running ferret script: bn694_bug_fixes.jnl
-[?1034h! bn694_bug_fixes
+! bn694_bug_fixes
 ! test various fixes that went into version 6.94
 ! 11/2014 ACM
 ! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
@@ -79397,7 +79603,7 @@ list b[x=@ave,k=@ave]
  
  
 *** Running ferret script: bn_permute_ascii.jnl
-[?1034h! bn_permute_ascii.jnl
+! bn_permute_ascii.jnl
 ! test permutations when reading ascii data, in E and F directions
 ! 11/18/2014
 ! see ticket 2217: was not working for grids in E and F
@@ -79703,7 +79909,7 @@ list tm
  4   / 4: -28.54  -8.39
  
 *** Running ferret script: bn_lon_lat_time_string.jnl
-[?1034h! bn_lon_lat_time_string.jnl
+! bn_lon_lat_time_string.jnl
 ! Test function written for LAS, to create profile labels from
 ! a list of lnogitudes, latitudes, times, and a prefix string.
  
@@ -79735,7 +79941,7 @@ list lon_lat_time_string(lon, lat, time, tt, "my_string")
  3   / 3:"my_string_340.5E_15.03S_04-JAN-2001"
  
 *** Running ferret script: bn_save_justdim.jnl
-[?1034h! bn_save_justdim.jnl
+! bn_save_justdim.jnl
 ! When a dataset has axes that are dimensions but not 1-D coordinate variables,
 ! no longer save the coordinate axis that Ferret creates from the dimension.
 !
@@ -79765,7 +79971,7 @@ sp ncdump a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
 *** Running ferret script: bn_time2d.jnl
-[?1034h! bn_time2d.jnl
+! bn_time2d.jnl
 ! 1/30/2015 ACM
  
 ! initial changes to handle 2d time variable: forecast and time
@@ -79796,7 +80002,7 @@ set att/like=time time2d
 shade time2d
 shade/trans time2d
 *** Running ferret script: bn_legend_labels.jnl
-[?1034h! bn_legend_labels.jnl
+! bn_legend_labels.jnl
 ! The legend labels on a multi-line plot describe the
 !  variable and context but are not controlable by the user.
 !
@@ -79817,7 +80023,7 @@ sh sym lab7,lab8,lab9
 plot/x=300/y=20:65/key=title  sst1,sst2,sst3
 sh sym lab7,lab8,lab9
 *** Running ferret script: bn_DQ.jnl
-[?1034h! bn_DQ.jnl  *sh* 2/2015
+! bn_DQ.jnl  *sh* 2/2015
 ! test the use of _DQ_ and _SQ_ in lieu of " and '
  
 let foobar = 1
@@ -80047,16 +80253,19 @@ say ($a)
 foobar
  
 ! ======
+! Note this result changes 6/30/2017, due to change in merge_grid for ticket
+! 2313, in grid-merging the grid of a constant is now a normal grid. Previously
+! it was the abstract grid.
 DEFINE SYMBOL a    "(`foobar,return=xaxis`)"
- !-> DEFINE SYMBOL a    "(ABSTRACT)"
+ !-> DEFINE SYMBOL a    "(NORMAL)"
 say ($a)
- !-> MESSAGE/CONTINUE (ABSTRACT)
-(ABSTRACT)
+ !-> MESSAGE/CONTINUE (NORMAL)
+(NORMAL)
 DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
- !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(NORMAL)_DQ_
 say ($a)
- !-> MESSAGE/CONTINUE (ABSTRACT)
-(ABSTRACT)
+ !-> MESSAGE/CONTINUE (NORMAL)
+(NORMAL)
  
 ! ======
 GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_    "_DQ_+-/_SQ_\!foobar;_SQ_"
@@ -80313,7 +80522,7 @@ plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
  
 ! in xeq_define.F:  DEFINE AXIS/NAME='my-name' is of unclear purpose
 *** Running ferret script: bn695_bug_fixes.jnl
-[?1034h! bn695_bug_fixes
+! bn695_bug_fixes
 ! test various fixes that went into version 6.95
  
 GO bn_reset
@@ -80472,7 +80681,7 @@ list astd^2, avar, avar_calc, astd_e_f^2
 I / *:     5.778  5.778   5.778  0.4444
  
 *** Running ferret script: bn_f_tax_fcns.jnl
-[?1034h! bn_f_from_tax_fcns.jnl
+! bn_f_from_tax_fcns.jnl
 ! test tax_* functions returning results from a
 ! time-formatted axis in the F direction
 !
@@ -80738,7 +80947,7 @@ LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
  01-JAN-1902 00:01:05 / 14:  65.00000
  01-JAN-1902 00:01:10 / 15:  70.00000
 *** Running ferret script: bn_fmrc.jnl
-[?1034h! bn_fmrc.jnl
+! bn_fmrc.jnl
 ! initial test of DEFINE DATA/F
  
 ! *sh* 11/15 MUCH MORE DETAILED BENCHMARK NEEDED!
@@ -80751,7 +80960,7 @@ use "run4.nc"
 define data/hide/F/agg fourfiles = 1,2,3,4
  
 sh grid sst
-    GRID (G007)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  LON       LONGITUDE           10mr   109W                 91W                 full
  LAT       LATITUDE             9 r   13N                  29N                 full
@@ -80800,7 +81009,7 @@ list/L=1:6/n=1:4 `sst._ftime2d`
  07-JAN-2010 12 / 4:   7.00   8.00   9.00  10.00  11.00  12.00
  
 *** Running ferret script: bn_return_defined.jnl
-[?1034h! bn_return_defined.jnl
+! bn_return_defined.jnl
 ! 5/3/2015 *acm*
 ! `return=defined` returns 1 if the user variable is defined
 ! see ticket 2293
@@ -80822,7 +81031,7 @@ say `temp,return=defined`
  !-> MESSAGE/CONTINUE 0
 0
 *** Running ferret script: bn_can_var_noerr.jnl
-[?1034h! bn_can_var_noerr.jnl
+! bn_can_var_noerr.jnl
 ! CANCEL VARIABLE/NOERROR
  
  
@@ -80868,7 +81077,7 @@ cancel var/noerror/all
 show var
  Created by DEFINE VARIABLE:
 *** Running ferret script: bn_annotate.jnl
-[?1034h! bn_annotate.jnl
+! bn_annotate.jnl
 ! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
 ! locates user-defined labels on a plot.
 !   /USER and /NOUSER behave as the LABEL command does
@@ -81067,7 +81276,7 @@ ppl list labels
           XPOS       YPOS     HGT   ROT   UNITS
  LAB 1  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASX : 0.5 to 2.5
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 2 -1.313E+00 -1.000E+00 0.500  -90  USER    X
+ LAB 2 -1.312E+00 -1.000E+00 0.500  -90  USER    X
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
  LAB 3  0.000E+00 -8.333E-01 0.500    0  USER    X
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
@@ -81144,7 +81353,7 @@ shad/set/i=1:2/j=1:2 i+j; def anno/nou/ypos=0 "My Lab"; ppl plot
 shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/hal=1/val=0 "My Lab"; ppl plot
 shad/set/i=1:2/j=1:2 i+j; def anno/nou/user/xpos=0/ypos=0 "My Lab"; ppl plot
 *** Running ferret script: bn_auxiliary.jnl
-[?1034h! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
+! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
  
 ! notes about the 6/2015 version:
 ! -- tests 1D regridding, only, as of 6/2015
@@ -81323,17 +81532,17 @@ LIST/PREC=7 tempz
  getgrid DEPTH    C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL
  getgrid ZPTS     C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
- dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    (AX###)   NORMAL
+ dealloc  dynamic grid (G###)          NORMAL    NORMAL    (AX###)   NORMAL
+ allocate dynamic grid (G###)          NORMAL    NORMAL    (AX###)   NORMAL
+ allocate dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
+ dealloc  dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
+ allocate dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
+ allocate dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
  eval    EX#1     C:  4 dset:   1 I:      1      2  J:    1    2  K:    1    5  L:   -999   -999
  eval    TEMPZ    C:  6 dset:   1 I:      1      2  J:    1    2  K:    1    5  L:   -999   -999
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
- strip regrid on Z: TEMP --> (G002)           @LIN
+ allocate dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
+ strip regrid on Z: TEMP --> (G###)           @LIN
  eval    DEPTH    C:  9 dset:   1 I:      1      2  J:    1    2  K:    1   20  L:   -999   -999
  pseudo  Z        M:  1 dset:   1 I:   -999   -999  J: -999 -999  K:    1   20  L:   -999   -999
  constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -81343,7 +81552,7 @@ LIST/PREC=7 tempz
  -DELETE Z        M:  1 dset:   1 I:   -999   -999  J: -999 -999  K:    1   20  L:   -999   -999
  reading TEMP     M:  1 dset:   1 I:      1      2  J:    1    2  K:    7   12  L:   -999   -999
  auxgrd  TEMP     M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    5  L:   -999   -999
- dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
+ dealloc  dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
              VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
              FILENAME : levitus_3d_subset.nc
              SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
@@ -81365,14 +81574,14 @@ LIST/PREC=7 tempz
  48.5S / 2:  5.835500  6.045001
  49.5S / 1:  4.879000  5.102500
 SHOW GRID tempz
- dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
+ dealloc  dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
  getgrid EX#1     C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL
-    GRID (G002)
+ allocate dynamic grid (G###)          XAXLEVITR1YAXLEVITR4(AX###)   NORMAL
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
- (AX005)   Z                    5 r   100                  500                 full
+ (AX###)   Z                    5 r   100                  500                 full
  normal    T
 !LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
 !LIST/PREC=7 tempz
@@ -81416,7 +81625,7 @@ LIST tempzax
  48.5S / 2:  5.835  6.045
  49.5S / 1:  4.879  5.102
 SHOW GRID tempzax
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -81450,11 +81659,11 @@ LIST/PREC=7 tempz_alt
  48.5S / 2:  7.726000  7.917999
  49.5S / 1:  6.843000  7.021999
 SHOW GRID tempz_alt
-    GRID (G005)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
- (AX007)   Z                    5 r   2                    10                  5 pts
+ (AX###)   Z                    5 r   2                    10                  5 pts
  normal    T
  
 !! do same regrid using the shorhand semi-automated notation
@@ -81475,11 +81684,11 @@ LIST/PREC=7 tempz_1pt
  48.5S / 2:  7.725600  7.917999
  49.5S / 1:  6.836600  7.016000
 SHOW GRID/z tempz_1pt
-    GRID (G006)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
- (AX008)   Z                    1 r   6                    6                   1 pt
+ (AX###)   Z                    1 r   6                    6                   1 pt
  normal    T
  
        K     Z                   ZBOX      ZBOXLO
@@ -81538,7 +81747,7 @@ LIST/PREC=7 rvtempzax - tempz
  48.5S / 2:  0.0000000  0.0000000
  49.5S / 1:  0.0000000  0.0000000
 SHOW GRID rvtempzax
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -82731,7 +82940,7 @@ LIST/PREC=7 rvtempzaxave - tempz
  48.5S / 2:  0.00000000  0.00000000
  49.5S / 1:  0.00000000  0.00000000
 SHOW GRID/z rvtempzaxave
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -82798,7 +83007,7 @@ list temp[gz(density)=5:65:2.5]
  15   /  5:   2.50   2.50   ....   2.50   ....
  17.5 /  6:   3.25   3.25   ....   3.25   ....
  20   /  7:   4.00   ....   ....   4.00   ....
- 22.5 /  8:   5.25   ....   7.13   5.25   ....
+ 22.5 /  8:   5.25   ....   7.12   5.25   ....
  25   /  9:   6.50   ....   7.75   6.50   ....
  27.5 / 10:   7.75   ....   8.38   7.75   ....
  30   / 11:   9.00   ....   9.00   ....   9.00
@@ -82869,7 +83078,7 @@ list btemp[gz(bdensity)=5:65:2.5]
  15   /  5:   2.50   2.50   ....   2.50   ....
  17.5 /  6:   3.25   3.25   ....   3.25   ....
  20   /  7:   4.00   ....   ....   4.00   ....
- 22.5 /  8:   5.25   ....   7.13   5.25   ....
+ 22.5 /  8:   5.25   ....   7.12   5.25   ....
  25   /  9:   6.50   ....   7.75   6.50   ....
  27.5 / 10:   7.75   ....   8.38   7.75   ....
  30   / 11:   9.00   ....   9.00   ....   9.00
@@ -83034,7 +83243,7 @@ list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83061,7 +83270,7 @@ list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83088,7 +83297,7 @@ list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83115,7 +83324,7 @@ list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83349,7 +83558,7 @@ list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5]  ! passive ax 1
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83376,7 +83585,7 @@ list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5]  ! passive ax 2
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83403,7 +83612,7 @@ list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83430,7 +83639,7 @@ list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5]  ! backwards pasv
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83650,7 +83859,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83675,7 +83884,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83700,7 +83909,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83725,7 +83934,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83919,7 +84128,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83944,7 +84153,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83969,7 +84178,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -83994,7 +84203,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84188,7 +84397,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84213,7 +84422,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84238,7 +84447,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84263,7 +84472,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84457,7 +84666,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84482,7 +84691,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84507,7 +84716,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84532,7 +84741,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84726,7 +84935,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84751,7 +84960,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84776,7 +84985,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84801,7 +85010,7 @@ CANC MODE VERIFY
  40   /  8:  16.00  22.00  16.00   ....  16.00
  45   /  9:  20.50  23.50  20.50   ....  20.50
  50   / 10:  25.00  25.00  25.00   ....  25.00
- 55   / 11:  30.50  30.50  30.50  44.13  30.50
+ 55   / 11:  30.50  30.50  30.50  44.12  30.50
  60   / 12:  36.00  36.00  36.00  45.75  36.00
  65   / 13:  42.50  42.50  42.50  47.38  42.50
  70   / 14:  49.00  49.00  49.00  49.00  49.00
@@ -84912,7 +85121,7 @@ CANC MODE VERIFY
             1      2      3      4      5
           20.75  24.00  20.75   ....  20.75
 *** Running ferret script: bn_plot_ribbon_gaploc.jnl
-[?1034h! bn_plot_ribbon_gaploc.jnl
+! bn_plot_ribbon_gaploc.jnl
 ! 7/20/2015 *acm*  new PLOT/VS/RIBBON/GAPLOC
 !
 ! If a trajectory leaves the selected region and then travels
@@ -84951,7 +85160,7 @@ plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
 plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
 set mode/last ignore
 *** Running ferret script: bn_time_short_axes.jnl
-[?1034h! bn_time_short_axes.jnl
+! bn_time_short_axes.jnl
 ! testing time axis style with HH:MM on the time axis labels.
  
 use timesec
@@ -84979,7 +85188,7 @@ shade/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
 fill/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
 shade/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
 *** Running ferret script: bn_floatstr_extended.jnl
-[?1034h! bn_floatstr_extended.jnl
+! bn_floatstr_extended.jnl
 ! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
 ! 9/28/2015
  
@@ -85214,7 +85423,7 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
 17S   / 19: "8."   "8"  
 13S   / 20: "10."  "9"  
 *** Running ferret script: bn696_bug_fixes.jnl
-[?1034h! bn696_bug_fixes
+! bn696_bug_fixes
 ! test various fixes that went into version 6.96
  
 GO bn_reset
@@ -85316,7 +85525,7 @@ say `var,prec=4`
  !-> MESSAGE/CONTINUE 1.235E+34
 1.235E+34
 *** Running ferret script: bn_bin_regrid.jnl
-[?1034h! bin regridding tests
+! bin regridding tests
  
 go bn_bin_regrid.sub X
 ! Tests of @BIN and @NBIN regridding transforms
@@ -85691,7 +85900,7 @@ LIST dest, var[G$1=dcoarse]
 5   / 5:  5.000  5.000
  
 *** Running ferret script: bn697_bug_fixes.jnl
-[?1034h! bn697_bug_fixes
+! bn697_bug_fixes
 ! test various fixes that went into version 6.97
  
 GO bn_reset
@@ -85904,20 +86113,20 @@ GO err696_time_overlay
 def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=noleap tax_nlp
 def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=julian tax_jul
 sp date
-Tue Apr 18 17:16:25 PDT 2017
+WKD MON DD HH:MM:SS ZZZ YYYY
 set view upper
 plot t[gt=tax_nlp]
 plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
 sp date
-Tue Apr 18 17:16:25 PDT 2017
+WKD MON DD HH:MM:SS ZZZ YYYY
  
 sp date
-Tue Apr 18 17:16:25 PDT 2017
+WKD MON DD HH:MM:SS ZZZ YYYY
 set view lower
 plot t[gt=tax_jul]
 plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
 sp date
-Tue Apr 18 17:16:25 PDT 2017
+WKD MON DD HH:MM:SS ZZZ YYYY
  
 GO bn_reset
 cancel mode verify
@@ -85975,7 +86184,7 @@ variables:
 		var:long_name = "0*TT + X[GX=XAX]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -86131,7 +86340,7 @@ define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
  
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
@@ -86869,7 +87078,7 @@ variables:
 		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87990,7 +88199,7 @@ sp grep "var name" out.xml
 <var name="v2">
 <var name="u2">
 *** Running ferret script: bn_aggregate_t.jnl
-[?1034h! bn_aggregate_t.jnl
+! bn_aggregate_t.jnl
 ! 9/12/2015 *sh* tweak to put all test files into "tmp" subdirectory
 ! 1/2016 *sh* added implicit naming of aggregation from script filename
 ! 2/2016      and auto-sorting of member files
@@ -89118,7 +89327,7 @@ show data/br
     1> myagg3  (default)
 cancel data/all
 *** Running ferret script: bn_unquoted_args.jnl
-[?1034h! bn_unquoted_args.jnl
+! bn_unquoted_args.jnl
 ! 12/2015 -- a hack change to PPARSE_COMMAND to allow users to omit
 ! the quotation marks in the argument(s) of SET DATA, GO and DEFINE SYMBOL
  
@@ -89134,10 +89343,10 @@ save/clobber/file="tmp/test3.nc" i[i=1:3] + 3
 ! generate absolute path
 let dir = SPAWN("pwd")
 define sym use_abs_path = `DIR+"/tmp/test1.nc"`
- !-> define sym use_abs_path = /home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc
+ !-> define sym use_abs_path = ....../bench/tmp/test1.nc
 say ($use_abs_path)
- !-> MESSAGE/CONTINUE /home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc
-/home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc
+ !-> MESSAGE/CONTINUE ....../bench/tmp/test1.nc
+....../bench/tmp/test1.nc
  
 use tmp/test1.nc
 show data/brief
@@ -89164,17 +89373,17 @@ show data/brief
 canc data/all
  
 use "($use_abs_path)"
- !-> SET DAT/FORM=CDF "/home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc"
+ !-> SET DAT/FORM=CDF "....../bench/tmp/test1.nc"
 show data/brief
      currently SET data sets:
-    1> /home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc  (default)
+    1> ....../bench/tmp/test1.nc  (default)
 canc data/all
  
 use ($use_abs_path)
- !-> SET DAT/FORM=CDF /home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc
+ !-> SET DAT/FORM=CDF ....../bench/tmp/test1.nc
 show data/brief
      currently SET data sets:
-    1> /home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc  (default)
+    1> ....../bench/tmp/test1.nc  (default)
 canc data/all
  
 use tmp/test1.nc,tmp/test2.nc,tmp/test3.nc
@@ -89240,10 +89449,10 @@ spawn echo 'say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $
 ! generate absolute path
 let dir = SPAWN("pwd")
 define sym abs_path = `DIR+"/tmp/testMe.jnl"`
- !-> define sym abs_path = /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl
+ !-> define sym abs_path = ....../bench/tmp/testMe.jnl
 say ($abs_path)
- !-> MESSAGE/CONTINUE /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl
-/home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl
+ !-> MESSAGE/CONTINUE ....../bench/tmp/testMe.jnl
+....../bench/tmp/testMe.jnl
  
 go tmp/testMe.jnl
 say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
@@ -89256,13 +89465,13 @@ say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"
 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
  
 go ($abs_path)
- !-> go /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl
+ !-> go ....../bench/tmp/testMe.jnl
 say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
  !-> MESSAGE/CONTINUE 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
  
 go "($abs_path)"
- !-> go "/home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl"
+ !-> go "....../bench/tmp/testMe.jnl"
 say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
  !-> MESSAGE/CONTINUE 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
@@ -89278,13 +89487,13 @@ say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"
 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
  
 go ($abs_path) 5 hello "bye" "/quoted_path" /unquoted_path
- !-> go /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go ....../bench/tmp/testMe.jnl 5 hello "bye" "/quoted_path" /unquoted_path
 say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
  !-> MESSAGE/CONTINUE 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
  
 go "($abs_path)" 5 hello "bye" "/quoted_path" /unquoted_path
- !-> go "/home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl" 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go "....../bench/tmp/testMe.jnl" 5 hello "bye" "/quoted_path" /unquoted_path
 say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
  !-> MESSAGE/CONTINUE 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
@@ -89323,7 +89532,7 @@ set mode/last ignore
  
  
 *** Running ferret script: bn_long_lists.jnl
-[?1034h! bn_long_lists.jnl
+! bn_long_lists.jnl
 ! See ticket 2337
 !
 ! Increase command-line buffer by a factor of 10, to accomodate long lists
@@ -89465,7 +89674,7 @@ let file_list = {\
  
 set mode/last ignore
 *** Running ferret script: bn_show_uvar_grid.jnl
-[?1034h! bn_show_uvar_grid.jnl
+! bn_show_uvar_grid.jnl
 ! Add notes to the output of SHOW GRID for variables and expressions
 ! indicate compressed axes, point subsets and subset ranges.
 ! For grid changing functions just mark axis as such
@@ -89576,19 +89785,19 @@ show grid var
 ! dynamic grid
 let var = sst[y=-10:10:.1,l=1,x=160e]
 show grid var
-    GRID (G002)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX005)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX###)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  
 ! striding
 show grid sst[i=1:180:3,j=1:90:2]
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
- (AX006)   LONGITUDE           60 r   21E                  15E(375)            60 pts
- (AX007)   LATITUDE            45 r   89S                  87N                 45 pts
+ (AX###)   LONGITUDE           60 r   21E                  15E(375)            60 pts
+ (AX###)   LATITUDE            45 r   89S                  87N                 45 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  
@@ -89598,7 +89807,7 @@ use coads_vwnd
 define axis/t=1-jan-1980:31-dec-1982:1/units=days dax
 let vwnd_days = vwnd[gt=dax,t=1-jun-1982:15-jul-1982]
 sh grid vwnd_days
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -89607,7 +89816,7 @@ sh grid vwnd_days
  
 let vwnd_clim = vwnd[gt=month_irreg at mod]
 sh grid vwnd_clim[L=4:9]
-    GRID (G005)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
@@ -89663,7 +89872,7 @@ use levitus_3d_subset
 let depth =  Z[G=TEMP]+ 0*TEMP[K=1]
 let depth_rev = zreverse(depth)
 show grid depth_rev
-    GRID (G004)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -89675,28 +89884,28 @@ let tpts = t[gt=dayt]
 LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
  
 show grid ffta(sample_function)
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ (AX###)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
  
 show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
-    GRID (G003)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- (AX001)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
+ (AX###)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
  
 show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
-    GRID (G005)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                4 pts
- (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ (AX###)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
  
 can dat/all
  
@@ -89709,18 +89918,18 @@ LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
 let  TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
  
 sh grid tempz
-    GRID (G002)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
- (AX002)   Z                    5 r   100                  500                 full
+ (AX###)   Z                    5 r   100                  500                 full
  normal    T
 sh grid tempz[z=100:400]
-    GRID (G002)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
- (AX002)   Z                    5 r   100                  500                 4 pts
+ (AX###)   Z                    5 r   100                  500                 4 pts
  normal    T
  
 ! and with a grid-changing function thrown in
@@ -89735,7 +89944,7 @@ LET rvtemp  = rvtemp0[gz=temp at asn]
 LET rvdepth0 = ZREVERSE(depth)
 LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
 show grid rvtempzax
-    GRID (G002)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
@@ -89746,14 +89955,14 @@ show grid rvtempzax
  
 LET rvtempzax = rvtemp[gz(rvdepth)=zax]
 show grid rvtempzax[z=100:300]
-    GRID (G002)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
 *** Running ferret script: bn_aggregate_f.jnl
-[?1034h! bn_aggregate_f.F
+! bn_aggregate_f.F
 ! 12/2015 *sh*
 ! 1/2016 *sh* added implicit naming of aggregation from script filename
  
@@ -89900,22 +90109,22 @@ show data/attr my_fmrc
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
   
- FCST                  FLOAT     long_name       CHAR        18   T       FIELD + FCST_ERROR
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        18   T       FIELD + FCST_ERROR
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        20   T       RUN TF_TIMES YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
   
- TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+ TF_TIMES              DOUBLE    long_name       CHAR        25   T       Forecast time step matrix
                                  units           CHAR        31   T       days since 01-JAN-1900 00:00:00
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  _CoordinateAxisType
                                                  CHAR        4    T       Time
                                  calendar        CHAR        9    T       GREGORIAN
   
- FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        25   T       TF_CAL_F TF_TIMES YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
@@ -90163,17 +90372,17 @@ LIST tf_times
       ... listing every   2th point
                       15.2    76     136.8   197.5   258.3   319.1   379.9   440.7   501.5   562.2   623     683.8  
                        1       3       5       7       9      11      13      15      17      19      21      23
- 01-JAN-1950 /  1:  18278.  18337.  18398.  18459.  18520.  18581.  18643.  18702.  18763.  18824.  18885.  18946.
- 01-APR-1950 /  2:  18367.  18428.  18490.  18551.  18612.  18672.  18732.  18793.  18855.  18916.  18977.  19038.
- 01-JUL-1950 /  3:  18459.  18520.  18581.  18643.  18702.  18763.  18824.  18885.  18946.  19008.  19068.  19129.
- 01-OCT-1950 /  4:  18551.  18612.  18672.  18732.  18793.  18855.  18916.  18977.  19038.  19098.  19159.  19221.
- 01-JAN-1951 /  5:  18643.  18702.  18763.  18824.  18885.  18946.  19008.  19068.  19129.  19190.  19251.  19312.
- 01-APR-1951 /  6:  18732.  18793.  18855.  18916.  18977.  19038.  19098.  19159.  19221.  19282.  19343.  19403.
- 01-JUL-1951 /  7:  18824.  18885.  18946.  19008.  19068.  19129.  19190.  19251.  19312.  19374.  19433.  19494.
- 01-OCT-1951 /  8:  18916.  18977.  19038.  19098.  19159.  19221.  19282.  19343.  19403.  19463.  19524.  19586.
- 01-JAN-1952 /  9:  19008.  19068.  19129.  19190.  19251.  19312.  19374.  19433.  19494.  19555.  19616.  19677.
- 01-APR-1952 / 10:  19098.  19159.  19221.  19282.  19343.  19403.  19463.  19524.  19586.  19647.  19708.  19768.
- 01-JUL-1952 / 11:  19190.  19251.  19312.  19374.  19433.  19494.  19555.  19616.  19677.  19739.  19798.  19859.
+ 01-JAN-1950 /  1:  18278.  18336.  18398.  18458.  18520.  18581.  18642.  18702.  18762.  18824.  18885.  18946.
+ 01-APR-1950 /  2:  18367.  18428.  18490.  18550.  18612.  18672.  18732.  18793.  18854.  18916.  18976.  19038.
+ 01-JUL-1950 /  3:  18458.  18520.  18581.  18642.  18702.  18762.  18824.  18885.  18946.  19008.  19068.  19128.
+ 01-OCT-1950 /  4:  18550.  18612.  18672.  18732.  18793.  18854.  18916.  18976.  19038.  19098.  19159.  19220.
+ 01-JAN-1951 /  5:  18642.  18702.  18762.  18824.  18885.  18946.  19008.  19068.  19128.  19190.  19251.  19312.
+ 01-APR-1951 /  6:  18732.  18793.  18854.  18916.  18976.  19038.  19098.  19159.  19220.  19282.  19342.  19403.
+ 01-JUL-1951 /  7:  18824.  18885.  18946.  19008.  19068.  19128.  19190.  19251.  19312.  19374.  19432.  19494.
+ 01-OCT-1951 /  8:  18916.  18976.  19038.  19098.  19159.  19220.  19282.  19342.  19403.  19463.  19524.  19586.
+ 01-JAN-1952 /  9:  19008.  19068.  19128.  19190.  19251.  19312.  19374.  19432.  19494.  19554.  19616.  19677.
+ 01-APR-1952 / 10:  19098.  19159.  19220.  19282.  19342.  19403.  19463.  19524.  19586.  19646.  19708.  19768.
+ 01-JUL-1952 / 11:  19190.  19251.  19312.  19374.  19432.  19494.  19554.  19616.  19677.  19738.  19798.  19858.
  
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
@@ -91092,10 +91301,11 @@ SH DATA/BR/HIDDEN
  
 set mode/last ignore
 *** Running ferret script: bn_aggregate_tef.jnl
-[?1034h! bn_aggregate_tef.F
+! bn_aggregate_tef.F
 ! 2/2016 *sh*
 ! 3/2016 - modified to test single point axis aggregations on Z axis
 ! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
+! *acm*7/2017 0=success for SPAWN_STATUS
  
 ! to avoid re-creating the test files include argument "0" as in
 !  yes?  GO bn_aggregate_tef 0
@@ -91529,17 +91739,17 @@ SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
   
  .                               aggregate name  CHAR        6    F       te_f11
   
- FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        13   T       some variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  im_everywhere   CHAR        13   F       so promote me
                                  long_name_mod   CHAR        7    F       L=31:42
   
- FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  long_name_mod   CHAR        7    F       L=31:42
   
- REALIZATION           FLOAT     long_name       CHAR        1    T       1
-                                 missing_value   FLOAT       1    T       -1.E+34
+ REALIZATION           DOUBLE    long_name       CHAR        1    T       1
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 ! define tef aggregation
@@ -91662,7 +91872,7 @@ SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (XAX)                  DOUBLE    units           CHAR        12   T       degrees_east
@@ -91717,13 +91927,13 @@ SHOW DATA/ATT te_f04_1v  ! note atts im_everwhere vs im_not_everwhere
   
  .                               aggregate name  CHAR        9    F       te_f04_1v
   
- FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        13   T       some variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  im_everywhere   CHAR        13   F       so promote me
                                  long_name_mod   CHAR        7    F       L=10:21
   
- REALIZATION           FLOAT     long_name       CHAR        1    T       1
-                                 missing_value   FLOAT       1    T       -1.E+34
+ REALIZATION           DOUBLE    long_name       CHAR        1    T       1
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 ! define fcst_2 as a LET/D variable and then do same calc
@@ -91821,7 +92031,7 @@ list/x=150E/y=15n/L=10 fcst_2
  01-JAN-1950 /  1:    227.    240.    252.    265.    277.
  01-APR-1950 /  2:    227.    240.    252.    265.    277.
  01-JUL-1950 /  3:    227.    240.    252.    265.    277.
- 01-OCT-1950 /  4:    227.    240.  19989.    265.    277.
+ 01-OCT-1950 /  4:    227.    240.  19988.    265.    277.
  01-JAN-1951 /  5:    227.    240.    252.    265.    277.
  01-APR-1951 /  6:    227.    240.    252.    265.    277.
  01-JUL-1951 /  7:    227.    240.    252.    265.    277.
@@ -91944,23 +92154,23 @@ SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
   
  .                               aggregate name  CHAR        3    F       tfe
   
- FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST                  DOUBLE    long_name       CHAR        13   T       some variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        25   T       RUN TF_TIMES ZAX1 YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
                                  im_everywhere   CHAR        13   F       so promote me
   
- TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+ TF_TIMES              DOUBLE    long_name       CHAR        25   T       Forecast time step matrix
                                  units           CHAR        31   T       days since 01-JAN-1900 00:00:00
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  _CoordinateAxisType
                                                  CHAR        4    T       Time
                                  calendar        CHAR        9    T       GREGORIAN
   
- FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+ FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
+                                 missing_value   DOUBLE      1    T       -1.E+34
                                  coordinates     CHAR        31   T       TF_CAL_F1 TF_TIMES ZAX1 YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
@@ -92083,7 +92293,7 @@ set mode/last ignore
  
 CANCEL DATA/ALL
 *** Running ferret script: bn_dataset_qualifier.jnl
-[?1034h! bn_dataset_qualifier
+! bn_dataset_qualifier
 ! see ticket 2632
 ! Test change from /D= to /DATASET= qualifier for LIST, PLOT, LOAD, etc
 ! Various commands taken from other scripts.
@@ -92146,7 +92356,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = PyFerret V7.1 (beta/debug) 18-Apr-17 
+ ..history = PyFerret V7.2 (beta/debug) DD-MON-YY 
  ..Conventions = CF-1.6 
  ..dt_internal = 15
 sh att elev
@@ -92167,7 +92377,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = PyFerret V7.1 (beta/debug) 18-Apr-17 
+ ..history = PyFerret V7.2 (beta/debug) DD-MON-YY 
  ..Conventions = CF-1.6 
 sh att elev
      attributes for dataset: ./a.nc
@@ -92187,11 +92397,11 @@ use levitus_climatology
 load/DAT=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G009)
-    GRID (G009)
+ Last successful data access was on grid (G###)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX018)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX###)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  
@@ -92285,14 +92495,14 @@ plot/dash/x=180/z=0/DATASET=1 temp
 ! VECTOR/FLOW/DATA=/DENSITY
 flow/DAT=2/den=3/L=3 taux,tauy
 *** Running ferret script: bn_speedtest.jnl
-[?1034h! bn_speedtest.jnl
+! bn_speedtest.jnl
 ! issue large numbers of commands, timing with clock time
 can mode verify
-10K LET commands LET a = 0 takes  1.045  seconds
-Second 10K LET commands LET a = 0 takes  2.318  seconds
-5K LOAD with transform takes  3.699  seconds
+10K LET commands LET a = 0 takes [0-3] seconds
+Second 10K LET commands LET a = 0 takes [0-5] seconds
+5K LOAD with transform takes [0-9] seconds
 *** Running ferret script: bn_show_noupcase.jnl
-[?1034h! bn_show_noupcase.jnl
+! bn_show_noupcase.jnl
 ! 1/2016 ticket 1796
  
 cancel mode upcase
@@ -92312,7 +92522,7 @@ show var
  >>> Definitions that replace any file variable of same name:
      MyUpperLowerCaseVar = X[X=1:10] + T[GT=TDAY]
 show grid MyUpperLowerCaseVar
-    GRID (G001)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  ABSTRACT  X             99999999 r   1                    1.E+08              10 pts
  normal    Y
@@ -93366,7 +93576,7 @@ SHO VAR/XML
 set mode/last upcase
  
 *** Running ferret script: bn_letd_attributes.jnl
-[?1034h! bn_letd_attributes.jnl
+! bn_letd_attributes.jnl
 ! Allow for the same variable name defined with LET/D in multiple datasets.
 ! See ticket 2352.  Previously for all user variables the
 ! attribute information stored was in fake uvar-dataset = -1.
@@ -93423,7 +93633,7 @@ show dat/att 1
   
  ------------------------------
  myvar[D=coads_climatology]      long_name       CHAR        11   T       coads myvar
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 show att myvar
@@ -93485,7 +93695,7 @@ show dat/att 2
   
  ------------------------------
  myvar[D=levitus_climatology]    long_name       CHAR        13   T       Levitus myvar
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 show att myvar
      attributes for user-defined variables
@@ -93610,7 +93820,7 @@ save/clobber/file=a.nc myvar[d=2]
 sp ncdump -h a.nc >> all_ncdump.out
  
 *** Running ferret script: bn_list_clim_axes.jnl
-[?1034h! bn_list_clim_axes.jnl
+! bn_list_clim_axes.jnl
 ! *acm* 3/16
 ! Show and list coordinates for climatological axes
 ! that are pre-defined in Ferret
@@ -93746,7 +93956,7 @@ CALENDAR = ALL_LEAP
       11>  16-NOV 00:00:00       30         01-NOV 00:00:00         320
       12>  16-DEC 12:00:00       31         01-DEC 00:00:00         350.5
 *** Running ferret script: bn_climatology_attr.jnl
-[?1034h! bn_climatology_attr.jnl
+! bn_climatology_attr.jnl
 ! *acm* 3/16  See ticket 2278
 !
 ! Add an attribute climatology_time_range when writing a computed
@@ -93829,7 +94039,7 @@ show att `vname[i=1]`
  E494.long_name = 3*CLIM1 
  
 *** Running ferret script: bn_plot_along.jnl
-[?1034h! BN_PLOT_ALONG
+! BN_PLOT_ALONG
  
 ! *sh* 3/2016
  
@@ -93901,7 +94111,7 @@ LET sin_block = SIN(T[l=1:100]/10)*block
 LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
 PLOT/ALONG=t ens_sin_block[i=1,j=2,k=3]
 *** Running ferret script: bn_show_commands.jnl
-[?1034h! bn_show_commands.jnl
+! bn_show_commands.jnl
 ! Testing results for ticket 2078: SHOW COMMAND cmnd subcmnd
 ! Also new SHOW COMMAND/BRIEF
 ! 3/2016 *acm*
@@ -94315,7 +94525,7 @@ sho command/brief v
  
 ! All the commands, no subcommands, no qualifiers
 SHOW COMMAND/BRIEF
- Commands in Program PyFerret (beta/debug) version7.1:
+ Commands in Program PyFerret (beta/debug) version7.2:
  SET
  SHOW
  CANCEL
@@ -94377,7 +94587,7 @@ SHOW COMMAND/BRIEF sho da
  SHOW DATA
  
 *** Running ferret script: bn_plot_decimate.jnl
-[?1034h! BN_PLOT_SKIP
+! BN_PLOT_SKIP
  
 ! *acm* 3/2016
  
@@ -94464,7 +94674,7 @@ LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
 PLOT/SKIP=($deci)/ALONG=t ens_sin_block[i=1,j=2,k=3]
  !-> PLOT/SKIP=5/ALONG=t ens_sin_block[i=1,j=2,k=3]
 *** Running ferret script: bn_auto_tprec.jnl
-[?1034h! bn_auto_tprec.jnl
+! bn_auto_tprec.jnl
 ! See ticket 2405
 ! Time labels on plots always just get the precision from MODE CALENDAR
 ! Instead, use the same logic as is used for text labels, automatically adjust.
@@ -94654,7 +94864,7 @@ shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t
  !-> sh sym  lab2
 LAB2 = "TIME : 16-AUG-1952 12:00"
 *** Running ferret script: bn_coordvars_atts.jnl
-[?1034h! bn_coordvars_atts.jnl
+! bn_coordvars_atts.jnl
 ! 5/2016 *acm*  see ticket 2413
 ! Additional attribute keywords for returning  coordinate variable
 ! names and number of coordinate vars, to distinguish coordinate
@@ -94714,7 +94924,7 @@ list/nohead ..coordnames
  2   / 2:"ZAX"    
  3   / 3:"XAX1_10"
 *** Running ferret script: bn710_bug_fixes.jnl
-[?1034h! bn710_bug_fixes.jnl
+! bn710_bug_fixes.jnl
 ! test various fixes that went into version 7.1
 ! 6/16 *acm*
 !
@@ -95275,20 +95485,9 @@ list/nohead strindex(..title, "file")
  
  
 ! Bug 2477 plot axes are not fully drawn, some /VS plots
-go bn_reset
-cancel mode verify
-ooooooooooooooooooooooooooooooooooooooooooo
-go err700_vs_plot_axes
-! err700_vs_plot_axes.jnl
-! See ticket 2477, in some cases the plot axes are not fully drawn
-! 11/2016 ACM
- 
- 
-USE err700_vs_data.nc
- 
-! only with PLOT/VS plots, only with SYMBOLS not PLOT/VS/LINE
-PLOT/VS/THICK/COLOR=red/SIZ=0.2 lon,lat
-FRAME/FILE=bn_axis_vs.gif
+! move this to bn_gif.jnl
+! go bn_reset
+! go err700_vs_plot_axes
  
 ! Bug 2483. Fixing axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
 go bn_reset
@@ -95754,15 +95953,15 @@ save/clob/file=a.nc c
  dealloc  dynamic grid GAY1            XAX1_20   NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  getgrid C        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:     11     31  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    C        C:  6 dset:   0 I:     11     31  J: -999 -999  K: -999 -999  L:   -999   -999
- allocate dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
- pseudo  X        M:  8 dset:   0 I:     11     31  J: -999 -999  K: -999 -999  L:   -999   -999
- dealloc  dynamic grid (G001)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ pseudo  X        M:  7 dset:   0 I:     11     31  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G###)          C2D_AX_X  NORMAL    NORMAL    NORMAL
  -DELETE C        M:  5 dset:   0 I:     11     30  J: -999 -999  K: -999 -999  L:   -999   -999
  
 set mode /last diag
@@ -95834,7 +96033,7 @@ use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Ha
 DEFINE DATA/AGGREGATE/F testdata = 1,2,3
 ! F axis should be  31-DEC-2016 to 02-JAN-2017
 SHOW GRID zeta
-    GRID (G013)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  LON       LONGITUDE          295mr   163.83W(-163.83)     152.52W(-152.52)    full
  LAT       LATITUDE           195 r   17.018N              23.982N             full
@@ -96017,7 +96216,7 @@ variables:
 		VAR:long_name = "X[GX=XLON]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 go bn_reset
@@ -96076,7 +96275,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -96123,7 +96322,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -96194,7 +96393,7 @@ DEFINE DATA/AGGREGATE/F testdata = 1,2,3,4
 ! using the values of quirks has a sinusoidal error that get worse with greater lead time
 !
 SHOW GRID actual
-    GRID (G019)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAX1      LONGITUDE            7mr   140W                 110W                full
  YAX       LATITUDE             4 r   45N                  60N                 full
@@ -96225,7 +96424,7 @@ FRAME /FILE=forecast_actual.gif
 !
 LET /TITLE="actual (diag view)" diagview = actual[gt(tf_times)=tf_cal_t]
 SHOW GRID diagview
-    GRID (G019)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAX1      LONGITUDE            7mr   140W                 110W                full
  YAX       LATITUDE             4 r   45N                  60N                 full
@@ -96255,7 +96454,7 @@ FRAME /FILE=forecast_diagview.gif
 !
 LET /TITLE="actual (lead view)" leadview = actual[gt(tf_times)=tf_cal_t,gf(tf_times)=tf_lag_f]
 SHOW GRID leadview
-    GRID (G008)
+    GRID (G###)
  name       axis              # pts   start                end                 subset
  XAX1      LONGITUDE            7mr   140W                 110W                full
  YAX       LATITUDE             4 r   45N                  60N                 full
@@ -96440,7 +96639,7 @@ sh dat
  
  
 *** Running ferret script: bn_delim_datetime.jnl
-[?1034h! bn_delim_datetime.jnl
+! bn_delim_datetime.jnl
 ! ACM 7/2016
 !
 ! Tickets 2448, 2449, 2450: Improvements to date reading in delimited files.
@@ -96638,7 +96837,7 @@ set mode/last ignore
  
  
 *** Running ferret script: bn_aggregate_u.jnl
-[?1034h! bn_aggregate_u.jnl
+! bn_aggregate_u.jnl
 ! Union aggregations including tests of UNION in combination
 ! with TSERIES, ENSEMBLE, and FMRC aggregations
 ! acm 7/15/2016
@@ -96691,10 +96890,10 @@ sh dat/att
  .                               aggregate name  CHAR        2    F       uu
   
  SST                   FLOAT     long_name       CHAR        3    T       sst
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  TEMP                  FLOAT     long_name       CHAR        14   T       temp in uagg_5
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 can dat/all
  
@@ -97020,16 +97219,16 @@ SHOW DATA/ATT tue_f03   ! notice the promotion of fcst.im_everywhere
  .                               aggregate name  CHAR        7    F       tue_f03
   
  FCST                  FLOAT     long_name       CHAR        13   T       some variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  FCST_2                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  REALIZATION           FLOAT     long_name       CHAR        1    T       1
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  FCST_3                FLOAT     long_name       CHAR        16   T       another variable
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  
 ! define tuef aggregation
@@ -97109,17 +97308,17 @@ SHOW DATA/brief/files
 16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_tu3.nc
  
    13> t_f_u01_e1     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u01_e1
- 
+          Member datasets:
+      13.1: t_f01_e1
+      13.2: t_f01_e1_3
    14> t_f_u01_e2     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u01_e2
- 
+          Member datasets:
+      14.1: t_f01_e2
+      14.2: t_f01_e2_3
    16> t_f_u02_e2     Union aggregation
-          time-dependent data files:
-31-DEC-1899 23:59 -> 31-DEC-1899 23:59    t_f_u02_e2
- 
+          Member datasets:
+      16.1: t_f02_e2
+      16.2: t_f02_e2_3
    22> tuef  (default)  Forecast aggregation
           Member datasets:
       22.1: tue_f01
@@ -97169,7 +97368,7 @@ show data tuef
        (L=1:12)
  
 sh grid fcst
-    GRID (G025)  Forecast Aggregation Grid
+    GRID (G###)  Forecast Aggregation Grid
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
  YAX       LATITUDE            11 r   10N                  20N                 full
@@ -97178,7 +97377,7 @@ sh grid fcst
  ENSEMBLE  E (realization)      2 r   1                    2                   full
  TF_CAL_F  FORECAST             3 i   01-JAN-1950 00:00    01-JUL-1950 00:00   full
 sh grid fcst_3
-    GRID (G025)  Forecast Aggregation Grid
+    GRID (G###)  Forecast Aggregation Grid
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
  YAX       LATITUDE            11 r   10N                  20N                 full
@@ -97218,7 +97417,7 @@ CANCEL DATA/ALL
  
  
 *** Running ferret script: bn_ez_noupcase.jnl
-[?1034h! bn_ez_noupcase.jnl
+! bn_ez_noupcase.jnl
 ! 7/2016 *acm* see ticket 2454
 !
 ! Handle variable-name upcasing for Ascii data
@@ -97246,8 +97445,8 @@ sh dat/att
   
  .                               history         CHAR        7    F       abc.dat
   
- abc                   FLOAT     long_name       CHAR        3    T       abc
-                                 missing_value   FLOAT       1    T       -1.E+34
+ abc                   DOUBLE    long_name       CHAR        3    T       abc
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 save/clobber/file=a.nc abc
 sp ncdump -h a.nc
@@ -97255,17 +97454,17 @@ netcdf a {
 dimensions:
 	AX002 = 5 ;
 variables:
-	double AX002(AX002) ;
+	double AX002(AX###) ;
 		AX002:point_spacing = "even" ;
 		AX002:axis = "X" ;
-	float abc(AX002) ;
-		abc:missing_value = -1.e+34f ;
-		abc:_FillValue = -1.e+34f ;
+	double abc(AX###) ;
+		abc:missing_value = -1.e+34 ;
+		abc:_FillValue = -1.e+34 ;
 		abc:long_name = "abc" ;
 		abc:history = "From abc.dat" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -97296,8 +97495,8 @@ sh dat/att
   
  .                               history         CHAR        7    F       abc.dat
   
- abc                   FLOAT     long_name       CHAR        3    T       abc
-                                 missing_value   FLOAT       1    T       -1.E+34
+ abc                   DOUBLE    long_name       CHAR        3    T       abc
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
     2> ./bn_delimited_read_1.dat  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
@@ -97306,21 +97505,21 @@ sh dat/att
  .                               history         CHAR        23   F       bn_delimited_read_1.dat
   
  lab                   CHAR      long_name       CHAR        3    T       lab
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
  nothing               CHAR      long_name       CHAR        7    T       nothing
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- var                   FLOAT     long_name       CHAR        3    T       var
-                                 missing_value   FLOAT       1    T       -1.E+34
+ var                   DOUBLE    long_name       CHAR        3    T       var
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- latitude              FLOAT     long_name       CHAR        8    T       latitude
+ latitude              DOUBLE    long_name       CHAR        8    T       latitude
                                  units           CHAR        13   T       degrees_north
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
- longitude             FLOAT     long_name       CHAR        9    T       longitude
+ longitude             DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
-                                 missing_value   FLOAT       1    T       -1.E+34
+                                 missing_value   DOUBLE      1    T       -1.E+34
   
 sav/file=a.nc/clobber var,longitude,latitude
 sp ncdump -h a.nc
@@ -97328,37 +97527,37 @@ netcdf a {
 dimensions:
 	AX003 = 6 ;
 variables:
-	double AX003(AX003) ;
+	double AX003(AX###) ;
 		AX003:point_spacing = "even" ;
 		AX003:axis = "X" ;
-	float var(AX003) ;
-		var:missing_value = -1.e+34f ;
-		var:_FillValue = -1.e+34f ;
+	double var(AX###) ;
+		var:missing_value = -1.e+34 ;
+		var:_FillValue = -1.e+34 ;
 		var:long_name = "var" ;
 		var:history = "From bn_delimited_read_1.dat" ;
-	float longitude(AX003) ;
-		longitude:missing_value = -1.e+34f ;
-		longitude:_FillValue = -1.e+34f ;
+	double longitude(AX###) ;
+		longitude:missing_value = -1.e+34 ;
+		longitude:_FillValue = -1.e+34 ;
 		longitude:long_name = "longitude" ;
 		longitude:units = "degrees_east" ;
 		longitude:long_name_mod = "Longitude" ;
 		longitude:history = "From bn_delimited_read_1.dat" ;
-	float latitude(AX003) ;
-		latitude:missing_value = -1.e+34f ;
-		latitude:_FillValue = -1.e+34f ;
+	double latitude(AX###) ;
+		latitude:missing_value = -1.e+34 ;
+		latitude:_FillValue = -1.e+34 ;
 		latitude:long_name = "latitude" ;
 		latitude:units = "degrees_north" ;
 		latitude:long_name_mod = "Latitude" ;
 		latitude:history = "From bn_delimited_read_1.dat" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
 set mode/last upcase
 *** Running ferret script: bn_spawn_fail.jnl
-[?1034h! bn_spawn_fail.jnl
+! bn_spawn_fail.jnl
 !  See ticket 2453
 !  If a no-success flag is returned from a SPAWN,
 !  report that as a warning.
@@ -97370,7 +97569,7 @@ sp rm nothing.dat
 sp grep modulus non_COARDS.cdl
 sp cp nofile.dat not_either.dat
 *** Running ferret script: bn_ave_of_ave.jnl
-[?1034h! bn_ave_of_ave.jnl
+! bn_ave_of_ave.jnl
 ! see ticket 2469
  
 let a = x[gx=1:3:1] + t[gt=1:7:1]
@@ -97439,7 +97638,7 @@ list a[t=@MAX] - a_xtrns[t=@MAX]
           0.0000
  
 *** Running ferret script: bn_agg_member_syntax.jnl
-[?1034h! bn_agg_member_syntax
+! bn_agg_member_syntax
  
 ! *sh* 11/16
  
@@ -97595,9 +97794,11 @@ show data/members
  U        U                                1:5       1:4       ...       1:10
  V        V                                1:5       1:4       ...       1:10
  
-          time-dependent data files:
-31-DEC-2009 23:59 -> 31-DEC-2009 23:59    bn_agg_member_syntax.jnl
- 
+          Member datasets:
+      5.1: tmp/uagg_1.nc
+      5.2: tmp/uagg_2.nc
+      5.3: tmp/uagg_3.nc
+      5.4: tmp/uagg_4.nc
 show data 5.2
      currently SET data sets:
     2> tmp/uagg_2.nc
@@ -97710,7 +97911,7 @@ stat/br sst[d=5.30]    ! not this many members
 set mode/last ignore
  
 *** Running ferret script: bn_true_monthly.jnl
-[?1034h! bn_true_monthly.jnl
+! bn_true_monthly.jnl
 ! examples defining axes with /DEFINE AXIS/MONTHLY
 !
 ! When a true monthly axis is found in a dataset, store it as a TRUEMONTH axis
@@ -98039,7 +98240,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -98108,7 +98309,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -98179,7 +98380,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+ .                               history         CHAR        36   T       PyFerret V7.2 (beta/debug) DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -98460,7 +98661,7 @@ define axis/x=1:5:1/monthly aaxis
  
 cancel mode ignore
 *** Running ferret script: bn720_bug_fixes.jnl
-[?1034h! bn720_bug_fixes.jnl
+! bn720_bug_fixes.jnl
 ! test various fixes that went into version 7.2
 ! 2/17 *acm*
 !
@@ -98588,7 +98789,7 @@ variables:
 		VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98619,88 +98820,9 @@ show grid vart
  TAX1      TIME                 7 i   09-NOV-2015 02:24    13-NOV-2015 02:24   full
  
  
-GO bn_reset
-cancel mode verify
-ooooooooooooooooooooooooooooooooooooooooooo
-GO err71_plotvs_mode_label
-! err71_plotVS_mode_label.jnl
-!  *acm*3/17/17 Ticket 2517:
-! MODE LONG_LABEL, MODE LATIT_LABEL need to apply
-! to PLOT/VS plots.
- 
-can mode logo
- 
-set mode long_lab
-set mode latit_lab
- 
-let/title="|Roll|"/units="degree" abscissa_roll = {0, 20}
-let/title="Wind Speed"/units="kn" ordinate_spd  = {0, 0}
- 
-! labeled lon/lat axes. Units of "degrees" is taken to be degrees
-! east or north depending on which plot axis it is drawn on.
- 
-set view ul
-plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
-set view ur
-plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
- 
-! These modes turn off lon/lat axis labeling
- 
-cancel mode long_lab
-cancel mode latit_lab
- 
-set view ll
-plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
-set view lr
-plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
- 
-! Explicit units units of degrees_east and degrees_north:
-! degrees_east draws longitude labeling on whichever plot axis
-! the associated variable is drawn, and likewise for degrees_north.
-! Setting or cancelling the label modes applies to the variable
-! units not the plot-axis direction.
- 
-cancel view
-set mode long_lab
-set mode latit_lab
- 
-let/title="East"/units="degrees_east" lon = {10,20,30}
-let/title="North"/units="degrees_north" lat = {-10,0,10}
- 
-! longitude axis on the horizontal, latitude axis on the vertical
- 
-set view ul; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit TRUE"
- 
-! latitude axis on the horizontal, longitude axis on the vertical
- 
-set view ur; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long vertical  latit horizontal"
- 
-! longitude axis on the horizontal, latitude axis on the vertical
-! but with latitude labeling turned off
- 
-set mode long_lab
-cancel mode latit_lab
-set view ll; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit FALSE"
- 
-! latitude axis on the horizontal, longitude axis on the vertical
-! but with longitude labeling turned off
- 
-cancel mode long_lab
-set mode latit_lab
-set view lr; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lat,lon
-annotate/norm/x=0.1/y=0.9/siz=0.1 "long FALSE  latit TRUE"
- 
-frame/file=lon_lat_label_controls.gif
- 
- 
-! Restore default settings
-set mode long_lab
-set mode latit_lab
- 
-set mode/last logo
+! move this to bn_gif.jnl
+! GO bn_reset
+! GO err71_plotvs_mode_label
  
 GO bn_reset
 cancel mode verify
@@ -98831,7 +98953,7 @@ list a[i=2]
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    A        C:  6 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
- attrib_val attr     M:  2 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ attrib_val attr     M:  3 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SST[D=coads_climatology].DIMNAMES
              FILENAME : coads_climatology.cdf
              X        : 2
@@ -98841,9 +98963,9 @@ list a[i=2]
 GO bn_reset
 cancel mode verify
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
- -DELETE A        M:  6 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:  2 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
- -DELETE attr     M:  2 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE attr     M:  3 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  canceling dset ./coads_climatology.cdf
 ooooooooooooooooooooooooooooooooooooooooooo
 GO err71_user_var_attrib
@@ -98873,48 +98995,735 @@ use write_int_att.nc
 cancel mode upcase
 save/file=a.nc/clobber mhchla
  
+! move this to bn_gif.jnl
+! GO bn_reset
+! GO err71_vs_constant
+ 
+! run this from bn_gif.jnl
+! GO bn_reset
+! GO err71_vs_lon_over
+ 
+ 
 GO bn_reset
 cancel mode verify
 ooooooooooooooooooooooooooooooooooooooooooo
-GO err71_vs_constant
-! err71_vs_constant.jnl
-! See ticket 2318, defining plot axes when data is constant
-! 4/2017 acm
+GO err71_point_average
+! err71_point_average.jnl
+! Ticket 2538 6/2017
+! Average over a point removes dependence on that dimension.
+! previously returned missing-data
  
-! The axis ranges had been set as val-1, val+1 which
-! worked poorly for large or small data values
+let a = x[x=1:5] + y[y=1:3]
+list a
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 by 3 points (X-Y)
+             1      2      3      4      5    
+             1      2      3      4      5
+ 1   / 1:  2.000  3.000  4.000  5.000  6.000
+ 2   / 2:  3.000  4.000  5.000  6.000  7.000
+ 3   / 3:  4.000  5.000  6.000  7.000  8.000
  
+list a[y=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 points (X)
+             Y        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+ 4   / 4:  6.000
+ 5   / 5:  7.000
+list a[x=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 3 points (Y)
+             X        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+list a[y=2 at ave,x=4 at ave]  ! all prev. versions listed these as missing
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             X        : 4 (XY ave)
+             Y        : 2 (XY ave)
+          6.000
  
+let a = z[z=1:5] + t[t=1:3]
+list a[z=2 at ave]
+             VARIABLE : Z[Z=1:5] + T[T=1:3]
+             SUBSET   : 3 points (T)
+             Z        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+list a[t=2 at ave]
+             VARIABLE : Z[Z=1:5] + T[T=1:3]
+             SUBSET   : 5 points (Z)
+             T        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+ 4   / 4:  6.000
+ 5   / 5:  7.000
  
+list a[t=2 at ave,z=4 at ave]
+             VARIABLE : Z[Z=1:5] + T[T=1:3]
+             Z        : 4 (ZT ave)
+             T        : 2 (ZT ave)
+          6.000
  
-def view/xlim=   0,.333/ylim=0,.5 ll6   ! ok
-def view/xlim=   0,.333/ylim=.5,1 ul6   ! long tic labels
-def view/xlim=.333,.666/ylim=0,.5 lm6   ! long tic labels, logo corrupted
-def view/xlim=.333,.666/ylim=.5,1 um6   ! plot positioning and labels are corrupted
-def view/xlim=.666,   1/ylim=0,.5 lr6   ! no plot at all
-def view/xlim=.666,   1/ylim=.5,1 ur6   ! no vertical tic labels
+let a = _e[e=1:5] + _f[f=1:3]
+list a[f=2 at ave]
+             VARIABLE : _E[E=1:5] + _F[F=1:3]
+             SUBSET   : 5 points (E)
+             F        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+ 4   / 4:  6.000
+ 5   / 5:  7.000
+list a[e=2 at ave]
+             VARIABLE : _E[E=1:5] + _F[F=1:3]
+             SUBSET   : 3 points (F)
+             E        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+list a[f=2 at ave,e=4 at ave]
+             VARIABLE : _E[E=1:5] + _F[F=1:3]
+             E        : 4 ( ave)
+             F        : 2 ( ave)
+          6.000
  
+! Check result if the missing-flag is zero
  
-set view ul6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e4*{1,1}
-set view um6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e5*{1,1}
-set view ur6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e6*{1,1}
-set view ll6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e7*{1,1}
-set view lm6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e8*{1,1}
-set view lr6; plot/vs/color/thick/line/sym/siz=0.2 {1,2}, 1e-2*{1,1}
+let/bad=0 a = x[x=1:5] + y[y=1:3]
+list a
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 by 3 points (X-Y)
+             1      2      3      4      5    
+             1      2      3      4      5
+ 1   / 1:  2.000  3.000  4.000  5.000  6.000
+ 2   / 2:  3.000  4.000  5.000  6.000  7.000
+ 3   / 3:  4.000  5.000  6.000  7.000  8.000
  
-frame/file=bn_vs_const_value.gif
+list a[y=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 5 points (X)
+             Y        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+ 4   / 4:  6.000
+ 5   / 5:  7.000
+list a[x=2 at ave]
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             SUBSET   : 3 points (Y)
+             X        : 2 (averaged)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+list a[y=2 at ave,x=4 at ave]  ! all prev. versions listed these as missing
+             VARIABLE : X[X=1:5] + Y[Y=1:3]
+             X        : 4 (XY ave)
+             Y        : 2 (XY ave)
+          6.000
  
-! With constant data value as the first argument
  
-can view
-set view ul6; plot/vs/color/thick/line/sym/siz=0.2  1e4*{1,1}, {1,2}
-set view um6; plot/vs/color/thick/line/sym/siz=0.2  1e5*{1,1}, {1,2}
-set view ur6; plot/vs/color/thick/line/sym/siz=0.2  1e6*{1,1}, {1,2}
-set view ll6; plot/vs/color/thick/line/sym/siz=0.2  1e7*{1,1}, {1,2}
-set view lm6; plot/vs/color/thick/line/sym/siz=0.2  1e8*{1,1}, {1,2}
-set view lr6; plot/vs/color/thick/line/sym/siz=0.2 1e-2*{1,1}, {1,2}
+! multiple directions including e,f
+ 
+use 6dfile.nc
+ 
+! average, result is on xz
+let uave = u[i=1:3,j=50 at ave,l=1 at ave,m=3 at ave,n=2 at ave]
+list uave
+             VARIABLE : U[I=1:3,J=50 at AVE,L=1 at AVE,M=3 at AVE,N=2 at AVE]
+             FILENAME : 6dfile.nc
+             SUBSET   : 3 by 27 points (LONGITUDE-DEPTH (m))
+             LATITUDE : 6.2N to 6.5N
+             TIME     : 15-MAR-1983 09:30 to 15-MAR-1983 10:30
+             E        : 2.5 to 3.5
+             F        : 2 to 4
+                161W   160W   159W   
+                  1      2      3
+ 5       /  1:  24.15  24.10  24.52
+ 15      /  2:  41.58  41.84  42.38
+ 25      /  3:  36.76  36.95  37.39
+ 35      /  4:  34.78  34.86  35.18
+ 45      /  5:  34.36  34.46  34.70
+ 55      /  6:  30.08  30.10  30.46
+ 65      /  7:  27.89  27.81  27.94
+ 75      /  8:  25.72  25.66  25.78
+ 85      /  9:  23.77  23.69  23.76
+ 95      / 10:  21.96  21.87  21.92
+ 106.2   / 11:  20.22  20.12  20.14
+ 120     / 12:  18.45  18.35  18.34
+ 136.2   / 13:  16.96  16.85  16.82
+ 155     / 14:  15.78  15.66  15.61
+ 177.5   / 15:  14.85  14.72  14.64
+ 205     / 16:  14.11  13.97  13.85
+ 240     / 17:  13.43  13.25  13.10
+ 288.5   / 18:  12.56  12.35  12.15
+ 362.5   / 19:  11.30  11.04  10.78
+ 483.5   / 20:   9.32   8.99   8.67
+ 680     / 21:   6.68   6.33   5.99
+ 979.5   / 22:   4.31   4.04   3.78
+ 1395.5  / 23:   3.09   2.96   2.85
+ 1916    / 24:   3.05   3.07   3.08
+ 2524    / 25:   3.24   3.36   3.47
+ 3174    / 26:   3.19   3.36   3.51
+ 3824    / 27:   3.19   3.39   3.56
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	PSXU69_72 = 3 ;
+	PSZT = 27 ;
+variables:
+	double PSXU69_72(PSXU69_72) ;
+		PSXU69_72:units = "degrees_east" ;
+		PSXU69_72:point_spacing = "even" ;
+		PSXU69_72:modulo = 360. ;
+		PSXU69_72:axis = "X" ;
+		PSXU69_72:standard_name = "longitude" ;
+	double PSZT(PSZT) ;
+		PSZT:units = "meters" ;
+		PSZT:positive = "down" ;
+		PSZT:point_spacing = "uneven" ;
+		PSZT:axis = "Z" ;
+		PSZT:standard_name = "depth" ;
+	double uave(PSZT, PSXU69_72) ;
+		uave:missing_value = -1.e+34 ;
+		uave:_FillValue = -1.e+34 ;
+		uave:long_name = "U[I=1:3,J=50 at AVE,L=1 at AVE,M=3 at AVE,N=2 at AVE]" ;
+		uave:history = "From 6dfile" ;
+
+// global attributes:
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+! average, result is on yt
+let uave = u[i=3 at ave,j=50:60,l=3:6,z=40 at ave,m=3 at ave,n=2 at ave]
+list uave
+             VARIABLE : U[I=3 at AVE,J=50:60,L=3:6,Z=40 at AVE,M=3 at AVE,N=2 at AVE]
+             FILENAME : 6dfile.nc
+             SUBSET   : 11 points (LATITUDE)
+             LONGITUDE: 159.5W to 158.5W
+             DEPTH (m): 35
+             TIME     : 15-MAR-1983 12:00
+             E        : 2.5 to 3.5
+             F        : 2 to 4
+ 9.67N / 60: -21.61
+ 9.33N / 59: -15.77
+ 9N    / 58: -10.95
+ 8.67N / 57:  -4.78
+ 8.33N / 56:   0.43
+ 8N    / 55:   5.49
+ 7.67N / 54:  10.50
+ 7.33N / 53:  15.96
+ 7N    / 52:  21.89
+ 6.67N / 51:  28.23
+ 6.33N / 50:  35.20
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	PSYU15_75 = 11 ;
+	TIME = UNLIMITED ; // (1 currently)
+variables:
+	double PSYU15_75(PSYU15_75) ;
+		PSYU15_75:units = "degrees_north" ;
+		PSYU15_75:point_spacing = "uneven" ;
+		PSYU15_75:axis = "Y" ;
+		PSYU15_75:standard_name = "latitude" ;
+	double TIME(TIME) ;
+		TIME:axis = "T" ;
+		TIME:units = "hour since 1980-01-14 14:00:00" ;
+		TIME:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME:standard_name = "time" ;
+	double uave(TIME, PSYU15_75) ;
+		uave:missing_value = -1.e+34 ;
+		uave:_FillValue = -1.e+34 ;
+		uave:long_name = "U[I=3 at AVE,J=50:60,L=3:6,Z=40 at AVE,M=3 at AVE,N=2 at AVE]" ;
+		uave:history = "From 6dfile" ;
+
+// global attributes:
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+! average, result is on e-f, single time
+let uave = u[i=3 at ave,y=8 at ave,z=15 at ave,t="15-MAR-1983 11:00"]
+list uave
+             VARIABLE : U[I=3 at AVE,Y=8 at AVE,Z=15 at AVE,T="15-MAR-1983 11:00"]
+             FILENAME : 6dfile.nc
+             SUBSET   : 5 by 4 points (E-F)
+             LONGITUDE: 159.5W to 158.5W
+             LATITUDE : 8N
+             DEPTH (m): 15
+             TIME     : 15-MAR-1983 11:00
+             1      2      3      4      5    
+             1      2      3      4      5
+ 1   / 1: -2.239 -1.239 -0.239  0.761  1.761
+ 3   / 2: -2.039 -1.039 -0.039  0.961  1.961
+ 5   / 3: -1.839 -0.839  0.161  1.161  2.161
+ 7   / 4: -1.639 -0.639  0.361  1.361  2.361
+save/clobber/nobounds/file=a.nc uave
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	TIME = 1 ;
+	EAXIS = 5 ;
+	FAXIS = 4 ;
+variables:
+	double TIME(TIME) ;
+		TIME:point_spacing = "uneven" ;
+		TIME:axis = "T" ;
+		TIME:units = "hour since 1980-01-14 14:00:00" ;
+		TIME:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME:standard_name = "time" ;
+	double EAXIS(EAXIS) ;
+		EAXIS:point_spacing = "even" ;
+		EAXIS:axis = "E" ;
+	double FAXIS(FAXIS) ;
+		FAXIS:point_spacing = "even" ;
+		FAXIS:axis = "F" ;
+	double uave(FAXIS, EAXIS, TIME) ;
+		uave:missing_value = -1.e+34 ;
+		uave:_FillValue = -1.e+34 ;
+		uave:long_name = "U[I=3 at AVE,Y=8 at AVE,Z=15 at AVE,T=\"15-MAR-1983 11:00\"]" ;
+		uave:history = "From 6dfile" ;
+
+// global attributes:
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_2d_ave_miss0
+! err71_2d_ave_miss0.jnl
+! Ticket 2539: data with 0 as missing flag,
+! 2D average or definite integral all-missing
+! 6/5/2017 *acm*
+ 
+use gt4d011.cdf
+let temp0 = temp
+set var/bad=0. temp0
+save/clobber/file=a.nc temp0
+can dat/all
+can var/all
+use a.nc
+ 
+! Both of these should have all valid numbers,
+! previously (in v7.1+) they were all-missing.
+list/k=1/L=1:10 temp0[x=@ave,y=@ave], temp0[x=@din,y=@din]
+             DATA SET: ./a.nc
+             TIME: 14-AUG-1982 11:00 to 14-OCT-1982 07:00
+             LONGITUDE: 140W to 122W
+             LATITUDE: 3.7S to 3.7N
+             DEPTH (m): 5
+ Column  1: TEMP0[X=@AV4,Y=@AV4] is TEMP
+ Column  2: TEMP0[X=@IN4,Y=@IN4] is TEMP
+                     TEMP0     TEMP0
+17-AUG-1982 12 /  1:  26.50  4.322E+13
+23-AUG-1982 14 /  2:  26.63  4.344E+13
+29-AUG-1982 16 /  3:  26.81  4.372E+13
+04-SEP-1982 18 /  4:  27.02  4.407E+13
+10-SEP-1982 20 /  5:  27.30  4.452E+13
+16-SEP-1982 22 /  6:  27.65  4.510E+13
+23-SEP-1982 00 /  7:  28.07  4.577E+13
+29-SEP-1982 02 /  8:  28.56  4.658E+13
+05-OCT-1982 04 /  9:  29.17  4.757E+13
+11-OCT-1982 06 / 10:  29.84  4.866E+13
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_read_delim
+! err71_read_delim.jnl
+! 6/9/2017 ACM
+! Ticket 2540, Write errors when data is read using - to skip fields
+! in a delimited read
+ 
+define axis/x=1:10:1 row_ax
+define grid/x=row_ax in_grid
+ 
+ 
+FILE/FORM=delim/skip=1/grid=in_grid\
+/var="YEAR,MONTH,LON,LAT,-,HAULJOIN,LENGTH,FREQ,-,BTTM_TEMP,SST,BTTM_DEPTH,CPUE,BIN"\
+/typ="num,num,num,num,-,num,num,num,-,num,num,num,num,num,"/delim="\,"\
+ shorttest.dat
+ 
+set var/title="year" YEAR
+set var/title="month" MONTH
+set var/title="lon"/units="degrees_E" LON
+set var/title="lat"/units="degrees_N" LAT
+set var/title="hauljoin" HAULJOIN
+set var/title="length"/units="mm" LENGTH
+set var/title="freq"/units="Number" FREQ
+set var/title="bttm_temp"/units="degrees_C" BTTM_TEMP
+set var/title="SST"/units="degrees_C" SST
+set var/title="bttm_depth"/units="m" BTTM_DEPTH
+set var/title="CPUE"/units="fish/km**2" CPUE
+set var/title="bin_size"/units="mm" BIN
+ 
+! Previously this caused netcdf library errors and exited out of Ferret
+save/file=a.nc/clobber year, month, lon, lat, hauljoin, length, freq, bttm_temp, SST, bttm_depth, CPUE, bin
+ 
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	row_ax = 10 ;
+variables:
+	double row_ax(row_ax) ;
+		row_ax:point_spacing = "even" ;
+		row_ax:axis = "X" ;
+	double YEAR(row_ax) ;
+		YEAR:missing_value = -1.e+34 ;
+		YEAR:_FillValue = -1.e+34 ;
+		YEAR:long_name = "year" ;
+		YEAR:history = "From shorttest.dat" ;
+	double MONTH(row_ax) ;
+		MONTH:missing_value = -1.e+34 ;
+		MONTH:_FillValue = -1.e+34 ;
+		MONTH:long_name = "month" ;
+		MONTH:history = "From shorttest.dat" ;
+	double LON(row_ax) ;
+		LON:missing_value = -1.e+34 ;
+		LON:_FillValue = -1.e+34 ;
+		LON:long_name = "lon" ;
+		LON:units = "degrees_E" ;
+		LON:history = "From shorttest.dat" ;
+	double LAT(row_ax) ;
+		LAT:missing_value = -1.e+34 ;
+		LAT:_FillValue = -1.e+34 ;
+		LAT:long_name = "lat" ;
+		LAT:units = "degrees_N" ;
+		LAT:history = "From shorttest.dat" ;
+	double HAULJOIN(row_ax) ;
+		HAULJOIN:missing_value = -1.e+34 ;
+		HAULJOIN:_FillValue = -1.e+34 ;
+		HAULJOIN:long_name = "hauljoin" ;
+		HAULJOIN:history = "From shorttest.dat" ;
+	double LENGTH(row_ax) ;
+		LENGTH:missing_value = -1.e+34 ;
+		LENGTH:_FillValue = -1.e+34 ;
+		LENGTH:long_name = "length" ;
+		LENGTH:units = "mm" ;
+		LENGTH:history = "From shorttest.dat" ;
+	double FREQ(row_ax) ;
+		FREQ:missing_value = -1.e+34 ;
+		FREQ:_FillValue = -1.e+34 ;
+		FREQ:long_name = "freq" ;
+		FREQ:units = "Number" ;
+		FREQ:history = "From shorttest.dat" ;
+	double BTTM_TEMP(row_ax) ;
+		BTTM_TEMP:missing_value = -1.e+34 ;
+		BTTM_TEMP:_FillValue = -1.e+34 ;
+		BTTM_TEMP:long_name = "bttm_temp" ;
+		BTTM_TEMP:units = "degrees_C" ;
+		BTTM_TEMP:history = "From shorttest.dat" ;
+	double SST(row_ax) ;
+		SST:missing_value = -1.e+34 ;
+		SST:_FillValue = -1.e+34 ;
+		SST:long_name = "SST" ;
+		SST:units = "degrees_C" ;
+		SST:history = "From shorttest.dat" ;
+	double BTTM_DEPTH(row_ax) ;
+		BTTM_DEPTH:missing_value = -1.e+34 ;
+		BTTM_DEPTH:_FillValue = -1.e+34 ;
+		BTTM_DEPTH:long_name = "bttm_depth" ;
+		BTTM_DEPTH:units = "m" ;
+		BTTM_DEPTH:history = "From shorttest.dat" ;
+	double CPUE(row_ax) ;
+		CPUE:missing_value = -1.e+34 ;
+		CPUE:_FillValue = -1.e+34 ;
+		CPUE:long_name = "CPUE" ;
+		CPUE:units = "fish/km**2" ;
+		CPUE:history = "From shorttest.dat" ;
+	double BIN(row_ax) ;
+		BIN:missing_value = -1.e+34 ;
+		BIN:_FillValue = -1.e+34 ;
+		BIN:long_name = "bin_size" ;
+		BIN:units = "mm" ;
+		BIN:history = "From shorttest.dat" ;
+
+// global attributes:
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_isready_unknown
+! err71_isready_unknown.jnl
+! ticket 2533, variable b depending on undefined variable c is
+! reported not ready, but variable a with a regridding operation is
+! mistakenly reported ready.
+ 
+use coads_climatology
+let a = b[gxy=sst[d=1]]
+let b = c
+ 
+! both should return 0
+say `b,r=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `a,r=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+ 
+! And VTREE reported no unknown variables in its tree
+! The line for C should say UNKNOWN VARIABLE
+sho var/tree a
+   in default dataset coads_climatology
+   A = B[GXY=SST[D=1]]
+     B = C
+       C ??			<== UNKNOWN VARIABLE ******
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_ppl_sho_empty
+! err71_ppl_sho_empty.jnl
+! ticket 2543, PPL SHOW pplsym is a command, but it
+! gave a Fortran runtime error if given with no argument
+! Now send these errors through the Ferret errmsg routine.
+ 
+! This is a valid sequence, pplus symbol definition
+ 
+pplus set xpos 3.2
+pplus show xpos
+ XPOS                           = 3.2
+ 
+! intentional error
+ 
+set mode ignore
+ 
+! This is a correct error message, undefined symbol
+pplus show nosymbol
+ 
+! This previously hit a runtime error, symbol name missing.
+ppl show
+ 
+! Another PPL error we might hit is an invalid command.
+! Write this error message
+PPL nonsense
+ 
+set mode/last ignore
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_string_and_if
+! err71_string_and_if.jnl
+!  6/28/2018, ticket 2547
+ 
+! problem with masked strings -> unexpected values instead of strings:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+list if (test) then strings
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+! works: define a masked variable instead, then list
+let masked = if (test) then strings
+list masked
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+! alternatively, do the same listing for a float first
+let floats = {2,3,4}
+list if (test) then floats
+             VARIABLE : IF (TEST) THEN FLOATS
+             SUBSET   : 3 points (X)
+ 1   / 1:  2.000
+ 2   / 2:  3.000
+ 3   / 3:   ....
+ 
+! now, also for strings listing while masking works
+list if (test) then strings
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+ 
+ 
+! the next problem comes with xsequence
+! again unexpected numerical values instead of strings
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+let masked = if (test) then strings
+list xsequence(masked)
+             VARIABLE : XSEQUENCE(MASKED)
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+! but doing a listing first fixes it:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+list if (test) then strings
+             VARIABLE : IF (TEST) THEN STRINGS
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+let masked = if (test) then strings
+list xsequence(masked)
+             VARIABLE : XSEQUENCE(MASKED)
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+ 
+! NOT fixed by defining a second masked variable before:
+can var/all
+let test = {1,1,0}
+let strings = {"a", "b", "c"}
+let masked = if (test) then strings
+let masked2 = xsequence(masked)
+list masked2
+             VARIABLE : XSEQUENCE(MASKED)
+             SUBSET   : 3 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"" 
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_expr_w_const
+! err71_expr_w_const.jnl
+! ticket 2313: return= is loading the whole
+! grid unnecessarily in the last example
+ 
+set mem/size=1
+def ax/t=1-jan-0001:1-jan-1000:1/unit=year tax
+let a = t[gt=tax] + x[gx=1:1000:1] + y[gy=1:1000:1]
+ 
+! These work fine
+say `a,return=cal`
+ !-> MESSAGE/CONTINUE GREGORIAN
+GREGORIAN
+ 
+use coads_climatology
+let s1= sst[x=@ave,y=1,L=@max]
+say `s1*a,return=cal`
+ !-> MESSAGE/CONTINUE GREGORIAN
+GREGORIAN
+ 
+! but the constant variable "let one = 1" introduced abstract
+! axes to the grid which  caused Ferret to try to load the
+! data in A which is large
+ 
+let one = 1
+let a1 = a*one
+show grid a1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ (AX###)   X                 1000 r   1                    1000                1000 pts
+ (AX###)   Y                 1000 r   1                    1000                1000 pts
+ normal    Z
+ tax       TIME              1000 r   01-JAN-0001 00:00    01-JAN-1000 06:10   full
+say `a*one,return=cal`
+ !-> MESSAGE/CONTINUE GREGORIAN
+GREGORIAN
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_colorlevs
+! err71_colorlevs
+! See ticket 2550. Top data value is not among color levels used in the plot.
+! And symbols LEV* do not list the levels used.
+ 
+use co_emac.nc
+stat co_emac
+ 
+             CO EMAC
+             LONGITUDE: 0E to 120E
+             LATITUDE: 0 to 40N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: ./co_emac.nc
+ 
+ Total # of data points: 48 (12*4*1*1*1*1)
+ # flagged as bad  data: 4
+ Minimum value: 6.152674857E-08
+ Maximum value: 0.00000018643
+ Mean    value: 0.000000087383 (unweighted average)
+ Standard deviation: 2.230821645E-08
+ 
+! previously there were 25 levels chosen by the automatic
+! method, missing the top one because of roundoff error.
+! Thus one cell went unfilled.  The LEV_MIN etc symbols were
+! set to 0 because of inadequate formatting of the tiny numbers.
+ 
+set mode nlevels 30
+shade co_emac
+sh sym lev*
+LEV_MIN = "6.E-08"
+LEV_MAX = "1.9E-07"
+LEV_NUM = "26"
+LEV_DEL = "5.E-09"
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_repeat_paren
+! err71_repeat_paren.jnl
+! Ticket 2551. The second command with an extra parenthese is not reported
+! to be a syntax error but just reports wrong info.
+ 
+repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue)
+ !-> repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue)
+!-> REPEAT: COUNT:1
+ !-> def sym count = 1
+ !-> MESSAGE/CONTINUE 1
+1
+
+!-> REPEAT: COUNT:2
+ !-> def sym count = 2
+ !-> MESSAGE/CONTINUE 2
+2
+
+!-> REPEAT: COUNT:3
+ !-> def sym count = 3
+ !-> MESSAGE/CONTINUE 3
+3
+
+ 
+! Previously the extra paren at the end did not trigger an error
+! but caused a parsing error so the command
+!   say ($count)
+! was parsed and fixed at "say 3" before the loop started.
+ 
+set mode ignore
+repeat/range=1:3:1/name=count (def sym count = `count`; say ($count); message/continue))
+set mode/last ignore
+ 
 *** Running ferret script: bn_compressed_gather.jnl
-[?1034h! bn_compressed_gather.jnl
+! bn_compressed_gather.jnl
 ! 11/2016 (for trac #2428 enhancement)
 ! updated 3/17 for dynamic memory and using SHOW MEM/DIAG
  
@@ -99617,8 +100426,9 @@ LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
 !     the changes in results from old Ferret (particularly on @var)
  
 *** Running ferret script: bn_dynamic_gather.jnl
-[?1034h! bn_dynamic_gather.jnl
+! bn_dynamic_gather.jnl
 ! *sh* 3/2017
+! *acm*7/2017 0=success for SPAWN_STATUS
  
 ! There's not really anything "dynamic" about this benchmark, except that it
 ! excercises the split/gather improvements that were implemented together with
@@ -99638,7 +100448,7 @@ spawn "mkdir -p tmp"     ! tmp directory to store files
  
 ! see if the test file already exists
 SPAWN "ls tmp/test_dyn_mem.nc"
-IF ($SPAWN_STATUS) THEN
+IF ($SPAWN_OK) THEN
  !-> IF 0 THEN
 ELSE
   define symbol saved_memory_size = ($FERRET_MEMORY)
@@ -100953,7 +101763,7 @@ SET MODE FRUGAL:95
 SET MODE/LAST IGNORE
  
 *** Running ferret script: bn_stat_precision.jnl
-[?1034h! bn_stat_precision.jnl
+! bn_stat_precision.jnl
 ! 3/2017 *acm* Ticket 2512
  
 ! The stat command self-adjusts precision to make the
@@ -101035,7 +101845,7 @@ stat/br/prec=12 var
  Maximum value: 27.002246751
  Mean    value: 15.76991222 (unweighted average)
 *** Running ferret script: bn_plot_vs_with_time.jnl
-[?1034h! bn_plot_vs_with_time.jnl
+! bn_plot_vs_with_time.jnl
 ! See ticket 2246
 ! 3/27/2017 *ACM*
  
@@ -101105,44 +101915,44 @@ set v lr; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
  
  
 set mode/last logo
-*** Running ferret script: bn_inner.jnl
-[?1034h! bn_inner.jnl
-! 3/2017 *acm*  Inner product function for matrix multiply operation
+*** Running ferret script: bn_dot_product.jnl
+! bn_dot_product.jnl
+! 3/2017 *acm*  dot product function for matrix multiply operation
  
  
-sh func innerproduct*
-INNERPRODUCT(VAR1,VAR2,IDIM)
+sh func dot*
+DOT(VAR1,VAR2,IDIM)
     Compute the inner product of two variables along given dimension
     VAR1: Variable 1
     VAR2: Variable 2
     IDIM: Dimension (e.g.1,2,...)
-INNERPRODUCT_X(VAR1,VAR2)
-    Compute the inner product of two variables along X-axis
+DOT_E(VAR1,VAR2)
+    Compute the inner product of two variables along E-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_Y(VAR1,VAR2)
-    Compute the inner product of two variables along Y-axis
+DOT_F(VAR1,VAR2)
+    Compute the inner product of two variables along F-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_Z(VAR1,VAR2)
-    Compute the inner product of two variables along Z-axis
+DOT_T(VAR1,VAR2)
+    Compute the inner product of two variables along T-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_T(VAR1,VAR2)
-    Compute the inner product of two variables along T-axis
+DOT_X(VAR1,VAR2)
+    Compute the inner product of two variables along X-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_E(VAR1,VAR2)
-    Compute the inner product of two variables along E-axis
+DOT_Y(VAR1,VAR2)
+    Compute the inner product of two variables along Y-axis
     VAR1: Variable 1
     VAR2: Variable 2
-INNERPRODUCT_F(VAR1,VAR2)
-    Compute the inner product of two variables along F-axis
+DOT_Z(VAR1,VAR2)
+    Compute the inner product of two variables along Z-axis
     VAR1: Variable 1
     VAR2: Variable 2
  
-! A call to innerproduct(var1, var2, dir) translates into call to
-! function innerproduct_q(var1,var2) where q is the pax direction
+! A call to dot(var1, var2, dir) translates into call to
+! function dot_q(var1,var2) where q is the pax direction
 ! corresponding to dir=1,2,...,6
  
 set list/pre=7
@@ -101165,15 +101975,15 @@ list var1, var2
 3   / 3:  3.000000  1.000000
 4   / 4:  4.000000  1.000000
 5   / 5:  5.000000  1.000000
-list  innerproduct(var1, var2, 1)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 1)
+list  dot(var1, var2, 1)
+             VARIABLE : DOT(VAR1, VAR2, 1)
           15.00000
 !can var/all
  
 let var1 = x[gx=xpax]
 let var2 = 1+0*x[gx=xpax]
-list  innerproduct_x(var1, var2)
-             VARIABLE : INNERPRODUCT_X(VAR1, VAR2)
+list  dot_x(var1, var2)
+             VARIABLE : DOT_X(VAR1, VAR2)
           15.00000
  
 let var1 = y[gy=ypax]
@@ -101186,8 +101996,8 @@ list var1, var2
 0.1  / 1:  0.1000000  1.000000
 0.2  / 2:  0.2000000  1.000000
 0.3  / 3:  0.3000000  1.000000
-list  innerproduct(var1, var2, 2)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 2)
+list  dot(var1, var2, 2)
+             VARIABLE : DOT(VAR1, VAR2, 2)
           0.6000000
  
 let var1 = z[gz=zpax]
@@ -101201,8 +102011,8 @@ list var1, var2
 0.02  / 2:  0.02000000  1.000000
 0.03  / 3:  0.03000000  1.000000
 0.04  / 4:  0.04000000  1.000000
-list  innerproduct(var1, var2, 3)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 3)
+list  dot(var1, var2, 3)
+             VARIABLE : DOT(VAR1, VAR2, 3)
           0.10000000
  
 let var1 = L[gt=month_reg]
@@ -101224,8 +102034,8 @@ list var1, var2
 16-OCT      / 10:  10.00000  1.000000
 15-NOV      / 11:  11.00000  1.000000
 16-DEC      / 12:  12.00000  1.000000
-list  innerproduct(var1, var2, 4)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 4)
+list  dot(var1, var2, 4)
+             VARIABLE : DOT(VAR1, VAR2, 4)
           78.00000
  
 let var1 = _e[ge=epax]
@@ -101238,8 +102048,8 @@ list var1, var2
 -3   / 1: -3.000000  1.000000
 -2   / 2: -2.000000  1.000000
 -1   / 3: -1.000000  1.000000
-list  innerproduct(var1, var2, 5)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 5)
+list  dot(var1, var2, 5)
+             VARIABLE : DOT(VAR1, VAR2, 5)
          -6.000000
  
 let var1 = _f[gf=fpax]
@@ -101253,8 +102063,8 @@ list var1, var2
 -0.3  / 2: -0.3000000  1.000000
 -0.2  / 3: -0.2000000  1.000000
 -0.1  / 4: -0.1000000  1.000000
-list  innerproduct(var1, var2, 6)
-             VARIABLE : INNERPRODUCT(VAR1, VAR2, 6)
+list  dot(var1, var2, 6)
+             VARIABLE : DOT(VAR1, VAR2, 6)
          -1.000000
  
 let axy = x[gx=xpax] + y[gy=ypax]
@@ -101342,8 +102152,8 @@ list axy, bxz
 3   / 3:  3.300000  0.4000000
 4   / 4:  4.300000  0.4000000
 5   / 5:  5.300000  0.4000000
-list innerproduct(axy, bxz, 1)
-             VARIABLE : INNERPRODUCT(AXY, BXZ, 1)
+list dot(axy, bxz, 1)
+             VARIABLE : DOT(AXY, BXZ, 1)
              SUBSET   : 3 by 4 points (Y-Z)
                 0.1       0.2       0.3    
                  1         2         3
@@ -101353,8 +102163,8 @@ list innerproduct(axy, bxz, 1)
  0.04  / 4:  6.200000  6.400000  6.600000
  
 let byz = y[gy=ypax]+  10*Z[GZ=Zpax]
-list innerproduct(axy, byz, 2)
-             VARIABLE : INNERPRODUCT(AXY, BYZ, 2)
+list dot(axy, byz, 2)
+             VARIABLE : DOT(AXY, BYZ, 2)
              SUBSET   : 5 by 4 points (X-Z)
                 1         2         3         4         5      
                  1         2         3         4         5
@@ -101365,14 +102175,14 @@ list innerproduct(axy, byz, 2)
  
 let lvar = L[gt=month_reg] - 1
 let axyt = axy + lvar
-let multi_inner = innerproduct(axyt, byz, 2)
-save/file=a.nc/clobber multi_inner
+let multi_dot = dot(axyt, byz, 2)
+save/file=a.nc/clobber multi_dot
  
-can var multi_inner
+can var multi_dot
 use a.nc
-!  This should be the same as innerproduct(axy, byz, 2)
-list/l=1 multi_inner
-             VARIABLE : INNERPRODUCT(AXYT, BYZ, 2)
+!  This should be the same as dot(axy, byz, 2)
+list/l=1 multi_dot
+             VARIABLE : DOT(AXYT, BYZ, 2)
              FILENAME : a.nc
              SUBSET   : 5 by 4 points (X-Z)
              TIME     : 16-JAN 06:00
@@ -101388,8 +102198,8 @@ list/l=1 multi_inner
  
 let axz = x[gx=xpax] + z[gz=zpax]
 let bzt = 0*z[gz=zpax]+  10*L[gt=month_reg]
-list innerproduct(axz, bzt, 3)
-             VARIABLE : INNERPRODUCT(AXZ, BZT, 3)
+list dot(axz, bzt, 3)
+             VARIABLE : DOT(AXZ, BZT, 3)
              SUBSET   : 5 by 12 points (X-TIME)
                        1         2         3         4         5      
                         1         2         3         4         5
@@ -101407,8 +102217,8 @@ list innerproduct(axz, bzt, 3)
  16-DEC      / 12:   492.000   972.000  1452.000  1932.000  2412.000
  
 let ayt = y[gy=ypax]+ 10*L[gt=month_reg]
-list innerproduct(ayt, bzt, 4)
-             VARIABLE : INNERPRODUCT(AYT, BZT, 4)
+list dot(ayt, bzt, 4)
+             VARIABLE : DOT(AYT, BZT, 4)
              SUBSET   : 3 by 4 points (Y-Z)
                 0.1       0.2       0.3    
                  1         2         3
@@ -101420,14 +102230,14 @@ list innerproduct(ayt, bzt, 4)
  
 let xvar = x[gx=xpax] - 1
 let axyt = ayt + xvar
-let multi_inner = innerproduct(axyt, bzt, 4)
-save/file=a.nc/clobber multi_inner
+let multi_dot = dot(axyt, bzt, 4)
+save/file=a.nc/clobber multi_dot
  
-can var multi_inner
+can var multi_dot
 use a.nc
-!  This should be the same as innerproduct(ayt, bzt, 4)
-list/i=1 multi_inner
-             VARIABLE : INNERPRODUCT(AXYT, BYZ, 2)
+!  This should be the same as dot(ayt, bzt, 4)
+list/i=1 multi_dot
+             VARIABLE : DOT(AXYT, BYZ, 2)
              FILENAME : a.nc
              SUBSET   : 4 by 12 points (Z-TIME)
              X        : 1
@@ -101452,8 +102262,8 @@ can dat/all
  
 let ayf = _f[gf=fpax] + y[gy=ypax]
 let bfe = 0*_f[gf=fpax]+  10*_e[ge=epax]
-list innerproduct(ayf, bfe, 6)
-             VARIABLE : INNERPRODUCT(AYF, BFE, 6)
+list dot(ayf, bfe, 6)
+             VARIABLE : DOT(AYF, BFE, 6)
              SUBSET   : 3 by 3 points (Y-E)
                0.1       0.2       0.3    
                 1         2         3
@@ -101462,8 +102272,8 @@ list innerproduct(ayf, bfe, 6)
  -1   / 3:   6.00000   2.00000  -2.00000
  
 let aze = z[gz=zpax]+ 10*_e[ge=epax]
-list innerproduct(aze, bfe, 5)
-             VARIABLE : INNERPRODUCT(AZE, BFE, 5)
+list dot(aze, bfe, 5)
+             VARIABLE : DOT(AZE, BFE, 5)
              SUBSET   : 4 by 4 points (Z-F)
                0.01      0.02      0.03      0.04    
                  1         2         3         4
@@ -101474,14 +102284,14 @@ list innerproduct(aze, bfe, 5)
  
 let xvar = x[gx=xpax] - 1
 let azex = aze + xvar
-let multi_inner = innerproduct(azex, bfe, 5)
-save/file=a.nc/clobber multi_inner
+let multi_dot = dot(azex, bfe, 5)
+save/file=a.nc/clobber multi_dot
  
-can var multi_inner
+can var multi_dot
 use a.nc
-!  This should be the same as innerproduct(azex, bfe, 5)
-list/i=1 multi_inner
-             VARIABLE : INNERPRODUCT(AZEX, BFE, 5)
+!  This should be the same as dot(azex, bfe, 5)
+list/i=1 multi_dot
+             VARIABLE : DOT(AZEX, BFE, 5)
              FILENAME : a.nc
              SUBSET   : 4 by 4 points (Z-F)
              X        : 1
@@ -101494,11 +102304,12 @@ list/i=1 multi_inner
  
 cancel list/precision
 *** Running ferret script: bn_cache_management.jnl
-[?1034h! bn_cache_management.jnl
+! bn_cache_management.jnl
  
  ! 1/2017 - try to force Ferret into a complex juggling of dependencies
 ! and cache maintenance in order to reproduce the problem seen in trac
 ! ticket #2485 (from Ned Cokelet)
+! *acm*7/2017 0=success for SPAWN_STATUS
  
 ! Ferret's cache of memory-resident results is full when it holds 500 of them.
 ! At that point it must delete cached results to make room for new variables.
@@ -101534,7 +102345,7 @@ define axis/x=1:1000000:1 xmillion
 SPAWN "mkdir -p tmp"     ! tmp directory to store files
 SPAWN ls tmp/test_auto_cache_($nsets).nc
  !-> SPAWN ls tmp/test_auto_cache_20.nc
-IF ($SPAWN_STATUS) THEN
+IF ($SPAWN_OK) THEN
  !-> IF 0 THEN
 ELSE
  say creating test files
@@ -101928,7 +102739,7 @@ spawn cat test_auto_cache.out
 SET MEMORY/SIZE=($saved_memory_size)
  !-> SET MEMORY/SIZE=25.6
 *** Running ferret script: bn_transp_choose.jnl
-[?1034h! bn_transp_choose.jnl
+! bn_transp_choose.jnl
 !  Test the TRANSPOSE function which chooses which of the
 ! transpose_ functions to run based on arguments
  
@@ -102037,8 +102848,551 @@ list/l=1 var
  9    /  9:  19.60  22.19  24.59  25.76  27.27  29.37  30.92
  10   / 10:  20.46  23.48  25.95  27.66  29.79  32.46  34.16
  
+*** Running ferret script: bn_iin_regrid.jnl
+! bn_iin_regrid.jnl
+! @IIN as a regridding transform See Ticket 2346
+ 
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+ 
+let xlo = xboxlo[gx=a]
+def ax/x aline_edges = xcat(xlo[i=1], xboxhi[gx=a])
+ 
+! new @IIN regridding
+show axis/x aline_edges
+ name       axis              # pts   start                end
+ ALINE_EDGES X                 11 r   0                    10
+   Axis span (to cell edges) = 11
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0                     1          -0.5
+       2>  1                     1          0.5
+       3>  2                     1          1.5
+       4>  3                     1          2.5
+       5>  4                     1          3.5
+       6>  5                     1          4.5
+       7>  6                     1          5.5
+       8>  7                     1          6.5
+       9>  8                     1          7.5
+      10>  9                     1          8.5
+      11>  10                    1          9.5
+ 
+let c = a[gx=aline_edges at iin]
+list a
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+             SUBSET   : 10 points (X)
+ 0.5 /  1:  1.000
+ 1.5 /  2:  0.000
+ 2.5 /  3:  1.000
+ 3.5 /  4:  0.000
+ 4.5 /  5:  1.000
+ 5.5 /  6:  0.000
+ 6.5 /  7:  1.000
+ 7.5 /  8:  0.000
+ 8.5 /  9:  1.000
+ 9.5 / 10:  0.000
+list c
+             VARIABLE : A[GX=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (X)
+ 0    /  1:  0.000
+ 1    /  2:  1.000
+ 2    /  3:  1.000
+ 3    /  4:  2.000
+ 4    /  5:  2.000
+ 5    /  6:  3.000
+ 6    /  7:  3.000
+ 7    /  8:  4.000
+ 8    /  9:  4.000
+ 9    / 10:  5.000
+ 10   / 11:  5.000
+ 
+ 
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+ 
+! Intentional error
+ 
+set mode ignore
+! Different delta
+ 
+define axis/x=0.5:10.5:0.5 alinenew
+list a[gx=alinenew at iin]
+ 
+set mode/last ignore
+ 
+ 
+! result out of range, returns missing
+define axis/x=100:111:1 alinenew
+list a[gx=alinenew at iin]
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 12 points (X)
+ 100   /  1:....
+ 101   /  2:....
+ 102   /  3:....
+ 103   /  4:....
+ 104   /  5:....
+ 105   /  6:....
+ 106   /  7:....
+ 107   /  8:....
+ 108   /  9:....
+ 109   / 10:....
+ 110   / 11:....
+ 111   / 12:....
+ 
+! partially out of range
+define axis/x=2.5:15.5:1 alinenew
+list a[gx=alinenew at iin]
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 14 points (X)
+ 2.5  /  1:  0.000
+ 3.5  /  2:  0.000
+ 4.5  /  3:  1.000
+ 5.5  /  4:  1.000
+ 6.5  /  5:  2.000
+ 7.5  /  6:  2.000
+ 8.5  /  7:  3.000
+ 9.5  /  8:  3.000
+ 10.5 /  9:   ....
+ 11.5 / 10:   ....
+ 12.5 / 11:   ....
+ 13.5 / 12:   ....
+ 14.5 / 13:   ....
+ 15.5 / 14:   ....
+ 
+! same range, outer boxes
+define axis/x=-0.5:10.5:1 alinenew
+list a[gx=alinenew at iin]
+             VARIABLE : MOD(.5+X[GX=ALINE],2)
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 12 points (X)
+ -0.5 /  1:   ....
+ 0.5  /  2:  0.000
+ 1.5  /  3:  1.000
+ 2.5  /  4:  1.000
+ 3.5  /  5:  2.000
+ 4.5  /  6:  2.000
+ 5.5  /  7:  3.000
+ 6.5  /  8:  3.000
+ 7.5  /  9:  4.000
+ 8.5  / 10:  4.000
+ 9.5  / 11:  5.000
+ 10.5 / 12:   ....
+can mem
+! plots in different directions
+ 
+can view; can var/all
+! In X
+ 
+set win/asp=0.5
+set v left
+def ax/edge/x=0:10:1 aline
+let a = mod(.5+x[gx=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[x=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let xlo = xboxlo[gx=a]
+def ax/x aline_edges = xcat(xlo[i=1], xboxhi[gx=a])
+let a_iin_edges = a_iin[gx=aline_edges at asn]
+let a_int = IF i[gx=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[x=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+ 
+show axis/x aline_edges
+ name       axis              # pts   start                end
+ ALINE_EDGES X                 11 r   0                    10
+   Axis span (to cell edges) = 11
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0                     1          -0.5
+       2>  1                     1          0.5
+       3>  2                     1          1.5
+       4>  3                     1          2.5
+       5>  4                     1          3.5
+       6>  5                     1          4.5
+       7>  6                     1          5.5
+       8>  7                     1          6.5
+       9>  8                     1          7.5
+      10>  9                     1          8.5
+      11>  10                    1          9.5
+let c = a[gx=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[x=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gx=aline_edges at asn]
+let b_int = IF i[gx=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[x=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gx=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GX=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (X)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gx=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on X at IIN
+             SUBSET   : 11 by 2 points (X-Z)
+             0      1      2      3      4      5      6      7      8      9     10    
+             1      2      3      4      5      6      7      8      9     10     11
+ 1   / 1:   0.00   2.00   4.00   6.00   8.00  10.00  12.00  14.00  16.00  18.00  20.00
+ 2   / 2:   0.00   3.00   6.00   9.00  12.00  15.00  18.00  21.00  24.00  27.00  30.00
+ 
+ 
+can view; can var/all
+! In Y
+ 
+set win/asp=0.5
+set v left
+def ax/edge/y=0:10:1 aline
+let a = mod(.5+y[gy=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[y=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let ylo = yboxlo[gy=a]
+def ax/y aline_edges = ycat(ylo[j=1], yboxhi[gy=a])
+ 
+let a_iin_edges = a_iin[gy=aline_edges at asn]
+let a_int = IF j[gy=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[y=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gy=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[y=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gy=aline_edges at asn]
+let b_int = IF j[gy=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[y=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gy=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GY=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (Y)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gy=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on Y at IIN
+             SUBSET   : 11 by 2 points (Y-Z)
+             0      1      2      3      4      5      6      7      8      9     10    
+             1      2      3      4      5      6      7      8      9     10     11
+ 1   / 1:   0.00   2.00   4.00   6.00   8.00  10.00  12.00  14.00  16.00  18.00  20.00
+ 2   / 2:   0.00   3.00   6.00   9.00  12.00  15.00  18.00  21.00  24.00  27.00  30.00
+ 
+ 
+can view; can var/all
+! in Z
+ 
+set win/asp=0.5
+set v left
+def ax/edge/z=0:10:1 aline
+let a = mod(.5+z[gz=aline],2)
+plot/step=con/hl=-1:6:1/vl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[z=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let zlo = zboxlo[gz=a]
+def ax/z aline_edges = zcat(zlo[k=1], zboxhi[gz=a])
+ 
+let a_iin_edges = a_iin[gz=aline_edges at asn]
+let a_int = IF k[gz=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[z=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gz=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/hl=-1:12:1/vl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[z=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gz=aline_edges at asn]
+let b_int = IF k[gz=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[z=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gz=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GZ=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (Z)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/e=1:2:1 otheraxis
+let b2d = b + _e[ge=otheraxis]
+list b2d[gz=aline_edges at iin]
+             VARIABLE : B + _E[GE=OTHERAXIS]
+                        regrid: 1 delta on Z at IIN
+             SUBSET   : 11 by 2 points (Z-E)
+             0      1      2      3      4      5      6      7      8      9     10    
+             1      2      3      4      5      6      7      8      9     10     11
+ 1   / 1:   0.00   2.00   4.00   6.00   8.00  10.00  12.00  14.00  16.00  18.00  20.00
+ 2   / 2:   0.00   3.00   6.00   9.00  12.00  15.00  18.00  21.00  24.00  27.00  30.00
+ 
+ 
+can view; can var/all
+! In T
+ 
+set win/asp=0.5
+set v left
+def ax/edge/t=0:10:1 aline
+let a = mod(.5+t[gt=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[t=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let tlo = tboxlo[gt=a]
+def ax/t aline_edges = tcat(tlo[l=1], tboxhi[gt=a])
+ 
+let a_iin_edges = a_iin[gt=aline_edges at asn]
+let a_int = IF l[gt=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[t=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gt=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[t=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gt=aline_edges at asn]
+let b_int = IF l[gt=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[t=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gt=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GT=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (T)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gt=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on T at IIN
+             SUBSET   : 2 by 11 points (Z-T)
+               1      2    
+               1      2
+ 0    /  1:   0.00   0.00
+ 1    /  2:   2.00   3.00
+ 2    /  3:   4.00   6.00
+ 3    /  4:   6.00   9.00
+ 4    /  5:   8.00  12.00
+ 5    /  6:  10.00  15.00
+ 6    /  7:  12.00  18.00
+ 7    /  8:  14.00  21.00
+ 8    /  9:  16.00  24.00
+ 9    / 10:  18.00  27.00
+ 10   / 11:  20.00  30.00
+ 
+ 
+can view; can var/all
+! in E
+ 
+set win/asp=0.5
+set v left
+def ax/edge/e=0:10:1 aline
+let a = mod(.5+_e[ge=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[e=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let elo = eboxlo[ge=a]
+def ax/e aline_edges = ecat(elo[m=1], eboxhi[ge=a])
+ 
+let a_iin_edges = a_iin[ge=aline_edges at asn]
+let a_int = IF _m[ge=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[e=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[ge=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/hl=-1:12:1/vl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[e=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[ge=aline_edges at asn]
+let b_int = IF _m[ge=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[e=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[ge=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GE=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (E)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[ge=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on E at IIN
+             SUBSET   : 2 by 11 points (Z-E)
+               1      2    
+               1      2
+ 0    /  1:   0.00   0.00
+ 1    /  2:   2.00   3.00
+ 2    /  3:   4.00   6.00
+ 3    /  4:   6.00   9.00
+ 4    /  5:   8.00  12.00
+ 5    /  6:  10.00  15.00
+ 6    /  7:  12.00  18.00
+ 7    /  8:  14.00  21.00
+ 8    /  9:  16.00  24.00
+ 9    / 10:  18.00  27.00
+ 10   / 11:  20.00  30.00
+ 
+ 
+can view; can var/all
+! In F
+ 
+set win/asp=0.5
+set v left
+def ax/edge/f=0:10:1 aline
+let a = mod(.5+_f[gf=aline],2)
+plot/step=con/vl=-1:6:1/hl=-1:11:1/grat=dash/col=green/thic=3 a
+let a_iin = a[f=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 a_iin
+let flo = fboxlo[gf=a]
+def ax/f aline_edges = fcat(flo[n=1], fboxhi[gf=a])
+ 
+let a_iin_edges = a_iin[gf=aline_edges at asn]
+let a_int = IF _n[gf=aline_edges] EQ 1 THEN 0 ELSE a_iin_edges[f=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 a_int
+ 
+ 
+! new @IIN regridding
+let c = a[gf=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 c
+ 
+set v right
+let b = 1+0*a
+plot/step=con/vl=-1:12:1/hl=-1:11:1/grat=dash/col=green/thic=3 b
+let b_iin = b[f=@iin]
+plot/ov/line/sym=2/si=.1/col=2/thic=2 b_iin
+let b_iin_edges = b_iin[gf=aline_edges at asn]
+let b_int = IF _n[gf=aline_edges] EQ 1 THEN 0 ELSE b_iin_edges[f=@shf:-1]
+plot/ov/line/sym=28/si=.1/col=purple/thic=2 b_int
+ 
+! new @IIN regridding
+let d = b[gf=aline_edges at iin]
+plot/ov/line/sym=19/si=.1/col=light/thic=1 d
+ 
+list d
+             VARIABLE : B[GF=ALINE_EDGES at IIN]
+             SUBSET   : 11 points (F)
+ 0    /  1:   0.00
+ 1    /  2:   1.00
+ 2    /  3:   2.00
+ 3    /  4:   3.00
+ 4    /  5:   4.00
+ 5    /  6:   5.00
+ 6    /  7:   6.00
+ 7    /  8:   7.00
+ 8    /  9:   8.00
+ 9    / 10:   9.00
+ 10   / 11:  10.00
+define axis/z=1:2:1 otheraxis
+let b2d = b + z[gz=otheraxis]
+list b2d[gf=aline_edges at iin]
+             VARIABLE : B + Z[GZ=OTHERAXIS]
+                        regrid: 1 delta on F at IIN
+             SUBSET   : 2 by 11 points (Z-F)
+               1      2    
+               1      2
+ 0    /  1:   0.00   0.00
+ 1    /  2:   2.00   3.00
+ 2    /  3:   4.00   6.00
+ 3    /  4:   6.00   9.00
+ 4    /  5:   8.00  12.00
+ 5    /  6:  10.00  15.00
+ 6    /  7:  12.00  18.00
+ 7    /  8:  14.00  21.00
+ 8    /  9:  16.00  24.00
+ 9    / 10:  18.00  27.00
+ 10   / 11:  20.00  30.00
 *** Running ferret script: bn_gif.jnl
-[?1034h! bn450_gif.JNL - copied from bn450_plot.jnl
+! bn450_gif.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of gif file in batch mode using
 ! frame/file=bnplot.gif....will create three gif files
 ! *kob*
@@ -102509,14 +103863,14 @@ ppl list levels
          -1.00E+01     DASH        3        0
          -7.88E+00     DASH        3        0
          -5.75E+00     DASH        3        0
-         -3.63E+00     DASH        3        0
+         -3.62E+00     DASH        3        0
          -1.50E+00     DASH        3        0
           6.25E-01     LINE        3        0
           2.75E+00     LINE        3        0
           4.88E+00     LINE        3        0
           7.00E+00     LINE        3        0
-          9.13E+00     LINE        3        0
-          1.13E+01     LINE        3        0
+          9.12E+00     LINE        3        0
+          1.12E+01     LINE        3        0
  
 ! Now make the same setting with CONTOUR/SIGDIG=
 contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/sigdig=4/title="CONTOUR/SIGDIG=4"  10*sin(i/3)*cos(j/4)
@@ -102529,15 +103883,15 @@ ppl list levels
          -1.00E+01     DASH        3        0
          -7.88E+00     DASH        3        0
          -5.75E+00     DASH        3        0
-         -3.63E+00     DASH        3        0
+         -3.62E+00     DASH        3        0
          -1.50E+00     DASH        3        0
           0.00E+00     DARK       -1        0
           6.25E-01     LINE        3        0
           2.75E+00     LINE        3        0
           4.88E+00     LINE        3        0
           7.00E+00     LINE        3        0
-          9.13E+00     LINE        3        0
-          1.13E+01     LINE        3        0
+          9.12E+00     LINE        3        0
+          1.12E+01     LINE        3        0
  
 ! test CONTOUR/SET; CONSET; PPL CONTOUR settings
 contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
@@ -102576,9 +103930,164 @@ shade/over d10[i=1:10:2,j=1:10]
  
 frame/file=bn_subspan_mod_strides.gif
  
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_plotvs_mode_label
+! err71_plotvs_mode_label.jnl
+!  *acm*3/17/17 Ticket 2517:
+! MODE LONG_LABEL, MODE LATIT_LABEL need to apply
+! to PLOT/VS plots.
+ 
+can mode logo
+ 
+set mode long_lab
+set mode latit_lab
+ 
+let/title="|Roll|"/units="degree" abscissa_roll = {0, 20}
+let/title="Wind Speed"/units="kn" ordinate_spd  = {0, 0}
+ 
+! labeled lon/lat axes. Units of "degrees" is taken to be degrees
+! east or north depending on which plot axis it is drawn on.
+ 
+set view ul
+plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
+set view ur
+plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
+ 
+! These modes turn off lon/lat axis labeling
+ 
+cancel mode long_lab
+cancel mode latit_lab
+ 
+set view ll
+plot/vs/line/vlimits=-20:20 abscissa_roll, ordinate_spd
+set view lr
+plot/vs/line/hlimits=-20:20 ordinate_spd, abscissa_roll
+ 
+! Explicit units units of degrees_east and degrees_north:
+! degrees_east draws longitude labeling on whichever plot axis
+! the associated variable is drawn, and likewise for degrees_north.
+! Setting or cancelling the label modes applies to the variable
+! units not the plot-axis direction.
+ 
+cancel view
+set mode long_lab
+set mode latit_lab
+ 
+let/title="East"/units="degrees_east" lon = {10,20,30}
+let/title="North"/units="degrees_north" lat = {-10,0,10}
+ 
+! longitude axis on the horizontal, latitude axis on the vertical
+ 
+set view ul; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit TRUE"
+ 
+! latitude axis on the horizontal, longitude axis on the vertical
+ 
+set view ur; plot/vs/line/sym/vlim=0:40/hlim=-20:20 lat,lon
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long vertical  latit horizontal"
+ 
+! longitude axis on the horizontal, latitude axis on the vertical
+! but with latitude labeling turned off
+ 
+set mode long_lab
+cancel mode latit_lab
+set view ll; plot/vs/line/sym/hlim=0:40/vlim=-20:20 lon, lat
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long TRUE  latit FALSE"
+ 
+! latitude axis on the horizontal, longitude axis on the vertical
+! but with longitude labeling turned off
+ 
+cancel mode long_lab
+set mode latit_lab
+set view lr; plot/vs/line/sym/vlim=0:40/hlim=-20:20 lat,lon
+annotate/norm/x=0.1/y=0.9/siz=0.1 "long FALSE  latit TRUE"
+ 
+frame/file=lon_lat_label_controls.gif
+ 
+ 
+! Restore default settings
+set mode long_lab
+set mode latit_lab
+ 
+set mode/last logo
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err700_vs_plot_axes
+! err700_vs_plot_axes.jnl
+! See ticket 2477, in some cases the plot axes are not fully drawn
+! 11/2016 ACM
+ 
+ 
+USE err700_vs_data.nc
+ 
+! only with PLOT/VS plots, only with SYMBOLS not PLOT/VS/LINE
+PLOT/VS/THICK/COLOR=red/SIZ=0.2 lon,lat
+FRAME/FILE=bn_axis_vs.gif
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_vs_constant
+! err71_vs_constant.jnl
+! See ticket 2318, defining plot axes when data is constant
+! 4/2017 acm
+ 
+! The axis ranges had been set as val-1, val+1 which
+! worked poorly for large or small data values
+ 
+ 
+ 
+ 
+def view/xlim=   0,.333/ylim=0,.5 ll6   ! ok
+def view/xlim=   0,.333/ylim=.5,1 ul6   ! long tic labels
+def view/xlim=.333,.666/ylim=0,.5 lm6   ! long tic labels, logo corrupted
+def view/xlim=.333,.666/ylim=.5,1 um6   ! plot positioning and labels are corrupted
+def view/xlim=.666,   1/ylim=0,.5 lr6   ! no plot at all
+def view/xlim=.666,   1/ylim=.5,1 ur6   ! no vertical tic labels
+ 
+ 
+set view ul6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e4*{1,1}
+set view um6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e5*{1,1}
+set view ur6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e6*{1,1}
+set view ll6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e7*{1,1}
+set view lm6; plot/vs/color/thick/line/sym/siz=0.2 {1,2},  1e8*{1,1}
+set view lr6; plot/vs/color/thick/line/sym/siz=0.2 {1,2}, 1e-2*{1,1}
+ 
+frame/file=bn_vs_const_value.gif
+ 
+! With constant data value as the first argument
+ 
+can view
+set view ul6; plot/vs/color/thick/line/sym/siz=0.2  1e4*{1,1}, {1,2}
+set view um6; plot/vs/color/thick/line/sym/siz=0.2  1e5*{1,1}, {1,2}
+set view ur6; plot/vs/color/thick/line/sym/siz=0.2  1e6*{1,1}, {1,2}
+set view ll6; plot/vs/color/thick/line/sym/siz=0.2  1e7*{1,1}, {1,2}
+set view lm6; plot/vs/color/thick/line/sym/siz=0.2  1e8*{1,1}, {1,2}
+set view lr6; plot/vs/color/thick/line/sym/siz=0.2 1e-2*{1,1}, {1,2}
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_vs_lon_over
+! err71_vs_lon_over.jnl
+! PLOT/VS/OVER does longitude moduloing if the xpts
+!  variable has units of degrees east.
+ 
+use coads_climatology
+shade/l=1/x=0:360/nolab/nokey if sst then 1
+let/units=degrees_east xpts = {-170,-150,-100, 100, 150, 170}
+let/units=degrees_north ypts = {-30, -20, -10,   0,  10,  20}
+ 
+plot/vs/over/thick/siz=0.2/sym=19 xpts,ypts
+frame/file=vs_lon_over.gif
+ 
 exit/command
 *** Running ferret script: bn_ps.jnl
-[?1034h! bn450_ps.JNL - copied from bn450_plot.jnl
+! bn450_ps.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of ps files in batch mode using
 ! "-batch bnplot.ps" command line option...will create on final ps file
 ! *kob*
@@ -102685,7 +104194,7 @@ frame/file=bnplot_4.eps   ! Not an error in PyFerret
  
  
 *** Running ferret script: bn_all_ef.jnl
-[?1034hSET MODE VERIFY
+SET MODE VERIFY
 ! bn_all_ef.jnl
 ! - run all the benchmark tests for externally-linked external functions.
 ! 12/16 vis5D functions have long been defunct. Remove that test
@@ -103481,28 +104990,29 @@ exit
  
 exit/command
 *** Running ferret script: bn_startupfile.jnl
-[?1034h    SET MEMORY/SIZE: 31 megawords
+    SET MEMORY/SIZE: 31 megawords
     Peak demand: 0 words
     Current cache: 0 words
 PPL$XPIXEL = "819"
 PPL$YPIXEL = "707"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.1"
-FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64"
+FERRET_VERSION = "7.2"
+FERRET_PLATFORM = "Linux 3.10.0-514.26.2.el7.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
+NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "18-Apr-17"
-SESSION_TIME = "17:19"
-SESSION_PID = "27634"
-DELTA_CPU = "0.227964"
-CLOCK_SECS = "0.109"
-CURRENT_DATE = "18-Apr-17"
-CURRENT_TIME = "17:19:03"
+SESSION_DATE = "DD-MON-YY"
+SESSION_TIME = "HH:MM"
+SESSION_PID = "#####"
+DELTA_CPU = "######"
+CLOCK_SECS = "######"
+CURRENT_DATE = "DD-MON-YY"
+CURRENT_TIME = "HH:MM:SS"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
 PEAK_MEMORY = "0"
-SPAWN_STATUS = "1"
+SPAWN_OK = "1"
+SPAWN_STATUS = "0"
 GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
@@ -103526,7 +105036,7 @@ PPL$COMMAND_FILE = "$$MEMBUF$$"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 PPL$SCALE = "1.0000"
-WIN_TITLE = "18-Apr-17_17:19"
+WIN_TITLE = "DD-MON-YY HH:MM"
 VP_SCALE = "1"
 VP_RT_MARGIN = "1"
 VP_TOP_MARGIN = "1.4"
@@ -103581,7 +105091,7 @@ VP_YHI = "1"
  PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 *** Running ferret script: err700_decimate.jnl
-[?1034h! err700_decimate.jnl
+! err700_decimate.jnl
 ! test decimation of SOCAT full-data DSG files
 !
  
@@ -105644,13 +107154,27 @@ can axis/all
  
 ! Dump the contents of the decimated-data DSG file
 sp ncdump -h 492C19881104_dec.nc >> all_ncdump.out
+*** Running ferret script: bn_color_wire.jnl
+set text /font=lucida
+set region /i=1:80 /j=1:80
+let bump = exp(-1.0*(((I-40)/20)^2 + ((J-40)/20)^2))
+wire /color=blue /viewpoint=-4,-10,2 bump
+frame /file=bluewire.png
+set window /color=blue 1
+set text /font=lucida /color=(100,100,25)
+wire /color=red /thick=3.5 /viewpoint=-4,-10,2 bump
+frame /file=redwire.png
+wire /color=(100,0,0,25) /thick=3.5 /viewpoint=-4,-10,2 bump
+frame /file=red25wire.png
+wire /color=(100,0,0) /opacity=10 /thick=3.5 /viewpoint=-4,-10,2 bump
+frame /file=red10wire.png
 *** Running ferret script: bn_outline_poly.jnl
-[?1034hset win /xinch=8 /thick=1 /asp=1 /outline=5 1
+set win /xinch=8 /thick=1 /asp=1 /outline=5 1
 let v = 2*3.14159*x[gx=0:1:.01]
 poly/hl=-1:1/vl=-1:1/key/pal=red/thick=1/opac=50 sin(v), cos(v)
 frame /file=outline_poly.pdf
 *** Running ferret script: bn_contourcolor.jnl
-[?1034hset text /font=hershey
+set text /font=hershey
 contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=blue/title="CONTOUR HERSHEY BLUE"  10*sin(i/3)*cos(j/4)
 frame /file=contourcolor_blue.pdf
 set text /font=lucida
@@ -105658,8 +107182,16 @@ contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=green/title="CONTOUR LUCIDA GR
 frame /file=contourcolor_green.pdf
 contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=(60,20,30)/title="CONTOUR LUCIDA (60,20,30)"  10*sin(i/3)*cos(j/4)
 frame /file=contourcolor_puce.pdf
+ 
+ 
+! Test contour labels in different colors
+! Test contour labels on a depth axis
+use gt4d011.cdf
+set text/color=blue contour
+contour/j=40/l=1/color=(30,60,30)/title="CONTOUR depth var with blue labels"  temp
+frame /file=contourcolor_depth.pdf
 *** Running ferret script: bn_inf2missing.jnl
-[?1034h! bn_inf2missing.jnl
+! bn_inf2missing.jnl
 ! test for trac ticket #2009 enhancement
 ! convert any NaN and Inf values in PyEF returned data to the missing value for the array
 !
@@ -105671,7 +107203,7 @@ plot stats_ppf(x[gx=0:1.0:0.01], "norm", {0,1})
 frame /file=bn_inf2missing.pdf
  
 *** Running python script: testgetstrdata.py
-[?1034h
+
 >>> pyferret.run('let strarr = {"one", "two", "three", "four", "five", "six"}')
 (3, '')
 >>> pyferret.run('list strarr')
@@ -105705,7 +107237,7 @@ axis_coords:
 >>> repr(strdict)
 "{'title': 'strarr', 'axis_names': ('ABSTRACT', '', '', '', '', ''), 'axis_types': (6, 7, 7, 7, 7, 7), 'axis_units': ('', '', '', '', '', ''), 'axis_coords': (array([ 1.,  2.,  3.,  4.,  5.,  6.]), None, None, None, None, None), 'missing_value': array(['\\x04'], \n      dtype='|S6'), 'data': array([[[[[['one']]]]],\n\n\n\n\n       [[[[['two']]]]],\n\n\n\n\n       [[[[['three']]]]],\n\n\n\n\n       [[[[['four']]]]],\n\n\n\n\n       [[[[['five']]]]],\n\n\n\n\n       [[[[['six']]]]]], \n    [...]
 *** Running python script: testferregion.py
-[?1034h
+
 >>> emptyregion = pyferret.FerRegion()
 >>> print repr(emptyregion)
 FerRegion()
@@ -105728,7 +107260,7 @@ FerRegion(I='1:20',J='1:60',K='11',L='5',M='1',N='1')
 ...     print 'Error caught: %s' % str(ex)
 Error caught: X and I cannot both be given
 *** Running python script: testferdset.py
-[?1034h
+
 >>> coads = pyferret.FerDSet('coads_climatology.cdf')
 >>> str(coads)
 "FerDSet('coads_climatology.cdf') with variables ['SST']"
@@ -105824,7 +107356,7 @@ ValueError caught with message: pyferret.anondset should be used for the anonymo
 >>> pyferret.anondset.show()
  Created by DEFINE VARIABLE:
 *** Running python script: testfervar.py
-[?1034h
+
 >>> coads = pyferret.FerDSet('coads_climatology.cdf')
 >>> str(coads.sst)
 FerVar(varname='SST', dsetname='coads_climatology.cdf', title = '', defn='SST[d=coads_climatology.cdf]')
@@ -106641,7 +108173,7 @@ array([[ 12.18707085,  18.32330322,  19.59271812],
 >>> pyferret.showdata()
      currently SET data sets:
 *** Running python script: testferaggdset.py
-[?1034h
+
 >>> dsetnames = ['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc']
 >>> onefileagg = pyferret.FerAggDSet(name='onefileagg', dsets=dsetnames[-1:], along='E')
 >>> pyferret.showdata()
@@ -106716,7 +108248,7 @@ FerAggDSet(name='fourfiles', dsets=['./ens1.nc', './ens2.nc', './ens3.nc', './en
 >>> fourfiles.getdsets()
 [FerDSet('./ens1.nc') with variables ['AIRT', 'SST'], FerDSet('./ens2.nc') with variables ['SST'], FerDSet('./ens3.nc') with variables ['SST'], FerDSet('./ens4.nc') with variables ['SST']]
 >>> fourfiles.SST.showgrid()
-    GRID (G006)  Ensemble Aggregetion Grid
+    GRID (G###)  Ensemble Aggregetion Grid
  name       axis              # pts   start                end                 subset
  COADSX116_125 LONGITUDE       10mr   109W                 91W                 full
  COADSY52_60 LATITUDE           9 r   13N                  29N                 full
@@ -106751,7 +108283,7 @@ FerAggDSet(name='', dsets=['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc'],
  SST      SST_IN                           1:10      1:9       ...       1:12
  
 *** Running python script: testferaxis.py
-[?1034h
+
 >>> normax = pyferret.FerAxis()
 >>> print repr(normax)
 FerAxis(coords=None, axtype=7, unit='', name='')
@@ -106939,7 +108471,7 @@ True
 >>> print repr(pyferret.FerAxis._parsegeoslice( slice('03-APR-2005 11:30','23-JUL-2006 23:30','12h') ))
 (4, [3, 4, 2005, 11, 30, 0], [23, 7, 2006, 23, 30, 0], [0, 0, 0, 12.0, 0, 0])
 *** Running python script: testfergrid.py
-[?1034h
+
 >>> nogrid = pyferret.FerGrid()
 >>> print repr(nogrid)
 FerGrid(axes=[
@@ -107083,7 +108615,7 @@ False
 >>> freqgrid.axes[5] == coadsgrid.axes[5]
 True
 *** Running python script: testferpyvar.py
-[?1034h
+
 >>> coads = pyferret.FerDSet('coads_climatology.cdf')
 >>> pyferret.showdata(brief=False)
      currently SET data sets:
@@ -107130,7 +108662,7 @@ True
 >>> pyferret.showdata()
      currently SET data sets:
 *** Running python script: testfermethods.py
-[?1034h
+
 >>> coads_uw  = pyferret.FerDSet('coads_uw.nc')
 >>> coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5
 >>> pyferret.showdata(brief=False)
@@ -107169,4 +108701,3 @@ True
 >>> coads_uw.close()
 >>> pyferret.showdata()
      currently SET data sets:
-Ended at Tue Apr 18 17:19:10 PDT 2017
diff --git a/bench/test_results/pyferret_run_tests_ncdump b/bench/test_results/pyferret_run_tests_ncdump
index d1dbac8..8744353 100644
--- a/bench/test_results/pyferret_run_tests_ncdump
+++ b/bench/test_results/pyferret_run_tests_ncdump
@@ -50,7 +50,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -75,7 +75,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -112,7 +112,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -151,7 +151,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -186,7 +186,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -256,7 +256,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -313,7 +313,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -370,7 +370,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -425,7 +425,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -473,7 +473,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -567,7 +567,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -637,7 +637,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -688,7 +688,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -779,7 +779,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -806,7 +806,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -830,7 +830,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title, longer than the previous limit of 80 characters.  Previously various buffers were set to 80, and storage in ds_title was also too short." ;
 data:
@@ -857,14 +857,14 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_tab_comma_multivar.jnl
 *** Running ferret script: bn_element_functions.jnl
 *** Running ferret script: bn_long_revision_num.jnl
 bn_long_revision_num.jnl --- history attribute
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 *** Running ferret script: bn_window_title.jnl
 *** Running ferret script: bn_last_error.jnl
 *** Running ferret script: bn_deg_min.jnl
@@ -900,7 +900,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -973,7 +973,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1017,7 +1017,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1059,7 +1059,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1167,7 +1167,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -1208,7 +1208,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -1231,7 +1231,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1257,7 +1257,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1277,7 +1277,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1298,7 +1298,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1341,7 +1341,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -1381,7 +1381,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -1419,7 +1419,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -1427,28 +1427,28 @@ netcdf a {
 dimensions:
 	AX002 = 5 ;
 variables:
-	double AX002(AX002) ;
+	double AX002(AX###) ;
 		AX002:point_spacing = "even" ;
 		AX002:axis = "X" ;
-	float A1(AX002) ;
-		A1:missing_value = -1.e+34f ;
-		A1:_FillValue = -1.e+34f ;
+	double A1(AX###) ;
+		A1:missing_value = -1.e+34 ;
+		A1:_FillValue = -1.e+34 ;
 		A1:long_name = "a1" ;
 		A1:three = 1.f, 2.f, 3.f ;
 		A1:history = "From EZ.DAT" ;
-	float A2(AX002) ;
-		A2:missing_value = -1.e+34f ;
-		A2:_FillValue = -1.e+34f ;
+	double A2(AX###) ;
+		A2:missing_value = -1.e+34 ;
+		A2:_FillValue = -1.e+34 ;
 		A2:long_name = "a2" ;
 		A2:history = "From EZ.DAT" ;
-	float A3(AX002) ;
-		A3:missing_value = -1.e+34f ;
-		A3:_FillValue = -1.e+34f ;
+	double A3(AX###) ;
+		A3:missing_value = -1.e+34 ;
+		A3:_FillValue = -1.e+34 ;
 		A3:long_name = "a3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1465,23 +1465,23 @@ netcdf a {
 dimensions:
 	AX012 = 5 ;
 variables:
-	double AX012(AX012) ;
+	double AX012(AX###) ;
 		AX012:point_spacing = "even" ;
 		AX012:axis = "X" ;
-	float V1(AX012) ;
-		V1:missing_value = -1.e+34f ;
-		V1:_FillValue = -1.e+34f ;
+	double V1(AX###) ;
+		V1:missing_value = -1.e+34 ;
+		V1:_FillValue = -1.e+34 ;
 		V1:long_name = "V1" ;
 		V1:strval = "2" ;
 		V1:history = "From EZ.DAT" ;
-	float V4(AX012) ;
-		V4:missing_value = -1.e+34f ;
-		V4:_FillValue = -1.e+34f ;
+	double V4(AX###) ;
+		V4:missing_value = -1.e+34 ;
+		V4:_FillValue = -1.e+34 ;
 		V4:long_name = "V4" ;
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1507,7 +1507,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1553,7 +1553,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -1660,7 +1660,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -1702,7 +1702,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1785,7 +1785,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1822,7 +1822,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1862,7 +1862,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1913,7 +1913,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1972,7 +1972,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2017,7 +2017,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2060,7 +2060,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2095,7 +2095,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2129,7 +2129,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -2159,7 +2159,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -2188,7 +2188,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -2249,7 +2249,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2294,7 +2294,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_transforms.jnl
@@ -2335,7 +2335,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2365,7 +2365,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2395,7 +2395,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2448,7 +2448,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2490,7 +2490,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2508,7 +2508,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_no_valid_on_plot.jnl
@@ -2519,36 +2519,36 @@ netcdf a {
 dimensions:
 	AX002 = 3 ;
 variables:
-	double AX002(AX002) ;
+	double AX002(AX###) ;
 		AX002:point_spacing = "even" ;
 		AX002:axis = "X" ;
-	float MY_ASC(AX002) ;
-		MY_ASC:missing_value = 3.f ;
-		MY_ASC:_FillValue = 3.f ;
+	double MY_ASC(AX###) ;
+		MY_ASC:missing_value = 3. ;
+		MY_ASC:_FillValue = 3. ;
 		MY_ASC:long_name = "chlorophyll" ;
 		MY_ASC:units = "micrograms/L" ;
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
 	AX002 = 3 ;
 variables:
-	double AX002(AX002) ;
+	double AX002(AX###) ;
 		AX002:point_spacing = "even" ;
 		AX002:axis = "X" ;
-	float MY_UNF(AX002) ;
-		MY_UNF:missing_value = 5.f ;
-		MY_UNF:_FillValue = 5.f ;
+	double MY_UNF(AX###) ;
+		MY_UNF:missing_value = 5. ;
+		MY_UNF:_FillValue = 5. ;
 		MY_UNF:long_name = "Some Unformatted input" ;
 		MY_UNF:units = "metres" ;
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -2565,7 +2565,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2586,7 +2586,7 @@ variables:
 		A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2657,7 +2657,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_cdf_keepax.jnl
@@ -2686,7 +2686,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -2713,7 +2713,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_key_label_minmax.jnl
@@ -2818,7 +2818,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -2850,7 +2850,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -2883,7 +2883,7 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_repeated_coords.jnl
@@ -2960,7 +2960,7 @@ variables:
 		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2998,7 +2998,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -3050,7 +3050,7 @@ variables:
 		MYVAR:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -3064,7 +3064,7 @@ variables:
 		MYVAR:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_list_clim_axes.jnl
@@ -3087,9 +3087,10 @@ variables:
 *** Running ferret script: bn_dynamic_gather.jnl
 *** Running ferret script: bn_stat_precision.jnl
 *** Running ferret script: bn_plot_vs_with_time.jnl
-*** Running ferret script: bn_inner.jnl
+*** Running ferret script: bn_dot_product.jnl
 *** Running ferret script: bn_cache_management.jnl
 *** Running ferret script: bn_transp_choose.jnl
+*** Running ferret script: bn_iin_regrid.jnl
 *** Running ferret script: bn_gif.jnl
 *** Running ferret script: bn_ps.jnl
 *** Running ferret script: bn_all_ef.jnl
@@ -3748,11 +3749,12 @@ variables:
 		tmonth:history = "added to /home/data/socat/socatV3/492C/492C19881104.nc" ;
 
 // global attributes:
-		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:history = "PyFerret V7.2 (beta/debug) DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:featureType = "Trajectory" ;
 		:decimation = "218 original number of obs. Piecewise decimated to 23 obs using tolerances: lon 1, lat 1, fco2_rec 4" ;
 }
+*** Running ferret script: bn_color_wire.jnl
 *** Running ferret script: bn_outline_poly.jnl
 *** Running ferret script: bn_contourcolor.jnl
 *** Running ferret script: bn_inf2missing.jnl
diff --git a/bench/test_results/red10wire.png b/bench/test_results/red10wire.png
new file mode 100644
index 0000000..086a789
Binary files /dev/null and b/bench/test_results/red10wire.png differ
diff --git a/bench/test_results/red25wire.png b/bench/test_results/red25wire.png
new file mode 100644
index 0000000..f28a726
Binary files /dev/null and b/bench/test_results/red25wire.png differ
diff --git a/bench/test_results/redwire.png b/bench/test_results/redwire.png
new file mode 100644
index 0000000..f433309
Binary files /dev/null and b/bench/test_results/redwire.png differ
diff --git a/bench/test_results/startup_tests2.pdf b/bench/test_results/startup_tests2.pdf
index 89f3378..fca19bf 100644
Binary files a/bench/test_results/startup_tests2.pdf and b/bench/test_results/startup_tests2.pdf differ
diff --git a/bench/test_results/testbackground.gif b/bench/test_results/testbackground.gif
index cb2bb8c..2a63d55 100644
Binary files a/bench/test_results/testbackground.gif and b/bench/test_results/testbackground.gif differ
diff --git a/bench/test_results/testfermethods_contour.pdf b/bench/test_results/testfermethods_contour.pdf
index 9991ad3..aecee16 100644
Binary files a/bench/test_results/testfermethods_contour.pdf and b/bench/test_results/testfermethods_contour.pdf differ
diff --git a/bench/test_results/testfermethods_fill.pdf b/bench/test_results/testfermethods_fill.pdf
index 8554d98..c4a1414 100644
Binary files a/bench/test_results/testfermethods_fill.pdf and b/bench/test_results/testfermethods_fill.pdf differ
diff --git a/bench/test_results/testfermethods_lineplot.pdf b/bench/test_results/testfermethods_lineplot.pdf
index 6040f97..5048826 100644
Binary files a/bench/test_results/testfermethods_lineplot.pdf and b/bench/test_results/testfermethods_lineplot.pdf differ
diff --git a/bench/test_results/testfermethods_pointplot.pdf b/bench/test_results/testfermethods_pointplot.pdf
index 738e956..f6b8016 100644
Binary files a/bench/test_results/testfermethods_pointplot.pdf and b/bench/test_results/testfermethods_pointplot.pdf differ
diff --git a/bench/test_results/testfermethods_shade.pdf b/bench/test_results/testfermethods_shade.pdf
index 7a296c4..aed7c4a 100644
Binary files a/bench/test_results/testfermethods_shade.pdf and b/bench/test_results/testfermethods_shade.pdf differ
diff --git a/bench/test_results/testferpyvar.pdf b/bench/test_results/testferpyvar.pdf
index ed22f7b..8cfad84 100644
Binary files a/bench/test_results/testferpyvar.pdf and b/bench/test_results/testferpyvar.pdf differ
diff --git a/bench/test_results/timetics.pdf b/bench/test_results/timetics.pdf
index b116afb..288b92a 100644
Binary files a/bench/test_results/timetics.pdf and b/bench/test_results/timetics.pdf differ
diff --git a/bench/test_results/timetics2.pdf b/bench/test_results/timetics2.pdf
index 51cba2e..a1bb872 100644
Binary files a/bench/test_results/timetics2.pdf and b/bench/test_results/timetics2.pdf differ
diff --git a/bench/test_results/vec_curv.pdf b/bench/test_results/vec_curv.pdf
index 7edcdc5..55a3910 100644
Binary files a/bench/test_results/vec_curv.pdf and b/bench/test_results/vec_curv.pdf differ
diff --git a/bench/test_results/vec_curv2.pdf b/bench/test_results/vec_curv2.pdf
index 1394ad8..1088b4d 100644
Binary files a/bench/test_results/vec_curv2.pdf and b/bench/test_results/vec_curv2.pdf differ
diff --git a/bench/test_results/viewaxes.pdf b/bench/test_results/viewaxes.pdf
index 9145517..c94a727 100644
Binary files a/bench/test_results/viewaxes.pdf and b/bench/test_results/viewaxes.pdf differ
diff --git a/bench/test_results/vs_lon_over.gif b/bench/test_results/vs_lon_over.gif
new file mode 100644
index 0000000..30eb216
Binary files /dev/null and b/bench/test_results/vs_lon_over.gif differ
diff --git a/bench/test_results/vs_lon_over.png b/bench/test_results/vs_lon_over.png
new file mode 100644
index 0000000..f013750
Binary files /dev/null and b/bench/test_results/vs_lon_over.png differ
diff --git a/external_functions/ef_utility/site_specific.mk b/external_functions/ef_utility/site_specific.mk
index f436540..bdd71e4 100644
--- a/external_functions/ef_utility/site_specific.mk
+++ b/external_functions/ef_utility/site_specific.mk
@@ -11,8 +11,8 @@
 ## This value is used to determine which platform_specific.mk
 ## file to include in the Makefiles.
 ## =========================
-BUILDTYPE = $(HOSTTYPE)
-# BUILDTYPE = x86_64-linux
+# BUILDTYPE = $(HOSTTYPE)
+BUILDTYPE = x86_64-linux
 # BUILDTYPE = x86_64-linux-gnu
 # BUILDTYPE = i386-linux
 # BUILDTYPE = i386-linux-gnu
diff --git a/external_functions/examples/dates.F b/external_functions/examples/dates.F
index 4ca1d9d..8723fb4 100644
--- a/external_functions/examples/dates.F
+++ b/external_functions/examples/dates.F
@@ -54,7 +54,7 @@
 *                                                                     V
 
       CALL ef_set_desc(id,
-     .        'Returns a string array of dates derived ' //
+     .        'Demo function: Returns a string array of dates derived ' //
      .        'from the time axis and the given offsets')
       CALL ef_set_num_args(id, 1)
       CALL ef_set_axis_inheritance_6d(id,
@@ -68,7 +68,8 @@
       arg = 1
       CALL ef_set_arg_name(id, arg, 'Offsets')
       CALL ef_set_arg_desc(id, arg,
-     .        'Offsets from the time given by time axis')
+     .        'Variable on a time axis, containing offsets from the ' //
+     .        'coordinates of the axis, in the units of the axis')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              YES, YES, YES, YES, YES, YES)
 
@@ -187,7 +188,7 @@
 
       INTEGER i,  j,  k,  l,  m,  n
       INTEGER i1, j1, k1, l1, m1, n1
-      INTEGER taxnum, slen, idx
+      INTEGER taxnum, slen, idx, dim
       REAL*8 newtime
       CHARACTER*20 datebuf
       CHARACTER*255 errtxt
@@ -202,6 +203,7 @@
          errtxt = 'Offsets does not have a time axis'
          GOTO 999
       ENDIF
+      dim = T_AXIS
 
 * Get the time axis coordinates
       CALL ef_get_coordinates(id, ARG1, T_AXIS, arg_lo_ss(T_AXIS, ARG1),
@@ -235,7 +237,7 @@
 *              Convert newtime into a date string.
 *              ef_get_axis_dates can work with an array of times,
 *              returning an array of date strings; here we just do one
-               CALL ef_get_axis_dates(id, ARG1, newtime, 1, datebuf)
+               CALL ef_get_axis_dates(id, ARG1, newtime, dim, 1, datebuf)
 
 *              Get the actual length of the string
                DO 15 idx = 20, 1, -1
diff --git a/fer/ccr/EF_InternalUtil.c b/fer/ccr/EF_InternalUtil.c
index d4f8642..71411d7 100644
--- a/fer/ccr/EF_InternalUtil.c
+++ b/fer/ccr/EF_InternalUtil.c
@@ -57,27 +57,27 @@
  *  3.  internal_dlsym lines at the end
 
 * Jonathan Callahan and Ansley Manke  30-May-2000
- * Fix memory leak:  already_have_internals needs to be tested for when 
+ * Fix memory leak:  already_have_internals needs to be tested for when
  * we find the external function in efcn_gather_info  and set TRUE once
  * the internals have been set for the first time, also in efcn_gather_info.
 
 * Ansley Manke  August 2001
  * add EOF_SPACE, EOF_STAT, EOF_TFUNC to the functions that are
- * statically linked 
+ * statically linked
 
 * V5.4 *acm* 10/01 add compress* to the statically linked fcns
 * v6.0 *acm*  5/06 many more functions internally linked.
 * V6.0 *acm*  5/06 string results for external functions
 * v6.0 *acm*  5/06 internal_dlsym was missing the nco functions.
 * V6.03 *acm& 5/07 Add tax_ functions, fill_xy to the statically-linked functions
-* V6.07 *acm* 8/07 remove xunits_data from list of I_EFnames; it should never 
+* V6.07 *acm* 8/07 remove xunits_data from list of I_EFnames; it should never
 *                  have been there.
 * V6.12 *acm* 8/07 add functions scat2grid_bin_xy and scat2grid_nobs_xy.F
 * V6.2 *acm* 11/08 New functions XCAT_STR, YCAT_STR, ...
 * V6.2 *acm* 11/08 New internally-called function efcn_get_alt_type_fcn to
 *                  get the name of a function to call if the arguments are of
-*                  a different type than defined in the current function. E.g. 
-*                  this lets the user reference XCAT with string arguments and  
+*                  a different type than defined in the current function. E.g.
+*                  this lets the user reference XCAT with string arguments and
 *                  Ferret will run XCAT_STR
 * V6.6 *acm* 4/10 add functions scat2grid_nbin_xy and scat2grid_nbin_xyt.F
 * V664 *kms*  9/10 Added python-backed external functions via $FER_DIR/lib/libpyefcn.so
@@ -85,11 +85,11 @@
 *                  Check that GLOBAL_ExternalFunctionsList is not NULL in ef_ptr_from_id_ptr
 *      *kms* 11/10 Check for libpyefcn.so in $FER_LIBS instead of $FER_DIR/lib
 *      *kms* 12/10 Eliminated libpyefcn.so; link to pyefcn static library
-*                  This makes libpython2.X a required library.
+*                  This makes libpython... a required library.
 * *acm*  1/12      - Ferret 6.8 ifdef double_p for double-precision ferret, see the
 *					 definition of macro DFTYPE in ferret.h
-*      *kms*  3/12 Add E and F dimensions 
-*      *acm*  6/14 New separate function for DSG files 
+*      *kms*  3/12 Add E and F dimensions
+*      *acm*  6/14 New separate function for DSG files
 *      *acm*  9/14 Make DATE1900 accept an array of date strings, returning an array of coordinates
 *      *acm*  2/15 TAX_DATESTRING works on an F or a T axis
 *      *acm*  2/15 new Functions TIME_REFORMAT, FT_TO_ORTHOGONAL
@@ -161,7 +161,7 @@ static void *internal_dlsym(char *name);
 /*
  * Note that all routines called directly from Ferret,
  * ie. directly from Fortran, should be all lower case,
- * be of type 'void', pass by reference and should end with 
+ * be of type 'void', pass by reference and should end with
  * an underscore.
  */
 
@@ -204,7 +204,7 @@ void FORTRAN(efcn_get_arg_name)( int *, int *, char * );
 void FORTRAN(efcn_get_arg_unit)( int *, int *, char * );
 void FORTRAN(efcn_get_arg_desc)( int *, int *, char * );
 int  FORTRAN(efcn_get_rtn_type)( int *);
-void FORTRAN(efcn_rqst_mr_ptrs)( int *, int *, int * ); // narg, mr_list, mres 
+void FORTRAN(efcn_rqst_mr_ptrs)( int *, int *, int * ); // narg, mr_list, mres
 void FORTRAN(efcn_pass_arg_ptr)(int *, DFTYPE *);
 void FORTRAN(efcn_pass_res_ptr)(DFTYPE *);
 
@@ -240,7 +240,7 @@ int  EF_ListTraverse_FoundID( char *, char * );
 int  EF_New( ExternalFunction * );
 
 /*  ------------------------------------
- *  Statically linked external functions 
+ *  Statically linked external functions
  *  Declarations generated by the perl script int_dlsym.pl.
  *  Need to fill out the arguments for the _compute subroutines.
  */
@@ -249,27 +249,27 @@ void FORTRAN(ffta_init)(int *);
 void FORTRAN(ffta_custom_axes)(int *);
 void FORTRAN(ffta_result_limits)(int *);
 void FORTRAN(ffta_work_size)(int *);
-void FORTRAN(ffta_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(ffta_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(fftp_init)(int *);
 void FORTRAN(fftp_custom_axes)(int *);
 void FORTRAN(fftp_result_limits)(int *);
 void FORTRAN(fftp_work_size)(int *);
-void FORTRAN(fftp_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(fftp_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(fft_im_init)(int *);
 void FORTRAN(fft_im_custom_axes)(int *);
 void FORTRAN(fft_im_result_limits)(int *);
 void FORTRAN(fft_im_work_size)(int *);
-void FORTRAN(fft_im_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(fft_im_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(fft_inverse_init)(int *);
 void FORTRAN(fft_inverse_result_limits)(int *);
 void FORTRAN(fft_inverse_work_size)(int *);
-void FORTRAN(fft_inverse_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(fft_inverse_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(fft_re_init)(int *);
@@ -281,7 +281,7 @@ void FORTRAN(fft_re_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTY
 void FORTRAN(sampleij_init)(int *);
 void FORTRAN(sampleij_result_limits)(int *);
 void FORTRAN(sampleij_work_size)(int *);
-void FORTRAN(sampleij_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(sampleij_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
        DFTYPE *, DFTYPE *, DFTYPE *);
 
 
@@ -289,33 +289,38 @@ void FORTRAN(samplei_multi_init)(int *);
 void FORTRAN(samplei_multi_result_limits)(int *);
 void FORTRAN(samplei_multi_compute)(int *, DFTYPE *, DFTYPE *);
 
-
 void FORTRAN(samplej_multi_init)(int *);
 void FORTRAN(samplej_multi_result_limits)(int *);
 void FORTRAN(samplej_multi_compute)(int *, DFTYPE *, DFTYPE *);
 
-
 void FORTRAN(samplek_multi_init)(int *);
 void FORTRAN(samplek_multi_result_limits)(int *);
 void FORTRAN(samplek_multi_compute)(int *, DFTYPE *, DFTYPE *);
 
-
 void FORTRAN(samplel_multi_init)(int *);
 void FORTRAN(samplel_multi_result_limits)(int *);
 void FORTRAN(samplel_multi_compute)(int *, DFTYPE *, DFTYPE *);
 
+void FORTRAN(samplem_multi_init)(int *);
+void FORTRAN(samplem_multi_result_limits)(int *);
+void FORTRAN(samplem_multi_compute)(int *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(samplen_multi_init)(int *);
+void FORTRAN(samplen_multi_result_limits)(int *);
+void FORTRAN(samplen_multi_compute)(int *, DFTYPE *, DFTYPE *);
+
 void FORTRAN(samplet_date_init)(int *);
 void FORTRAN(samplet_date_result_limits)(int *);
 void FORTRAN(samplet_date_work_size)(int *);
 void FORTRAN(samplet_date_compute)(int *, DFTYPE *, DFTYPE *,
-      DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+      DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
       DFTYPE *, DFTYPE *);
 
 void FORTRAN(samplef_date_init)(int *);
 void FORTRAN(samplef_date_result_limits)(int *);
 void FORTRAN(samplef_date_work_size)(int *);
 void FORTRAN(samplef_date_compute)(int *, DFTYPE *, DFTYPE *,
-      DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+      DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
       DFTYPE *, DFTYPE *);
 
 
@@ -339,246 +344,242 @@ void FORTRAN(samplexyt_nrst_compute)(int *, DFTYPE *, DFTYPE *,
 
 void FORTRAN(scat2gridgauss_xy_init)(int *);
 void FORTRAN(scat2gridgauss_xy_work_size)(int *);
-void FORTRAN(scat2gridgauss_xy_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_xy_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_xz_init)(int *);
 void FORTRAN(scat2gridgauss_xz_work_size)(int *);
-void FORTRAN(scat2gridgauss_xz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_xz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_yz_init)(int *);
 void FORTRAN(scat2gridgauss_yz_work_size)(int *);
-void FORTRAN(scat2gridgauss_yz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_yz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_xt_init)(int *);
 void FORTRAN(scat2gridgauss_xt_work_size)(int *);
-void FORTRAN(scat2gridgauss_xt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_xt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_yt_init)(int *);
 void FORTRAN(scat2gridgauss_yt_work_size)(int *);
-void FORTRAN(scat2gridgauss_yt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_yt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_zt_init)(int *);
 void FORTRAN(scat2gridgauss_zt_work_size)(int *);
-void FORTRAN(scat2gridgauss_zt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_zt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_xy_v0_init)(int *);
 void FORTRAN(scat2gridgauss_xy_v0_work_size)(int *);
-void FORTRAN(scat2gridgauss_xy_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_xy_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_xz_v0_init)(int *);
 void FORTRAN(scat2gridgauss_xz_v0_work_size)(int *);
-void FORTRAN(scat2gridgauss_xz_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_xz_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_yz_v0_init)(int *);
 void FORTRAN(scat2gridgauss_yz_v0_work_size)(int *);
-void FORTRAN(scat2gridgauss_yz_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_yz_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_xt_v0_init)(int *);
 void FORTRAN(scat2gridgauss_xt_v0_work_size)(int *);
-void FORTRAN(scat2gridgauss_xt_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_xt_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_yt_v0_init)(int *);
 void FORTRAN(scat2gridgauss_yt_v0_work_size)(int *);
-void FORTRAN(scat2gridgauss_yt_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_yt_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridgauss_zt_v0_init)(int *);
 void FORTRAN(scat2gridgauss_zt_v0_work_size)(int *);
-void FORTRAN(scat2gridgauss_zt_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridgauss_zt_v0_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridlaplace_xy_init)(int *);
 void FORTRAN(scat2gridlaplace_xy_work_size)(int *);
-void FORTRAN(scat2gridlaplace_xy_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridlaplace_xy_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridlaplace_xz_init)(int *);
 void FORTRAN(scat2gridlaplace_xz_work_size)(int *);
-void FORTRAN(scat2gridlaplace_xz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridlaplace_xz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridlaplace_yz_init)(int *);
 void FORTRAN(scat2gridlaplace_yz_work_size)(int *);
-void FORTRAN(scat2gridlaplace_yz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridlaplace_yz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *);
 
 
 void FORTRAN(scat2gridlaplace_xt_init)(int *);
 void FORTRAN(scat2gridlaplace_xt_work_size)(int *);
-void FORTRAN(scat2gridlaplace_xt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridlaplace_xt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridlaplace_yt_init)(int *);
 void FORTRAN(scat2gridlaplace_yt_work_size)(int *);
-void FORTRAN(scat2gridlaplace_yt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridlaplace_yt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2gridlaplace_zt_init)(int *);
 void FORTRAN(scat2gridlaplace_zt_work_size)(int *);
-void FORTRAN(scat2gridlaplace_zt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2gridlaplace_zt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *);
 
 void FORTRAN(sorti_init)(int *);
 void FORTRAN(sorti_result_limits)(int *);
 void FORTRAN(sorti_work_size)(int *);
-void FORTRAN(sorti_compute)(int *, DFTYPE *, DFTYPE *, 
+void FORTRAN(sorti_compute)(int *, DFTYPE *, DFTYPE *,
       DFTYPE *, DFTYPE *);
 
 void FORTRAN(sorti_str_init)(int *);
 void FORTRAN(sorti_str_result_limits)(int *);
 void FORTRAN(sorti_str_work_size)(int *);
-void FORTRAN(sorti_str_compute)(int *, char *, DFTYPE *, 
+void FORTRAN(sorti_str_compute)(int *, char *, DFTYPE *,
       char *, DFTYPE *);
-                   
+
 void FORTRAN(sortj_init)(int *);
 void FORTRAN(sortj_result_limits)(int *);
 void FORTRAN(sortj_work_size)(int *);
-void FORTRAN(sortj_compute)(int *, DFTYPE *, DFTYPE *, 
+void FORTRAN(sortj_compute)(int *, DFTYPE *, DFTYPE *,
       DFTYPE *, DFTYPE *);
 
 void FORTRAN(sortj_str_init)(int *);
 void FORTRAN(sortj_str_result_limits)(int *);
 void FORTRAN(sortj_str_work_size)(int *);
-void FORTRAN(sortj_str_compute)(int *, char *, DFTYPE *, 
+void FORTRAN(sortj_str_compute)(int *, char *, DFTYPE *,
       char *, DFTYPE *);
 
 void FORTRAN(sortk_init)(int *);
 void FORTRAN(sortk_result_limits)(int *);
 void FORTRAN(sortk_work_size)(int *);
-void FORTRAN(sortk_compute)(int *, DFTYPE *, DFTYPE *, 
+void FORTRAN(sortk_compute)(int *, DFTYPE *, DFTYPE *,
       DFTYPE *, DFTYPE *);
 
 void FORTRAN(sortk_str_init)(int *);
 void FORTRAN(sortk_str_result_limits)(int *);
 void FORTRAN(sortk_str_work_size)(int *);
-void FORTRAN(sortk_str_compute)(int *, char *, DFTYPE *, 
+void FORTRAN(sortk_str_compute)(int *, char *, DFTYPE *,
       char *, DFTYPE *);
 
 void FORTRAN(sortl_init)(int *);
 void FORTRAN(sortl_result_limits)(int *);
 void FORTRAN(sortl_work_size)(int *);
-void FORTRAN(sortl_compute)(int *, DFTYPE *, DFTYPE *, 
+void FORTRAN(sortl_compute)(int *, DFTYPE *, DFTYPE *,
       DFTYPE *, DFTYPE *);
 
 void FORTRAN(sortl_str_init)(int *);
 void FORTRAN(sortl_str_result_limits)(int *);
 void FORTRAN(sortl_str_work_size)(int *);
-void FORTRAN(sortl_str_compute)(int *, char *, DFTYPE *, 
+void FORTRAN(sortl_str_compute)(int *, char *, DFTYPE *,
       char *, DFTYPE *);
 
 
 void FORTRAN(sortm_init)(int *);
 void FORTRAN(sortm_result_limits)(int *);
 void FORTRAN(sortm_work_size)(int *);
-void FORTRAN(sortm_compute)(int *, DFTYPE *, DFTYPE *, 
+void FORTRAN(sortm_compute)(int *, DFTYPE *, DFTYPE *,
       DFTYPE *, DFTYPE *);
 
 void FORTRAN(sortm_str_init)(int *);
 void FORTRAN(sortm_str_result_limits)(int *);
 void FORTRAN(sortm_str_work_size)(int *);
-void FORTRAN(sortm_str_compute)(int *, char *, DFTYPE *, 
+void FORTRAN(sortm_str_compute)(int *, char *, DFTYPE *,
       char *, DFTYPE *);
 
 
 void FORTRAN(sortn_init)(int *);
 void FORTRAN(sortn_result_limits)(int *);
 void FORTRAN(sortn_work_size)(int *);
-void FORTRAN(sortn_compute)(int *, DFTYPE *, DFTYPE *, 
+void FORTRAN(sortn_compute)(int *, DFTYPE *, DFTYPE *,
       DFTYPE *, DFTYPE *);
 
 void FORTRAN(sortn_str_init)(int *);
 void FORTRAN(sortn_str_result_limits)(int *);
 void FORTRAN(sortn_str_work_size)(int *);
-void FORTRAN(sortn_str_compute)(int *, char *, DFTYPE *, 
+void FORTRAN(sortn_str_compute)(int *, char *, DFTYPE *,
       char *, DFTYPE *);
 
 void FORTRAN(tauto_cor_init)(int *);
 void FORTRAN(tauto_cor_result_limits)(int *);
 void FORTRAN(tauto_cor_work_size)(int *);
-void FORTRAN(tauto_cor_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(tauto_cor_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *);
 
 void FORTRAN(xauto_cor_init)(int *);
 void FORTRAN(xauto_cor_result_limits)(int *);
 void FORTRAN(xauto_cor_work_size)(int *);
-void FORTRAN(xauto_cor_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(xauto_cor_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *);
-						   
+						
 void FORTRAN(eof_space_init)(int *);
 void FORTRAN(eof_space_result_limits)(int *);
 void FORTRAN(eof_space_work_size)(int *);
-void FORTRAN(eof_space_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(eof_space_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
-						   
+						
 void FORTRAN(eof_stat_init)(int *);
 void FORTRAN(eof_stat_result_limits)(int *);
 void FORTRAN(eof_stat_work_size)(int *);
-void FORTRAN(eof_stat_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(eof_stat_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
-						   
+						
 void FORTRAN(eof_tfunc_init)(int *);
 void FORTRAN(eof_tfunc_result_limits)(int *);
 void FORTRAN(eof_tfunc_work_size)(int *);
-void FORTRAN(eof_tfunc_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(eof_tfunc_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
-						   
-						   
+						
+						
 void FORTRAN(eofsvd_space_init)(int *);
 void FORTRAN(eofsvd_space_result_limits)(int *);
 void FORTRAN(eofsvd_space_work_size)(int *);
-void FORTRAN(eofsvd_space_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(eofsvd_space_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *);
-						   
+						
 void FORTRAN(eofsvd_stat_init)(int *);
 void FORTRAN(eofsvd_stat_result_limits)(int *);
 void FORTRAN(eofsvd_stat_work_size)(int *);
-void FORTRAN(eofsvd_stat_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(eofsvd_stat_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *);
-						   
+						
 void FORTRAN(eofsvd_tfunc_init)(int *);
 void FORTRAN(eofsvd_tfunc_result_limits)(int *);
 void FORTRAN(eofsvd_tfunc_work_size)(int *);
-void FORTRAN(eofsvd_tfunc_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(eofsvd_tfunc_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+                           DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *);
- 
-void FORTRAN(bcompressi_init)(int *);
-void FORTRAN(bcompressi_result_limits)(int *);
-void FORTRAN(bcompressi_compute)(int *, DFTYPE *, DFTYPE *);
- 
+
 void FORTRAN(compressi_init)(int *);
 void FORTRAN(compressi_result_limits)(int *);
 void FORTRAN(compressi_compute)(int *, DFTYPE *, DFTYPE *);
@@ -656,7 +657,7 @@ void FORTRAN(curv_range_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
 void FORTRAN(curv_to_rect_map_init)(int *);
 void FORTRAN(curv_to_rect_map_result_limits)(int *);
 void FORTRAN(curv_to_rect_map_work_size)(int *);
-void FORTRAN(curv_to_rect_map_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(curv_to_rect_map_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                                        DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 void FORTRAN(curv_to_rect_init)(int *);
 void FORTRAN(curv_to_rect_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
@@ -666,7 +667,7 @@ void FORTRAN(curv_to_rect_fsu_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(rect_to_curv_init)(int *);
 void FORTRAN(rect_to_curv_work_size)(int *);
-void FORTRAN(rect_to_curv_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(rect_to_curv_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                                        DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(date1900_init)(int *);
@@ -718,10 +719,11 @@ void FORTRAN(expndi_id_by_z_counts_result_limits)(int *);
 void FORTRAN(expndi_id_by_z_counts_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(expndi_by_m_counts_init)(int *);
-void FORTRAN(expndi_by_m_counts_result_limits)(int *);
-void FORTRAN(expndi_by_m_counts_custom_axes)(int *);
 void FORTRAN(expndi_by_m_counts_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
+void FORTRAN(expndi_by_m_counts_str_init)(int *);
+void FORTRAN(expndi_by_m_counts_str_compute)(int *, char, DFTYPE *, DFTYPE *, DFTYPE *, char);
+
 void FORTRAN(fc_isubset_init)(int *);
 void FORTRAN(fc_isubset_result_limits)(int *);
 void FORTRAN(fc_isubset_custom_axes)(int *);
@@ -730,13 +732,13 @@ void FORTRAN(fc_isubset_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
 void FORTRAN(findhi_init)(int *);
 void FORTRAN(findhi_result_limits)(int *);
 void FORTRAN(findhi_work_size)(int *);
-void FORTRAN(findhi_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(findhi_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                             DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(findlo_init)(int *);
 void FORTRAN(findlo_result_limits)(int *);
 void FORTRAN(findlo_work_size)(int *);
-void FORTRAN(findlo_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(findlo_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                             DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(is_element_of_init)(int *);
@@ -754,12 +756,12 @@ void FORTRAN(is_element_of_str_n_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(lanczos_init)(int *);
 void FORTRAN(lanczos_work_size)(int *);
-void FORTRAN(lanczos_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(lanczos_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                             DFTYPE *, DFTYPE *);
 
 void FORTRAN(lsl_lowpass_init)(int *);
 void FORTRAN(lsl_lowpass_work_size)(int *);
-void FORTRAN(lsl_lowpass_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(lsl_lowpass_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
                             DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 							
 
@@ -787,6 +789,12 @@ void FORTRAN(samplexy_closest_work_size)(int *);
 void FORTRAN(samplexy_closest_compute)(int *, DFTYPE *, DFTYPE *,
       DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
+void FORTRAN(samplexy_nrst_init)(int *);
+void FORTRAN(samplexy_nrst_result_limits)(int *);
+void FORTRAN(samplexy_nrst_work_size)(int *);
+void FORTRAN(samplexy_nrst_compute)(int *, DFTYPE *, DFTYPE *,
+      DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
 void FORTRAN(samplexz_init)(int *);
 void FORTRAN(samplexz_result_limits)(int *);
 void FORTRAN(samplexz_work_size)(int *);
@@ -880,11 +888,6 @@ void FORTRAN(xcat_str_init)(int *);
 void FORTRAN(xcat_str_result_limits)(int *);
 void FORTRAN(xcat_str_compute)(int *, char *, char *, char *);
 
-void FORTRAN(bxcat_init)(int *);
-void FORTRAN(bxcat_result_limits)(int *);
-void FORTRAN(bxcat_custom_axes)(int *);
-void FORTRAN(bxcat_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
-
 void FORTRAN(ycat_init)(int *);
 void FORTRAN(ycat_result_limits)(int *);
 void FORTRAN(ycat_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
@@ -951,17 +954,17 @@ void FORTRAN(freverse_compute)(int *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(zaxreplace_avg_init)(int *);
 void FORTRAN(zaxreplace_avg_work_size)(int *);
-void FORTRAN(zaxreplace_avg_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(zaxreplace_avg_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
              DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(zaxreplace_bin_init)(int *);
 void FORTRAN(zaxreplace_bin_work_size)(int *);
-void FORTRAN(zaxreplace_bin_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(zaxreplace_bin_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
              DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(zaxreplace_rev_init)(int *);
 void FORTRAN(zaxreplace_rev_work_size)(int *);
-void FORTRAN(zaxreplace_rev_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(zaxreplace_rev_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
              DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(zaxreplace_zlev_init)(int *);
@@ -1024,20 +1027,20 @@ void FORTRAN(scat2grid_bin_xy_compute)(int *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2grid_bin_xyt_init)(int *);
 void FORTRAN(scat2grid_bin_xyt_work_size)(int *);
-void FORTRAN(scat2grid_bin_xyt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2grid_bin_xyt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
   DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2grid_bin_xyz_init)(int *);
 void FORTRAN(scat2grid_bin_xyz_work_size)(int *);
-void FORTRAN(scat2grid_bin_xyz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2grid_bin_xyz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
   DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2grid_bin_xyzt_init)(int *);
 void FORTRAN(scat2grid_bin_xyzt_work_size)(int *);
-void FORTRAN(scat2grid_bin_xyzt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2grid_bin_xyzt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
   DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2grid_nbin_xy_init)(int *);
@@ -1046,14 +1049,14 @@ void FORTRAN(scat2grid_nbin_xy_compute)(int *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2grid_nbin_xyt_init)(int *);
 void FORTRAN(scat2grid_nbin_xyt_work_size)(int *);
-void FORTRAN(scat2grid_nbin_xyt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2grid_nbin_xyt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
   DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2grid_nobs_xyt_init)(int *);
 void FORTRAN(scat2grid_nobs_xyt_work_size)(int *);
-void FORTRAN(scat2grid_nobs_xyt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
-  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(scat2grid_nobs_xyt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
   DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2grid_nobs_xy_init)(int *);
@@ -1076,7 +1079,7 @@ void FORTRAN(floatstr_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(pt_in_poly_init)(int *);
 void FORTRAN(pt_in_poly_work_size)(int *);
-void FORTRAN(pt_in_poly_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+void FORTRAN(pt_in_poly_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
   DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(list_value_xml_init)(int *);
@@ -1117,25 +1120,14 @@ void FORTRAN(sample_fast_i_str_compute)(int *, char *, DFTYPE *, char *);
 void FORTRAN(piecewise3_init)(int *);
 void FORTRAN(piecewise3_result_limits)(int *);
 void FORTRAN(piecewise3_work_size)(int *);
-void FORTRAN(piecewise3_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
-  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
-  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *); 
+void FORTRAN(piecewise3_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(write_webrow_gwt_init)(int *);
 void FORTRAN(write_webrow_gwt_result_limits)(int *);
 void FORTRAN(write_webrow_gwt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
-void FORTRAN(bxsequence_init)(int *);
-void FORTRAN(bxsequence_result_limits)(int *);
-void FORTRAN(bxsequence_custom_axes)(int *);
-void FORTRAN(bxsequence_compute)(int *, DFTYPE *, DFTYPE *);
-
-void FORTRAN(bxsequence_str_init)(int *);
-void FORTRAN(bxsequence_str_result_limits)(int *);
-void FORTRAN(bxsequence_str_custom_axes)(int *);
-void FORTRAN(bxsequence_str_compute)(int *, char *, char *);
-
-
 void FORTRAN(str_noblanks_init)(int *);
 void FORTRAN(str_noblanks_compute)(int *, char *, char *);
 
@@ -1146,24 +1138,53 @@ void FORTRAN(expndi_to_et_init)(int *);
 void FORTRAN(expndi_to_et_work_size)(int *);
 void FORTRAN(expndi_to_et_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
-void FORTRAN(innerproduct_x_init)(int *);
-void FORTRAN(innerproduct_x_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
-
-void FORTRAN(innerproduct_y_init)(int *);
-void FORTRAN(innerproduct_y_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
-
-void FORTRAN(innerproduct_z_init)(int *);
-void FORTRAN(innerproduct_z_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
-
-void FORTRAN(innerproduct_t_init)(int *);
-void FORTRAN(innerproduct_t_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
-
-void FORTRAN(innerproduct_e_init)(int *);
-void FORTRAN(innerproduct_e_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
-
-void FORTRAN(innerproduct_f_init)(int *);
-void FORTRAN(innerproduct_f_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
-
+void FORTRAN(dot_x_init)(int *);
+void FORTRAN(dot_x_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(dot_y_init)(int *);
+void FORTRAN(dot_y_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(dot_z_init)(int *);
+void FORTRAN(dot_z_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(dot_t_init)(int *);
+void FORTRAN(dot_t_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(dot_e_init)(int *);
+void FORTRAN(dot_e_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(dot_f_init)(int *);
+void FORTRAN(dot_f_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(tracks2grid_mask_ave_xyt_init)(int *);
+void FORTRAN(tracks2grid_mask_ave_xyt_work_size)(int *);
+void FORTRAN(tracks2grid_mask_ave_xyt_compute)(int *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN( tracks2grid_std_xyt_init)(int *);
+void FORTRAN( tracks2grid_std_xyt_work_size)(int *);
+void FORTRAN( tracks2grid_std_xyt_compute)(int *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(scat2grid_minmax_xyt_init)(int *);
+void FORTRAN(scat2grid_minmax_xyt_result_limits)(int *);
+void FORTRAN(scat2grid_minmax_xyt_work_size)(int *);
+void FORTRAN(scat2grid_minmax_xyt_compute)(int *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+
+void FORTRAN( scat2grid_std_xyt_init)(int *);
+void FORTRAN( scat2grid_std_xyt_work_size)(int *);
+void FORTRAN( scat2grid_std_xyt_compute)(int *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 /*
  *  End of declarations for internally linked external functions
  *  ------------------------------------ */
@@ -1189,8 +1210,8 @@ void FORTRAN(innerproduct_f_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
 int FORTRAN(efcn_scan)( int *gfcn_num_internal )
 {
   FILE *file_ptr=NULL;
-  ExternalFunction ef; 
- 
+  ExternalFunction ef;
+
   char file[EF_MAX_NAME_LENGTH]="";
   char *path_ptr=NULL, path[8192]="";
   char paths[8192]="", cmd[EF_MAX_DESCRIPTION_LENGTH]="";
@@ -1198,220 +1219,224 @@ int FORTRAN(efcn_scan)( int *gfcn_num_internal )
   int i_intEF;
 
   static int return_val=0; /* static because it needs to exist after the return statement */
-    
+
 /*  ------------------------------------
  *  Count and list the names of internally linked EF's
- *  Lines with names are generated by the perl script 
+ *  Lines with names are generated by the perl script
  *  int_dlsym.pl.  Check that N_INTEF is correctly defined below.
  */
 
-#define N_INTEF 198
+#define N_INTEF 202
 
 struct {
   char funcname[EF_MAX_NAME_LENGTH];
 } I_EFnames[N_INTEF];
 
-   strcpy(I_EFnames[0].funcname, "ave_scat2grid_t");
-   strcpy(I_EFnames[1].funcname, "bin_index_wt");
-   strcpy(I_EFnames[2].funcname, "compressi");
-   strcpy(I_EFnames[3].funcname, "compressi_by");
-   strcpy(I_EFnames[4].funcname, "compressj");
-   strcpy(I_EFnames[5].funcname, "compressj_by");
-   strcpy(I_EFnames[6].funcname, "compressk");
-   strcpy(I_EFnames[7].funcname, "compressk_by");
-   strcpy(I_EFnames[8].funcname, "compressl");
-   strcpy(I_EFnames[9].funcname, "compressl_by");
-   strcpy(I_EFnames[10].funcname, "compressm");
-   strcpy(I_EFnames[11].funcname, "compressm_by");
-   strcpy(I_EFnames[12].funcname, "compressn");
-   strcpy(I_EFnames[13].funcname, "compressn_by");
-   strcpy(I_EFnames[14].funcname, "convolvei");
-   strcpy(I_EFnames[15].funcname, "convolvej");
-   strcpy(I_EFnames[16].funcname, "convolvek");
-   strcpy(I_EFnames[17].funcname, "convolvel");
-   strcpy(I_EFnames[18].funcname, "convolvem");
-   strcpy(I_EFnames[19].funcname, "convolven");
-   strcpy(I_EFnames[20].funcname, "curv_range");
-   strcpy(I_EFnames[21].funcname, "curv_to_rect");
-   strcpy(I_EFnames[22].funcname, "curv_to_rect_map");
-   strcpy(I_EFnames[23].funcname, "date1900");
-   strcpy(I_EFnames[24].funcname, "days1900toymdhms");
-   strcpy(I_EFnames[25].funcname, "ecat");
-   strcpy(I_EFnames[26].funcname, "ecat_str");
-   strcpy(I_EFnames[27].funcname, "element_index");
-   strcpy(I_EFnames[28].funcname, "element_index_str");
-   strcpy(I_EFnames[29].funcname, "element_index_str_n");
-   strcpy(I_EFnames[30].funcname, "eof_space");
-   strcpy(I_EFnames[31].funcname, "eof_stat");
-   strcpy(I_EFnames[32].funcname, "eof_tfunc");
-   strcpy(I_EFnames[33].funcname, "ereverse");
-   strcpy(I_EFnames[34].funcname, "expndi_by");
-   strcpy(I_EFnames[35].funcname, "expndi_by_t");
-   strcpy(I_EFnames[36].funcname, "expndi_by_z");
-   strcpy(I_EFnames[37].funcname, "fcat");
-   strcpy(I_EFnames[38].funcname, "fcat_str");
-   strcpy(I_EFnames[39].funcname, "ffta");
-   strcpy(I_EFnames[40].funcname, "fft_im");
-   strcpy(I_EFnames[41].funcname, "fft_inverse");
-   strcpy(I_EFnames[42].funcname, "fftp");
-   strcpy(I_EFnames[43].funcname, "fft_re");
-   strcpy(I_EFnames[44].funcname, "fill_xy");
-   strcpy(I_EFnames[45].funcname, "findhi");
-   strcpy(I_EFnames[46].funcname, "findlo");
-   strcpy(I_EFnames[47].funcname, "floatstr");
-   strcpy(I_EFnames[48].funcname, "freverse");
-   strcpy(I_EFnames[49].funcname, "is_element_of");
-   strcpy(I_EFnames[50].funcname, "is_element_of_str");
-   strcpy(I_EFnames[51].funcname, "is_element_of_str_n");
-   strcpy(I_EFnames[52].funcname, "labwid");
-   strcpy(I_EFnames[53].funcname, "lanczos");
-   strcpy(I_EFnames[54].funcname, "list_value_xml");
-   strcpy(I_EFnames[55].funcname, "lon_lat_time_string");
-   strcpy(I_EFnames[56].funcname, "lsl_lowpass");
-   strcpy(I_EFnames[57].funcname, "minmax");
-   strcpy(I_EFnames[58].funcname, "minutes24");
-   strcpy(I_EFnames[59].funcname, "nco");
-   strcpy(I_EFnames[60].funcname, "nco_attr");
-   strcpy(I_EFnames[61].funcname, "pt_in_poly");
-   strcpy(I_EFnames[62].funcname, "rect_to_curv");
-   strcpy(I_EFnames[63].funcname, "sampleij");
-   strcpy(I_EFnames[64].funcname, "samplei_multi");
-   strcpy(I_EFnames[65].funcname, "samplej_multi");
-   strcpy(I_EFnames[66].funcname, "samplek_multi");
-   strcpy(I_EFnames[67].funcname, "samplel_multi");
-   strcpy(I_EFnames[68].funcname, "samplef_date");
-   strcpy(I_EFnames[69].funcname, "samplet_date");
-   strcpy(I_EFnames[70].funcname, "samplexy");
-   strcpy(I_EFnames[71].funcname, "samplexy_closest");
-   strcpy(I_EFnames[72].funcname, "samplexy_curv");
-   strcpy(I_EFnames[73].funcname, "samplexy_curv_avg");
-   strcpy(I_EFnames[74].funcname, "samplexy_curv_nrst");
-   strcpy(I_EFnames[75].funcname, "samplexyt");
-   strcpy(I_EFnames[76].funcname, "samplexz");
-   strcpy(I_EFnames[77].funcname, "sampleyz");
-   strcpy(I_EFnames[78].funcname, "scat2ddups");
-   strcpy(I_EFnames[79].funcname, "scat2grid_bin_xy");
-   strcpy(I_EFnames[80].funcname, "scat2grid_bin_xyt");
-   strcpy(I_EFnames[81].funcname, "scat2grid_bin_xyz");
-   strcpy(I_EFnames[82].funcname, "scat2gridgauss_xt");
-   strcpy(I_EFnames[83].funcname, "scat2gridgauss_xt_v0");
-   strcpy(I_EFnames[84].funcname, "scat2gridgauss_xy");
-   strcpy(I_EFnames[85].funcname, "scat2gridgauss_xy_v0");
-   strcpy(I_EFnames[86].funcname, "scat2gridgauss_xz");
-   strcpy(I_EFnames[87].funcname, "scat2gridgauss_xz_v0");
-   strcpy(I_EFnames[88].funcname, "scat2gridgauss_yt");
-   strcpy(I_EFnames[89].funcname, "scat2gridgauss_yt_v0");
-   strcpy(I_EFnames[90].funcname, "scat2gridgauss_yz");
-   strcpy(I_EFnames[91].funcname, "scat2gridgauss_yz_v0");
-   strcpy(I_EFnames[92].funcname, "scat2gridgauss_zt");
-   strcpy(I_EFnames[93].funcname, "scat2gridgauss_zt_v0");
-   strcpy(I_EFnames[94].funcname, "scat2gridlaplace_xt");
-   strcpy(I_EFnames[95].funcname, "scat2gridlaplace_xy");
-   strcpy(I_EFnames[96].funcname, "scat2gridlaplace_xz");
-   strcpy(I_EFnames[97].funcname, "scat2gridlaplace_yt");
-   strcpy(I_EFnames[98].funcname, "scat2gridlaplace_yz");
-   strcpy(I_EFnames[99].funcname, "scat2gridlaplace_zt");
-   strcpy(I_EFnames[100].funcname, "scat2grid_nbin_xy");
-   strcpy(I_EFnames[101].funcname, "scat2grid_nbin_xyt");
-   strcpy(I_EFnames[102].funcname, "scat2grid_nobs_xy");
-   strcpy(I_EFnames[103].funcname, "scat2grid_nobs_xyt");
-   strcpy(I_EFnames[104].funcname, "scat2grid_t");
-   strcpy(I_EFnames[105].funcname, "sorti");
-   strcpy(I_EFnames[106].funcname, "sorti_str");
-   strcpy(I_EFnames[107].funcname, "sortj");
-   strcpy(I_EFnames[108].funcname, "sortj_str");
-   strcpy(I_EFnames[109].funcname, "sortk");
-   strcpy(I_EFnames[110].funcname, "sortk_str");
-   strcpy(I_EFnames[111].funcname, "sortl");
-   strcpy(I_EFnames[112].funcname, "sortl_str");
-   strcpy(I_EFnames[113].funcname, "sortm");
-   strcpy(I_EFnames[114].funcname, "sortm_str");
-   strcpy(I_EFnames[115].funcname, "sortn");
-   strcpy(I_EFnames[116].funcname, "sortn_str");
-   strcpy(I_EFnames[117].funcname, "tauto_cor");
-   strcpy(I_EFnames[118].funcname, "tax_datestring");
-   strcpy(I_EFnames[119].funcname, "tax_day");
-   strcpy(I_EFnames[120].funcname, "tax_dayfrac");
-   strcpy(I_EFnames[121].funcname, "tax_jday");
-   strcpy(I_EFnames[122].funcname, "tax_jday1900");
-   strcpy(I_EFnames[123].funcname, "tax_month");
-   strcpy(I_EFnames[124].funcname, "tax_times");
-   strcpy(I_EFnames[125].funcname, "tax_tstep");
-   strcpy(I_EFnames[126].funcname, "tax_units");
-   strcpy(I_EFnames[127].funcname, "tax_year");
-   strcpy(I_EFnames[128].funcname, "tax_yearfrac");
-   strcpy(I_EFnames[129].funcname, "tcat");
-   strcpy(I_EFnames[130].funcname, "tcat_str");
-   strcpy(I_EFnames[131].funcname, "test_opendap");
-   strcpy(I_EFnames[132].funcname, "transpose_ef");
-   strcpy(I_EFnames[133].funcname, "transpose_te");
-   strcpy(I_EFnames[134].funcname, "transpose_tf");
-   strcpy(I_EFnames[135].funcname, "transpose_xe");
-   strcpy(I_EFnames[136].funcname, "transpose_xf");
-   strcpy(I_EFnames[137].funcname, "transpose_xt");
-   strcpy(I_EFnames[138].funcname, "transpose_xy");
-   strcpy(I_EFnames[139].funcname, "transpose_xz");
-   strcpy(I_EFnames[140].funcname, "transpose_ye");
-   strcpy(I_EFnames[141].funcname, "transpose_yf");
-   strcpy(I_EFnames[142].funcname, "transpose_yt");
-   strcpy(I_EFnames[143].funcname, "transpose_yz");
-   strcpy(I_EFnames[144].funcname, "transpose_ze");
-   strcpy(I_EFnames[145].funcname, "transpose_zf");
-   strcpy(I_EFnames[146].funcname, "transpose_zt");
-   strcpy(I_EFnames[147].funcname, "treverse");
-   strcpy(I_EFnames[148].funcname, "unique_str2int");
-   strcpy(I_EFnames[149].funcname, "write_webrow");
-   strcpy(I_EFnames[150].funcname, "xauto_cor");
-   strcpy(I_EFnames[151].funcname, "xcat");
-   strcpy(I_EFnames[152].funcname, "xcat_str");
-   strcpy(I_EFnames[153].funcname, "xreverse");
-   strcpy(I_EFnames[154].funcname, "ycat");
-   strcpy(I_EFnames[155].funcname, "ycat_str");
-   strcpy(I_EFnames[156].funcname, "yreverse");
-   strcpy(I_EFnames[157].funcname, "zaxreplace_avg");
-   strcpy(I_EFnames[158].funcname, "zaxreplace_bin");
-   strcpy(I_EFnames[159].funcname, "zaxreplace_rev");
-   strcpy(I_EFnames[160].funcname, "zaxreplace_zlev");
-   strcpy(I_EFnames[161].funcname, "zcat");
-   strcpy(I_EFnames[162].funcname, "zcat_str");
-   strcpy(I_EFnames[163].funcname, "zreverse");
-   strcpy(I_EFnames[164].funcname, "eofsvd_space");
-   strcpy(I_EFnames[165].funcname, "eofsvd_stat");
-   strcpy(I_EFnames[166].funcname, "eofsvd_tfunc");
-   strcpy(I_EFnames[167].funcname, "expnd_by_len");
-   strcpy(I_EFnames[168].funcname, "expnd_by_len_str");
-   strcpy(I_EFnames[169].funcname, "fc_isubset");
-   strcpy(I_EFnames[170].funcname, "expndi_by_z_counts");
-   strcpy(I_EFnames[171].funcname, "expndi_id_by_z_counts");
-   strcpy(I_EFnames[172].funcname, "expndi_by_m_counts");
-   strcpy(I_EFnames[173].funcname, "str_mask");
-   strcpy(I_EFnames[174].funcname, "samplexyt_nrst");
-   strcpy(I_EFnames[175].funcname, "separate");
-   strcpy(I_EFnames[176].funcname, "time_reformat");
-   strcpy(I_EFnames[177].funcname, "ft_to_orthogonal");
-   strcpy(I_EFnames[178].funcname, "curv_to_rect_fsu");
-   strcpy(I_EFnames[179].funcname, "piecewise3");
-   strcpy(I_EFnames[180].funcname, "sample_fast_i");
-   strcpy(I_EFnames[181].funcname, "sample_fast_i_str");
-   strcpy(I_EFnames[182].funcname, "separate_str");
-   strcpy(I_EFnames[183].funcname, "write_webrow_gwt");
-   strcpy(I_EFnames[184].funcname, "bxcat");
-   strcpy(I_EFnames[185].funcname, "bxsequence");
-   strcpy(I_EFnames[186].funcname, "bxsequence_str");
-   strcpy(I_EFnames[187].funcname, "bcompressi");
-   strcpy(I_EFnames[188].funcname, "scat2grid_bin_xyzt");
-   strcpy(I_EFnames[189].funcname, "str_noblanks");
-   strcpy(I_EFnames[190].funcname, "str_replace");
-   strcpy(I_EFnames[191].funcname, "expndi_to_et");
-   strcpy(I_EFnames[192].funcname, "innerproduct_x");
-   strcpy(I_EFnames[193].funcname, "innerproduct_y");
-   strcpy(I_EFnames[194].funcname, "innerproduct_z");
-   strcpy(I_EFnames[195].funcname, "innerproduct_t");
-   strcpy(I_EFnames[196].funcname, "innerproduct_e");
-   strcpy(I_EFnames[197].funcname, "innerproduct_f");
-
-/*    
- *  ------------------------------------ 
+strcpy(I_EFnames[0].funcname,  "ave_scat2grid_t");
+strcpy(I_EFnames[1].funcname,  "bin_index_wt");
+strcpy(I_EFnames[2].funcname,  "compressi");
+strcpy(I_EFnames[3].funcname,  "compressi_by");
+strcpy(I_EFnames[4].funcname,  "compressj");
+strcpy(I_EFnames[5].funcname,  "compressj_by");
+strcpy(I_EFnames[6].funcname,  "compressk");
+strcpy(I_EFnames[7].funcname,  "compressk_by");
+strcpy(I_EFnames[8].funcname,  "compressl");
+strcpy(I_EFnames[9].funcname,  "compressl_by");
+strcpy(I_EFnames[10].funcname,  "compressm");
+strcpy(I_EFnames[11].funcname,  "compressm_by");
+strcpy(I_EFnames[12].funcname,  "compressn");
+strcpy(I_EFnames[13].funcname,  "compressn_by");
+strcpy(I_EFnames[14].funcname,  "convolvei");
+strcpy(I_EFnames[15].funcname,  "convolvej");
+strcpy(I_EFnames[16].funcname,  "convolvek");
+strcpy(I_EFnames[17].funcname,  "convolvel");
+strcpy(I_EFnames[18].funcname,  "convolvem");
+strcpy(I_EFnames[19].funcname,  "convolven");
+strcpy(I_EFnames[20].funcname,  "curv_range");
+strcpy(I_EFnames[21].funcname,  "curv_to_rect");
+strcpy(I_EFnames[22].funcname,  "curv_to_rect_fsu");
+strcpy(I_EFnames[23].funcname,  "curv_to_rect_map");
+strcpy(I_EFnames[24].funcname,  "date1900");
+strcpy(I_EFnames[25].funcname,  "days1900toymdhms");
+strcpy(I_EFnames[26].funcname,  "dot_e");
+strcpy(I_EFnames[27].funcname,  "dot_f");
+strcpy(I_EFnames[28].funcname,  "dot_t");
+strcpy(I_EFnames[29].funcname,  "dot_x");
+strcpy(I_EFnames[30].funcname,  "dot_y");
+strcpy(I_EFnames[31].funcname,  "dot_z");
+strcpy(I_EFnames[32].funcname,  "ecat");
+strcpy(I_EFnames[33].funcname,  "ecat_str");
+strcpy(I_EFnames[34].funcname,  "element_index");
+strcpy(I_EFnames[35].funcname,  "element_index_str");
+strcpy(I_EFnames[36].funcname,  "element_index_str_n");
+strcpy(I_EFnames[37].funcname,  "eof_space");
+strcpy(I_EFnames[38].funcname,  "eof_stat");
+strcpy(I_EFnames[39].funcname,  "eofsvd_space");
+strcpy(I_EFnames[40].funcname,  "eofsvd_stat");
+strcpy(I_EFnames[41].funcname,  "eofsvd_tfunc");
+strcpy(I_EFnames[42].funcname,  "eof_tfunc");
+strcpy(I_EFnames[43].funcname,  "ereverse");
+strcpy(I_EFnames[44].funcname,  "expnd_by_len");
+strcpy(I_EFnames[45].funcname,  "expnd_by_len_str");
+strcpy(I_EFnames[46].funcname,  "expndi_by");
+strcpy(I_EFnames[47].funcname,  "expndi_by_m_counts");
+strcpy(I_EFnames[48].funcname,  "expndi_by_m_counts_str");
+strcpy(I_EFnames[49].funcname,  "expndi_by_t");
+strcpy(I_EFnames[50].funcname,  "expndi_by_z");
+strcpy(I_EFnames[51].funcname,  "expndi_by_z_counts");
+strcpy(I_EFnames[52].funcname,  "expndi_id_by_z_counts");
+strcpy(I_EFnames[53].funcname,  "expndi_to_et");
+strcpy(I_EFnames[54].funcname,  "fcat");
+strcpy(I_EFnames[55].funcname,  "fcat_str");
+strcpy(I_EFnames[56].funcname,  "fc_isubset");
+strcpy(I_EFnames[57].funcname,  "ffta");
+strcpy(I_EFnames[58].funcname,  "fft_im");
+strcpy(I_EFnames[59].funcname,  "fft_inverse");
+strcpy(I_EFnames[60].funcname,  "fftp");
+strcpy(I_EFnames[61].funcname,  "fft_re");
+strcpy(I_EFnames[62].funcname,  "fill_xy");
+strcpy(I_EFnames[63].funcname,  "findhi");
+strcpy(I_EFnames[64].funcname,  "findlo");
+strcpy(I_EFnames[65].funcname,  "floatstr");
+strcpy(I_EFnames[66].funcname,  "freverse");
+strcpy(I_EFnames[67].funcname,  "ft_to_orthogonal");
+strcpy(I_EFnames[68].funcname,  "is_element_of");
+strcpy(I_EFnames[69].funcname,  "is_element_of_str");
+strcpy(I_EFnames[70].funcname,  "is_element_of_str_n");
+strcpy(I_EFnames[71].funcname,  "labwid");
+strcpy(I_EFnames[72].funcname,  "lanczos");
+strcpy(I_EFnames[73].funcname,  "list_value_xml");
+strcpy(I_EFnames[74].funcname,  "lon_lat_time_string");
+strcpy(I_EFnames[75].funcname,  "lsl_lowpass");
+strcpy(I_EFnames[76].funcname,  "minmax");
+strcpy(I_EFnames[77].funcname,  "minutes24");
+strcpy(I_EFnames[78].funcname,  "nco");
+strcpy(I_EFnames[79].funcname,  "nco_attr");
+strcpy(I_EFnames[80].funcname,  "piecewise3");
+strcpy(I_EFnames[81].funcname,  "pt_in_poly");
+strcpy(I_EFnames[82].funcname,  "rect_to_curv");
+strcpy(I_EFnames[83].funcname,  "sample_fast_i");
+strcpy(I_EFnames[84].funcname,  "sample_fast_i_str");
+strcpy(I_EFnames[85].funcname,  "samplef_date");
+strcpy(I_EFnames[86].funcname,  "sampleij");
+strcpy(I_EFnames[87].funcname,  "samplei_multi");
+strcpy(I_EFnames[88].funcname,  "samplej_multi");
+strcpy(I_EFnames[89].funcname,  "samplek_multi");
+strcpy(I_EFnames[90].funcname,  "samplel_multi");
+strcpy(I_EFnames[91].funcname,  "samplem_multi");
+strcpy(I_EFnames[92].funcname,  "samplen_multi");
+strcpy(I_EFnames[93].funcname,  "samplet_date");
+strcpy(I_EFnames[94].funcname,  "samplexy");
+strcpy(I_EFnames[95].funcname,  "samplexy_closest");
+strcpy(I_EFnames[96].funcname,  "samplexy_curv");
+strcpy(I_EFnames[97].funcname,  "samplexy_curv_avg");
+strcpy(I_EFnames[98].funcname,  "samplexy_curv_nrst");
+strcpy(I_EFnames[99].funcname,  "samplexy_nrst");
+strcpy(I_EFnames[100].funcname,  "samplexyt");
+strcpy(I_EFnames[101].funcname,  "samplexyt_nrst");
+strcpy(I_EFnames[102].funcname,  "samplexz");
+strcpy(I_EFnames[103].funcname,  "sampleyz");
+strcpy(I_EFnames[104].funcname,  "scat2ddups");
+strcpy(I_EFnames[105].funcname,  "scat2grid_bin_xy");
+strcpy(I_EFnames[106].funcname,  "scat2grid_bin_xyt");
+strcpy(I_EFnames[107].funcname,  "scat2grid_bin_xyz");
+strcpy(I_EFnames[108].funcname,  "scat2grid_bin_xyzt");
+strcpy(I_EFnames[109].funcname,  "scat2grid_minmax_xyt");
+strcpy(I_EFnames[110].funcname,  "scat2grid_std_xyt");
+strcpy(I_EFnames[111].funcname,  "scat2gridgauss_xt");
+strcpy(I_EFnames[112].funcname,  "scat2gridgauss_xt_v0");
+strcpy(I_EFnames[113].funcname,  "scat2gridgauss_xy");
+strcpy(I_EFnames[114].funcname,  "scat2gridgauss_xy_v0");
+strcpy(I_EFnames[115].funcname,  "scat2gridgauss_xz");
+strcpy(I_EFnames[116].funcname,  "scat2gridgauss_xz_v0");
+strcpy(I_EFnames[117].funcname,  "scat2gridgauss_yt");
+strcpy(I_EFnames[118].funcname,  "scat2gridgauss_yt_v0");
+strcpy(I_EFnames[119].funcname,  "scat2gridgauss_yz");
+strcpy(I_EFnames[120].funcname,  "scat2gridgauss_yz_v0");
+strcpy(I_EFnames[121].funcname,  "scat2gridgauss_zt");
+strcpy(I_EFnames[122].funcname,  "scat2gridgauss_zt_v0");
+strcpy(I_EFnames[123].funcname,  "scat2gridlaplace_xt");
+strcpy(I_EFnames[124].funcname,  "scat2gridlaplace_xy");
+strcpy(I_EFnames[125].funcname,  "scat2gridlaplace_xz");
+strcpy(I_EFnames[126].funcname,  "scat2gridlaplace_yt");
+strcpy(I_EFnames[127].funcname,  "scat2gridlaplace_yz");
+strcpy(I_EFnames[128].funcname,  "scat2gridlaplace_zt");
+strcpy(I_EFnames[129].funcname,  "scat2grid_nbin_xy");
+strcpy(I_EFnames[130].funcname,  "scat2grid_nbin_xyt");
+strcpy(I_EFnames[131].funcname,  "scat2grid_nobs_xy");
+strcpy(I_EFnames[132].funcname,  "scat2grid_nobs_xyt");
+strcpy(I_EFnames[133].funcname,  "scat2grid_t");
+strcpy(I_EFnames[134].funcname,  "separate");
+strcpy(I_EFnames[135].funcname,  "separate_str");
+strcpy(I_EFnames[136].funcname,  "sorti");
+strcpy(I_EFnames[137].funcname,  "sorti_str");
+strcpy(I_EFnames[138].funcname,  "sortj");
+strcpy(I_EFnames[139].funcname,  "sortj_str");
+strcpy(I_EFnames[140].funcname,  "sortk");
+strcpy(I_EFnames[141].funcname,  "sortk_str");
+strcpy(I_EFnames[142].funcname,  "sortl");
+strcpy(I_EFnames[143].funcname,  "sortl_str");
+strcpy(I_EFnames[144].funcname,  "sortm");
+strcpy(I_EFnames[145].funcname,  "sortm_str");
+strcpy(I_EFnames[146].funcname,  "sortn");
+strcpy(I_EFnames[147].funcname,  "sortn_str");
+strcpy(I_EFnames[148].funcname,  "str_mask");
+strcpy(I_EFnames[149].funcname,  "str_noblanks");
+strcpy(I_EFnames[150].funcname,  "str_replace");
+strcpy(I_EFnames[151].funcname,  "tauto_cor");
+strcpy(I_EFnames[152].funcname,  "tax_datestring");
+strcpy(I_EFnames[153].funcname,  "tax_day");
+strcpy(I_EFnames[154].funcname,  "tax_dayfrac");
+strcpy(I_EFnames[155].funcname,  "tax_jday");
+strcpy(I_EFnames[156].funcname,  "tax_jday1900");
+strcpy(I_EFnames[157].funcname,  "tax_month");
+strcpy(I_EFnames[158].funcname,  "tax_times");
+strcpy(I_EFnames[159].funcname,  "tax_tstep");
+strcpy(I_EFnames[160].funcname,  "tax_units");
+strcpy(I_EFnames[161].funcname,  "tax_year");
+strcpy(I_EFnames[162].funcname,  "tax_yearfrac");
+strcpy(I_EFnames[163].funcname,  "tcat");
+strcpy(I_EFnames[164].funcname,  "tcat_str");
+strcpy(I_EFnames[165].funcname,  "test_opendap");
+strcpy(I_EFnames[166].funcname,  "time_reformat");
+strcpy(I_EFnames[167].funcname,  "tracks2grid_mask_ave_xyt");
+strcpy(I_EFnames[168].funcname,  "tracks2grid_std_xyt");
+strcpy(I_EFnames[169].funcname,  "transpose_ef");
+strcpy(I_EFnames[170].funcname,  "transpose_te");
+strcpy(I_EFnames[171].funcname,  "transpose_tf");
+strcpy(I_EFnames[172].funcname,  "transpose_xe");
+strcpy(I_EFnames[173].funcname,  "transpose_xf");
+strcpy(I_EFnames[174].funcname,  "transpose_xt");
+strcpy(I_EFnames[175].funcname,  "transpose_xy");
+strcpy(I_EFnames[176].funcname,  "transpose_xz");
+strcpy(I_EFnames[177].funcname,  "transpose_ye");
+strcpy(I_EFnames[178].funcname,  "transpose_yf");
+strcpy(I_EFnames[179].funcname,  "transpose_yt");
+strcpy(I_EFnames[180].funcname,  "transpose_yz");
+strcpy(I_EFnames[181].funcname,  "transpose_ze");
+strcpy(I_EFnames[182].funcname,  "transpose_zf");
+strcpy(I_EFnames[183].funcname,  "transpose_zt");
+strcpy(I_EFnames[184].funcname,  "treverse");
+strcpy(I_EFnames[185].funcname,  "unique_str2int");
+strcpy(I_EFnames[186].funcname,  "write_webrow");
+strcpy(I_EFnames[187].funcname,  "write_webrow_gwt");
+strcpy(I_EFnames[188].funcname,  "xauto_cor");
+strcpy(I_EFnames[189].funcname,  "xcat");
+strcpy(I_EFnames[190].funcname,  "xcat_str");
+strcpy(I_EFnames[191].funcname,  "xreverse");
+strcpy(I_EFnames[192].funcname,  "ycat");
+strcpy(I_EFnames[193].funcname,  "ycat_str");
+strcpy(I_EFnames[194].funcname,  "yreverse");
+strcpy(I_EFnames[195].funcname,  "zaxreplace_avg");
+strcpy(I_EFnames[196].funcname,  "zaxreplace_bin");
+strcpy(I_EFnames[197].funcname,  "zaxreplace_rev");
+strcpy(I_EFnames[198].funcname,  "zaxreplace_zlev");
+strcpy(I_EFnames[199].funcname,  "zcat");
+strcpy(I_EFnames[200].funcname,  "zcat_str");
+strcpy(I_EFnames[201].funcname,  "zreverse");
+
+/*
+ *  ------------------------------------
  */
 
 
@@ -1428,8 +1453,8 @@ struct {
   }
 
   /*
-   * Get internally linked external functions;  and add all 
-   * the names and associated directory information to the 
+   * Get internally linked external functions;  and add all
+   * the names and associated directory information to the
    * STATIC_ExternalFunctionList.
    */
 
@@ -1464,13 +1489,13 @@ struct {
                       "WARNING: environment variable PYFER_EXTERNAL_FUNCTIONS not defined.\n\n");
       I_have_warned_already = TRUE;
     }
-    /* *kob* v5.32 - the return val was set to 0 below but that was wrong. 
-       That didn't take into account that on any system, the 
+    /* *kob* v5.32 - the return val was set to 0 below but that was wrong.
+       That didn't take into account that on any system, the
        PYFER_EXTERNAL_FUNCTIONS env variable might not be set.  If that were the
-       case, a core dump occurred on all systems.  Set return_val to count, 
-       which was generated above - also have to  note that the ef's 
+       case, a core dump occurred on all systems.  Set return_val to count,
+       which was generated above - also have to  note that the ef's
        have been scanned*/
-    return_val = count; 
+    return_val = count;
     I_have_scanned_already = TRUE;
     return return_val;
   }
@@ -1486,15 +1511,15 @@ struct {
     return_val = count;
     I_have_scanned_already = TRUE;
     return return_val;
- 
+
   } else {
-    
+
     do {
 
 	  strcpy(path, path_ptr);
 
       if (path[strlen(path)-1] != '/')
-        strcat(path, "/"); 
+        strcat(path, "/");
 
       sprintf(cmd, "ls -1 %s", path);
 
@@ -1504,7 +1529,7 @@ struct {
 	    return_val = -1;
 	    return return_val;
       }
- 
+
       /*
        * Read a line at a time.
        * Any ~.so files are assumed to be external functions.
@@ -1526,11 +1551,11 @@ struct {
 	    }
 
       }
- 
+
       pclose(file_ptr);
- 
+
       path_ptr = strtok(NULL, " \t"); /* get the next directory */
- 
+
     } while ( path_ptr != NULL );
 
     I_have_scanned_already = TRUE;
@@ -1543,7 +1568,7 @@ struct {
 
 
 /*
- * Determine whether an external function has already 
+ * Determine whether an external function has already
  * had its internals read.
  */
 int FORTRAN(efcn_already_have_internals)( int *id_ptr )
@@ -1580,14 +1605,14 @@ int FORTRAN(efcn_already_have_internals)( int *id_ptr )
  *
  * Note: this function assume Hollerith strings are passed as character arrays
  *       (and max lengths appended as ints to the end of the argument list -
- *        they are not listed here since unused; also permits saying the strings 
+ *        they are not listed here since unused; also permits saying the strings
  *        are simple arrays in Fortran)
  */
 void FORTRAN(create_pyefcn)(char fname[], int *lenfname, char pymod[], int *lenpymod,
                             char errstring[], int *lenerrstring)
 {
-    ExternalFunction ef; 
-    ExternalFunction *ef_ptr; 
+    ExternalFunction ef;
+    ExternalFunction *ef_ptr;
     char libname[1024];
 
     /* Check string lengths since these values might possibly be exceeded */
@@ -1602,7 +1627,7 @@ void FORTRAN(create_pyefcn)(char fname[], int *lenfname, char pymod[], int *lenp
         return;
     }
 
-    /* 
+    /*
      * Assign the local ExternalFunction structure, assigning the module name to the path element
      * Get the ID for this new function by adding one to the ID of the last element in the list.
      * (The IDs do not match the size of the list.)
@@ -1632,10 +1657,10 @@ void FORTRAN(create_pyefcn)(char fname[], int *lenfname, char pymod[], int *lenp
 
     /*
      * Prepare for bailout possibilities by setting a signal handler for
-     * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack 
-     * environment with sigsetjmp (for the signal handler) and setjmp 
+     * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack
+     * environment with sigsetjmp (for the signal handler) and setjmp
      * (for the "bail out" utility function).
-     */   
+     */
     if ( EF_Util_setsig("create_pyefcn")) {
         list_remove_rear(STATIC_ExternalFunctionList);
         PyMem_Free(ef_ptr->internals_ptr);
@@ -1680,7 +1705,7 @@ void FORTRAN(create_pyefcn)(char fname[], int *lenfname, char pymod[], int *lenp
 
 /*
  * Find an external function based on its integer ID and
- * gather information describing the function. 
+ * gather information describing the function.
  *
  * Return values:
  *     -1: error occurred, dynamic linking was unsuccessful
@@ -1737,10 +1762,10 @@ int FORTRAN(efcn_gather_info)( int *id_ptr )
 
       /*
        * Prepare for bailout possibilities by setting a signal handler for
-       * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack 
-       * environment with sigsetjmp (for the signal handler) and setjmp 
+       * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack
+       * environment with sigsetjmp (for the signal handler) and setjmp
        * (for the "bail out" utility function).
-       */   
+       */
       if ( EF_Util_setsig("efcn_gather_info")) {
          return -1;
       }
@@ -1796,7 +1821,7 @@ int FORTRAN(efcn_gather_info)( int *id_ptr )
 
 
 /*
- * Find an external function based on its integer ID, 
+ * Find an external function based on its integer ID,
  * Query the function about custom axes. Store the context
  * list information for use by utility functions.
  */
@@ -1828,10 +1853,10 @@ void FORTRAN(efcn_get_custom_axes)( int *id_ptr, int *cx_list_ptr, int *status )
 
     /*
      * Prepare for bailout possibilities by setting a signal handler for
-     * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack 
-     * environment with sigsetjmp (for the signal handler) and setjmp 
+     * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack
+     * environment with sigsetjmp (for the signal handler) and setjmp
      * (for the "bail out" utility function).
-     */   
+     */
 
     if (EF_Util_setsig("efcn_get_custom_axes")) {
       *status = FERR_EF_ERROR;
@@ -1852,8 +1877,8 @@ void FORTRAN(efcn_get_custom_axes)( int *id_ptr, int *cx_list_ptr, int *status )
     if (setjmp(jumpbuffer) != 0) {
       *status = FERR_EF_ERROR;
       return;
-    } 
-   
+    }
+
     canjump = 1;
 
     sprintf(tempText, "");
@@ -1864,7 +1889,7 @@ void FORTRAN(efcn_get_custom_axes)( int *id_ptr, int *cx_list_ptr, int *status )
        fptr  = (void (*)(int *))dlsym(ef_ptr->handle, tempText);
     } else {
       fptr  = (void (*)(int *))internal_dlsym(tempText);
-    } 
+    }
     (*fptr)( id_ptr );
 
 
@@ -1882,10 +1907,10 @@ void FORTRAN(efcn_get_custom_axes)( int *id_ptr, int *cx_list_ptr, int *status )
 
       /*
        * Prepare for bailout possibilities by setting a signal handler for
-       * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack 
-       * environment with sigsetjmp (for the signal handler) and setjmp 
+       * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack
+       * environment with sigsetjmp (for the signal handler) and setjmp
        * (for the "bail out" utility function).
-       */   
+       */
       if ( EF_Util_setsig("efcn_get_custom_axes")) {
           *status = FERR_EF_ERROR;
            return;
@@ -1923,7 +1948,7 @@ void FORTRAN(efcn_get_custom_axes)( int *id_ptr, int *cx_list_ptr, int *status )
 
 
 /*
- * Find an external function based on its integer ID, 
+ * Find an external function based on its integer ID,
  * Query the function about abstract axes. Pass memory,
  * mr_list and cx_list info into the external function.
  * 1/17 *SH* removed argument "memory" from the calling arguments
@@ -1959,10 +1984,10 @@ void FORTRAN(efcn_get_result_limits)( int *id_ptr, int *mr_list_ptr, int *cx_lis
 
     /*
      * Prepare for bailout possibilities by setting a signal handler for
-     * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack 
-     * environment with sigsetjmp (for the signal handler) and setjmp 
+     * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack
+     * environment with sigsetjmp (for the signal handler) and setjmp
      * (for the "bail out" utility function).
-     */   
+     */
 
 
     if ( EF_Util_setsig("efcn_get_result_limits")) {
@@ -2015,10 +2040,10 @@ void FORTRAN(efcn_get_result_limits)( int *id_ptr, int *mr_list_ptr, int *cx_lis
 
       /*
        * Prepare for bailout possibilities by setting a signal handler for
-       * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack 
-       * environment with sigsetjmp (for the signal handler) and setjmp 
+       * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack
+       * environment with sigsetjmp (for the signal handler) and setjmp
        * (for the "bail out" utility function).
-       */   
+       */
       if ( EF_Util_setsig("efcn_get_result_limits")) {
           *status = FERR_EF_ERROR;
            return;
@@ -2056,7 +2081,7 @@ void FORTRAN(efcn_get_result_limits)( int *id_ptr, int *mr_list_ptr, int *cx_lis
 
 
 /*
- * Find an external function based on its integer ID, 
+ * Find an external function based on its integer ID,
  * pass the necessary information and the data and tell
  * the function to calculate the result.
  */
@@ -2140,7 +2165,7 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
 
   i_ptr = ef_ptr->internals_ptr;
 
-/* 
+/*
    1/17 tell FORTRAN to pass the pointers (place them into GLOBALs)
 */
   nargs = i_ptr->num_reqd_args;
@@ -2165,7 +2190,7 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
     /* Now for the work arrays */
 
     /*
-     * If this program has requested working storage we need to 
+     * If this program has requested working storage we need to
      * ask the function to specify the amount of space needed
      * and then create the memory here.  Memory will be released
      * after the external function returns.
@@ -2229,13 +2254,13 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
         FORTRAN(efcn_set_work_array_dims)(&iarray, &xlo, &ylo, &zlo, &tlo, &elo, &flo,
                                                    &xhi, &yhi, &zhi, &thi, &ehi, &fhi);
 
-        size = sizeof(DFTYPE) * (xhi-xlo+1) * (yhi-ylo+1) * (zhi-zlo+1) 
+        size = sizeof(DFTYPE) * (xhi-xlo+1) * (yhi-ylo+1) * (zhi-zlo+1)
                               * (thi-tlo+1) * (ehi-elo+1) * (fhi-flo+1);
 
         arg_ptr[i] = (DFTYPE *)PyMem_Malloc(size);
-        if ( arg_ptr[i] == NULL ) { 
+        if ( arg_ptr[i] == NULL ) {
           fprintf(stderr, "**ERROR in efcn_compute() allocating %d bytes of memory\n"
-                          "\twork array %d:  X=%d:%d, Y=%d:%d, Z=%d:%d, T=%d:%d, E=%d:%d, F=%d:%d\n", 
+                          "\twork array %d:  X=%d:%d, Y=%d:%d, Z=%d:%d, T=%d:%d, E=%d:%d, F=%d:%d\n",
                           size, iarray, xlo, xhi, ylo, yhi, zlo, zhi, tlo, thi, elo, ehi, flo, fhi);
 	  *status = FERR_EF_ERROR;
 	  return;
@@ -2265,10 +2290,10 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
 
     /*
      * Prepare for bailout possibilities by setting a signal handler for
-     * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack 
-     * environment with sigsetjmp (for the signal handler) and setjmp 
+     * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack
+     * environment with sigsetjmp (for the signal handler) and setjmp
      * (for the "bail out" utility function).
-     */   
+     */
 
     if ( EF_Util_setsig("efcn_compute")) {
       *status = FERR_EF_ERROR;
@@ -2353,11 +2378,11 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
 
     case 5:
 	  if (!internally_linked) {
-	    f5arg  = (void (*)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+	    f5arg  = (void (*)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
              DFTYPE *))
              dlsym(ef_ptr->handle, tempText);
           } else {
-	    f5arg  = (void (*)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+	    f5arg  = (void (*)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
              DFTYPE *))
              internal_dlsym(tempText);
           }
@@ -2624,10 +2649,10 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
 
       /*
        * Prepare for bailout possibilities by setting a signal handler for
-       * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack 
-       * environment with sigsetjmp (for the signal handler) and setjmp 
+       * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack
+       * environment with sigsetjmp (for the signal handler) and setjmp
        * (for the "bail out" utility function).
-       */   
+       */
       if ( EF_Util_setsig("efcn_compute")) {
           *status = FERR_EF_ERROR;
           return;
@@ -2741,7 +2766,7 @@ int FORTRAN(efcn_get_id)( char name[] )
     return return_val;
   }
 
-  ef_ptr=(ExternalFunction *)list_curr(STATIC_ExternalFunctionList); 
+  ef_ptr=(ExternalFunction *)list_curr(STATIC_ExternalFunctionList);
 
   return_val = ef_ptr->id;
 
@@ -2764,7 +2789,7 @@ int FORTRAN(efcn_match_template)( int *id_ptr, char template[] )
   if ( (ef_ptr = ef_ptr_from_id_ptr(id_ptr)) == NULL ) { return return_val; }
 
   EF_LT_MT_return = EF_ListTraverse_MatchTemplate((char *)template, (char *)ef_ptr);
-  
+
   /* The list package forces 'list traversal' functions to return
    * 0 whenever a match is found.  We want to return a more reasonable
    * 1 (=true) if we find a match.
@@ -2781,7 +2806,7 @@ int FORTRAN(efcn_match_template)( int *id_ptr, char template[] )
 
 /*
  */
-void FORTRAN(efcn_get_custom_axis_sub)( int *id_ptr, int *axis_ptr, double *lo_ptr, double *hi_ptr, 
+void FORTRAN(efcn_get_custom_axis_sub)( int *id_ptr, int *axis_ptr, double *lo_ptr, double *hi_ptr,
 			       double *del_ptr, char *unit, int *modulo_ptr )
 {
   ExternalFunction *ef_ptr=NULL;
@@ -2851,7 +2876,7 @@ void FORTRAN(efcn_get_descr)( int *id_ptr, char *descr )
 
 /*
  * Find an external function based on its integer ID and
- * return the name of an alternate function that operates 
+ * return the name of an alternate function that operates
  * with string arguments.
  *
  * *kms* 2/11 - assign blank-terminated (not null-terminated)
@@ -2980,7 +3005,7 @@ void FORTRAN(efcn_get_piecemeal_ok)( int *id_ptr, int *array_ptr )
 void FORTRAN(efcn_get_axis_implied_from)( int *id_ptr, int *iarg_ptr, int *array_ptr )
 {
   ExternalFunction *ef_ptr=NULL;
-  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */ 
+  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */
 
   if ( (ef_ptr = ef_ptr_from_id_ptr(id_ptr)) == NULL ) { return; }
 
@@ -3004,7 +3029,7 @@ void FORTRAN(efcn_get_axis_implied_from)( int *id_ptr, int *iarg_ptr, int *array
 void FORTRAN(efcn_get_axis_extend_lo)( int *id_ptr, int *iarg_ptr, int *array_ptr )
 {
   ExternalFunction *ef_ptr=NULL;
-  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */ 
+  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */
 
   if ( (ef_ptr = ef_ptr_from_id_ptr(id_ptr)) == NULL ) { return; }
 
@@ -3028,10 +3053,10 @@ void FORTRAN(efcn_get_axis_extend_lo)( int *id_ptr, int *iarg_ptr, int *array_pt
 void FORTRAN(efcn_get_axis_extend_hi)( int *id_ptr, int *iarg_ptr, int *array_ptr )
 {
   ExternalFunction *ef_ptr=NULL;
-  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */ 
+  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */
 
   if ( (ef_ptr = ef_ptr_from_id_ptr(id_ptr)) == NULL ) { return; }
-  
+
   array_ptr[X_AXIS] = ef_ptr->internals_ptr->axis_extend_hi[index][X_AXIS];
   array_ptr[Y_AXIS] = ef_ptr->internals_ptr->axis_extend_hi[index][Y_AXIS];
   array_ptr[Z_AXIS] = ef_ptr->internals_ptr->axis_extend_hi[index][Z_AXIS];
@@ -3051,13 +3076,13 @@ void FORTRAN(efcn_get_axis_extend_hi)( int *id_ptr, int *iarg_ptr, int *array_pt
 void FORTRAN(efcn_get_axis_limits)( int *id_ptr, int *axis_ptr, int *lo_ptr, int *hi_ptr )
 {
   ExternalFunction *ef_ptr=NULL;
-  int index = *axis_ptr - 1; /* C indices are 1 less than Fortran */ 
+  int index = *axis_ptr - 1; /* C indices are 1 less than Fortran */
 
   if ( (ef_ptr = ef_ptr_from_id_ptr(id_ptr)) == NULL ) { return; }
-  
+
   *lo_ptr = ef_ptr->internals_ptr->axis[index].ss_lo;
   *hi_ptr = ef_ptr->internals_ptr->axis[index].ss_hi;
-  
+
   return;
 }
 
@@ -3065,19 +3090,19 @@ void FORTRAN(efcn_get_axis_limits)( int *id_ptr, int *axis_ptr, int *lo_ptr, int
 /*
  * Find an external function based on its integer ID and
  * return the 'arg_type' information for a particular
- * argument which tells Ferret whether an argument is a 
+ * argument which tells Ferret whether an argument is a
  * DFTYPE or a string.
  */
 int FORTRAN(efcn_get_arg_type)( int *id_ptr, int *iarg_ptr )
 {
   ExternalFunction *ef_ptr=NULL;
   int return_val=0;
-  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */ 
+  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */
 
   if ( (ef_ptr = ef_ptr_from_id_ptr(id_ptr)) == NULL ) { return return_val; }
-  
+
   return_val = ef_ptr->internals_ptr->arg_type[index];
-  
+
   return return_val;
 }
 
@@ -3093,9 +3118,9 @@ int FORTRAN(efcn_get_rtn_type)( int *id_ptr )
   static int return_val=0; /* static because it needs to exist after the return statement */
 
   if ( (ef_ptr = ef_ptr_from_id_ptr(id_ptr)) == NULL ) { return return_val; }
-  
+
   return_val = ef_ptr->internals_ptr->return_type;
-  
+
   return return_val;
 }
 
@@ -3107,11 +3132,11 @@ int FORTRAN(efcn_get_rtn_type)( int *id_ptr )
 void FORTRAN(efcn_get_arg_name)( int *id_ptr, int *iarg_ptr, char *string )
 {
   ExternalFunction *ef_ptr=NULL;
-  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */ 
+  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */
   int i=0, printable=FALSE;
 
   if ( (ef_ptr = ef_ptr_from_id_ptr(id_ptr)) == NULL ) { return; }
-  
+
   /*
    * JC_NOTE: if the argument has no name then memory gets overwritten, corrupting
    * the address of iarg_ptr and causing a core dump.  I need to catch that case
@@ -3142,12 +3167,12 @@ void FORTRAN(efcn_get_arg_name)( int *id_ptr, int *iarg_ptr, char *string )
 void FORTRAN(efcn_get_arg_unit)( int *id_ptr, int *iarg_ptr, char *string )
 {
   ExternalFunction *ef_ptr=NULL;
-  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */ 
+  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */
 
   if ( (ef_ptr = ef_ptr_from_id_ptr(id_ptr)) == NULL ) { return; }
-  
-  ef_ptr=(ExternalFunction *)list_curr(STATIC_ExternalFunctionList); 
-  
+
+  ef_ptr=(ExternalFunction *)list_curr(STATIC_ExternalFunctionList);
+
   strcpy(string, ef_ptr->internals_ptr->arg_unit[index]);
 
   return;
@@ -3161,10 +3186,10 @@ void FORTRAN(efcn_get_arg_unit)( int *id_ptr, int *iarg_ptr, char *string )
 void FORTRAN(efcn_get_arg_desc)( int *id_ptr, int *iarg_ptr, char *string )
 {
   ExternalFunction *ef_ptr=NULL;
-  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */ 
+  int index = *iarg_ptr - 1; /* C indices are 1 less than Fortran */
 
   if ( (ef_ptr = ef_ptr_from_id_ptr(id_ptr)) == NULL ) { return; }
-  
+
   strcpy(string, ef_ptr->internals_ptr->arg_desc[index]);
 
   return;
@@ -3292,7 +3317,7 @@ int EF_New( ExternalFunction *this )
  * Store the global values which will be needed by utility routines
  * in EF_ExternalUtil.c
  */
-void EF_store_globals(int *mr_list_ptr, int *cx_list_ptr, 
+void EF_store_globals(int *mr_list_ptr, int *cx_list_ptr,
 	int *mres_ptr, DFTYPE *bad_flag_ptr)
 {
   int i=0;
@@ -3339,7 +3364,7 @@ ExternalFunction *ef_ptr_from_id_ptr(int *id_ptr)
    }
 
    /* Get the pointer to the function from the list */
-   ef_ptr = (ExternalFunction *) list_curr(STATIC_ExternalFunctionList); 
+   ef_ptr = (ExternalFunction *) list_curr(STATIC_ExternalFunctionList);
    return ef_ptr;
 }
 
@@ -3347,14 +3372,14 @@ ExternalFunction *ef_ptr_from_id_ptr(int *id_ptr)
 int EF_ListTraverse_fprintf( char *data, char *curr )
 {
    FILE *File_ptr=(FILE *)data;
-   ExternalFunction *ef_ptr=(ExternalFunction *)curr; 
+   ExternalFunction *ef_ptr=(ExternalFunction *)curr;
 
    fprintf(stderr, "path = \"%s\", name = \"%s\", id = %d, internals_ptr = %ld\n",
 	   ef_ptr->path, ef_ptr->name, ef_ptr->id, (long) (ef_ptr->internals_ptr));
 
    return TRUE;
 }
- 
+
 
 /*
  * Ferret always capitalizes everything so we'd better
@@ -3362,7 +3387,7 @@ int EF_ListTraverse_fprintf( char *data, char *curr )
  */
 int EF_ListTraverse_FoundName( char *data, char *curr )
 {
-  ExternalFunction *ef_ptr=(ExternalFunction *)curr; 
+  ExternalFunction *ef_ptr=(ExternalFunction *)curr;
 
   if ( !strcasecmp(data, ef_ptr->name) ) {
     return FALSE; /* found match */
@@ -3373,7 +3398,7 @@ int EF_ListTraverse_FoundName( char *data, char *curr )
 
 int EF_ListTraverse_MatchTemplate( char data[], char *curr )
 {
-  ExternalFunction *ef_ptr=(ExternalFunction *)curr; 
+  ExternalFunction *ef_ptr=(ExternalFunction *)curr;
 
   int i=0, star_skip=FALSE;
   char upname[EF_MAX_DESCRIPTION_LENGTH];
@@ -3423,7 +3448,7 @@ int EF_ListTraverse_MatchTemplate( char data[], char *curr )
     else
       return TRUE; /* no match */
 
-  } 
+  }
 
   /* *sh* if any non-wildcard characters remain in the "curr" name, then reject
      probably a bug remains for a regexp ending in "?" */
@@ -3437,7 +3462,7 @@ int EF_ListTraverse_MatchTemplate( char data[], char *curr )
 
 int EF_ListTraverse_FoundID( char *data, char *curr )
 {
-  ExternalFunction *ef_ptr=(ExternalFunction *)curr; 
+  ExternalFunction *ef_ptr=(ExternalFunction *)curr;
   int ID=*((int *)data);
 
   if ( ID == ef_ptr->id ) {
@@ -3451,10 +3476,10 @@ int EF_Util_setsig(char fcn_name[])
 {
     /*
      * Prepare for bailout possibilities by setting a signal handler for
-     * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack 
-     * environment with sigsetjmp (for the signal handler) and setjmp 
+     * SIGFPE, SIGSEGV, SIGINT and SIGBUS and then by cacheing the stack
+     * environment with sigsetjmp (for the signal handler) and setjmp
      * (for the "bail out" utility function).
-     */   
+     */
 
     if ( (fpe_handler = signal(SIGFPE, EF_signal_handler)) == SIG_ERR ) {
       fprintf(stderr, "**ERROR in %s() catching SIGFPE.\n", fcn_name);
@@ -3507,11 +3532,11 @@ int EF_Util_ressig(char fcn_name[])
 }
 
 
-/* 
+/*
  *  ------------------------------------
 
  *  internal_dlsym
- *  Accept a string and return the function pointer 
+ *  Accept a string and return the function pointer
  *
  *  The names of all subroutines of internally linked EF's
  *  generated by the perl script int_dlsym.pl.  Check the
@@ -3583,6 +3608,16 @@ else if ( !strcmp(name,"samplel_multi_init_") ) return (void *)FORTRAN(samplel_m
 else if ( !strcmp(name,"samplel_multi_result_limits_") ) return (void *)FORTRAN(samplel_multi_result_limits);
 else if ( !strcmp(name,"samplel_multi_compute_") ) return (void *)FORTRAN(samplel_multi_compute);
 
+/* samplem_multi.F */
+else if ( !strcmp(name,"samplem_multi_init_") ) return (void *)FORTRAN(samplem_multi_init);
+else if ( !strcmp(name,"samplem_multi_result_limits_") ) return (void *)FORTRAN(samplem_multi_result_limits);
+else if ( !strcmp(name,"samplem_multi_compute_") ) return (void *)FORTRAN(samplem_multi_compute);
+
+/* samplen_multi.F */
+else if ( !strcmp(name,"samplen_multi_init_") ) return (void *)FORTRAN(samplen_multi_init);
+else if ( !strcmp(name,"samplen_multi_result_limits_") ) return (void *)FORTRAN(samplen_multi_result_limits);
+else if ( !strcmp(name,"samplen_multi_compute_") ) return (void *)FORTRAN(samplen_multi_compute);
+
 /* samplet_date.F */
 else if ( !strcmp(name,"samplet_date_init_") ) return (void *)FORTRAN(samplet_date_init);
 else if ( !strcmp(name,"samplet_date_result_limits_") ) return (void *)FORTRAN(samplet_date_result_limits);
@@ -3637,6 +3672,12 @@ else if ( !strcmp(name,"samplexy_closest_result_limits_") ) return (void *)FORTR
 else if ( !strcmp(name,"samplexy_closest_work_size_") ) return (void *)FORTRAN(samplexy_closest_work_size);
 else if ( !strcmp(name,"samplexy_closest_compute_") ) return (void *)FORTRAN(samplexy_closest_compute);
 
+/* samplexy_nrst.F */
+else if ( !strcmp(name,"samplexy_nrst_init_") ) return (void *)FORTRAN(samplexy_nrst_init);
+else if ( !strcmp(name,"samplexy_nrst_result_limits_") ) return (void *)FORTRAN(samplexy_nrst_result_limits);
+else if ( !strcmp(name,"samplexy_nrst_work_size_") ) return (void *)FORTRAN(samplexy_nrst_work_size);
+else if ( !strcmp(name,"samplexy_nrst_compute_") ) return (void *)FORTRAN(samplexy_nrst_compute);
+
 /* samplexz.F */
 else if ( !strcmp(name,"samplexz_init_") ) return (void *)FORTRAN(samplexz_init);
 else if ( !strcmp(name,"samplexz_result_limits_") ) return (void *)FORTRAN(samplexz_result_limits);
@@ -4074,10 +4115,12 @@ else if ( !strcmp(name,"expndi_id_by_z_counts_compute_") ) return (void *)FORTRA
 
 /* expndi_by_m_counts.F */
 else if ( !strcmp(name,"expndi_by_m_counts_init_") ) return (void *)FORTRAN(expndi_by_m_counts_init);
-else if ( !strcmp(name,"expndi_by_m_counts_result_limits_") ) return (void *)FORTRAN(expndi_by_m_counts_result_limits);
-else if ( !strcmp(name,"expndi_by_m_counts_custom_axes_") ) return (void *)FORTRAN(expndi_by_m_counts_custom_axes);
 else if ( !strcmp(name,"expndi_by_m_counts_compute_") ) return (void *)FORTRAN(expndi_by_m_counts_compute);
 
+/* expndi_by_m_counts_str.F */
+else if ( !strcmp(name,"expndi_by_m_counts_str_init_") ) return (void *)FORTRAN(expndi_by_m_counts_str_init);
+else if ( !strcmp(name,"expndi_by_m_counts_str_compute_") ) return (void *)FORTRAN(expndi_by_m_counts_str_compute);
+
 /* fc_isubset.F */
 else if ( !strcmp(name,"fc_isubset_init_") ) return (void *)FORTRAN(fc_isubset_init);
 else if ( !strcmp(name,"fc_isubset_result_limits_") ) return (void *)FORTRAN(fc_isubset_result_limits);
@@ -4221,12 +4264,6 @@ else if ( !strcmp(name,"xcat_str_init_") ) return (void *)FORTRAN(xcat_str_init)
 else if ( !strcmp(name,"xcat_str_result_limits_") ) return (void *)FORTRAN(xcat_str_result_limits);
 else if ( !strcmp(name,"xcat_str_compute_") ) return (void *)FORTRAN(xcat_str_compute);
 
-/* bxcat.F */
-else if ( !strcmp(name,"bxcat_init_") ) return (void *)FORTRAN(bxcat_init);
-else if ( !strcmp(name,"bxcat_result_limits_") ) return (void *)FORTRAN(bxcat_result_limits);
-else if ( !strcmp(name,"bxcat_custom_axes_") ) return (void *)FORTRAN(bxcat_custom_axes);
-else if ( !strcmp(name,"bxcat_compute_") ) return (void *)FORTRAN(bxcat_compute);
-
 /* ycat.F */
 else if ( !strcmp(name,"ycat_init_") ) return (void *)FORTRAN(ycat_init);
 else if ( !strcmp(name,"ycat_result_limits_") ) return (void *)FORTRAN(ycat_result_limits);
@@ -4440,21 +4477,6 @@ else if ( !strcmp(name,"write_webrow_gwt_init_") ) return (void *)FORTRAN(write_
 else if ( !strcmp(name,"write_webrow_gwt_result_limits_") ) return (void *)FORTRAN(write_webrow_gwt_result_limits);
 else if ( !strcmp(name,"write_webrow_gwt_compute_") ) return (void *)FORTRAN(write_webrow_gwt_compute);
 
-else if ( !strcmp(name,"bxsequence_init_") ) return (void *)FORTRAN(bxsequence_init);
-else if ( !strcmp(name,"bxsequence_result_limits_") ) return (void *)FORTRAN(bxsequence_result_limits);
-else if ( !strcmp(name,"bxsequence_custom_axes_") ) return (void *)FORTRAN(bxsequence_custom_axes);
-else if ( !strcmp(name,"bxsequence_compute_") ) return (void *)FORTRAN(bxsequence_compute);
-
-else if ( !strcmp(name,"bxsequence_str_init_") ) return (void *)FORTRAN(bxsequence_str_init);
-else if ( !strcmp(name,"bxsequence_str_result_limits_") ) return (void *)FORTRAN(bxsequence_str_result_limits);
-else if ( !strcmp(name,"bxsequence_str_custom_axes_") ) return (void *)FORTRAN(bxsequence_str_custom_axes);
-else if ( !strcmp(name,"bxsequence_str_compute_") ) return (void *)FORTRAN(bxsequence_str_compute);
-
-/* bcompressi.F */
-else if ( !strcmp(name,"bcompressi_init_") ) return (void *)FORTRAN(bcompressi_init);
-else if ( !strcmp(name,"bcompressi_result_limits_") ) return (void *)FORTRAN(bcompressi_result_limits);
-else if ( !strcmp(name,"bcompressi_compute_") ) return (void *)FORTRAN(bcompressi_compute);
-
 /* str_noblanks.F */
 else if ( !strcmp(name,"str_noblanks_init_") ) return (void *)FORTRAN(str_noblanks_init);
 else if ( !strcmp(name,"str_noblanks_compute_") ) return (void *)FORTRAN(str_noblanks_compute);
@@ -4468,24 +4490,45 @@ else if ( !strcmp(name,"expndi_to_et_init_") ) return (void *)FORTRAN(expndi_to_
 else if ( !strcmp(name,"expndi_to_et_work_size_") ) return (void *)FORTRAN(expndi_to_et_work_size);
 else if ( !strcmp(name,"expndi_to_et_compute_") ) return (void *)FORTRAN(expndi_to_et_compute);
 
-else if ( !strcmp(name,"innerproduct_x_init_") ) return (void *)FORTRAN(innerproduct_x_init);
-else if ( !strcmp(name,"innerproduct_x_compute_") ) return (void *)FORTRAN(innerproduct_x_compute);
+/* dot product functions */
+else if ( !strcmp(name,"dot_x_init_") ) return (void *)FORTRAN(dot_x_init);
+else if ( !strcmp(name,"dot_x_compute_") ) return (void *)FORTRAN(dot_x_compute);
+
+else if ( !strcmp(name,"dot_y_init_") ) return (void *)FORTRAN(dot_y_init);
+else if ( !strcmp(name,"dot_y_compute_") ) return (void *)FORTRAN(dot_y_compute);
+
+else if ( !strcmp(name,"dot_z_init_") ) return (void *)FORTRAN(dot_z_init);
+else if ( !strcmp(name,"dot_z_compute_") ) return (void *)FORTRAN(dot_z_compute);
+
+else if ( !strcmp(name,"dot_t_init_") ) return (void *)FORTRAN(dot_t_init);
+else if ( !strcmp(name,"dot_t_compute_") ) return (void *)FORTRAN(dot_t_compute);
 
-else if ( !strcmp(name,"innerproduct_y_init_") ) return (void *)FORTRAN(innerproduct_y_init);
-else if ( !strcmp(name,"innerproduct_y_compute_") ) return (void *)FORTRAN(innerproduct_y_compute);
+else if ( !strcmp(name,"dot_e_init_") ) return (void *)FORTRAN(dot_e_init);
+else if ( !strcmp(name,"dot_e_compute_") ) return (void *)FORTRAN(dot_e_compute);
 
-else if ( !strcmp(name,"innerproduct_z_init_") ) return (void *)FORTRAN(innerproduct_z_init);
-else if ( !strcmp(name,"innerproduct_z_compute_") ) return (void *)FORTRAN(innerproduct_z_compute);
+else if ( !strcmp(name,"dot_f_init_") ) return (void *)FORTRAN(dot_f_init);
+else if ( !strcmp(name,"dot_f_compute_") ) return (void *)FORTRAN(dot_f_compute);
 
-else if ( !strcmp(name,"innerproduct_t_init_") ) return (void *)FORTRAN(innerproduct_t_init);
-else if ( !strcmp(name,"innerproduct_t_compute_") ) return (void *)FORTRAN(innerproduct_t_compute);
+/* tracks2grid_mask_ave_xyt.F */
+else if ( !strcmp(name,"tracks2grid_mask_ave_xyt_init_") ) return (void *)FORTRAN(tracks2grid_mask_ave_xyt_init);
+else if ( !strcmp(name,"tracks2grid_mask_ave_xyt_work_size_") ) return (void *)FORTRAN(tracks2grid_mask_ave_xyt_work_size);
+else if ( !strcmp(name,"tracks2grid_mask_ave_xyt_compute_") ) return (void *)FORTRAN(tracks2grid_mask_ave_xyt_compute);
 
-else if ( !strcmp(name,"innerproduct_e_init_") ) return (void *)FORTRAN(innerproduct_e_init);
-else if ( !strcmp(name,"innerproduct_e_compute_") ) return (void *)FORTRAN(innerproduct_e_compute);
+/*  tracks2grid_std_xyt.F */
+else if ( !strcmp(name,"tracks2grid_std_xyt_init_") ) return (void *)FORTRAN( tracks2grid_std_xyt_init);
+else if ( !strcmp(name,"tracks2grid_std_xyt_work_size_") ) return (void *)FORTRAN( tracks2grid_std_xyt_work_size);
+else if ( !strcmp(name,"tracks2grid_std_xyt_compute_") ) return (void *)FORTRAN( tracks2grid_std_xyt_compute);
 
-else if ( !strcmp(name,"innerproduct_f_init_") ) return (void *)FORTRAN(innerproduct_f_init);
-else if ( !strcmp(name,"innerproduct_f_compute_") ) return (void *)FORTRAN(innerproduct_f_compute);
+/*  scat2grid_minmax_xyt.F */
+else if ( !strcmp(name,"scat2grid_minmax_xyt_init_") ) return (void *)FORTRAN( scat2grid_minmax_xyt_init);
+else if ( !strcmp(name,"scat2grid_minmax_xyt_result_limits_") ) return (void *)FORTRAN( scat2grid_minmax_xyt_result_limits);
+else if ( !strcmp(name,"scat2grid_minmax_xyt_work_size_") ) return (void *)FORTRAN( scat2grid_minmax_xyt_work_size);
+else if ( !strcmp(name,"scat2grid_minmax_xyt_compute_") ) return (void *)FORTRAN( scat2grid_minmax_xyt_compute);
 
+/*  scat2grid_std_xyt.F */
+else if ( !strcmp(name,"scat2grid_std_xyt_init_") ) return (void *)FORTRAN( scat2grid_std_xyt_init);
+else if ( !strcmp(name,"scat2grid_std_xyt_work_size_") ) return (void *)FORTRAN( scat2grid_std_xyt_work_size);
+else if ( !strcmp(name,"scat2grid_std_xyt_compute_") ) return (void *)FORTRAN( scat2grid_std_xyt_compute);
 
 return NULL;
  }
diff --git a/fer/common/errmsg.parm b/fer/common/errmsg.parm
index 05dbe9e..ba53a13 100644
--- a/fer/common/errmsg.parm
+++ b/fer/common/errmsg.parm
@@ -9,6 +9,8 @@
 * V684 9/12 *acm*  - Add error code for file not found
 *                    (error message for font files not found)
 * V685+ *sh* 10/13 - added ferr_unknown_auxvar
+* V72  *acm*  6/17 - add ferr_ppl_error to call errmsg routine for syntax
+*                    errors calling PPLUS, see ticket 2543
 
 * error coding:
 *	gspecial +1--> gnoreport	- error codes requiring special action
@@ -87,6 +89,7 @@
      .			ferr_remotevar_error,
      .			ferr_file_not_found,
      .			ferr_unknown_auxvar,
+     .			ferr_ppl_error,
      .			ferr_sys_return
 	PARAMETER     ( ferr_insuff_memory	= greport		+ 1,
      .			ferr_too_many_vars	= ferr_insuff_memory	+ 1,
@@ -128,11 +131,13 @@
      .			ferr_ef_error	        = ferr_unknown_command	+ 1,
      .			ferr_data_type	        = ferr_ef_error 	+ 1,
      .			ferr_nomessge	        = ferr_data_type 	+ 1,
-     .                  ferr_unknown_attribute  = ferr_nomessge         + 1,
-     .                  ferr_not_attribute      = ferr_unknown_attribute+ 1,
+     .                  ferr_unknown_attribute  = ferr_nomessge         + 1)
+
+	PARAMETER     ( ferr_not_attribute      = ferr_unknown_attribute+ 1,
      .                  ferr_aggregate_error    = ferr_not_attribute    + 1,
      .                  ferr_remotevar_error    = ferr_aggregate_error  + 1,
      .                  ferr_file_not_found     = ferr_remotevar_error  + 1,
      .			ferr_unknown_auxvar	= ferr_file_not_found   + 1,
-     .			ferr_sys_return		= ferr_unknown_auxvar   + 1)
-	PARAMETER     ( gnum_report	= 46 )
+     .			ferr_ppl_error		= ferr_unknown_auxvar   + 1,
+     .			ferr_sys_return		= ferr_ppl_error        + 1)
+	PARAMETER     ( gnum_report	= 47 )
diff --git a/fer/common/ferret.parm b/fer/common/ferret.parm
index 5aadd33..9f3b5e3 100644
--- a/fer/common/ferret.parm
+++ b/fer/common/ferret.parm
@@ -58,6 +58,7 @@
 *                  uvar_aux_var replaced with calls to LIST routines in NCF_Util.c 
 *                  Increase size of max_gfdl_dsets and max_grids
 * V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
+* V720: 6/17 *acm* Ticket 2346: new @IIN regridding transform
 
 * this should always match maxdsets in TMAP_FORMAT:
 	INTEGER		max_gfdl_dsets
@@ -398,7 +399,8 @@
      .			prgrd_nbin,
      .			prgrd_from_source,
      .			prgrd_from_ntrmed,
-     .			pinterpolate
+     .			pinterpolate,
+     .			prgrd_iin
 	PARAMETER     (	max_regrid_trans	= 30,   ! increased 11/95
      .			prgrd_exact		= 1,
      .			prgrd_linear_interp	= 2,
@@ -424,6 +426,7 @@
      .			prgrd_nbin		= 22,
      .			prgrd_from_source	= -6,
      .			prgrd_from_ntrmed	= -7,
+     .			prgrd_iin		= 23,
      .			pinterpolate		= 0 )
 
 * auxiliary regridding transformations
diff --git a/fer/common/grid_chg_fcns.parm b/fer/common/grid_chg_fcns.parm
index 10a7a86..8eb15be 100644
--- a/fer/common/grid_chg_fcns.parm
+++ b/fer/common/grid_chg_fcns.parm
@@ -29,6 +29,7 @@
 *                are compatible with parg_type_float=1, parg_type_string=2
 * v720: 03/17 -- added p_innerprod for inner product function
 * v720: 03/17 -- added p_transpose for transpose function
+* v720: 05/17 -- rename innerproduct functions to dot
 
 
 	INTEGER		p_xunravel, p_times2, p_reshape, p_zlayer,
@@ -38,7 +39,7 @@
      .			p_samplem, p_samplen,
      .			p_spawn, p_strcmp, p_strlen, p_upcase, 
      .                  p_strindex, p_strrindex, p_dncase, p_strcat,
-     .                  p_substring, p_strfloat, p_innerprod, p_transpose
+     .                  p_substring, p_strfloat, p_dot, p_transpose
 
 	PARAMETER     ( p_xunravel = 1,
      .			p_times2      = p_xunravel  + 1,
@@ -65,8 +66,8 @@
      .                  p_strcat      = p_dncase    + 1,
      .                  p_substring   = p_strcat    + 1,
      .                  p_strfloat    = p_substring + 1,
-     .                  p_innerprod   = p_strfloat  + 1,
-     .                  p_transpose   = p_innerprod + 1 )
+     .                  p_dot         = p_strfloat  + 1,
+     .                  p_transpose   = p_dot + 1 )
 
 * parameters to control the passing of context information
 	INTEGER		pset_to_unspec, ppass_along
diff --git a/fer/common/slash.parm b/fer/common/slash.parm
index 5e04f8a..31f3285 100644
--- a/fer/common/slash.parm
+++ b/fer/common/slash.parm
@@ -75,6 +75,8 @@
 *                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
 *                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 * V720 *acm*  3/17 Ticket 2512: Add STAT/PRECICISION=
+* V720 *acm*  5/17 Ticket 2530 add WIRE/COLOR= and draw the color with pen 1
+* PyFr *kms*  5/17 Ticket 2530 add WIRE/COLOR= /OPACITY= /THICKNESS= 
 
 
 * command qualifier states
@@ -371,6 +373,9 @@
      .			slash_wire_view,
      .			slash_wire_zlimits,
      .			slash_wire_zscale,
+     .			slash_wire_color,
+     .			slash_wire_thick,
+     .			slash_wire_opacity,
      .
      .			slash_frame_format,
      .			slash_frame_file,
@@ -694,6 +699,9 @@
      .			slash_wire_view		= 1+16,
      .			slash_wire_zlimits	= 1+17,
      .			slash_wire_zscale	= 1+20,
+     .			slash_wire_color	= 1+21,
+     .			slash_wire_thick	= 1+22,
+     .			slash_wire_opacity	= 1+23,
      .
      .			slash_frame_format	= 0 + 1,
      .			slash_frame_file	= 1 + 1,
diff --git a/fer/common/xprog_state.cmn b/fer/common/xprog_state.cmn
index f477bcf..825aa73 100644
--- a/fer/common/xprog_state.cmn
+++ b/fer/common/xprog_state.cmn
@@ -55,6 +55,9 @@
 *		  - increased max_item_list 250 -> 1000
 * V697  2/16 *acm* DO NOT Increase length of cmnd buffer from 2048
 * V702 2/17 *sh* add mode FRUGAL and spawn_status
+* v720 7/17 *acm* ticket 2552 Make SPAWN_STATUS return the return status, so 0=succcess
+*           SPAWN_STATUS returns the status value, used for SPAWN_OK and SPAWN_STATUS
+* v720 7/17 *kms* remove unused its_pyferret flag
 
 	INTEGER		cmnd_buff_len, max_qual_list, max_arg_list,
      .			max_item_list, max_modes, mode_stack_size,
@@ -176,7 +179,7 @@
      .		genl_storage(25),
      .		ifstk, ifstk_skipping,
      .		if_cs(max_ifstk), if_doing(max_ifstk),
-     .          num_linecolors
+     .          num_linecolors, spawn_status
 
 	LOGICAL
      .		list_format_given, list_unformatted, list_dsf, list_redirected,
@@ -196,8 +199,7 @@
      .          allowed_err,
      .          one_cmnd_mode,
      .		mode_auto_curvi, mode_auto_curvi_last,
-     .		mode_auto_layerz, mode_auto_layerz_last,
-     .		its_pyferret, spawn_status
+     .		mode_auto_layerz, mode_auto_layerz_last
 
 ! Note: available_char_var is unused
 	CHARACTER
@@ -234,7 +236,7 @@
      .		interactive, prompt, prompt_len, 
      .		input_source, mouse_input,
      .		if_conditional, ifstk, ifstk_skipping, if_cs, if_doing,
-     .          num_linecolors,
+     .          num_linecolors, spawn_status,
      .		cmnd_buff, last_cmnd_buff,
      .          mode_grat_buff,
      .		len_cmnd, len_last_cmnd, cmnd_num, subcmnd_num,
@@ -255,11 +257,10 @@
      .		in_get_grid_mode, 
      .		mode_auto_curvi, mode_auto_curvi_last,
      .		mode_auto_layerz, mode_auto_layerz_last,
-     .		spawn_status,
      .		frame_compress, available_char_var,
      .		journal_file, ppllist_file,
      .		xwind_node, xwind_node_len,
-     .		genl_storage, its_script, its_pyferret, grat_on,
+     .		genl_storage, its_script, grat_on,
      .          shade_trim, silent_err, allowed_err, one_cmnd_mode,
      .		ppl_wait, mode_name, 
      .          scriptfile_name, show_file, list_outtype
diff --git a/fer/ctx/merge_grid.F b/fer/ctx/merge_grid.F
index 69bf0dd..27e3f1d 100644
--- a/fer/ctx/merge_grid.F
+++ b/fer/ctx/merge_grid.F
@@ -118,6 +118,10 @@
 *                 of other exprns.
 * V695 *acm* 6/16 Fix ticket 1602. Do not substitute abstract axes for normal axes
 *                 when merging a constant.
+* V72  *acm* 6/17 For the above change, ticket 1602, and also for comment #3 of 2313, 
+*                 do the check differently. If the the grid of the component is 
+*                 all-abstract (and the variable is a constant), do not add abstract 
+*                 axes to the merged grid.
 
 	include 'tmap_dims.parm'
 	include 'grid_chg_fcns.parm'
@@ -273,12 +277,13 @@
      .          .EQ. alg_constant
 	ENDIF
 
-* Is the mrg_grd all normal or abstract ?
+* Is the com_grd all  abstract ?  If so we won't add abstract axes willy-nilly
+* to the grid
 	mabstract = grid_line( 1, mgrid_abstract )
 	normabst = .TRUE.
 	DO idim = 1, nferdims
-	   iline = grid_line(idim,mrg_grd)
-	   IF (iline.NE.mnormal .AND. iline.NE.mabstract) normabst = .FALSE.
+	   iline = grid_line(idim,com_grd)
+	   IF (iline.NE.mabstract) normabst = .FALSE.
 	ENDDO
 
 * for merged context to be data set independent all components must be so
@@ -490,7 +495,8 @@
 * when merging a constant
 
 	IF (com_ax.EQ.mabstract .AND. mrg_ax.EQ.mnormal) THEN
-	   IF (.NOT. (normabst) .AND. var_is_const) GOTO 400
+c	   IF (.NOT. (normabst) .AND. var_is_const) GOTO 400
+	   IF (normabst .AND. var_is_const) GOTO 400
 	ENDIF
 
 * take appropriate merging action
diff --git a/fer/dat/xalgebra_data.F b/fer/dat/xalgebra_data.F
index d161806..a2f47ba 100644
--- a/fer/dat/xalgebra_data.F
+++ b/fer/dat/xalgebra_data.F
@@ -96,6 +96,7 @@
 * V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
 * V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
 * V696 *acm8 11/15 Clarify descriptions for @BIN, @NBIN, @AVE, @NGD, @SUM regridding
+* V720: 6/17 *acm* Ticket 2346: new @IIN regridding transform
 
         IMPLICIT NONE
 	include	'ferret.parm'
@@ -774,13 +775,16 @@
      .		alg_regrid_title( prgrd_nbin )		/ '#good in bin'/,
      .		alg_regrid_code ( prgrd_nbin )		/ 'NBIN'	/
      .		alg_regrid_vizb ( prgrd_nbin )		/ .TRUE.	/,
+     .		alg_regrid_title( prgrd_iin )		/ '#indef integral'/,
+     .		alg_regrid_code ( prgrd_iin )		/ 'IIN'	/
+     .		alg_regrid_vizb ( prgrd_iin )		/ .TRUE.	/,
 
-     .		(alg_regrid_title(i),i=prgrd_nbin+1,max_regrid_trans)
-     .				/8*unspecified_name4/,
-     .		(alg_regrid_code (i),i=prgrd_nbin+1,max_regrid_trans)
-     .				/8*unspecified_name4/,
-     .		(alg_regrid_vizb (i),i=prgrd_nbin+1,max_regrid_trans)
-     .				/8*.FALSE./
+     .		(alg_regrid_title(i),i=prgrd_iin+1,max_regrid_trans)
+     .				/7*unspecified_name4/,
+     .		(alg_regrid_code (i),i=prgrd_iin+1,max_regrid_trans)
+     .				/7*unspecified_name4/,
+     .		(alg_regrid_vizb (i),i=prgrd_iin+1,max_regrid_trans)
+     .				/7*.FALSE./
 
 
 	DATA
diff --git a/fer/dat/xcommand_data.F b/fer/dat/xcommand_data.F
index 32ba215..61b4585 100644
--- a/fer/dat/xcommand_data.F
+++ b/fer/dat/xcommand_data.F
@@ -255,6 +255,9 @@
 * V702 *sh*   1/17 Removed the USER command
 *	      3/17 Added SHOW MEMORY/DIAGNOSTIC
 * V720 *acm*  3/17 Ticket 2512: Add STAT/PRECISION=
+* V720 *acm*  5/17 Ticket 2530 add WIRE/COLOR= 
+* PyFr *kms*  5/17 Ticket 2530 add WIRE/COLOR= /OPACITY= /THICKNESS=
+
 *
 * !!!!!!!!!!
 * Use caution when defining new commands, qualifiers, or changing these data structures:
@@ -1630,9 +1633,9 @@
 		DATA qualifiers  (nqual_at21a+18)/ 'TRANPOSE'/  
 		DATA qualifiers  (nqual_at21a+19)/ 'NOLABEL'/   
 		DATA qualifiers  (nqual_at21a+20)/ 'ZSCALE'/
-		DATA qualifiers  (nqual_at21a+21)/ '****'/
-		DATA qualifiers  (nqual_at21a+22)/ '****'/
-		DATA qualifiers  (nqual_at21a+23)/ '****'/
+		DATA qualifiers  (nqual_at21a+21)/ 'COLOR'/
+		DATA qualifiers  (nqual_at21a+22)/ 'THICKNES'/
+		DATA qualifiers  (nqual_at21a+23)/ 'OPACITY'/
 		DATA qualifiers  (nqual_at21a+24)/ '****'/
 		DATA qualifiers  (nqual_at21a+25)/ '****'/
 		DATA qualifiers  (nqual_at21a+26)/ 'TITLE'/
diff --git a/fer/dat/xgfdl_error_text_data.F b/fer/dat/xgfdl_error_text_data.F
index 15a9e2e..f1a43e3 100644
--- a/fer/dat/xgfdl_error_text_data.F
+++ b/fer/dat/xgfdl_error_text_data.F
@@ -68,6 +68,9 @@
 * V684 9/12 *acm*  - Add error code for file not found
 *                    (error message for font files not found)
 * V658+ *sh* 10/13 - added ferr_unknown_auxvar
+* V72  *acm*  6/17 - add ferr_ppl_error to call errmsg routine for syntax
+*                    errors calling PPLUS, see ticket 2543
+
 
         IMPLICIT NONE
 	include 'errmsg.parm'	! parameter definitions
@@ -299,6 +302,13 @@
 
 	DATA err_text( ferr_unknown_auxvar - greport )
      .		/ 'auxiliary variable unknown or not in data set' /
+	DATA report_err_code( ferr_aggregate_error - greport )
+     .		/ 'auxvar_error' /
+
+	DATA err_text( ferr_ppl_error - greport )
+     .		/ 'PPLUS command syntax error' /
+	DATA report_err_code( ferr_ppl_error - greport )
+     .		/ 'ppl_cmd_error' /
 
 	DATA err_text( ferr_sys_return - greport )
      .		/ 'Shell command returned failure flag' /
diff --git a/fer/dat/xgrid_chg_fcns_data.F b/fer/dat/xgrid_chg_fcns_data.F
index 89a97f8..676e82a 100644
--- a/fer/dat/xgrid_chg_fcns_data.F
+++ b/fer/dat/xgrid_chg_fcns_data.F
@@ -54,8 +54,10 @@
 *                    internal string handling functions   
 * V550: *acm*10/02 - Correct the function description for SUBSTRING
 *        2/12 *kms* Add E and F dimensions (set to nferdims in tmap_dims.parm)
-* V720: 4/17 *acm* Add INNERPRODUCT and TRANSPOSE as direction-changing functions
+* V720: 4/17 *acm* Add DOT (inner product) and TRANSPOSE as direction-changing functions
 *                  which call specific funcions depenging on direction arguments
+* v720: 5/17 *acm* Rename innerproduct functions to dot
+*                  Also fix gfcn_axis_implied_from definition for arg 3 of DOT function
 
 * the addition (or major modification) of an internal grid-changing function
 * requires changes to these routines:
@@ -1234,77 +1236,82 @@
      .    / .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE. /
 
 
-* INNERPRODUCT(var1,var2,idim) - return inner-product of two variables 
+* dot(var1,var2,idim) - return inner-product of two variables 
 *                                computed along a given common dimension
-	INTEGER		p_innerprod_arg_start, p_innerprod_num_args
-	PARAMETER     ( p_innerprod_arg_start = p_strfloat_arg_start +
+	INTEGER		p_dot_arg_start, p_dot_num_args
+	PARAMETER     ( p_dot_arg_start = p_strfloat_arg_start +
      .					    p_strfloat_num_args,
-     .			p_innerprod_num_args  = 3 )
-	DATA gfcn_name         (p_innerprod) /'INNERPRODUCT'/
-	DATA gfcn_alt_name_base (p_innerprod) /'INNERPRODUCT_%'/
-	DATA gfcn_version      (p_innerprod) / 1.0 /
-	DATA gfcn_descr        (p_innerprod) /
+     .			p_dot_num_args  = 3 )
+	DATA gfcn_name         (p_dot) /'DOT'/
+	DATA gfcn_alt_name_base (p_dot) /'DOT_%'/
+	DATA gfcn_version      (p_dot) / 1.0 /
+	DATA gfcn_descr        (p_dot) /
      .	'Compute the inner product of two variables along given dimension' /
-	DATA gfcn_rtn_type     (p_innerprod) /pfcn_rtn_float /
-	DATA gfcn_num_reqd_args(p_innerprod) /p_innerprod_num_args/
-	DATA (gfcn_dir_args(i,p_innerprod),i=1,nferdims)/3,0,0,0,0,0/
-	DATA gfcn_has_vari_args(p_innerprod) /.FALSE./
-	DATA (gfcn_axis_will_be(i,p_innerprod),i=1,nferdims)/
+	DATA gfcn_rtn_type     (p_dot) /pfcn_rtn_float /
+	DATA gfcn_num_reqd_args(p_dot) /p_dot_num_args/
+	DATA (gfcn_dir_args(i,p_dot),i=1,nferdims)/3,0,0,0,0,0/
+	DATA gfcn_has_vari_args(p_dot) /.FALSE./
+	DATA (gfcn_axis_will_be(i,p_dot),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
      .					pgc_axis_implied_by_args,
      .					pgc_axis_implied_by_args,
      .					pgc_axis_implied_by_args,
      .					pgc_axis_implied_by_args,
      .					pgc_axis_implied_by_args/
-	DATA (gfcn_piecemeal_ok(i,p_innerprod),i=1,nferdims)
+	DATA (gfcn_piecemeal_ok(i,p_dot),i=1,nferdims)
      .      / .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /
-	DATA gfcn_arg_ptr(p_innerprod) /p_innerprod_arg_start/
+	DATA gfcn_arg_ptr(p_dot) /p_dot_arg_start/
 
 * ... description of argument 1
-	DATA gfcn_arg_name(p_innerprod_arg_start+0)/'VAR1'/
-	DATA gfcn_arg_type(p_innerprod_arg_start+0)/parg_type_float/
-	DATA gfcn_arg_units(p_innerprod_arg_start+0)/' '/
-	DATA gfcn_arg_descr(p_innerprod_arg_start+0)/'Variable 1'/
-	DATA (gfcn_arg_extend_lo (i,p_innerprod_arg_start+0),i=1,nferdims)
+	DATA gfcn_arg_name(p_dot_arg_start+0)/'VAR1'/
+	DATA gfcn_arg_type(p_dot_arg_start+0)/parg_type_float/
+	DATA gfcn_arg_units(p_dot_arg_start+0)/' '/
+	DATA gfcn_arg_descr(p_dot_arg_start+0)/'Variable 1'/
+	DATA (gfcn_arg_extend_lo (i,p_dot_arg_start+0),i=1,nferdims)
      .    / 0, 0, 0, 0, 0, 0 /
-	DATA (gfcn_arg_extend_hi (i,p_innerprod_arg_start+0),i=1,nferdims)
+	DATA (gfcn_arg_extend_hi (i,p_dot_arg_start+0),i=1,nferdims)
      .    / 0, 0, 0, 0, 0, 0 /
 * ... merge the axes implied by argument 1 ?
-	DATA (gfcn_axis_implied_from(i, p_innerprod_arg_start+0),i=1,nferdims)
+	DATA (gfcn_axis_implied_from(i, p_dot_arg_start+0),i=1,nferdims)
+     .    / .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE. /
+
+     
+* ... merge the axes implied by argument 1 ?
+	DATA (gfcn_axis_implied_from(i, p_substring_arg_start+0),i=1,nferdims)
      .    / .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE. /
 
 * ... description of argument 2
-	DATA gfcn_arg_name(p_innerprod_arg_start+1)/'VAR2'/
-	DATA gfcn_arg_type(p_innerprod_arg_start+1)/parg_type_float/
-	DATA gfcn_arg_units(p_innerprod_arg_start+1)/' '/
-	DATA gfcn_arg_descr(p_innerprod_arg_start+1)/'Variable 2'/
-	DATA (gfcn_arg_extend_lo (i,p_innerprod_arg_start+1),i=1,nferdims)
+	DATA gfcn_arg_name(p_dot_arg_start+1)/'VAR2'/
+	DATA gfcn_arg_type(p_dot_arg_start+1)/parg_type_float/
+	DATA gfcn_arg_units(p_dot_arg_start+1)/' '/
+	DATA gfcn_arg_descr(p_dot_arg_start+1)/'Variable 2'/
+	DATA (gfcn_arg_extend_lo (i,p_dot_arg_start+1),i=1,nferdims)
      .    / 0, 0, 0, 0, 0, 0 /
-	DATA (gfcn_arg_extend_hi (i,p_innerprod_arg_start+1),i=1,nferdims)
+	DATA (gfcn_arg_extend_hi (i,p_dot_arg_start+1),i=1,nferdims)
      .    / 0, 0, 0, 0, 0, 0 /
 * ... merge the axes implied by argument 2 ?
-	DATA (gfcn_axis_implied_from(i, p_innerprod_arg_start+1),i=1,nferdims)
+	DATA (gfcn_axis_implied_from(i, p_dot_arg_start+1),i=1,nferdims)
      .    / .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE. /
 
 * ... description of argument 3
-	DATA gfcn_arg_name(p_innerprod_arg_start+2)/'IDIM'/
-	DATA gfcn_arg_type(p_innerprod_arg_start+2)/parg_type_float/
-	DATA gfcn_arg_units(p_innerprod_arg_start+2)/' '/
-	DATA gfcn_arg_descr(p_innerprod_arg_start+2)/'Dimension (e.g.1,2,...)'/
-	DATA (gfcn_arg_extend_lo (i,p_innerprod_arg_start+1),i=1,nferdims)
+	DATA gfcn_arg_name(p_dot_arg_start+2)/'IDIM'/
+	DATA gfcn_arg_type(p_dot_arg_start+2)/parg_type_float/
+	DATA gfcn_arg_units(p_dot_arg_start+2)/' '/
+	DATA gfcn_arg_descr(p_dot_arg_start+2)/'Dimension (e.g.1,2,...)'/
+	DATA (gfcn_arg_extend_lo (i,p_dot_arg_start+1),i=1,nferdims)
      .    / 0, 0, 0, 0, 0, 0 /
-	DATA (gfcn_arg_extend_hi (i,p_innerprod_arg_start+1),i=1,nferdims)
+	DATA (gfcn_arg_extend_hi (i,p_dot_arg_start+1),i=1,nferdims)
      .    / 0, 0, 0, 0, 0, 0 /
 * ... merge the axes implied by argument 3 ?
-	DATA (gfcn_axis_implied_from(i, p_innerprod_arg_start+1),i=1,nferdims)
+	DATA (gfcn_axis_implied_from(i, p_dot_arg_start+2),i=1,nferdims)
      .    / .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /
 
 c-------------
 
 * TRANSPOSE(var,dim1,dim2) - return transpose of variable in the two given directions
 	INTEGER		p_transpose_arg_start, p_transpose_num_args
-	PARAMETER     ( p_transpose_arg_start = p_innerprod_arg_start +
-     .					    p_innerprod_num_args,
+	PARAMETER     ( p_transpose_arg_start = p_dot_arg_start +
+     .					    p_dot_num_args,
      .			p_transpose_num_args  = 3 )
 	DATA gfcn_name         (p_transpose) /'TRANSPOSE'/
 	DATA gfcn_alt_name_base (p_transpose) /'TRANSPOSE_%%'/
diff --git a/fer/dat/xprog_state_data.F b/fer/dat/xprog_state_data.F
index c89f7bc..e3f505a 100644
--- a/fer/dat/xprog_state_data.F
+++ b/fer/dat/xprog_state_data.F
@@ -124,6 +124,9 @@
 * V698  4/16 *acm* For ticket 2399: Apply MODE CALENDAR settings to F axes too
 * V702  3/17 *sh* new mode FRUGAL
 *                 SPAWN command returns spawn_status
+* v720 7/17 *acm* ticket 2552 Make SPAWN_STATUS return the return status, so 0=succcess
+*                 SPAWN_STATUS returns the status value, used for SPAWN_OK and SPAWN_STATUS
+* v720 7/17 *kms* remove unused its_pyferret flag
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -396,7 +399,6 @@
         DATA    allowed_err             / .FALSE. /  ! briefly set true in SHOW VAR/TREE
         DATA    grat_on                 / .FALSE. /
         DATA    num_linecolors          / 6 /
-        DATA    its_pyferret            / .TRUE. /
-        DATA    spawn_status            / .TRUE. /  ! =last cmnd was successful
+        DATA    spawn_status            / 0 /  ! zero means last cmnd was successful
 
 	END
diff --git a/fer/dat/xrevision_data.F b/fer/dat/xrevision_data.F
index e579e01..a321290 100644
--- a/fer/dat/xrevision_data.F
+++ b/fer/dat/xrevision_data.F
@@ -135,12 +135,15 @@
 * v7.02   12/2016 Merged true-monthly axis branch to the trunk
 * v7.1     2/2017 Official release
 * v7.11    4/19/2017 Tag before GFDL visit 4/2017
+* v7.12    5/11/2017 
+* v7.13    6/ 6/2017  fixes to tickets 2538, 2539
+* v7.20    7/11/2017 7.20 release
 
         IMPLICIT NONE
 	include	'xrevision.cmn'
 
 	DATA program_name	/ 'PyFerret' /
 	DATA len_program_name	/  8       /
-	DATA revision_level	/  7.11   /
+	DATA revision_level	/  7.20   /
 
 	END
diff --git a/fer/doo/SOURCE_FILES b/fer/doo/SOURCE_FILES
index 1a514b0..347b417 100644
--- a/fer/doo/SOURCE_FILES
+++ b/fer/doo/SOURCE_FILES
@@ -43,6 +43,7 @@ do_external_gc_fcn.F\
 do_fill_ave.F\
 do_fill_interp.F\
 do_fill_near.F\
+do_iin_regrid.F\
 do_int_indef.F\
 do_int_indef_sub.F\
 do_integ_def.F\
@@ -93,6 +94,7 @@ finalize_variance.F\
 geog_cos_factor.F\
 get_linear_coef.F\
 hanng_wt.F\
+iin_regrid.F\
 lin_regrid_1_axis.F\
 maxsmoother.F\
 median.F\
diff --git a/fer/doo/do_4d_trans.F b/fer/doo/do_4d_trans.F
index 98b6ef3..b589d9e 100644
--- a/fer/doo/do_4d_trans.F
+++ b/fer/doo/do_4d_trans.F
@@ -79,6 +79,8 @@
 * V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
 * V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 * V702 *sh* 11/16 mods for trac #2428 - calculation in gathered fragments
+* V72  *acm* 6/17 Ticket 2539: Do not set res to bad-value for ave, din.
+*                 Weights of zero or non-zero mark whether data is found.
 
 	IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -100,8 +102,8 @@
 	INTEGER idim, i, j, ir, jr, kr, lr, mr, nr, ic, jc, kc, lc, mc, nc,
      .		grid, nbd, ngd, com_lo(nferdims), com_hi(nferdims),
      .		box_offset(nferdims), offset, ind_lo, ind_hi, cos_offset
-	REAL	BOX_SIZE, unit, bad_com, bad_res, box, mean, diff,
-     .		xbox, ybox, zbox, tbox, ebox, fbox,
+	REAL	BOX_SIZE, unit, bad_com, bad_res, box, mean, 
+     .		diff,xbox, ybox, zbox, tbox, ebox, fbox,
      .		yc, yh, yh_2, bb, ybxlo, ybxhi, lo_box_lo, hi_box_hi
 	REAL*8	TM_WORLD, dsum, bsum, ok,
      .		w, v, wsum_chunk, mean_chunk, mean_old, s_chunk
@@ -381,15 +383,8 @@ C (Unless there is just one grid cell in the y direction.)
             jc = j_lo
             ic = i_lo
 
-	    IF (at_din) THEN
-               IF (com(ic,jc,kc,lc,mc,nc) .EQ. bad_com) THEN
-                  res(ir,jr,kr,lr,mr,nr) = bad_res
-               ELSE
-                  res(ir,jr,kr,lr,mr,nr) = 0.0
-	       ENDIF
-            ELSE
-               res(ir,jr,kr,lr,mr,nr) = bad_res
-            ENDIF
+	    IF (at_din .AND. com(ic,jc,kc,lc,mc,nc) .NE. bad_com) 
+     .        res(ir,jr,kr,lr,mr,nr) = 0.0
             GOTO 300
           ENDIF
 
@@ -471,8 +466,9 @@ C (Unless there is just one grid cell in the y direction.)
 * *sh* 11/16 -- accumulate values, only in this routine.  Finalize elsewhere
 * acm notes: 
 *   o at_ngd and at_nbd, add the current result to res(ir,jr,... )?  
-*   o If bsum EQ 0, do not set the accumulating result to bad_res.  Do we 
-*     need to pass back an accumulated ngd to use in the finalize step?
+*   o If bsum EQ 0, do not set the accumulating result to bad_res as
+*     we did in the non-scatter and finalize code.  The weights take 
+*     care of knowing if any good data was found.
 
 	  IF (at_ngd) THEN
 	     res(ir,jr,kr,lr,mr,nr) = ngd  
@@ -482,17 +478,12 @@ C (Unless there is just one grid cell in the y direction.)
 	     res(ir,jr,kr,lr,mr,nr) = dsum
 	     weights(ir,jr,kr,lr,mr,nr) = weights(ir,jr,kr,lr,mr,nr) + ok ! weights are #valid
 	  ELSEIF (its_ave_or_din) THEN
-	    IF (res(ir,jr,kr,lr,mr,nr) .NE. bad_res) THEN
 	      res    (ir,jr,kr,lr,mr,nr) = res    (ir,jr,kr,lr,mr,nr) + dsum
 	      weights(ir,jr,kr,lr,mr,nr) = weights(ir,jr,kr,lr,mr,nr) + bsum
-	    ENDIF
 	  ELSEIF (its_var_or_std) THEN
 	    res    (ir,jr,kr,lr,mr,nr) = mean_chunk
 	    weights(ir,jr,kr,lr,mr,nr) = wsum_chunk
 	    s_var  (ir,jr,kr,lr,mr,nr) = s_chunk
-          ELSEIF ( bsum .EQ. 0.0D0 ) THEN
-	     res(ir,jr,kr,lr,mr,nr) = bad_res
-	  ELSE
 	  
 	     CONTINUE
 	  ENDIF
diff --git a/fer/doo/do_ave_int.F b/fer/doo/do_ave_int.F
index 243db89..0a9bc51 100644
--- a/fer/doo/do_ave_int.F
+++ b/fer/doo/do_ave_int.F
@@ -54,7 +54,8 @@
 * V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 * V702 *sh* 11/16 this routine now performs accumulation only.  Initialization
 *                 and finalizing called separately from IS_TRANS
-
+* V72  *acm* 5/17 Fix ticket 2538: scatter/gather weights when average 
+*                 over a "point"
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -165,6 +166,7 @@
                  ELSE
                     res(pt,j,k,l,m,n) = com(lo,j,k,l,m,n)
                  ENDIF
+		 weights(pt,j,k,l,m,n) = 1.0
                  GOTO 210
               ENDIF
 	      dsum = 0.0D0	! data
@@ -194,6 +196,7 @@
                  ELSE
                     res(i,pt,k,l,m,n) = com(i,lo,k,l,m,n)
                  ENDIF
+		 weights(i,pt,k,l,m,n) = 1.0
                  GOTO 310
               ENDIF
 	      dsum = 0.0D0	! data
@@ -222,6 +225,7 @@
                  ELSE
                     res(i,j,pt,l,m,n) = com(i,j,lo,l,m,n)
                  ENDIF
+                 weights(i,j,pt,l,m,n) = 1.0
                  GOTO 410
 	      ENDIF
 	      dsum = 0.0D0	! data
@@ -250,6 +254,7 @@
                  ELSE
                     res(i,j,k,pt,m,n) = com(i,j,k,lo,m,n)
                  ENDIF
+		 weights(i,j,k,pt,m,n) = 1.0
                  GOTO 510
               ENDIF
 	      dsum = 0.0D0	! data
@@ -280,6 +285,7 @@
                  ELSE
                     res(i,j,k,l,pt,n) = com(i,j,k,l,lo,n)
                  ENDIF
+		 weights(i,j,k,l,pt,n) = 1.0
                  GOTO 610
               ENDIF
 	      dsum = 0.0D0	! data
@@ -309,6 +315,7 @@
                  ELSE
                     res(i,j,k,l,m,pt) = com(i,j,k,l,m,lo)
                  ENDIF
+		 weights(i,j,k,l,m,pt) = 1.0
                  GOTO 710
               ENDIF
 	      dsum = 0.0D0	! data
diff --git a/ppl/plot/spwn.F b/fer/doo/do_iin_regrid.F
similarity index 74%
copy from ppl/plot/spwn.F
copy to fer/doo/do_iin_regrid.F
index 0151851..11ae5c8 100644
--- a/ppl/plot/spwn.F
+++ b/fer/doo/do_iin_regrid.F
@@ -1,9 +1,11 @@
-	SUBROUTINE SPWN
+	SUBROUTINE DO_IIN_REGRID( cx_lims, axis, src, msrc, dst, mdst,
+     .				  work, itot, status)
+
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
 *  hereafter referred to as NOAA/PMEL/TMAP.
 *
 *  Access and use of this software shall impose the following
@@ -34,26 +36,23 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-C**    @(#)spwn.F	1.1    3/10/88
-C**
-C**
-C***********************************************************************
-C**
-C**                 PLOT+ Scientific Graphics System
-C**
-C***********************************************************************
-C**
-C**
-C** v552 *acm* 3/03 Longer strings: changes for multi-line labels
-C    V6.06 ACM Write error messages to Standard Error, unit number is LERROR
+* call the regridding routine with appropriate work arrays
+
+* programmer - Ansley Manke
+* 4/2017
+
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include	'xcontext.cmn'
+
+* calling argument declarations:
+	INTEGER	cx_lims, axis, msrc, mdst, itot, status
+	REAL	src(*), dst(*), work(*)
 
-	INCLUDE 'CMRDL.INC'
-	INCLUDE 'LUNITS.INC'
-	INCLUDE 'SYSTEM.INC'
-C
-	IF(.NOT.QUIETF)WRITE(lerror,998)ICOM
-998	FORMAT(' **ERROR  COMMAND : ',A12,' NOT RECOGNIZED')
-c
+	CALL IIN_REGRID ( cx_lims, axis,
+     .			    cx_lo_ss(cx_lims,axis), cx_hi_ss(cx_lims,axis),
+     .			    src, msrc, dst, mdst, work, itot, status )
 
 	RETURN
 	END
diff --git a/fer/doo/finalize_ave_int.F b/fer/doo/finalize_ave_int.F
index 6bbf483..0414680 100644
--- a/fer/doo/finalize_ave_int.F
+++ b/fer/doo/finalize_ave_int.F
@@ -43,6 +43,8 @@
 *
 * V702 *sh* 11/16 this routine performs the finalization step that was
 *		  previously a part of DO_AVE_INT
+* V72  *acm* 6/17 Ticket 2539: Do not set res to bad-value for ave, din.
+*                 Weights of zero or non-zero mark whether data is found.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -62,7 +64,7 @@
 
 * internal variable declarations:
 	LOGICAL	average
-	INTEGER	i
+	INTEGER	i 
 	REAL	bad_res
 
 * --- end of introductory code ---
@@ -74,9 +76,7 @@
 
 * finalize (luv it!)
 	DO i = 1, size
-	   IF (res(i) .EQ. bad_res) THEN
-	      CONTINUE				! bad stays bad
-	   ELSEIF (weights(i) .EQ. 0.0D0) THEN
+	   IF (weights(i) .EQ. 0.0D0) THEN  
 	      res(i) = bad_res			! no input values to average
 	   ELSEIF (average) THEN
 	      res(i) = res(i)/weights(i)	! average
diff --git a/fer/doo/iin_regrid.F b/fer/doo/iin_regrid.F
new file mode 100644
index 0000000..e970fa6
--- /dev/null
+++ b/fer/doo/iin_regrid.F
@@ -0,0 +1,327 @@
+	SUBROUTINE IIN_REGRID (	cx_lims, idim, dst_lo, dst_hi,
+     .				src, msrc, dst, mdst, box, itot, status )
+
+*
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+*
+*
+* integrate the component along axis idim producing an "indefinite" integral
+* placing the result on a grid which is 1 cell longer than the source grid,
+* as described in ticket #2346.
+
+* The indefinite integral transform returns a result that is shifted a half-cell 
+* down from where it should be. Because the full cell is being integrated, the 
+* result really ought to sit at the upper edge of the cell, not the cell center.
+
+* 	programmer - Ansley Manke
+* 	NOAA/PMEL,Seattle,WA - 
+* 	revision 1.0 - 4/2017
+
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'errmsg.parm'
+	include 'xvariables.cmn'
+	include	'xmem_subsc.cmn'
+	include 'xcontext.cmn'
+	include 'xunits.cmn_text'
+	external xunits_data
+	include 'xtm_grid.cmn_text'
+	external xgt_grid_data
+
+* CALLING ARGUMENT DECLARATIONS:
+	INTEGER cx_lims, idim, dst_lo, dst_hi, msrc, mdst, itot, status
+	REAL    src( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+     .          dst( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+     .		box(mr_lo_ss(msrc,idim):mr_hi_ss(msrc,idim))
+
+* internal variable declarations:
+	LOGICAL	GEOG_COS_FACTOR, ITSA_TRUEMONTH_AXIS, TM_DFPEQ,
+     .          need_cos, blank
+	INTEGER i, j, k, l, m, n, sgrid, dgrid, axis, src_lo, src_hi,
+     .          ii, jj, kk, ll, mm, nn, is, js, ks, ls, ms, ns
+	REAL	BOX_SIZE, unit, bad_src, bad_dst, cos_factor,
+     .          ybxlo, ybxhi, bx
+	REAL*8	TM_WORLD, dsum
+	
+
+* source and destination grids
+	sgrid = mr_grid( msrc )
+	dgrid = mr_grid( mdst )
+	axis = grid_line( idim, sgrid )
+
+* LIMITS FOR CALCULATION
+        src_lo = mr_lo_ss(msrc,idim)
+        src_hi = mr_hi_ss(msrc,idim)
+
+* FLAG FOR BAD/MISSING DATA
+        bad_src = mr_bad_data(msrc)
+        bad_dst = mr_bad_data(mdst)
+
+* Get and save grid box sizes (weights) just once for efficiency
+* Check that grid boxes are the same size on source and destination axes
+
+        is = src_lo
+        DO 100 i = dst_lo, dst_hi
+           IF (is.LT.src_lo .OR. is.GT.src_hi) GOTO 100
+           bx =  BOX_SIZE( i, dgrid, idim )
+           box(is)  = BOX_SIZE( i, sgrid, idim )
+           IF (.NOT.TM_DFPEQ( bx, box(is) ) ) GOTO 5100
+           is = is + 1
+ 100	CONTINUE
+
+* No overlap between grids; return all-missing result
+	blank = src_lo.GT.dst_hi .OR. src_hi.LT.dst_lo
+
+* perform integrations on standard units if possible
+	unit = un_convert( line_unit_code(axis) )
+	IF (ITSA_TRUEMONTH_AXIS(axis)) unit = un_convert(pun_day)
+	DO 110 i = src_lo, src_hi
+ 110	box(i) = box(i) * unit
+
+* INTEGRATE
+* ALONG X AXIS
+* (note: X integration is a special case because it requires COSINE(lat) )
+	IF ( idim .EQ. x_dim ) THEN
+	   need_cos = GEOG_COS_FACTOR( idim, sgrid )
+     .                .AND. cx_lo_s2(cx_lims).NE.unspecified_int4
+	   DO 210 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+	   cos_factor = 1.D0
+	   IF ( need_cos ) THEN
+#ifdef double_p
+	      cos_factor = COS( deg2rad *       
+     .            TM_WORLD(j, sgrid, y_dim, box_middle) ) 
+              ybxlo = deg2rad* 
+     .            TM_WORLD(j,sgrid,y_dim,box_lo_lim)
+              ybxhi = deg2rad* 
+     .            TM_WORLD(j,sgrid,y_dim,box_hi_lim)
+#else
+	      cos_factor = COS( deg2rad *       
+     .            SNGL( TM_WORLD(j, sgrid, y_dim, box_middle) ) ) 
+              ybxlo = deg2rad* 
+     .            SNGL( TM_WORLD(j,sgrid,y_dim,box_lo_lim) )
+              ybxhi = deg2rad* 
+     .            SNGL( TM_WORLD(j,sgrid,y_dim,box_hi_lim) )
+#endif
+              bx = ABS(ybxhi - ybxlo)
+	      cos_factor = ABS( SIN(ybxhi) - SIN(ybxlo) )/ bx
+	   ENDIF
+	   DO 210 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+	   DO 210 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+	   DO 210 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+	   DO 210 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+	      dsum = 0.0D0
+	      is = src_lo
+	      DO 205 i = dst_lo, dst_hi
+
+	         dst(i,j,k,l,m,n) = bad_dst
+		 IF (blank) GOTO 205
+	         IF (is.GT.src_hi .AND. is.EQ.dst_hi) GOTO 205
+
+	         dst(i,j,k,l,m,n) = dsum * cos_factor
+
+		 IF ( src(is,j,k,l,m,n) .EQ. bad_src ) THEN
+* ... reject all data after a bad point
+	            DO 200 ii = i, dst_hi
+ 200	              dst(ii,j,k,l,m,n) = bad_dst
+	            GOTO 210
+	         ENDIF
+	         dsum = dsum + box(is)*src(is,j,k,l,m,n)
+		 is = is + 1
+ 205	      CONTINUE
+	      IF (is .EQ. dst_hi) dst(is,j,k,l,m,n) = dsum * cos_factor
+ 210	   CONTINUE
+
+* ALONG Y AXIS
+	ELSEIF ( idim .EQ. y_dim ) THEN
+	   DO 310 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+	   DO 310 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+	   DO 310 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+	   DO 310 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+	   DO 310 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+	      dsum = 0.0D0
+	      js = src_lo
+	      DO 305 j = dst_lo, dst_hi
+
+	         dst(i,j,k,l,m,n) = bad_dst
+		 IF (blank) GOTO 305
+	         IF (js.GT.src_hi .AND. js.EQ.dst_hi) GOTO 305
+
+	         dst(i,j,k,l,m,n) = dsum
+	         
+		 IF ( src(i,js,k,l,m,n) .EQ. bad_src ) THEN
+* ... reject all data after a bad point
+	            DO 300 jj = j, dst_hi
+ 300	            dst(i,jj,k,l,m,n) = bad_dst
+	            GOTO 310
+	         ENDIF
+	         dsum = dsum + box(js)*src(i,js,k,l,m,n)
+		 js = js + 1
+ 305	      CONTINUE
+	      IF (js .EQ. dst_hi) dst(i,js,k,l,m,n) = dsum
+ 310	   CONTINUE
+
+
+* ALONG Z AXIS
+	ELSEIF ( idim .EQ. z_dim ) THEN
+	   DO 410 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+	   DO 410 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+	   DO 410 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+	   DO 410 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+	   DO 410 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+	      dsum = 0.0D0
+	      ks = src_lo
+	      DO 405 k = dst_lo, dst_hi
+
+	         dst(i,j,k,l,m,n) = bad_dst
+		 IF (blank) GOTO 405
+	         IF (ks.GT.src_hi .AND. ks.EQ.dst_hi) GOTO 405
+
+	         dst(i,j,k,l,m,n) = dsum
+
+	         IF ( src(i,j,ks,l,m,n) .EQ. bad_src ) THEN
+* ... reject all data after a bad point
+	            DO 400 kk = k, dst_hi
+ 400	            dst(i,j,kk,l,m,n) = bad_dst
+	            GOTO 410
+	         ENDIF
+	         dsum = dsum + box(ks)*src(i,j,ks,l,m,n)
+		 ks = ks + 1
+ 405	      CONTINUE
+	      IF (ks .EQ. dst_hi) dst(i,j,ks,l,m,n) = dsum
+ 410	   CONTINUE
+
+* ALONG T AXIS
+	ELSEIF ( idim .EQ. t_dim ) THEN
+	   DO 510 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+	   DO 510 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+	   DO 510 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+	   DO 510 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+	   DO 510 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+	      dsum = 0.0D0
+	      ls = src_lo
+	      DO 505 l = dst_lo, dst_hi
+	      
+	         dst(i,j,k,l,m,n) = bad_dst
+		 IF (blank) GOTO 505
+	         IF (ls.GT.src_hi .AND. ls.EQ.dst_hi) GOTO 505
+
+	         dst(i,j,k,l,m,n) = dsum
+
+		 IF (ls .GT. src_hi) GOTO 510
+	         IF ( src(i,j,k,ls,m,n) .EQ. bad_src ) THEN
+* ... reject all data after a bad point
+	            DO 500 ll = l, dst_hi
+ 500	            dst(i,j,k,ll,m,n) = bad_dst
+	            GOTO 510
+	         ENDIF
+	         dsum = dsum + box(ls)*src(i,j,k,ls,m,n)
+		 ls = ls + 1
+ 505	      CONTINUE
+	      IF (ls .EQ. dst_hi) dst(i,j,k,ls,m,n) = dsum
+ 510	   CONTINUE
+
+* ALONG E AXIS
+	ELSEIF ( idim .EQ. e_dim ) THEN
+	   DO 610 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+	   DO 610 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+	   DO 610 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+	   DO 610 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+	   DO 610 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+	      dsum = 0.0D0
+	      ms = src_lo
+	      DO 605 m = dst_lo, dst_hi
+	      
+	         dst(i,j,k,l,m,n) = bad_dst
+		 IF (blank) GOTO 605
+	         IF (ms.GT.src_hi .AND. ms.EQ.dst_hi) GOTO 605
+
+	         dst(i,j,k,l,m,n) = dsum
+
+	         IF ( src(i,j,k,l,ms,n) .EQ. bad_src ) THEN
+* ... reject all data after a bad point
+	            DO 600 mm = m, dst_hi
+ 600	            dst(i,j,k,l,mm,n) = bad_dst
+	            GOTO 610
+	         ENDIF
+	         dsum = dsum + box(ms)*src(i,j,k,l,ms,n)
+		 ms = ms + 1
+ 605	      CONTINUE
+	      IF (ms .EQ. dst_hi) dst(i,j,k,l,ms,n) = dsum
+ 610	   CONTINUE
+
+* ALONG F AXIS
+	ELSEIF ( idim .EQ. f_dim ) THEN
+	   DO 710 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+	   DO 710 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+	   DO 710 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+	   DO 710 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+	   DO 710 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+	      dsum = 0.0D0
+	      ns = src_lo
+	      DO 705 n = dst_lo, dst_hi
+	      
+	         dst(i,j,k,l,m,n) = bad_dst
+		 IF (blank) GOTO 705
+	         IF (ns.GT.src_hi .AND. ns.EQ.dst_hi) GOTO 705
+
+	         dst(i,j,k,l,m,n) = dsum
+
+	         IF ( src(i,j,k,l,m,ns) .EQ. bad_src ) THEN
+* ... reject all data after a bad point
+	            DO 700 nn = n, dst_hi
+ 700	            dst(i,j,k,l,m,nn) = bad_dst
+	            GOTO 710
+	         ENDIF
+	         dsum = dsum + box(ns)*src(i,j,k,l,m,ns)
+		 ns = ns + 1
+ 705	      CONTINUE
+	      IF (ns .EQ. dst_hi) dst(i,j,k,l,m,ns) = dsum
+ 710	   CONTINUE
+
+	ENDIF
+
+ 5000	RETURN
+
+ 5100	CALL ERRMSG(ferr_regrid, status,
+     .    '@IIN regridding must be to axis with same grid-cell sizes', *5000 )
+
+
+ 5200	CALL ERRMSG(ferr_regrid, status,
+     .    '@IIN regridding on non-overlapping grids', *5000 )
+
+	END
diff --git a/fer/efi/SOURCE_FILES b/fer/efi/SOURCE_FILES
index 6c7408e..9062f70 100644
--- a/fer/efi/SOURCE_FILES
+++ b/fer/efi/SOURCE_FILES
@@ -1,10 +1,6 @@
 SRCS_F = \
 ave_scat2grid_t.F\
 bin_index_wt.F\
-bcompressi.F\
-bxcat.F\
-bxsequence.F\
-bxsequence_str.F\
 compressi.F\
 compressj.F\
 compressk.F\
@@ -48,12 +44,13 @@ ereverse.F\
 expnd_by_len.F\
 expnd_by_len_str.F\
 expndi_by.F\
+expndi_by_m_counts.F\
+expndi_by_m_counts_str.F\
 expndi_by_t.F\
 expndi_by_z.F\
 expndi_by_z_counts.F\
 expndi_id_by_z_counts.F\
 expndi_to_et.F\
-expndi_by_m_counts.F\
 fc_isubset.F\
 fcat.F\
 fcat_str.F\
@@ -73,13 +70,14 @@ freverse.F\
 ft_to_orthogonal.F\
 gausswt.F\
 gausswt_v0.F\
+gridding_subs.F\
 heap2_str.F\
-innerproduct_x.F\
-innerproduct_y.F\
-innerproduct_z.F\
-innerproduct_t.F\
-innerproduct_e.F\
-innerproduct_f.F\
+dot_x.F\
+dot_y.F\
+dot_z.F\
+dot_t.F\
+dot_e.F\
+dot_f.F\
 is_element_of.F\
 is_element_of_str.F\
 is_element_of_str_n.F\
@@ -110,12 +108,15 @@ samplei_multi.F\
 samplej_multi.F\
 samplek_multi.F\
 samplel_multi.F\
+samplem_multi.F\
+samplen_multi.F\
 samplet_date.F\
 samplexy.F\
 samplexy_closest.F\
 samplexy_curv.F\
 samplexy_curv_avg.F\
 samplexy_curv_nrst.F\
+samplexy_nrst.F\
 samplexyt.F\
 samplexyt_nrst.F\
 samplexz.F\
@@ -125,8 +126,10 @@ scat2grid_bin_xy.F\
 scat2grid_bin_xyt.F\
 scat2grid_bin_xyz.F\
 scat2grid_bin_xyzt.F\
+scat2grid_minmax_xyt.F\
 scat2grid_nbin_xy.F\
 scat2grid_nbin_xyt.F\
+scat2grid_std_xyt.F\
 scat2gridgauss_xt.F\
 scat2gridgauss_xy.F\
 scat2gridgauss_xz.F\
@@ -185,6 +188,8 @@ tcat.F\
 tcat_str.F\
 test_opendap.F\
 time_reformat.F\
+tracks2grid_mask_ave_xyt.F\
+tracks2grid_std_xyt.F\
 transpose_ef.F\
 transpose_xe.F\
 transpose_xf.F\
diff --git a/fer/efi/bcompressi.F b/fer/efi/bcompressi.F
deleted file mode 100644
index 38d0471..0000000
--- a/fer/efi/bcompressi.F
+++ /dev/null
@@ -1,283 +0,0 @@
-*
-* bcompressi.F
-*
-*  This software was developed by the Thermal Modeling and Analysis
-*  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-*  hereafter referred to as NOAA/PMEL/TMAP.
-*
-*  Access and use of this software shall impose the following
-*  obligations and understandings on the user. The user is granted the
-*  right, without any fee or cost, to use, copy, modify, alter, enhance
-*  and distribute this software, and any derivative works thereof, and
-*  its supporting documentation for any purpose whatsoever, provided
-*  that this entire notice appears in all copies of the software,
-*  derivative works and supporting documentation.  Further, the user
-*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
-*  the use of this software or in any product that includes this
-*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
-*  in any advertising or publicity to endorse or promote any products
-*  or commercial entity unless specific written permission is obtained
-*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-*  is not obligated to provide the user with any support, consulting,
-*  training or assistance of any kind with regard to the use, operation
-*  and performance of this software nor to provide the user with any
-*  updates, revisions, new versions or "bug fixes".
-*
-*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
-*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
-* 
-* Ansley Manke
-* Dec 2015
-*
-* This function compresses data on X axis, ending with missing data. 
-* The result is on the same X axis as the input.
-*
-*
-* In this subroutine we provide information about
-* the function.  The user configurable information 
-* consists of the following:
-*
-* descr              Text description of the function
-*
-* num_args           Required number of arguments
-*
-* axis_inheritance   Type of axis for the result
-*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
-*                       CUSTOM          - user defined axis
-*                       IMPLIED_BY_ARGS - same axis as the incoming argument
-*                       NORMAL          - the result is normal to this axis
-*                       ABSTRACT        - an axis which only has index values
-*
-* piecemeal_ok       For memory optimization:
-*                       axes where calculation may be performed piecemeal
-*                       ( YES, NO )
-* 
-*
-* For each argument we provide the following information:
-*
-* name               Text name for an argument
-*
-* unit               Text units for an argument
-*
-* desc               Text description of an argument
-*
-* axis_influence     Are this argument's axes the same as the result grid?
-*                       ( YES, NO )
-*
-* axis_extend       How much does Ferret need to extend arg limits relative to result 
-*
-
-
-      SUBROUTINE bcompressi_init(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id, arg
-
-***********************************************************************
-*                                           USER CONFIGURABLE PORTION |
-*                                                                     |
-*                                                                     V
-
-      CHARACTER*100 fcn_desc
-
-      WRITE (fcn_desc, 10)
-   10 FORMAT ('Returns data, compressed along the original X axis: Missing ',
-     .        'points moved to the end.')
-      CALL ef_set_desc(id, fcn_desc)
-
-      CALL ef_set_num_args(id, 1)
-      CALL ef_set_has_vari_args(id, NO)
-      CALL ef_set_axis_inheritance_6d(id,
-     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
-     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
-     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
-
-      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-
-      arg = 1
-      CALL ef_set_arg_name(id, arg, 'DAT')
-      CALL ef_set_arg_desc(id, arg, 'variable to compress in I')
-      CALL ef_set_axis_influence_6d(id, arg,
-     .                              NO, YES, YES, YES, YES, YES)
-
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-***********************************************************************
-
-      RETURN 
-      END
-
-
-*
-* In this subroutine we provide information about the lo and hi
-* limits associated with each abstract or custom axis.   The user 
-* configurable information consists of the following:
-*
-* lo_ss               lo subscript for an axis
-*
-* hi_ss               hi subscript for an axis
-*
-
-      SUBROUTINE bcompressi_result_limits(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                           USER CONFIGURABLE PORTION |
-*                                                                     |
-*                                                                     V
-
-      INTEGER my_lo_l, my_hi_l
-
-      INTEGER arg
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-
-*
-*     Use utility functions to get context information about the arguments.
-*
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-      my_lo_l = 1
-      my_hi_l = 1
-
-      arg = 1
-
-      my_hi_l = arg_hi_ss(X_AXIS,arg) - arg_lo_ss(X_AXIS,arg) + 1
-
-
-      CALL ef_set_axis_limits(id, X_AXIS, my_lo_l, my_hi_l)
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-
-*
-* In this subroutine we compute the result
-*
-      SUBROUTINE bcompressi_compute(id, arg_1, result)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-      INCLUDE 'EF_mem_subsc.cmn'
-
-      INTEGER id
-
-      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
-     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
-
-      REAL result(memreslox:memreshix, memresloy:memreshiy, 
-     .            memresloz:memreshiz, memreslot:memreshit,
-     .            memresloe:memreshie, memreslof:memreshif)
-
-* After initialization, the 'res_' arrays contain indexing information 
-* for the result axes.  The 'arg_' arrays will contain the indexing 
-* information for each variable's axes. 
-
-      INTEGER res_lo_ss(6),
-     .        res_hi_ss(6),
-     .        res_incr (6)
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-
-      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
-
-
-***********************************************************************
-*                                           USER CONFIGURABLE PORTION |
-*                                                                     |
-*                                                                     V
-
-      INTEGER ndx, nsrt, nbad
-      INTEGER i, j, k, l, m, n
-      INTEGER i1, j1, k1, l1, m1, n1
-
-*  Get subscript ranges
-
-      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
-
-
-      n1 = arg_lo_ss(F_AXIS, ARG1)
-      DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
-
-         m1 = arg_lo_ss(E_AXIS, ARG1)
-         DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
-
-            l1 = arg_lo_ss(T_AXIS, ARG1)
-            DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
-               k1 = arg_lo_ss(Z_AXIS, ARG1)
-               DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
-
-                  j1 = arg_lo_ss(Y_AXIS, ARG1)
-                  DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
-                     nsrt = 0
-                     nbad = 0
-
-                     i1 = arg_lo_ss(X_AXIS,ARG1)
-                     DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
-
-                        IF ( arg_1(i1,j1,k1,l1,m1,n1)
-     .                               .NE. bad_flag(1) ) THEN
-                           nsrt = nsrt + 1
-                           result(nsrt,j,k,l,m,n) =
-     .                               arg_1(i1,j1,k1,l1,m1,n1)
-                        ELSE
-                           nbad = nbad + 1
-                        ENDIF
-
-                        i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100                 CONTINUE
-
-*
-* bcompress argument, putting bad data at the end.
-*
-                     DO 150 ndx = 1, nbad
-                        nsrt = nsrt + 1
-                        result(nsrt,j,k,l,m,n) = bad_flag_result
- 150                 CONTINUE
-
-                     j1 = j1 + arg_incr(Y_AXIS, ARG1)
- 200              CONTINUE
-
-                  k1 = k1 + arg_incr(Z_AXIS, ARG1)
- 300           CONTINUE
-
-               l1 = l1 + arg_incr(T_AXIS, ARG1)
- 400        CONTINUE
-
-            m1 = m1 + arg_incr(E_AXIS, ARG1)
- 500     CONTINUE
-
-         n1 = n1 + arg_incr(F_AXIS, ARG1)
- 600  CONTINUE
-
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-***********************************************************************
-
-      RETURN 
-      END
diff --git a/fer/efi/bin_index_wt.F b/fer/efi/bin_index_wt.F
index c4b7beb..1284268 100644
--- a/fer/efi/bin_index_wt.F
+++ b/fer/efi/bin_index_wt.F
@@ -74,12 +74,12 @@
 
       arg = 2
       CALL ef_set_arg_name(id, arg, 'WT')
-      CALL ef_set_arg_desc(id, arg, 'Weight for with each index')
+      CALL ef_set_arg_desc(id, arg, 'Weight for each index')
       CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
 
       arg = 3
       CALL ef_set_arg_name(id, arg, 'INDXMAX')
-      CALL ef_set_arg_desc(id, arg, 'Maximum index value')
+      CALL ef_set_arg_desc(id, arg, 'Length of result axis')
       CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
 *                                                                     ^
 *                                                                     |
diff --git a/fer/efi/bxcat.F b/fer/efi/bxcat.F
deleted file mode 100644
index c988abe..0000000
--- a/fer/efi/bxcat.F
+++ /dev/null
@@ -1,326 +0,0 @@
-*
-* bxcat.F
-*
-* Ansley Manke
-* Dec 2015
-* 
-*
-* This function returns the X values of the two variables,
-* concatenated into one long list on a custom simple x axis. Other 
-* axes are unchanged.
-*
-*
-* In this subroutine we provide information about
-* the function.  The user configurable information 
-* consists of the following:
-*
-* descr              Text description of the function
-*
-* num_args           Required number of arguments
-*
-* axis_inheritance   Type of axis for the result
-*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
-*                       CUSTOM          - user defined axis
-*                       IMPLIED_BY_ARGS - same axis as the incoming argument
-*                       NORMAL          - the result is normal to this axis
-*                       ABSTRACT        - an axis which only has index values
-*
-* piecemeal_ok       For memory optimization:
-*                       axes where calculation may be performed piecemeal
-*                       ( YES, NO )
-* 
-*
-* For each argument we provide the following information:
-*
-* name               Text name for an argument
-*
-* unit               Text units for an argument
-*
-* desc               Text description of an argument
-*
-* axis_influence     Are this argument''s axes the same as the result grid?
-*                       ( YES, NO )
-*
-* axis_extend       How much does Ferret need to extend arg limits relative to result 
-*
-
-
-      SUBROUTINE bxcat_init(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id, arg
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      CHARACTER*100 descrip
-
-      WRITE (descrip, 100)
-  100 FORMAT ('Concatenates the X values of two variables into one ',
-     .        'list on an indexed X axis')
-      CALL ef_set_desc(id, descrip)
-
-* Tell Ferret to run the following instead, if the arguments are strings.
-      CALL ef_set_alt_fcn_name(id, 'bxcat_STR')
-
-      CALL ef_set_num_args(id, 2)
-      CALL ef_set_axis_inheritance_6d(id,
-     .                                CUSTOM,          IMPLIED_BY_ARGS,
-     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
-     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
-      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-
-      arg = 1
-      CALL ef_set_arg_name(id, arg, 'A')
-      CALL ef_set_arg_unit(id, arg, ' ')
-      CALL ef_set_arg_desc(id, arg, 'First variable to concatenate')
-      CALL ef_set_axis_influence_6d(id, arg,
-     .                              NO, YES, YES, YES, YES, YES)
-
-      arg = 2
-      CALL ef_set_arg_name(id, arg, 'B')
-      CALL ef_set_arg_unit(id, arg, ' ')
-      CALL ef_set_arg_desc(id, arg, 'Second variable to concatenate')
-      CALL ef_set_axis_influence_6d(id, arg,
-     .                              NO, YES, YES, YES, YES, YES)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN
-      END
-
-      
- 
-      SUBROUTINE bxcat_custom_axes(id)
- 
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
- 
-      INTEGER id
-      REAL size
-
-       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .         arg_hi_ss(6,EF_MAX_ARGS),
-     .         arg_incr (6,EF_MAX_ARGS)
-     
-       CHARACTER*16 axname(6), axunits(6)
-       LOGICAL bkw1(6), mod1(6), reg1(6)
-*
-*     Use utility functions to get context information about the arguments.
-*
-       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-       
-*  If the variable is just a raw constant, then it's an all ABSTRACT grid
-*  and the axis length is 99999999.
-
-       CALL ef_get_axis_info_6d(id, ARG2, axname, axunits,
-     .                         bkw1, mod1, reg1)
-       IF (arg_hi_ss(X_AXIS,ARG1) .GE. 99999999 ) THEN  ! see abst. axis size in get_memory.F
-          CALL ef_get_axis_info_6d(id, ARG1, axname, axunits,
-     .                         bkw1, mod1, reg1)
-          IF (axname(1)(1:8) .EQ. 'ABSTRACT') arg_hi_ss(X_AXIS,ARG1) = 1
-       ENDIF
- 
-       IF (arg_hi_ss(X_AXIS,ARG2) .GE. 99999999 ) THEN  ! see abst. axis size in get_memory.F
-          CALL ef_get_axis_info_6d(id, ARG2, axname, axunits,
-     .                         bkw1, mod1, reg1)
-          IF (axname(2)(1:8) .EQ. 'ABSTRACT') arg_hi_ss(X_AXIS,ARG2) = 1
-       ENDIF
-
-* output X axis size
-
-      size = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) +
-     .       (arg_hi_ss(X_AXIS,ARG2) - arg_lo_ss(X_AXIS,ARG2) + 1)
-
-* If non-blank units, the framework calls this a LONGITUDE axis... Fix this.
-      CALL ef_set_custom_axis(id, X_AXIS, 1.0, size, 1.0, 'i', NO)
- 
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
- 
-
-
-
-      SUBROUTINE bxcat_result_limits(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER nx
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-      nx = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) +
-     .     (arg_hi_ss(X_AXIS,ARG2) - arg_lo_ss(X_AXIS,ARG2) + 1)
-
-      CALL ef_set_axis_limits(id, X_AXIS, 1, nx)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN
-      END
-
-
-*
-* In this subroutine we compute the result
-*
-      SUBROUTINE bxcat_compute(id, arg_1, arg_2, result)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-      INCLUDE 'EF_mem_subsc.cmn'
-
-      INTEGER id
-
-      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
-     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
-      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
-     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
-
-      REAL result(memreslox:memreshix, memresloy:memreshiy,
-     .            memresloz:memreshiz, memreslot:memreshit,
-     .            memresloe:memreshie, memreslof:memreshif)
-
-* After initialization, the 'res_' arrays contain indexing information
-* for the result axes.  The 'arg_' arrays will contain the indexing
-* information for each variable''s axes.
-
-      INTEGER res_lo_ss(6),
-     .        res_hi_ss(6),
-     .        res_incr (6)
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-
-      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      INTEGER i, j, k, l, m, n
-      INTEGER i1, j1, k1, l1, m1, n1
-      INTEGER i2, j2, k2, l2, m2, n2
-
-      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
-
-      i = res_lo_ss(X_AXIS)
-      DO 100 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
-
-         n = res_lo_ss(F_AXIS)
-         DO 600 n1 = arg_lo_ss(F_AXIS,ARG1), arg_hi_ss(F_AXIS,ARG1)
-
-         m = res_lo_ss(E_AXIS)
-         DO 500 m1 = arg_lo_ss(E_AXIS,ARG1), arg_hi_ss(E_AXIS,ARG1)
-
-         l = res_lo_ss(T_AXIS)
-         DO 400 l1 = arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS,ARG1)
-
-         k = res_lo_ss(Z_AXIS)
-         DO 300 k1 = arg_lo_ss(Z_AXIS,ARG1), arg_hi_ss(Z_AXIS,ARG1)
-
-         j = res_lo_ss(Y_AXIS)
-         DO 200 j1 = arg_lo_ss(Y_AXIS,ARG1), arg_hi_ss(Y_AXIS,ARG1)
-
-            IF ( arg_1(i1,j1,k1,l1,m1,n1) .EQ. bad_flag(ARG1) ) THEN
-               result(i,j,k,l,m,n) = bad_flag_result
-            ELSE
-               result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
-            ENDIF
-
-            j = j + res_incr(Y_AXIS)
- 200     CONTINUE
-
-            k = k + res_incr(Z_AXIS)
- 300     CONTINUE
-
-            l = l + res_incr(T_AXIS)
- 400     CONTINUE
-
-            m = m + res_incr(E_AXIS)
- 500     CONTINUE
-
-            n = n + res_incr(F_AXIS)
- 600     CONTINUE
-
-         i = i + res_incr(X_AXIS)
- 100  CONTINUE
-
-* concatenate in X - dont restart count of index I
-
-      DO 110 i2 = arg_lo_ss(X_AXIS,ARG2), arg_hi_ss(X_AXIS,ARG2)
-
-         n = res_lo_ss(F_AXIS)
-         DO 610 n2 = arg_lo_ss(F_AXIS,ARG2), arg_hi_ss(F_AXIS,ARG2)
-
-         m = res_lo_ss(E_AXIS)
-         DO 510 m2 = arg_lo_ss(E_AXIS,ARG2), arg_hi_ss(E_AXIS,ARG2)
-
-         l = res_lo_ss(T_AXIS)
-         DO 410 l2 = arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2)
-
-         k = res_lo_ss(Z_AXIS)
-         DO 310 k2 = arg_lo_ss(Z_AXIS,ARG2), arg_hi_ss(Z_AXIS,ARG2)
-
-         j = res_lo_ss(Y_AXIS)
-         DO 210 j2 = arg_lo_ss(Y_AXIS,ARG2), arg_hi_ss(Y_AXIS,ARG2)
-
-            IF ( arg_2(i2,j2,k2,l2,m2,n2) .EQ. bad_flag(ARG2) ) THEN
-               result(i,j,k,l,m,n) = bad_flag_result
-            ELSE
-               result(i,j,k,l,m,n) = arg_2(i2,j2,k2,l2,m2,n2)
-            ENDIF
-
-            j = j + res_incr(Y_AXIS)
- 210     CONTINUE
-
-            k = k + res_incr(Z_AXIS)
- 310     CONTINUE
-
-            l = l + res_incr(T_AXIS)
- 410     CONTINUE
-
-            m = m + res_incr(E_AXIS)
- 510     CONTINUE
-
-            n = n + res_incr(F_AXIS)
- 610     CONTINUE
-
-         i = i + res_incr(X_AXIS)
- 110  CONTINUE
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN
-      END
diff --git a/fer/efi/bxsequence.F b/fer/efi/bxsequence.F
deleted file mode 100644
index 2aa87a1..0000000
--- a/fer/efi/bxsequence.F
+++ /dev/null
@@ -1,241 +0,0 @@
-*
-* bxsequence.F
-*
-* Ansley Manke
-* Dec 2015
-* 
-*
-* This function is an XSEQUENCE, returned on a custom index axis
-*
-*
-*
-* In this subroutine we provide information about
-* the function.  The user configurable information 
-* consists of the following:
-*
-* descr              Text description of the function
-*
-* num_args           Required number of arguments
-*
-* axis_inheritance   Type of axis for the result
-*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
-*                       CUSTOM          - user defined axis
-*                       IMPLIED_BY_ARGS - same axis as the incoming argument
-*                       NORMAL          - the result is normal to this axis
-*                       ABSTRACT        - an axis which only has index values
-*
-* piecemeal_ok       For memory optimization:
-*                       axes where calculation may be performed piecemeal
-*                       ( YES, NO )
-* 
-*
-* For each argument we provide the following information:
-*
-* name               Text name for an argument
-*
-* unit               Text units for an argument
-*
-* desc               Text description of an argument
-*
-* axis_influence     Are this argument''s axes the same as the result grid?
-*                       ( YES, NO )
-*
-* axis_extend       How much does Ferret need to extend arg limits relative to result 
-*
-
-
-      SUBROUTINE bxsequence_init(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id, arg
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      CHARACTER*100 descrip
-
-      WRITE (descrip, 100)
-  100 FORMAT ('unravel grid to a fixed length line in X')
-      CALL ef_set_desc(id, descrip)
-
-* Tell Ferret to run the following instead, if the arguments are strings.
-      CALL ef_set_alt_fcn_name(id, 'BXSEQUENCE_STR')
-
-      CALL ef_set_num_args(id, 1)
-      CALL ef_set_axis_inheritance_6d(id,
-     .                                CUSTOM, NORMAL,
-     .                                NORMAL, NORMAL,
-     .                                NORMAL, NORMAL)
-      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-
-      arg = 1
-      CALL ef_set_arg_name(id, arg, 'A')
-      CALL ef_set_arg_unit(id, arg, ' ')
-      CALL ef_set_arg_desc(id, arg, 'Variable to unravel')
-      CALL ef_set_axis_influence_6d(id, arg,
-     .                              YES, YES, YES, YES, YES, YES)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN
-      END
-
-
-      SUBROUTINE bxsequence_result_limits(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER nx
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-      nx = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(Z_AXIS,ARG1) - arg_lo_ss(Z_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(E_AXIS,ARG1) - arg_lo_ss(E_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(F_AXIS,ARG1) - arg_lo_ss(F_AXIS,ARG1) + 1)
-
-      CALL ef_set_axis_limits(id, X_AXIS, 1, nx)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN
-      END
-
-
- 
-      SUBROUTINE bxsequence_custom_axes(id)
- 
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
- 
-      INTEGER id
-      REAL size
-
-       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .         arg_hi_ss(6,EF_MAX_ARGS),
-     .         arg_incr (6,EF_MAX_ARGS)
-*
-*     Use utility functions to get context information about the arguments.
-*
-       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
- 
-* output X axis size
-
-      size = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(Z_AXIS,ARG1) - arg_lo_ss(Z_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(E_AXIS,ARG1) - arg_lo_ss(E_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(F_AXIS,ARG1) - arg_lo_ss(F_AXIS,ARG1) + 1)
-
-
-      CALL ef_set_custom_axis(id, X_AXIS, 1.0, size, 1.0, 'i', NO)
- 
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-*
-* In this subroutine we compute the result
-*
-      SUBROUTINE bxsequence_compute(id, arg_1, result)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-      INCLUDE 'EF_mem_subsc.cmn'
-
-      INTEGER id
-
-      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
-     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
-
-      REAL result(memreslox:memreshix, memresloy:memreshiy,
-     .            memresloz:memreshiz, memreslot:memreshit,
-     .            memresloe:memreshie, memreslof:memreshif)
-
-* After initialization, the 'res_' arrays contain indexing information
-* for the result axes.  The 'arg_' arrays will contain the indexing
-* information for each variable''s axes.
-
-      INTEGER res_lo_ss(6),
-     .        res_hi_ss(6),
-     .        res_incr (6)
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-
-      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      INTEGER i, j, k, l, m, n
-      INTEGER i1, j1, k1, l1, m1, n1
-
-      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
-
-      j = res_lo_ss(Y_AXIS)
-      k = res_lo_ss(Z_AXIS)
-      l = res_lo_ss(T_AXIS)
-      m = res_lo_ss(E_AXIS)
-      n = res_lo_ss(F_AXIS)
-
-      i = res_lo_ss(X_AXIS)
-      DO 600 n1 = arg_lo_ss(F_AXIS,ARG1), arg_hi_ss(F_AXIS,ARG1)
-      DO 500 m1 = arg_lo_ss(E_AXIS,ARG1), arg_hi_ss(E_AXIS,ARG1)
-      DO 400 l1 = arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS,ARG1)
-      DO 300 k1 = arg_lo_ss(Z_AXIS,ARG1), arg_hi_ss(Z_AXIS,ARG1)
-      DO 200 j1 = arg_lo_ss(Y_AXIS,ARG1), arg_hi_ss(Y_AXIS,ARG1)
-      DO 100 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
-
-	IF ( arg_1(i1,j1,k1,l1,m1,n1) .EQ. bad_flag(ARG1) ) THEN
-	   result(i,j,k,l,m,n) = bad_flag_result
-	ELSE
-	   result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
-	ENDIF
-        i = i + res_incr(X_AXIS)
-
- 100  CONTINUE
- 200  CONTINUE
- 300  CONTINUE
- 400  CONTINUE
- 500  CONTINUE
- 600  CONTINUE
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN
-      END
diff --git a/fer/efi/bxsequence_str.F b/fer/efi/bxsequence_str.F
deleted file mode 100644
index 4107959..0000000
--- a/fer/efi/bxsequence_str.F
+++ /dev/null
@@ -1,245 +0,0 @@
-*
-* bxsequence_str.F
-*
-* Ansley Manke
-* Dec 2015
-* 
-*
-* This function is the string XSEQUENCE, returned on a custom index axis
-*
-*
-*
-* In this subroutine we provide information about
-* the function.  The user configurable information 
-* consists of the following:
-*
-* descr              Text description of the function
-*
-* num_args           Required number of arguments
-*
-* axis_inheritance   Type of axis for the result
-*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
-*                       CUSTOM          - user defined axis
-*                       IMPLIED_BY_ARGS - same axis as the incoming argument
-*                       NORMAL          - the result is normal to this axis
-*                       ABSTRACT        - an axis which only has index values
-*
-* piecemeal_ok       For memory optimization:
-*                       axes where calculation may be performed piecemeal
-*                       ( YES, NO )
-* 
-*
-* For each argument we provide the following information:
-*
-* name               Text name for an argument
-*
-* unit               Text units for an argument
-*
-* desc               Text description of an argument
-*
-* axis_influence     Are this argument''s axes the same as the result grid?
-*                       ( YES, NO )
-*
-* axis_extend       How much does Ferret need to extend arg limits relative to result 
-*
-
-
-      SUBROUTINE bxsequence_str_init(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id, arg
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      CHARACTER*100 descrip
-
-      WRITE (descrip, 100)
-  100 FORMAT ('unravel string variable to a fixed length line in X')
-      CALL ef_set_desc(id, descrip)
-
-* Tell Ferret to run the following instead, if the arguments are strings.
-c     CALL ef_set_alt_fcn_name(id, 'bxsequence_str_STR')
-
-      CALL ef_set_num_args(id, 1)
-      CALL ef_set_axis_inheritance_6d(id,
-     .                                CUSTOM, NORMAL,
-     .                                NORMAL, NORMAL,
-     .                                NORMAL, NORMAL)
-      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_result_type(id, STRING_RETURN)
-
-      arg = 1
-      CALL ef_set_arg_name(id, arg, 'A')
-      CALL ef_set_arg_unit(id, arg, ' ')
-      CALL ef_set_arg_type (id, arg, STRING_ARG)
-      CALL ef_set_arg_desc(id, arg, 'Variable to unravel')
-      CALL ef_set_axis_influence_6d(id, arg,
-     .                              YES, YES, YES, YES, YES, YES)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN
-      END
-
-
-      SUBROUTINE bxsequence_str_result_limits(id)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER nx
-
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-      nx = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(Z_AXIS,ARG1) - arg_lo_ss(Z_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(E_AXIS,ARG1) - arg_lo_ss(E_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(F_AXIS,ARG1) - arg_lo_ss(F_AXIS,ARG1) + 1)
-
-      CALL ef_set_axis_limits(id, X_AXIS, 1, nx)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN
-      END
-
-
- 
-      SUBROUTINE bxsequence_str_custom_axes(id)
- 
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
- 
-      INTEGER id
-      REAL size
-
-       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .         arg_hi_ss(6,EF_MAX_ARGS),
-     .         arg_incr (6,EF_MAX_ARGS)
-*
-*     Use utility functions to get context information about the arguments.
-*
-       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
- 
-* output X axis size
-
-      size = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(Z_AXIS,ARG1) - arg_lo_ss(Z_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(E_AXIS,ARG1) - arg_lo_ss(E_AXIS,ARG1) + 1) *
-     .     (arg_hi_ss(F_AXIS,ARG1) - arg_lo_ss(F_AXIS,ARG1) + 1)
-
-
-      CALL ef_set_custom_axis(id, X_AXIS, 1.0, size, 1.0, 'i', NO)
- 
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-*
-* In this subroutine we compute the result
-*
-      SUBROUTINE bxsequence_str_compute(id, arg_1, result)
-
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-      INCLUDE 'EF_mem_subsc.cmn'
-
-      INTEGER id
-
-      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy,
-     .                  mem1loz:mem1hiz, mem1lot:mem1hit,
-     .                  mem1loe:mem1hie, mem1lof:mem1hif)
-
-      REAL result(memreslox:memreshix, memresloy:memreshiy,
-     .                   memresloz:memreshiz, memreslot:memreshit,
-     .                   memresloe:memreshie, memreslof:memreshif)
-
-
-* After initialization, the 'res_' arrays contain indexing information
-* for the result axes.  The 'arg_' arrays will contain the indexing
-* information for each variable''s axes.
-
-      INTEGER res_lo_ss(6),
-     .        res_hi_ss(6),
-     .        res_incr (6)
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-
-      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      INTEGER i, j, k, l, m, n, slen
-      INTEGER i1, j1, k1, l1, m1, n1
-      
-      CHARACTER*512 buff
-
-      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-      j = res_lo_ss(Y_AXIS)
-      k = res_lo_ss(Z_AXIS)
-      l = res_lo_ss(T_AXIS)
-      m = res_lo_ss(E_AXIS)
-      n = res_lo_ss(F_AXIS)
-
-      i = res_lo_ss(X_AXIS)
-      DO 600 n1 = arg_lo_ss(F_AXIS,ARG1), arg_hi_ss(F_AXIS,ARG1)
-      DO 500 m1 = arg_lo_ss(E_AXIS,ARG1), arg_hi_ss(E_AXIS,ARG1)
-      DO 400 l1 = arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS,ARG1)
-      DO 300 k1 = arg_lo_ss(Z_AXIS,ARG1), arg_hi_ss(Z_AXIS,ARG1)
-      DO 200 j1 = arg_lo_ss(Y_AXIS,ARG1), arg_hi_ss(Y_AXIS,ARG1)
-      DO 100 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
-
-	CALL EF_GET_STRING_ARG_ELEMENT_6D(id, ARG1, arg_1,
-     .                             i1, j1, k1, l1, m1, n1, slen, buff)
-	CALL EF_PUT_STRING(buff, slen, result(i,j,k,l,m,n))
-
-        i = i + res_incr(X_AXIS)
-
- 100  CONTINUE
- 200  CONTINUE
- 300  CONTINUE
- 400  CONTINUE
- 500  CONTINUE
- 600  CONTINUE
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN
-      END
diff --git a/fer/efi/dot_e.F b/fer/efi/dot_e.F
new file mode 100644
index 0000000..d88ac27
--- /dev/null
+++ b/fer/efi/dot_e.F
@@ -0,0 +1,204 @@
+*
+* dot_e.F
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+* May 2017 Ansley Manke
+*
+* compute the dot product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE dot_e_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'Compute the inner product of two variables along E-axis')
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                NORMAL, IMPLIED_BY_ARGS)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR1')
+      CALL ef_set_arg_desc(id, arg, 'Variable 1')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'VAR2')
+      CALL ef_set_arg_desc(id, arg, 'Variable 2')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      RETURN 
+      END
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE dot_e_compute(id, arg_1, arg_2, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
+     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .            memresloz:memreshiz, memreslot:memreshit,
+     .            memresloe:memreshie, memreslof:memreshif)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable''s axes. 
+
+      INTEGER res_lo_ss(6),
+     .        res_hi_ss(6),
+     .        res_incr (6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1, i2, j2, k2, l2, m2, n2
+      CHARACTER*100 errtxt
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* check to make sure both variables share the common axis
+      IF ( (arg_lo_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_lo_ss(E_AXIS, ARG2) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(E_AXIS, ARG2) .EQ. ef_unspecified_int4) 
+     .      ) THEN
+         WRITE(errtxt,*) 'E axis of arguments 1 and 2 cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( arg_hi_ss(E_AXIS, ARG1) - arg_lo_ss(E_AXIS, ARG1) .NE. 
+     .     arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss(E_AXIS, ARG2) ) THEN
+         WRITE(errtxt,*) 'E axis of Arguments 1 and 2 must be the same length'
+         GOTO 999
+      ENDIF
+
+* Initialize the result, F90 initialize whole array
+
+      result = bad_flag_result  
+
+* Compute the dot product
+
+      n1 = arg_lo_ss(F_AXIS,ARG1)
+      n2 = arg_lo_ss(F_AXIS,ARG2)
+      DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+       l1 = arg_lo_ss(T_AXIS,ARG1)
+       l2 = arg_lo_ss(T_AXIS,ARG2)
+       DO 500 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+        k1 = arg_lo_ss(Z_AXIS,ARG1)
+        k2 = arg_lo_ss(Z_AXIS,ARG2)
+        DO 400 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+         j1 = arg_lo_ss(Y_AXIS,ARG1)
+         j2 = arg_lo_ss(Y_AXIS,ARG2)
+         DO 300 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+          i1 = arg_lo_ss(X_AXIS,ARG1)
+          i2 = arg_lo_ss(X_AXIS,ARG2)
+          DO 200 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+	   m = res_lo_ss(E_AXIS)
+           m2 = arg_lo_ss(E_AXIS,ARG2)
+           DO 100 m1 = arg_lo_ss(E_AXIS,ARG1), arg_hi_ss(E_AXIS,ARG1)
+
+            IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(ARG1) .AND. 
+     .	         arg_2(i2,j2,k2,l2,m2,n2) .NE. bad_flag(ARG2) ) THEN
+
+               IF (result(i,j,k,l,m,n) .EQ. bad_flag_result) THEN
+	          result(i,j,k,l,m,n) =  
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ELSE
+
+	          result(i,j,k,l,m,n) =  result(i,j,k,l,m,n) + 
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ENDIF
+
+            ENDIF
+
+           m2 = m2 + arg_incr(E_AXIS,ARG2)
+ 100       CONTINUE
+
+           i1 = i1 + arg_incr(X_AXIS,ARG1)
+           i2 = i2 + arg_incr(X_AXIS,ARG2)
+ 200       CONTINUE
+
+          j1 = j1 + arg_incr(Y_AXIS,ARG1)
+          j2 = j2 + arg_incr(Y_AXIS,ARG2)
+ 300     CONTINUE
+
+         k1 = k1 + arg_incr(Z_AXIS,ARG1)
+         k2 = k2 + arg_incr(Z_AXIS,ARG2)
+ 400    CONTINUE
+
+        l1 = l1 + arg_incr(T_AXIS,ARG1)
+        l2 = l2 + arg_incr(T_AXIS,ARG2)
+ 500   CONTINUE
+
+       n1 = n1 + arg_incr(F_AXIS,ARG1)
+       n2 = n2 + arg_incr(F_AXIS,ARG2)
+ 600  CONTINUE
+
+      RETURN
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/dot_f.F b/fer/efi/dot_f.F
new file mode 100644
index 0000000..b6103f1
--- /dev/null
+++ b/fer/efi/dot_f.F
@@ -0,0 +1,205 @@
+*
+* dot_f.F
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+* May 2017 Ansley Manke
+*
+* compute the dot product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE dot_f_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'Compute the inner product of two variables along F-axis')
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, NORMAL)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR1')
+      CALL ef_set_arg_desc(id, arg, 'Variable 1')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'VAR2')
+      CALL ef_set_arg_desc(id, arg, 'Variable 2')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      RETURN 
+      END
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE dot_f_compute(id, arg_1, arg_2, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
+     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .            memresloz:memreshiz, memreslot:memreshit,
+     .            memresloe:memreshie, memreslof:memreshif)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable''s axes. 
+
+      INTEGER res_lo_ss(6),
+     .        res_hi_ss(6),
+     .        res_incr (6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1, i2, j2, k2, l2, m2, n2
+      CHARACTER*100 errtxt
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* check to make sure both variables share the common axis
+      IF ( (arg_lo_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_lo_ss(F_AXIS, ARG2) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(F_AXIS, ARG2) .EQ. ef_unspecified_int4) 
+     .      ) THEN
+         WRITE(errtxt,*) 'F axis of arguments 1 and 2 cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( arg_hi_ss(F_AXIS, ARG1) - arg_lo_ss(F_AXIS, ARG1) .NE. 
+     .     arg_hi_ss(F_AXIS, ARG2) - arg_lo_ss(F_AXIS, ARG2) ) THEN
+         WRITE(errtxt,*) 'F axis of Arguments 1 and 2 must be the same length'
+         GOTO 999
+      ENDIF
+
+* Initialize the result, F90 initialize whole array
+
+      result = bad_flag_result  
+
+* Compute the dot product
+
+      m1 = arg_lo_ss(E_AXIS,ARG1)
+      m2 = arg_lo_ss(E_AXIS,ARG2)
+      DO 600 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+       l1 = arg_lo_ss(T_AXIS,ARG1)
+       l2 = arg_lo_ss(T_AXIS,ARG2)
+       DO 500 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+        k1 = arg_lo_ss(Z_AXIS,ARG1)
+        k2 = arg_lo_ss(Z_AXIS,ARG2)
+        DO 400 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+         j1 = arg_lo_ss(Y_AXIS,ARG1)
+         j2 = arg_lo_ss(Y_AXIS,ARG2)
+         DO 300 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+          i1 = arg_lo_ss(X_AXIS,ARG1)
+          i2 = arg_lo_ss(X_AXIS,ARG2)
+          DO 200 i = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
+
+           n  = res_lo_ss(F_AXIS)
+           n2 = arg_lo_ss(F_AXIS,ARG2)
+           DO 100 n1 = arg_lo_ss(F_AXIS,ARG1), arg_hi_ss(F_AXIS,ARG1)
+
+            IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(ARG1) .AND. 
+     .	         arg_2(i2,j2,k2,l2,m2,n2) .NE. bad_flag(ARG2) ) THEN
+
+               IF (result(i,j,k,l,m,n) .EQ. bad_flag_result) THEN
+	          result(i,j,k,l,m,n) =  
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ELSE
+
+	          result(i,j,k,l,m,n) =  result(i,j,k,l,m,n) + 
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ENDIF
+
+            ENDIF
+
+           n2 = n2 + arg_incr(F_AXIS,ARG2)
+ 100       CONTINUE
+
+            i1 = i1 + arg_incr(X_AXIS,ARG1)
+            i2 = i2 + arg_incr(X_AXIS,ARG2)
+ 200       CONTINUE
+
+           j1 = j1 + arg_incr(Y_AXIS,ARG1)
+           j2 = j2 + arg_incr(Y_AXIS,ARG2)
+ 300      CONTINUE
+
+          k1 = k1 + arg_incr(Z_AXIS,ARG1)
+          k2 = k2 + arg_incr(Z_AXIS,ARG2)
+ 400     CONTINUE
+
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+         l2 = l2 + arg_incr(T_AXIS,ARG2)
+ 500    CONTINUE
+
+        m1 = m1 + arg_incr(E_AXIS,ARG1)
+        m2 = m2 + arg_incr(E_AXIS,ARG2)
+ 600   CONTINUE
+
+
+      RETURN
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/dot_t.F b/fer/efi/dot_t.F
new file mode 100644
index 0000000..fe387c4
--- /dev/null
+++ b/fer/efi/dot_t.F
@@ -0,0 +1,204 @@
+*
+* dot_t.F
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+* May 2017 Ansley Manke
+*
+* compute the dot product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE dot_t_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'Compute the inner product of two variables along T-axis')
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, NORMAL,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR1')
+      CALL ef_set_arg_desc(id, arg, 'Variable 1')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'VAR2')
+      CALL ef_set_arg_desc(id, arg, 'Variable 2')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      RETURN 
+      END
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE dot_t_compute(id, arg_1, arg_2, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
+     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .            memresloz:memreshiz, memreslot:memreshit,
+     .            memresloe:memreshie, memreslof:memreshif)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable''s axes. 
+
+      INTEGER res_lo_ss(6),
+     .        res_hi_ss(6),
+     .        res_incr (6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1, i2, j2, k2, l2, m2, n2
+      CHARACTER*100 errtxt
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* check to make sure both variables share the common axis
+      IF ( (arg_lo_ss(T_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(T_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_lo_ss(T_AXIS, ARG2) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(T_AXIS, ARG2) .EQ. ef_unspecified_int4) 
+     .      ) THEN
+         WRITE(errtxt,*) 'T axis of arguments 1 and 2 cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( arg_hi_ss(T_AXIS, ARG1) - arg_lo_ss(T_AXIS, ARG1) .NE. 
+     .     arg_hi_ss(T_AXIS, ARG2) - arg_lo_ss(T_AXIS, ARG2) ) THEN
+         WRITE(errtxt,*) 'T axis of Arguments 1 and 2 must be the same length'
+         GOTO 999
+      ENDIF
+
+* Initialize the result, F90 initialize whole array
+
+      result = bad_flag_result  
+
+* Compute the dot product
+
+      n1 = arg_lo_ss(F_AXIS,ARG1)
+      n2 = arg_lo_ss(F_AXIS,ARG2)
+      DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+       m1 = arg_lo_ss(E_AXIS,ARG1)
+       m2 = arg_lo_ss(E_AXIS,ARG2)
+       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+        k1 = arg_lo_ss(Z_AXIS,ARG1)
+        k2 = arg_lo_ss(Z_AXIS,ARG2)
+        DO 400 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+         j1 = arg_lo_ss(Y_AXIS,ARG1)
+         j2 = arg_lo_ss(Y_AXIS,ARG2)
+         DO 300 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+          i1 = arg_lo_ss(X_AXIS,ARG1)
+          i2 = arg_lo_ss(X_AXIS,ARG2)
+          DO 200 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+	   l = res_lo_ss(T_AXIS)
+           l2 = arg_lo_ss(T_AXIS,ARG2)
+           DO 100 l1 = arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS,ARG1)
+
+            IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(ARG1) .AND. 
+     .	         arg_2(i2,j2,k2,l2,m2,n2) .NE. bad_flag(ARG2) ) THEN
+
+               IF (result(i,j,k,l,m,n) .EQ. bad_flag_result) THEN
+	          result(i,j,k,l,m,n) =  
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ELSE
+
+	          result(i,j,k,l,m,n) =  result(i,j,k,l,m,n) + 
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ENDIF
+
+            ENDIF
+
+           l2 = l2 + arg_incr(T_AXIS,ARG2)
+ 100       CONTINUE
+
+           i1 = i1 + arg_incr(X_AXIS,ARG1)
+           i2 = i2 + arg_incr(X_AXIS,ARG2)
+ 200      CONTINUE
+
+          j1 = j1 + arg_incr(Y_AXIS,ARG1)
+          j2 = j2 + arg_incr(Y_AXIS,ARG2)
+ 300     CONTINUE
+
+         k1 = k1 + arg_incr(Z_AXIS,ARG1)
+         k2 = k2 + arg_incr(Z_AXIS,ARG2)
+ 400    CONTINUE
+
+        m1 = m1 + arg_incr(E_AXIS,ARG1)
+        m2 = m2 + arg_incr(E_AXIS,ARG2)
+ 500   CONTINUE
+
+       n1 = n1 + arg_incr(F_AXIS,ARG1)
+       n2 = n2 + arg_incr(F_AXIS,ARG2)
+ 600  CONTINUE
+
+      RETURN
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/dot_x.F b/fer/efi/dot_x.F
new file mode 100644
index 0000000..3e18cee
--- /dev/null
+++ b/fer/efi/dot_x.F
@@ -0,0 +1,170 @@
+*
+* dot_x.F
+*
+* compute the dot product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE dot_x_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'Compute the inner product of two variables along X-axis')
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                NORMAL, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR1')
+      CALL ef_set_arg_desc(id, arg, 'Variable 1')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'VAR2')
+      CALL ef_set_arg_desc(id, arg, 'Variable 2')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      RETURN 
+      END
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE dot_x_compute(id, arg_1, arg_2, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
+     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .            memresloz:memreshiz, memreslot:memreshit,
+     .            memresloe:memreshie, memreslof:memreshif)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable''s axes. 
+
+      INTEGER res_lo_ss(6),
+     .        res_hi_ss(6),
+     .        res_incr (6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1, i2, j2, k2, l2, m2, n2
+      CHARACTER*100 errtxt
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* check to make sure both variables share the common axis
+      IF ( (arg_lo_ss(X_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(X_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_lo_ss(X_AXIS, ARG2) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(X_AXIS, ARG2) .EQ. ef_unspecified_int4) 
+     .      ) THEN
+         WRITE(errtxt,*) 'X axis of arguments 1 and 2 cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) .NE. 
+     .     arg_hi_ss(X_AXIS, ARG2) - arg_lo_ss(X_AXIS, ARG2) ) THEN
+         WRITE(errtxt,*) 'X axis of Arguments 1 and 2 must be the same length'
+         GOTO 999
+      ENDIF
+
+* Initialize the result, F90 initialize whole array
+
+      result = bad_flag_result  
+
+* Compute the dot product
+
+      n1 = arg_lo_ss(F_AXIS,ARG1)
+      n2 = arg_lo_ss(F_AXIS,ARG2)
+      DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+       m1 = arg_lo_ss(E_AXIS,ARG1)
+       m2 = arg_lo_ss(E_AXIS,ARG2)
+       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+        l1 = arg_lo_ss(T_AXIS,ARG1)
+        l2 = arg_lo_ss(T_AXIS,ARG2)
+        DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+         k1 = arg_lo_ss(Z_AXIS,ARG1)
+         k2 = arg_lo_ss(Z_AXIS,ARG2)
+         DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+          j1 = arg_lo_ss(Y_AXIS,ARG1)
+          j2 = arg_lo_ss(Y_AXIS,ARG2)
+          DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+	    i = res_lo_ss(X_AXIS)
+           i2 = arg_lo_ss(X_AXIS,ARG2)
+           DO 100 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
+
+            IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(ARG1) .AND. 
+     .	         arg_2(i2,j2,k2,l2,m2,n2) .NE. bad_flag(ARG2) ) THEN
+
+               IF (result(i,j,k,l,m,n) .EQ. bad_flag_result) THEN
+	          result(i,j,k,l,m,n) =  
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ELSE
+
+	          result(i,j,k,l,m,n) = result(i,j,k,l,m,n) + 
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ENDIF
+
+            ENDIF
+
+           i2 = i2 + arg_incr(X_AXIS,ARG2)
+ 100       CONTINUE
+
+           j1 = j1 + arg_incr(Y_AXIS,ARG1)
+           j2 = j2 + arg_incr(Y_AXIS,ARG2)
+ 200      CONTINUE
+
+          k1 = k1 + arg_incr(Z_AXIS,ARG1)
+          k2 = k2 + arg_incr(Z_AXIS,ARG2)
+ 300     CONTINUE
+
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+         l2 = l2 + arg_incr(T_AXIS,ARG2)
+ 400    CONTINUE
+
+        m1 = m1 + arg_incr(E_AXIS,ARG1)
+        m2 = m2 + arg_incr(E_AXIS,ARG2)
+ 500   CONTINUE
+
+       n1 = n1 + arg_incr(F_AXIS,ARG1)
+       n2 = n2 + arg_incr(F_AXIS,ARG2)
+ 600  CONTINUE
+
+      RETURN
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/dot_y.F b/fer/efi/dot_y.F
new file mode 100644
index 0000000..d556cf8
--- /dev/null
+++ b/fer/efi/dot_y.F
@@ -0,0 +1,203 @@
+*
+* dot_y.F
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+* May 2017 Ansley Manke
+*
+* compute the dot product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE dot_y_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'Compute the inner product of two variables along Y-axis')
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, NORMAL, 
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR1')
+      CALL ef_set_arg_desc(id, arg, 'Variable 1')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'VAR2')
+      CALL ef_set_arg_desc(id, arg, 'Variable 2')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      RETURN 
+      END
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE dot_y_compute(id, arg_1, arg_2, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
+     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .            memresloz:memreshiz, memreslot:memreshit,
+     .            memresloe:memreshie, memreslof:memreshif)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable''s axes. 
+
+      INTEGER res_lo_ss(6),
+     .        res_hi_ss(6),
+     .        res_incr (6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1, i2, j2, k2, l2, m2, n2
+      CHARACTER*100 errtxt
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* check to make sure both variables share the common axis
+      IF ( (arg_lo_ss(Y_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(Y_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_lo_ss(Y_AXIS, ARG2) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(Y_AXIS, ARG2) .EQ. ef_unspecified_int4) 
+     .      ) THEN
+         WRITE(errtxt,*) 'Y axis of arguments 1 and 2 cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( arg_hi_ss(Y_AXIS, ARG1) - arg_lo_ss(Y_AXIS, ARG1) .NE. 
+     .     arg_hi_ss(Y_AXIS, ARG2) - arg_lo_ss(Y_AXIS, ARG2) ) THEN
+         WRITE(errtxt,*) 'Y axis of Arguments 1 and 2 must be the same length'
+         GOTO 999
+      ENDIF
+
+* Initialize the result, F90 initialize whole array
+
+      result = bad_flag_result  
+
+* Compute the dot product
+
+      n1 = arg_lo_ss(F_AXIS,ARG1)
+      n2 = arg_lo_ss(F_AXIS,ARG2)
+      DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+       m1 = arg_lo_ss(E_AXIS,ARG1)
+       m2 = arg_lo_ss(E_AXIS,ARG2)
+       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+        l1 = arg_lo_ss(T_AXIS,ARG1)
+        l2 = arg_lo_ss(T_AXIS,ARG2)
+        DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+         k1 = arg_lo_ss(Z_AXIS,ARG1)
+         k2 = arg_lo_ss(Z_AXIS,ARG2)
+         DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+          i1 = arg_lo_ss(X_AXIS,ARG1)
+          i2 = arg_lo_ss(X_AXIS,ARG2)
+          DO 200 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+	   j  = res_lo_ss(Y_AXIS)
+           j2 = arg_lo_ss(Y_AXIS,ARG2)
+           DO 100 j1 = arg_lo_ss(Y_AXIS,ARG1), arg_hi_ss(Y_AXIS,ARG1)
+
+            IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(ARG1) .AND. 
+     .	         arg_2(i2,j2,k2,l2,m2,n2) .NE. bad_flag(ARG2) ) THEN
+
+               IF (result(i,j,k,l,m,n) .EQ. bad_flag_result) THEN
+	          result(i,j,k,l,m,n) =  
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ELSE
+
+	          result(i,j,k,l,m,n) = result(i,j,k,l,m,n) + 
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ENDIF
+
+            ENDIF
+           j2 = j2 + arg_incr(Y_AXIS,ARG2)
+ 100       CONTINUE
+
+           i1 = i1 + arg_incr(X_AXIS,ARG1)
+           i2 = i2 + arg_incr(X_AXIS,ARG2)
+ 200      CONTINUE
+
+          k1 = k1 + arg_incr(Z_AXIS,ARG1)
+          k2 = k2 + arg_incr(Z_AXIS,ARG2)
+ 300     CONTINUE
+
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+         l2 = l2 + arg_incr(T_AXIS,ARG2)
+ 400    CONTINUE
+
+        m1 = m1 + arg_incr(E_AXIS,ARG1)
+        m2 = m2 + arg_incr(E_AXIS,ARG2)
+ 500   CONTINUE
+
+       n1 = n1 + arg_incr(F_AXIS,ARG1)
+       n2 = n2 + arg_incr(F_AXIS,ARG2)
+ 600  CONTINUE
+
+      RETURN
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/dot_z.F b/fer/efi/dot_z.F
new file mode 100644
index 0000000..8232856
--- /dev/null
+++ b/fer/efi/dot_z.F
@@ -0,0 +1,204 @@
+*
+* dot_z.F
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+* May 2017 Ansley Manke
+*
+* compute the dot product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE dot_z_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'Compute the inner product of two variables along Z-axis')
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                NORMAL, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR1')
+      CALL ef_set_arg_desc(id, arg, 'Variable 1')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'VAR2')
+      CALL ef_set_arg_desc(id, arg, 'Variable 2')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                                YES, YES, YES, YES, YES, YES)
+
+      RETURN 
+      END
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE dot_z_compute(id, arg_1, arg_2, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
+     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .            memresloz:memreshiz, memreslot:memreshit,
+     .            memresloe:memreshie, memreslof:memreshif)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable''s axes. 
+
+      INTEGER res_lo_ss(6),
+     .        res_hi_ss(6),
+     .        res_incr (6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1, i2, j2, k2, l2, m2, n2
+      CHARACTER*100 errtxt
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* check to make sure both variables share the common axis
+      IF ( (arg_lo_ss(Z_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(Z_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_lo_ss(Z_AXIS, ARG2) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(Z_AXIS, ARG2) .EQ. ef_unspecified_int4) 
+     .      ) THEN
+         WRITE(errtxt,*) 'Z axis of arguments 1 and 2 cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( arg_hi_ss(Z_AXIS, ARG1) - arg_lo_ss(Z_AXIS, ARG1) .NE. 
+     .     arg_hi_ss(Z_AXIS, ARG2) - arg_lo_ss(Z_AXIS, ARG2) ) THEN
+         WRITE(errtxt,*) 'Z axis of Arguments 1 and 2 must be the same length'
+         GOTO 999
+      ENDIF
+
+* Initialize the result, F90 initialize whole array
+
+      result = bad_flag_result  
+
+* Compute the dot product
+
+      n1 = arg_lo_ss(F_AXIS,ARG1)
+      n2 = arg_lo_ss(F_AXIS,ARG2)
+      DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+       m1 = arg_lo_ss(E_AXIS,ARG1)
+       m2 = arg_lo_ss(E_AXIS,ARG2)
+       DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+        l1 = arg_lo_ss(T_AXIS,ARG1)
+        l2 = arg_lo_ss(T_AXIS,ARG2)
+        DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+         j1 = arg_lo_ss(Y_AXIS,ARG1)
+         j2 = arg_lo_ss(Y_AXIS,ARG2)
+         DO 300 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+          i1 = arg_lo_ss(X_AXIS,ARG1)
+          i2 = arg_lo_ss(X_AXIS,ARG2)
+          DO 200 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+	   k  = res_lo_ss(Z_AXIS)
+           k2 = arg_lo_ss(Z_AXIS,ARG2)
+           DO 100 k1 = arg_lo_ss(Z_AXIS,ARG1), arg_hi_ss(Z_AXIS,ARG1)
+
+            IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(ARG1) .AND. 
+     .	         arg_2(i2,j2,k2,l2,m2,n2) .NE. bad_flag(ARG2) ) THEN
+
+               IF (result(i,j,k,l,m,n) .EQ. bad_flag_result) THEN
+	          result(i,j,k,l,m,n) =  
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ELSE
+
+	          result(i,j,k,l,m,n) =  result(i,j,k,l,m,n) + 
+     .	            arg_1(i1,j1,k1,l1,m1,n1)* arg_2(i2,j2,k2,l2,m2,n2)
+
+               ENDIF
+
+            ENDIF
+
+           k2 = k2 + arg_incr(Z_AXIS,ARG2)
+ 100       CONTINUE
+
+           i1 = i1 + arg_incr(X_AXIS,ARG1)
+           i2 = i2 + arg_incr(X_AXIS,ARG2)
+ 200      CONTINUE
+
+          j1 = j1 + arg_incr(Y_AXIS,ARG1)
+          j2 = j2 + arg_incr(Y_AXIS,ARG2)
+ 300     CONTINUE
+
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+         l2 = l2 + arg_incr(T_AXIS,ARG2)
+ 400    CONTINUE
+
+        m1 = m1 + arg_incr(E_AXIS,ARG1)
+        m2 = m2 + arg_incr(E_AXIS,ARG2)
+ 500   CONTINUE
+
+       n1 = n1 + arg_incr(F_AXIS,ARG1)
+       n2 = n2 + arg_incr(F_AXIS,ARG2)
+ 600  CONTINUE
+
+      RETURN
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/expnd_by_len.F b/fer/efi/expnd_by_len.F
index a82a5e0..7812f00 100644
--- a/fer/efi/expnd_by_len.F
+++ b/fer/efi/expnd_by_len.F
@@ -63,6 +63,9 @@
       CALL ef_set_axis_inheritance_6d(id, ABSTRACT, NORMAL, 
      .     NORMAL, NORMAL, NORMAL, NORMAL)
 
+* Tell Ferret to run the following instead, if the arguments are strings.
+      CALL ef_set_alt_fcn_name(id, 'EXPND_BY_LEN_STR')
+
       arg = 1
       CALL ef_set_arg_name(id, arg, 'var')
       CALL ef_set_arg_unit(id, arg, ' ')
diff --git a/fer/efi/expndi_by_m_counts.F b/fer/efi/expndi_by_m_counts.F
index a0fd1c1..a390179 100644
--- a/fer/efi/expndi_by_m_counts.F
+++ b/fer/efi/expndi_by_m_counts.F
@@ -62,29 +62,32 @@
 *                                                                      V
 
       CALL ef_set_desc(id,
-     .  'Expand arg1 into an XE grid. (split I variable into E-Rows)' )
+     .  'Expand arg1 into an XE grid. (Split I variable into E-Rows)' )
 
       CALL ef_set_num_args(id, 3)
       CALL ef_set_has_vari_args(id, NO)
-      CALL ef_set_axis_inheritance_6d(id, CUSTOM, NORMAL, 
-     .     NORMAL, NORMAL, CUSTOM, NORMAL)
+      CALL ef_set_axis_inheritance_6d(id, IMPLIED_BY_ARGS, NORMAL, 
+     .     NORMAL, NORMAL, IMPLIED_BY_ARGS, NORMAL)
+
+* Tell Ferret to run the following instead, if the arguments are strings.
+      CALL ef_set_alt_fcn_name(id, 'EXPNDI_BY_M_COUNTS_STR')
 
       arg = 1
-      CALL ef_set_arg_name(id, arg, 'dat')
+      CALL ef_set_arg_name(id, arg, 'Data')
       CALL ef_set_arg_desc(id, arg, '1-D variable to expand')
       CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
 
       arg = 2
-      CALL ef_set_arg_name(id, arg, 'counts')
+      CALL ef_set_arg_name(id, arg, 'Row Sizes')
       CALL ef_set_arg_desc(id, arg,
-     .          '1-D list on E axis: count of values in each trajectory')
-      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+     .          '1-D list on E axis: count of values in each feature')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, YES, NO)
 
       arg = 3
-      CALL ef_set_arg_name(id, arg, 'max_row_len')
+      CALL ef_set_arg_name(id, arg, 'Result X axis')
       CALL ef_set_arg_desc(id, arg,
-     .          'I size of result (constant)')
-      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+     .          'Variable on a 1-D grid, axis of length max_row_len')
+      CALL ef_set_axis_influence_6d(id, arg, YES, NO, NO, NO, NO, NO)
 *                                                                      ^
 *                                                                      |
 *                                            USER CONFIGURABLE PORTION |
@@ -93,95 +96,6 @@
       RETURN 
       END
 
- 
-      SUBROUTINE expndi_by_m_counts_custom_axes(id)
- 
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
- 
-      INTEGER id
-
-      REAL size, ene
-      integer arg, idim, nm
-
-       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-*
-*     Use utility functions to get context information about the arguments.
-*
-       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
- 
-* output X axis size: Longest feature
-
-      CALL ef_get_one_val(id, ARG3, size)
-      CALL ef_set_custom_axis(id, X_AXIS, 1.0, size, 1.0, 'Obs', NO)
-
-
-* output E axis size: Rowsize
-      arg = 2
-      nm = arg_hi_ss(E_AXIS,arg)-arg_lo_ss(E_AXIS,arg) + 1
-      ene = FLOAT(nm)
-      CALL ef_set_custom_axis(id, E_AXIS, 1., ene, 1., 'Row', NO)
- 
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
- 
-*
-* In this subroutine we provide information about the lo and hi
-* limits associated with each abstract or custom axis.   The user 
-* configurable information consists of the following:
-*
-* lo_ss               lo subscript for an axis
-*
-* hi_ss               hi subscript for an axis
-*
-
-      SUBROUTINE expndi_by_m_counts_result_limits(id)
-
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                           USER CONFIGURABLE PORTION |
-*                                                                     |
-*                                                                     V
-
-      REAL size
-      integer nm, arg, idim
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-
-*
-*     Use utility functions to get context information about the arguments.
-*
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-* output X axis size: Longest feature
-      CALL ef_get_one_val(id, ARG3, size)
-      nm = INT(ABS(size))
-      CALL ef_set_axis_limits(id, X_AXIS, 1, nm)
-
-* output E axis size
-      arg = 1
-      nm = arg_hi_ss(E_AXIS,arg)-arg_lo_ss(E_AXIS,arg) + 1
-      CALL ef_set_axis_limits(id, E_AXIS, 1, nm)
-
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-
 * 
 *  In this subroutine we compute the result
 * 
diff --git a/fer/efi/expndi_by_m_counts.F b/fer/efi/expndi_by_m_counts_str.F
similarity index 64%
copy from fer/efi/expndi_by_m_counts.F
copy to fer/efi/expndi_by_m_counts_str.F
index a0fd1c1..b7f61f1 100644
--- a/fer/efi/expndi_by_m_counts.F
+++ b/fer/efi/expndi_by_m_counts_str.F
@@ -1,5 +1,5 @@
 * 
-*  expndi_by_m_counts.F
+*  expndi_by_m_counts_str.F
 * 
 *  Ansley Manke (from expndi_by_z_counts)
 *  4/2014
@@ -50,7 +50,7 @@
 *
 
 
-      SUBROUTINE expndi_by_m_counts_init(id)
+      SUBROUTINE expndi_by_m_counts_str_init(id)
 
       INCLUDE 'EF_Util.cmn'
 
@@ -62,29 +62,31 @@
 *                                                                      V
 
       CALL ef_set_desc(id,
-     .  'Expand arg1 into an XE grid. (split I variable into E-Rows)' )
+     .  'Expand String-valued arg1 into an XE grid. (Split I variable into E-Rows)' )
 
       CALL ef_set_num_args(id, 3)
       CALL ef_set_has_vari_args(id, NO)
-      CALL ef_set_axis_inheritance_6d(id, CUSTOM, NORMAL, 
-     .     NORMAL, NORMAL, CUSTOM, NORMAL)
+      CALL ef_set_axis_inheritance_6d(id, IMPLIED_BY_ARGS, NORMAL, 
+     .     NORMAL, NORMAL, IMPLIED_BY_ARGS, NORMAL)
+      CALL ef_set_result_type(id, STRING_RETURN)
 
       arg = 1
-      CALL ef_set_arg_name(id, arg, 'dat')
+      CALL ef_set_arg_name(id, arg, 'Data')
       CALL ef_set_arg_desc(id, arg, '1-D variable to expand')
       CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+      CALL ef_set_arg_type (id, arg, STRING_ARG)
 
       arg = 2
-      CALL ef_set_arg_name(id, arg, 'counts')
+      CALL ef_set_arg_name(id, arg, 'Row Sizes')
       CALL ef_set_arg_desc(id, arg,
-     .          '1-D list on E axis: count of values in each trajectory')
-      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+     .          '1-D list on E axis: count of values in each feature')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, YES, NO)
 
       arg = 3
-      CALL ef_set_arg_name(id, arg, 'max_row_len')
+      CALL ef_set_arg_name(id, arg, 'Result X axis')
       CALL ef_set_arg_desc(id, arg,
-     .          'I size of result (constant)')
-      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+     .          'Variable on a 1-D grid, axis of length max_row_len')
+      CALL ef_set_axis_influence_6d(id, arg, YES, NO, NO, NO, NO, NO)
 *                                                                      ^
 *                                                                      |
 *                                            USER CONFIGURABLE PORTION |
@@ -93,99 +95,10 @@
       RETURN 
       END
 
- 
-      SUBROUTINE expndi_by_m_counts_custom_axes(id)
- 
-      IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
- 
-      INTEGER id
-
-      REAL size, ene
-      integer arg, idim, nm
-
-       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-*
-*     Use utility functions to get context information about the arguments.
-*
-       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
- 
-* output X axis size: Longest feature
-
-      CALL ef_get_one_val(id, ARG3, size)
-      CALL ef_set_custom_axis(id, X_AXIS, 1.0, size, 1.0, 'Obs', NO)
-
-
-* output E axis size: Rowsize
-      arg = 2
-      nm = arg_hi_ss(E_AXIS,arg)-arg_lo_ss(E_AXIS,arg) + 1
-      ene = FLOAT(nm)
-      CALL ef_set_custom_axis(id, E_AXIS, 1., ene, 1., 'Row', NO)
- 
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
- 
-*
-* In this subroutine we provide information about the lo and hi
-* limits associated with each abstract or custom axis.   The user 
-* configurable information consists of the following:
-*
-* lo_ss               lo subscript for an axis
-*
-* hi_ss               hi subscript for an axis
-*
-
-      SUBROUTINE expndi_by_m_counts_result_limits(id)
-
-      INCLUDE 'EF_Util.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                           USER CONFIGURABLE PORTION |
-*                                                                     |
-*                                                                     V
-
-      REAL size
-      integer nm, arg, idim
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
-
-*
-*     Use utility functions to get context information about the arguments.
-*
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-* output X axis size: Longest feature
-      CALL ef_get_one_val(id, ARG3, size)
-      nm = INT(ABS(size))
-      CALL ef_set_axis_limits(id, X_AXIS, 1, nm)
-
-* output E axis size
-      arg = 1
-      nm = arg_hi_ss(E_AXIS,arg)-arg_lo_ss(E_AXIS,arg) + 1
-      CALL ef_set_axis_limits(id, E_AXIS, 1, nm)
-
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
-      END
-
 * 
 *  In this subroutine we compute the result
 * 
-      SUBROUTINE expndi_by_m_counts_compute(id, arg_1, arg_2, arg_3, 
+      SUBROUTINE expndi_by_m_counts_str_compute(id, arg_1, arg_2, arg_3, 
      .                               result)
 
       INCLUDE 'EF_Util.cmn'
@@ -224,7 +137,8 @@
       INTEGER i,j,k,l,m,n
       INTEGER i1, j1, k1, l1, m1, n1
       INTEGER i2, j2, k2, l2, m2, n2
-      INTEGER imax, iout, isum, mmax, mrow, mout
+      INTEGER imax, iout, isum, mmax, mrow, mout, slen
+      CHARACTER*2048 buff
 
       CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
@@ -253,16 +167,6 @@
      .         'arg 2 values (counts) must sum to x-dimension length of of arg1 ')
  20   CONTINUE
 
-* pre-fill the entire output result with missing value flags
-*  (since length of each profile may have different number of pts)
-      DO 50 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
-      DO 50 m=res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
-      DO 50 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-      DO 50 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-      DO 50 k=res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
-      DO 50 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
-         result(i,j,k,l,m,n) = bad_flag_result
- 50   CONTINUE
 
 * fill in the points as specified by the counts
 
@@ -291,11 +195,13 @@
             i1 = 1
             DO 200 mout=arg_lo_ss(E_AXIS,ARG2),arg_hi_ss(E_AXIS,ARG2)
                DO 100 iout = 1, NINT(arg_2(i2,j2,k2,l2,mout,n1))
-                 IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(1) )
-     .             result(iout,j,k,l,mout,n) = arg_1(i1,j1,k1,l1,m1,n1)
+                  CALL EF_GET_STRING_ARG_ELEMENT_6D(id, ARG1, arg_1,
+     .                             i1,j1,k1,l1,m1,n1, slen, buff)
+                  CALL EF_PUT_STRING(buff, slen, result(iout,j,k,l,mout,n))
 
                   i1 = i1 + 1
  100           CONTINUE
+
  200        CONTINUE
 
          j1 = j1 + arg_incr(Y_AXIS,ARG1)
diff --git a/fer/efi/gridding_subs.F b/fer/efi/gridding_subs.F
new file mode 100644
index 0000000..133587f
--- /dev/null
+++ b/fer/efi/gridding_subs.F
@@ -0,0 +1,277 @@
+c gridding_subs.F
+c Utility functions called by gridding functions
+
+
+c nobsxytv 
+c
+c***********************************************************************
+c...NOBS.....Based on gausswt, return only the # of obs in (x,y) gridbox
+c............method is to call this sub for each data value
+c............all calcs done in gridbox units
+c............xx/x1/xf all in same units
+c............yy/y1/yf all in same units
+
+c  i	xx,yy,tt=x/y/t location of data pt (data units)
+c  i	nx,ny,nt=size of grids
+c  i	xaxlo,xaxyi, etc bounds of destination grid cells
+c  o 	obs(nx,ny,nt) number of obs in each (x,y,t) gridbox
+c--------------------------------------------------------------------------
+
+	SUBROUTINE nobsxytv (obs_only, xx, yy, tt, vv, nx, ny, nt, 
+     .             xaxlo,xaxhi, yaxlo,yaxhi, taxlo,taxhi, indx, obs)
+
+
+* Argument declarations
+
+        INTEGER nx, ny, nt, obs_only, indx(4,2)
+	REAL xx, yy, tt, vv, xaxlo(*), xaxhi(*), 
+     .       yaxlo(*), yaxhi(*), taxlo(*), taxhi(*), obs(nx,ny,2,nt)
+
+* Local variable declarations
+
+        INTEGER i, j, l, ig, jg, Lg
+
+	lg = 1
+	DO l = 1, nt
+	   IF (tt.GE.taxlo(lg) .AND.
+     .         tt.LT.taxhi(lg)) THEN
+              jg = 1
+	      DO j = 1, ny
+		 IF (yy.GE.yaxlo(jg) .AND.
+     .	             yy.LT.yaxhi(jg)) THEN
+                    ig = 1
+		    DO i = 1, nx
+		       IF ( xx.GE.xaxlo(ig) .AND.
+     .                      xx.LT.xaxhi(ig)) THEN
+
+		          IF (obs_only .EQ. 0) THEN
+		             obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + vv
+		             obs(ig,jg,2,Lg) = obs(ig,jg,2,Lg) + 1.
+		          ELSE
+		             obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 1.
+		             ENDIF
+
+* Store the min and max index used in this cruise
+		             indx(1,1) = MIN(indx(1,1), ig)
+		             indx(1,2) = MAX(indx(1,2), ig)
+		             indx(2,1) = MIN(indx(2,1), jg)
+		             indx(2,2) = MAX(indx(2,2), jg)
+		             indx(4,1) = MIN(indx(4,1), Lg)
+		             indx(4,2) = MAX(indx(4,2), Lg)
+		       ENDIF !xx in grid box
+		       ig = ig + 1
+		    ENDDO  ! nx
+
+		 ENDIF !yy in grid box
+		 jg = jg + 1
+	      ENDDO  ! ny
+
+	   ENDIF !tt in grid box
+	   lg = lg + 1
+	ENDDO  ! nt
+
+	RETURN
+	END
+
+
+c nobsxytv_var
+c
+c***********************************************************************
+c...NOBS.....Based on gausswt, return only the # of obs in (x,y) gridbox
+c............method is to call this sub for each data value
+c............all calcs done in gridbox units
+c............xx/x1/xf all in same units
+c............yy/y1/yf all in same units
+
+c this version returns the cell mean in obs(ig,jg,1,Lg)
+c this version returns the cell variance in obs(ig,jg,3,Lg)
+
+c  i	xx,yy,tt=x/y/t location of data pt (data units)
+c  i	nx,ny,nt=size of grids
+c  i	xaxlo,xaxyi, etc bounds of destination grid cells
+c  o 	obs(nx,ny,nt) number of obs in each (x,y,t) gridbox
+c--------------------------------------------------------------------------
+
+	SUBROUTINE nobsxytv_var (obs_only, xx, yy, tt, vv, nx, ny, nt, 
+     .             xaxlo,xaxhi, yaxlo,yaxhi, taxlo,taxhi, indx, obs)
+
+
+* Argument declarations
+
+        INTEGER nx, ny, nt, obs_only, indx(4,2)
+	REAL xx, yy, tt, vv,xaxlo(*), xaxhi(*), yaxlo(*), yaxhi(*), 
+     .       taxlo(*), taxhi(*), obs(nx,ny,3,nt)
+
+* Local variable declarations
+
+        REAL xxg, yyg, ttg, delta
+        INTEGER i, j, l, ig, jg, Lg 
+
+	lg = 1
+	DO l = 1, nt
+	   IF (tt.GE.taxlo(lg) .AND.
+     .         tt.LT.taxhi(lg)) THEN
+              jg = 1
+	      DO j = 1, ny
+		 IF (yy.GE.yaxlo(jg) .AND.
+     .	             yy.LT.yaxhi(jg)) THEN
+                    ig = 1
+		    DO i = 1, nx
+		       IF ( xx.GE.xaxlo(ig) .AND.
+     .                      xx.LT.xaxhi(ig)) THEN
+
+		          IF (obs_only .EQ. 0) THEN
+		             obs(ig,jg,2,Lg) = obs(ig,jg,2,Lg) + 1.	! count
+		             delta = vv - obs(ig,jg,1,Lg)
+		             obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 
+     .                          delta/obs(ig,jg,2,Lg) ! current est of mean
+		             obs(ig,jg,3,Lg) = obs(ig,jg,3,Lg) - 
+     .                          delta*(vv - obs(ig,jg,1,Lg)) !M2
+		          ELSE
+		             obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 1.
+		          ENDIF
+
+* Store the min and max index used in this cruise
+		             indx(1,1) = MIN(indx(1,1), ig)
+		             indx(1,2) = MAX(indx(1,2), ig)
+		             indx(2,1) = MIN(indx(2,1), jg)
+		             indx(2,2) = MAX(indx(2,2), jg)
+		             indx(4,1) = MIN(indx(4,1), Lg)
+		             indx(4,2) = MAX(indx(4,2), Lg)
+		       ENDIF !xx in grid box
+		       ig = ig + 1
+		    ENDDO  ! nx
+
+		 ENDIF !yy in grid box
+		 jg = jg + 1
+	      ENDDO  ! ny
+
+	   ENDIF !tt in grid box
+	   lg = lg + 1
+	ENDDO  ! nt
+
+
+	RETURN
+	END
+
+c ----------------
+c http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#On-line_algorithm
+c def online_variance(data):
+c     n = 0
+c     mean = 0
+c     M2 = 0
+c 
+c     for x in data:
+c         n = n + 1
+c         delta = x - mean
+c         mean = mean + delta/n
+c         M2 = M2 + delta*(x - mean)  # This expression uses the new value of mean
+c 
+c     variance_n = M2/n
+c     variance = M2/(n - 1)
+c     return variance
+c ------------------
+
+c pickoutxytcv
+c
+c***********************************************************************
+      SUBROUTINE pickoutxytcv (obs_only, vars, alon, alat, atimes,
+     .   cruises, n, vv, xx, yy, tt, ncc)
+
+*  Called from the scatter* family of gridding functions.
+*  Pick out nth item from a set of arrays, which are really 
+*  4-dimensioned arrays with normal axes on three of the four axes.
+
+      REAL alon(*), alat(*), atimes(*), cruises(*), vars(*)
+      REAL xx, yy, tt, vv
+      INTEGER obs_only, n, ncc
+
+      vv = 1.
+      IF (obs_only .EQ. 0) vv = vars(n)
+      xx = alon(n)
+      yy = alat(n)
+      tt = atimes(n)
+      ncc = cruises(n)
+
+      RETURN
+      END
+
+c
+c modscatminmax
+c
+c***********************************************************************
+
+      SUBROUTINE modscatminmax (axlo, axhi, nscat, scatm)
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+* 
+* ACM 11/00
+*  Called by scat2gridlaplace* gridding functions.
+*  If there is a modulo axis, apply modulo-ness to the coordinates in that 
+*  direction of the scattered points.
+
+*  ax           axlo, axhi outer box range of the modulo axis
+*  nscat        input: number of scattered points, output: updated number.
+*  scatm        scattered points coordinate array in the direction of the 
+*               modulo axis
+
+      REAL scatm(*)
+      REAL*8 axlo, axhi
+      INTEGER nscat, i
+      REAL ax1, axf, scatpt, diff, range
+
+      ax1 = axlo
+      axf = axhi
+      range = axf - ax1
+      IF (range .EQ. 0.) RETURN  ! else the WHILE loops are infinite !
+
+      DO 100 i = 1, nscat
+         scatpt = scatm(i)
+         diff = scatpt - axf
+         DO WHILE (diff .GE. 0)
+            scatpt = scatpt - range
+            diff = scatpt - axf
+         ENDDO
+
+         diff = scatpt - ax1 
+         DO WHILE (diff .LT. 0.)
+            scatpt = scatpt + range
+            diff = scatpt - ax1
+         ENDDO
+
+         scatm(i) = scatpt
+  100 CONTINUE
+
+      RETURN
+      END
+
diff --git a/fer/efi/is_element_of.F b/fer/efi/is_element_of.F
index cd152de..6e4df1c 100644
--- a/fer/efi/is_element_of.F
+++ b/fer/efi/is_element_of.F
@@ -92,11 +92,11 @@
 
       WRITE (fcn_desc, 10)
    10 FORMAT ('Returns 1 if first argument contains any of the ',
-     .        'values in argument 2, else 0')
+     .        'values in 2nd arg, else 0')
       CALL ef_set_desc(id, fcn_desc)
       
 * Tell Ferret to run the following instead, if the arguments are strings.
-      CALL ef_set_alt_fcn_name(id, 'IS_ELEMENT_OF_STR')
+      CALL ef_set_alt_fcn_name(id, 'IS_ELEMENT_OF_STR_CASE')
 
       CALL ef_set_num_args(id, 2)
       CALL ef_set_has_vari_args(id, NO)
diff --git a/fer/efi/is_element_of_str.F b/fer/efi/is_element_of_str.F
index 81e01db..4372633 100644
--- a/fer/efi/is_element_of_str.F
+++ b/fer/efi/is_element_of_str.F
@@ -94,7 +94,7 @@
 
       WRITE (fcn_desc, 10)
    10 FORMAT ('Returns 1 if first argument contains any of the ',
-     .        'values in 2nd argument (case sensitive), else 0')
+     .        'values in 2nd arg (case sensitive), else 0')
       CALL ef_set_desc(id, fcn_desc)
 
       CALL ef_set_num_args(id, 2)
diff --git a/fer/efi/sample_fast_i.F b/fer/efi/sample_fast_i.F
index 109c5f5..7033fd2 100644
--- a/fer/efi/sample_fast_i.F
+++ b/fer/efi/sample_fast_i.F
@@ -96,7 +96,7 @@
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'V')
-      CALL ef_set_arg_desc(id, arg, 'Variable to sample')
+      CALL ef_set_arg_desc(id, arg, '1-D variable in X direction')
       CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
 
       arg = 2
diff --git a/fer/efi/sample_fast_i_str.F b/fer/efi/sample_fast_i_str.F
index 2278c7f..705645f 100644
--- a/fer/efi/sample_fast_i_str.F
+++ b/fer/efi/sample_fast_i_str.F
@@ -95,7 +95,7 @@
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'S')
-      CALL ef_set_arg_desc(id, arg, 'String Variable to sample')
+      CALL ef_set_arg_desc(id, arg, '1-D string variable in X direction')
       CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
       CALL ef_set_arg_type(id, arg, STRING_ARG)
 
diff --git a/fer/efi/samplem_multi.F b/fer/efi/samplem_multi.F
new file mode 100644
index 0000000..181d3f7
--- /dev/null
+++ b/fer/efi/samplem_multi.F
@@ -0,0 +1,255 @@
+*
+* samplem_multi.F
+*
+* Ansley Manke
+* Dec 1998
+*
+* This function samples data along the L axis using a set of indices
+* 4/5/99  Ansley Manke 
+*         Indices may be oriented along any axis; 
+*         Result is abstract on the sampled axis.
+*
+* 5/17  Make these functions 6-D.  Add E and F direction functions.
+*       Reverse the order of argumnets to beconsistent with the
+*       SAMPLEL etc functions. Fix the test for sample argument on 
+*       different axis than the sample direction.
+*
+
+      SUBROUTINE samplem_multi_init(id)
+
+      INCLUDE 'EF_Util.cmn'
+
+     
+* Local variable declarations
+      INTEGER id, arg
+
+      CHARACTER*100 fcn_desc
+
+      WRITE (fcn_desc, 10)
+   10 FORMAT ('Returns data sampled according to M indices which ',
+     . 'may be function of IJKLN')
+      CALL ef_set_desc(id, fcn_desc)
+
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_has_vari_args(id, NO)
+      CALL ef_set_axis_inheritance_6d(id, IMPLIED_BY_ARGS, 
+     .     IMPLIED_BY_ARGS, IMPLIED_BY_ARGS, IMPLIED_BY_ARGS, 
+     .     ABSTRACT, IMPLIED_BY_ARGS)
+
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'DAT_TO_SAMPLE')
+      CALL ef_set_arg_desc(id, arg, 'data to sample using L indices')
+      CALL ef_set_axis_influence_6d(id, arg, YES, YES, YES, YES, NO, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'M_INDICES')
+      CALL ef_set_arg_desc(id, arg, 'ordered indices')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+      RETURN 
+      END
+
+*
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis.  
+*
+
+      SUBROUTINE samplem_multi_result_limits(id)
+
+      INCLUDE 'EF_Util.cmn'
+* Declarations
+      INTEGER id
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
+     .     arg_incr(6,EF_MAX_ARGS)
+
+* Local variable declarations
+      INTEGER npts, idir, ndim
+      CHARACTER*100 errtxt
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      npts = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss(E_AXIS, ARG2) + 1
+
+* Count the dimensions in argument 2
+      ndim = 0
+      DO idir = X_AXIS, F_AXIS
+         IF (arg_lo_ss(idir, ARG2) .NE. ef_unspecified_int4) THEN
+	    ndim = ndim + 1
+         ENDIF
+      ENDDO
+
+* If they sent in a simple list as the 2nd argument, it might not be 
+* on the X axis. Allow that.
+
+      IF (arg_lo_ss(E_AXIS, ARG2) .EQ. ef_unspecified_int4) THEN
+         DO idir = X_AXIS, F_AXIS
+	    IF (arg_lo_ss(idir, ARG2) .NE. ef_unspecified_int4) THEN
+	       npts = arg_hi_ss(idir, ARG2) - arg_lo_ss(idir, ARG2) + 1
+	    ENDIF
+         ENDDO
+	 IF (ndim .NE. 1) THEN
+	    errtxt = 'Argument 2 has no E axis. When it has more than '//
+     .               '1 dimension, E axis is the sample dimension.' 
+	    GOTO 999
+	 ENDIF
+
+* If argument 2 is a multi-dimensioned variable, all but the sample dimension
+* must match the grid of argument 1
+      ELSE
+         IF (ndim .GT. 1) THEN
+         DO idir = X_AXIS, F_AXIS
+	   IF (idir .EQ. E_AXIS) cycle
+	   IF (arg_hi_ss(idir,ARG1)-arg_lo_ss(idir,ARG1) .NE. 
+     .         arg_hi_ss(idir,ARG2)-arg_lo_ss(idir,ARG2) ) THEN
+	      errtxt = 'Grid mismatch. Non-E dimensions of Arg 2 must be '//
+     .               'conformable with grid of Arg 1' 
+	      GOTO 999
+	   ENDIF
+         ENDDO
+	 ENDIF
+      ENDIF
+
+      CALL ef_set_axis_limits(id, E_AXIS, 1, npts)
+      RETURN
+  999 CONTINUE
+
+      CALL ef_bail_out(id, 'Argument 2 has no E axis. '//
+     .  'If it has >1 dimension, E axis is the sample dimension.' )
+ 
+      END
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE samplem_multi_compute(id, arg_1, arg_2, result)
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+* Declarations
+     
+      INTEGER id
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+     .      mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .     mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .     memresloz:memreshiz, memreslot:memreshit,
+     .      memresloe:memreshie, memreslof:memreshif)
+
+
+      INTEGER res_lo_ss(6), res_hi_ss(6), res_incr(6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
+     .     arg_incr(6,EF_MAX_ARGS)
+
+     
+* Local variable declarations
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      INTEGER i2, j2, k2, l2, m2, n2
+      INTEGER morder
+      REAL aorder
+
+      INTEGER nlen(3)
+      CHARACTER*8 lefint, aindex(3)
+      CHARACTER*100 errtxt
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+
+      n1 = arg_lo_ss(F_AXIS, ARG1)
+      n2 = arg_lo_ss(F_AXIS, ARG2)
+      DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS) 
+
+      l1 = arg_lo_ss(T_AXIS, ARG1)
+      l2 = arg_lo_ss(T_AXIS, ARG2)
+      DO 500 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS) 
+
+      k1 = arg_lo_ss(Z_AXIS, ARG1)
+      k2 = arg_lo_ss(Z_AXIS, ARG2)
+      DO 400 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS) 
+
+         j1 = arg_lo_ss(Y_AXIS,ARG1)
+         j2 = arg_lo_ss(Y_AXIS,ARG2)
+         DO 300 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+            i1 = arg_lo_ss(X_AXIS,ARG1)
+            i2 = arg_lo_ss(X_AXIS,ARG2)
+            DO 200 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+               m2 = arg_lo_ss(E_AXIS,ARG2)
+               DO 100 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+*  Get the index to sample, whichever axis of arg_2 it is on.
+
+                  aorder = arg_2(i2,j2,k2,l2,m2,n2)
+                  IF (m2 .EQ. ef_unspecified_int4) 
+     .                  CALL pickindex(arg_2, m, aorder)
+                  morder = aorder
+
+*  Check that we do have an index of ARG_1; set the result
+
+                  IF (aorder .EQ. bad_flag(ARG2)) THEN
+                     result(i,j,k,l,m,n) = bad_flag_result
+                  ELSE
+
+                     IF (morder .LT. arg_lo_ss(E_AXIS,ARG1)  .OR.
+     .                   morder .GT. arg_hi_ss(E_AXIS,ARG1) ) THEN
+                        GO TO 999
+                     ELSE
+
+                        IF (arg_1(i1,j1,k1,l1,morder,n1) .EQ. bad_flag(ARG1)) THEN
+                           result(i,j,k,l,m,n) = bad_flag_result
+                        ELSE
+                           result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,morder,n1)
+ 
+                        END IF
+                     END IF
+                  END IF
+
+                  m2 = m2 + arg_incr(E_AXIS,ARG2)
+ 100           CONTINUE
+
+               i1 = i1 + arg_incr(X_AXIS,ARG1)
+               i2 = i2 + arg_incr(X_AXIS,ARG2)
+ 200        CONTINUE
+
+            j1 = j1 + arg_incr(Y_AXIS,ARG1)
+            j2 = j2 + arg_incr(Y_AXIS,ARG2)
+ 300     CONTINUE
+
+         k1 = k1 + arg_incr(Z_AXIS,ARG1)
+         k2 = k2 + arg_incr(Z_AXIS,ARG2)
+ 400  CONTINUE
+
+
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+         l2 = l2 + arg_incr(T_AXIS,ARG2)
+ 500  CONTINUE
+
+
+         n1 = n1 + arg_incr(F_AXIS,ARG1)
+         n2 = n2 + arg_incr(F_AXIS,ARG2)
+ 600  CONTINUE
+
+      RETURN 
+
+999   CONTINUE
+
+      aindex(1) = LEFINT(morder,nlen(1))
+      aindex(2) = LEFINT(arg_lo_ss(T_AXIS,ARG2),nlen(2))
+      aindex(3) = LEFINT(arg_hi_ss(T_AXIS,ARG2),nlen(3))
+
+      WRITE (errtxt,*) 'Sampling index ', aindex(1)(1:nlen(1)), 
+     . ' in ARG1 is outside the range of L indices for ARG2 (', 
+     .  aindex(2)(1:nlen(2)), ':', aindex(3)(1:nlen(3)), ')'
+
+      CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN
+      END
+
diff --git a/fer/efi/samplen_multi.F b/fer/efi/samplen_multi.F
new file mode 100644
index 0000000..da074b6
--- /dev/null
+++ b/fer/efi/samplen_multi.F
@@ -0,0 +1,250 @@
+*
+* samplen_multi.F
+*
+* Ansley Manke
+* Dec 1998
+*
+* This function samples data along the L axis using a set of indices
+* 4/5/99  Ansley Manke 
+*         Indices may be oriented along any axis; 
+*         Result is abstract on the sampled axis.
+*
+* 5/17  Make these functions 6-D.  Add E and F direction functions.
+*       Reverse the order of argumnets to beconsistent with the
+*       SAMPLEL etc functions. Fix the test for sample argument on 
+*       different axis than the sample direction.
+*
+
+      SUBROUTINE samplen_multi_init(id)
+
+      INCLUDE 'EF_Util.cmn'
+
+* Declarations
+      INTEGER id, arg
+      CHARACTER*100 fcn_desc
+
+      WRITE (fcn_desc, 10)
+   10 FORMAT ('Returns data sampled according to N indices which ',
+     . 'may be function of IJKLM')
+      CALL ef_set_desc(id, fcn_desc)
+
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_has_vari_args(id, NO)
+      CALL ef_set_axis_inheritance_6d(id, IMPLIED_BY_ARGS, 
+     .     IMPLIED_BY_ARGS, IMPLIED_BY_ARGS, ABSTRACT, 
+     .     IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'DAT_TO_SAMPLE')
+      CALL ef_set_arg_desc(id, arg, 'data to sample using L indices')
+      CALL ef_set_axis_influence_6d(id, arg, YES, YES, YES, YES, YES, NO)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'N_INDICES')
+      CALL ef_set_arg_desc(id, arg, 'ordered indices')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+      RETURN 
+      END
+
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis.  
+
+      SUBROUTINE samplen_multi_result_limits(id)
+
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
+     .     arg_incr(6,EF_MAX_ARGS)
+
+      INTEGER npts, idir, ndim
+      CHARACTER*100 errtxt
+
+*     Use utility functions to get context information about the 
+*     1st argument, to set the abstract axis lo and hi indices.
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      npts = arg_hi_ss(F_AXIS, ARG2) - arg_lo_ss(F_AXIS, ARG2) + 1
+
+* Count the dimensions in argument 2
+      ndim = 0
+      DO idir = X_AXIS, F_AXIS
+         IF (arg_lo_ss(idir, ARG2) .NE. ef_unspecified_int4) THEN
+	    ndim = ndim + 1
+         ENDIF
+      ENDDO
+
+* If they sent in a simple list as the 2nd argument, it might not be 
+* on the F axis. Allow that.
+
+      IF (arg_lo_ss(F_AXIS, ARG2) .EQ. ef_unspecified_int4) THEN
+         ndim = 0
+         DO idir = X_AXIS, F_AXIS
+	    IF (arg_lo_ss(idir, ARG2) .NE. ef_unspecified_int4) THEN
+	       npts = arg_hi_ss(idir, ARG2) - arg_lo_ss(idir, ARG2) + 1
+	       ndim = ndim + 1
+	    ENDIF
+         ENDDO
+	 IF (ndim .NE. 1) THEN
+	    errtxt = 'Argument 2 has no F axis. When it has more than '//
+     .               '1 dimension, F axis is the sample dimension.' 
+	    GOTO 999
+	 ENDIF
+
+* If argument 2 is a multi-dimensioned variable, all but the sample dimension
+* must match the grid of argument 1
+      ELSE
+         IF (ndim .GT. 1) THEN
+         DO idir = X_AXIS, E_AXIS
+	   IF (arg_hi_ss(idir,ARG1)-arg_lo_ss(idir,ARG1) .NE. 
+     .         arg_hi_ss(idir,ARG2)-arg_lo_ss(idir,ARG2) ) THEN
+	      errtxt = 'Grid mismatch. Non-F dimensions of Arg 2 must be '//
+     .               'conformable with grid of Arg 1' 
+	      GOTO 999
+	   ENDIF
+         ENDDO
+	 ENDIF
+      ENDIF
+
+      CALL ef_set_axis_limits(id, F_AXIS, 1, npts)
+      RETURN
+  999 CONTINUE
+
+      CALL ef_bail_out(id, 'Argument 2 hsd no F axis. '//
+     .  'If it has >1 dimension, F axis is the sample dimension.' )
+ 
+      END
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE samplen_multi_compute(id, arg_1, arg_2, result)
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+* Declarations
+      INTEGER id
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+     .      mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .     mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .     memresloz:memreshiz, memreslot:memreshit,
+     .      memresloe:memreshie, memreslof:memreshif)
+
+
+      INTEGER res_lo_ss(6), res_hi_ss(6), res_incr(6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
+     .     arg_incr(6,EF_MAX_ARGS)
+
+* Local variable declarations
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      INTEGER i2, j2, k2, l2, m2, n2
+      INTEGER norder
+      REAL aorder
+
+      INTEGER nlen(3)
+      CHARACTER*8 lefint, aindex(3)
+      CHARACTER*100 errtxt
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+
+      m1 = arg_lo_ss(E_AXIS, ARG1)
+      m2 = arg_lo_ss(E_AXIS, ARG2)
+      DO 600 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS) 
+
+      l1 = arg_lo_ss(T_AXIS, ARG1)
+      l2 = arg_lo_ss(T_AXIS, ARG2)
+      DO 500 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS) 
+
+      k1 = arg_lo_ss(Z_AXIS, ARG1)
+      k2 = arg_lo_ss(Z_AXIS, ARG2)
+      DO 400 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS) 
+
+         j1 = arg_lo_ss(Y_AXIS,ARG1)
+         j2 = arg_lo_ss(Y_AXIS,ARG2)
+         DO 300 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+            i1 = arg_lo_ss(X_AXIS,ARG1)
+            i2 = arg_lo_ss(X_AXIS,ARG2)
+            DO 200 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+               n2 = arg_lo_ss(F_AXIS,ARG2)
+               DO 100 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+*  Get the index to sample, whichever axis of arg_2 it is on.
+
+                  aorder = arg_2(i2,j2,k2,l2,m2,n2)
+                  IF (n2 .EQ. ef_unspecified_int4) 
+     .                  CALL pickindex(arg_2, n, aorder)
+                  norder = aorder
+
+*  Check that we do have an index of ARG_1; set the result
+
+                  IF (aorder .EQ. bad_flag(ARG2)) THEN
+                     result(i,j,k,l,m,n) = bad_flag_result
+                  ELSE
+
+                     IF (norder .LT. arg_lo_ss(F_AXIS,ARG1)  .OR.
+     .                   norder .GT. arg_hi_ss(F_AXIS,ARG1) ) THEN
+                        GO TO 999
+                     ELSE
+
+                        IF (arg_1(i1,j1,k1,m1,n1,norder) .EQ. bad_flag(ARG1)) THEN
+                           result(i,j,k,l,m,n) = bad_flag_result
+                        ELSE
+                           result(i,j,k,l,m,n) = arg_1(i1,j1,k1,m1,n1,norder)
+ 
+                        END IF
+                     END IF
+                  END IF
+
+                  n2 = n2 + arg_incr(F_AXIS,ARG2)
+ 100           CONTINUE
+
+               i1 = i1 + arg_incr(X_AXIS,ARG1)
+               i2 = i2 + arg_incr(X_AXIS,ARG2)
+ 200        CONTINUE
+
+            j1 = j1 + arg_incr(Y_AXIS,ARG1)
+            j2 = j2 + arg_incr(Y_AXIS,ARG2)
+ 300     CONTINUE
+
+         k1 = k1 + arg_incr(Z_AXIS,ARG1)
+         k2 = k2 + arg_incr(Z_AXIS,ARG2)
+ 400  CONTINUE
+
+         l1 = l1 + arg_incr(T_AXIS,ARG1)
+         l2 = l2 + arg_incr(T_AXIS,ARG2)
+ 500  CONTINUE
+
+         m1 = m1 + arg_incr(E_AXIS,ARG1)
+         m2 = m2 + arg_incr(E_AXIS,ARG2)
+ 600  CONTINUE
+
+      RETURN 
+
+999   CONTINUE
+
+      aindex(1) = LEFINT(norder,nlen(1))
+      aindex(2) = LEFINT(arg_lo_ss(T_AXIS,ARG2),nlen(2))
+      aindex(3) = LEFINT(arg_hi_ss(T_AXIS,ARG2),nlen(3))
+
+      WRITE (errtxt,*) 'Sampling index ', aindex(1)(1:nlen(1)), 
+     . ' in ARG1 is outside the range of L indices for ARG2 (', 
+     .  aindex(2)(1:nlen(2)), ':', aindex(3)(1:nlen(3)), ')'
+
+      CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN
+      END
+
diff --git a/fer/efi/samplexy_closest.F b/fer/efi/samplexy_closest.F
index 57302be..e567829 100644
--- a/fer/efi/samplexy_closest.F
+++ b/fer/efi/samplexy_closest.F
@@ -105,8 +105,7 @@
       CHARACTER*100 fcn_desc
 
       WRITE (fcn_desc, 10)
-   10 FORMAT ('Returns data sampled at a set of (X,Y) points, ',
-     .        'using nearest grid intersection')
+   10 FORMAT ('This function is deprecated. It is renamed to SAMPLEXY_NRST')
       CALL ef_set_desc(id, fcn_desc)
 
       CALL ef_set_num_args(id, 3)
diff --git a/fer/efi/samplexy_closest.F b/fer/efi/samplexy_nrst.F
similarity index 99%
copy from fer/efi/samplexy_closest.F
copy to fer/efi/samplexy_nrst.F
index 57302be..f95431a 100644
--- a/fer/efi/samplexy_closest.F
+++ b/fer/efi/samplexy_nrst.F
@@ -1,5 +1,5 @@
 *
-* samplexy_closest.F
+* samplexy_nrst.F
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -90,7 +90,7 @@
 *
 
 
-      SUBROUTINE samplexy_closest_init(id)
+      SUBROUTINE samplexy_nrst_init(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -154,7 +154,7 @@
 * hiss               hi subscript for an axis
 *
 
-      SUBROUTINE samplexy_closest_result_limits(id)
+      SUBROUTINE samplexy_nrst_result_limits(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -200,7 +200,7 @@
 * In this subroutine we request an amount of storage to be supplied
 * by Ferret and passed as an additional argument.
 *
-      SUBROUTINE samplexy_closest_work_size(id)
+      SUBROUTINE samplexy_nrst_work_size(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -269,7 +269,7 @@
 *
 * In this subroutine we compute the result
 *
-      SUBROUTINE samplexy_closest_compute(id, arg_1, arg_2, arg_3,
+      SUBROUTINE samplexy_nrst_compute(id, arg_1, arg_2, arg_3,
      .        result, xaxdat, yaxdat, xboxlo, xboxhi, yboxlo, yboxhi)
 
       IMPLICIT NONE
diff --git a/fer/efi/scat2grid_minmax_xyt.F b/fer/efi/scat2grid_minmax_xyt.F
new file mode 100644
index 0000000..bfb310c
--- /dev/null
+++ b/fer/efi/scat2grid_minmax_xyt.F
@@ -0,0 +1,502 @@
+*
+*  scat2grid_minmax_xyt.F
+*
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+* Ansley Manke
+* April 2011
+* 1/16/2016 Correctly work with irregular grids
+
+* In this subroutine we provide information about
+* the function.  The user configurable information 
+* consists of the following:
+*
+* descr              Text description of the function
+*
+* num_args           Required number of arguments
+*
+* axis_inheritance   Type of axis for the result
+*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+*                       CUSTOM          - user defined axis
+*                       IMPLIED_BY_ARGS - same axis as the incoming argument
+*                       NORMAL          - the result is normal to this axis
+*                       ABSTRACT        - an axis which only has index values
+*
+* piecemeal_ok       For memory optimization:
+*                       axes where calculation may be performed piecemeal
+*                       ( YES, NO )
+* 
+*
+* For each argument we provide the following information:
+*
+* name               Text name for an argument
+*
+* unit               Text units for an argument
+*
+* desc               Text description of an argument
+*
+* axis_influence     Are this argument's axes the same as the result grid?
+*                       ( YES, NO )
+*
+* axis_extend       How much does Ferret need to extend arg limits relative to result 
+*
+
+
+      SUBROUTINE  scat2grid_minmax_xyt_init(id)
+
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+************************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CHARACTER*126 buff
+      WRITE (buff, 10)
+   10 FORMAT 
+     .  ('Compute min/max per bin, putting scattered data into XYT grid')
+      CALL ef_set_desc(id, buff)
+
+      CALL ef_set_num_args(id, 7)
+      CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS, 
+     .     IMPLIED_BY_ARGS,  ABSTRACT, IMPLIED_BY_ARGS)
+
+      CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
+      CALL ef_set_num_work_arrays(id, 6)
+
+* Output grid is determined by arguments 5, 6, and 7, the result's x and y axes.
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'XPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'X coordinates of scattered input XYT')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'YPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'Y coordinates of scattered input XYT')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'TPTS')
+      CALL ef_set_arg_desc(id, arg,
+     .     'T coordinates of scattered input XYT')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+ 
+      arg = 4
+      CALL ef_set_arg_name(id, arg, 'F')
+      WRITE (buff, 20)
+  20  FORMAT ('F(X,Y,T) Data at scattered input XYT')
+      CALL ef_set_arg_desc(id, arg, buff)
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 5
+      CALL ef_set_arg_name(id, arg, 'XAXPTS')
+      CALL ef_set_arg_desc(id, arg,
+     .                   'X axis coordinates of the output grid')
+      CALL ef_set_axis_influence(id, arg, YES, NO, NO, NO)
+
+      arg = 6
+      CALL ef_set_arg_name(id, arg, 'YAXPTS')
+      CALL ef_set_arg_desc(id, arg,
+     .                   'Y axis coordinates of the output grid')
+      CALL ef_set_axis_influence(id, arg, NO, YES, NO, NO)
+
+      arg = 7
+      CALL ef_set_arg_name(id, arg, 'TAXPTS')
+      WRITE (buff, 30)
+  30  FORMAT ('T axis coordinates of the output grid, with same ',
+     .       'units and origin as tpts')
+      CALL ef_set_arg_desc(id, arg, buff)
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, YES)
+
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+************************************************************************
+
+      RETURN 
+      END
+      
+*
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis.   The user 
+* configurable information consists of the following:
+*
+* loss               lo subscript for an axis
+* hiss               hi subscript for an axis
+*
+
+      SUBROUTINE scat2grid_minmax_xyt_result_limits(id)
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+
+      INTEGER id
+
+* **********************************************************************
+*                                           USER CONFIGURABLE PORTION |
+*                                                                     |
+*                                                                     V
+
+      CALL ef_set_axis_limits(id, Z_AXIS, 1, 2)
+
+*                                                                     ^
+*                                                                     |
+*                                           USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+
+
+*
+* In this subroutine we request an amount of storage to be supplied
+* by Ferret and passed as an additional argument.
+*
+      SUBROUTINE scat2grid_minmax_xyt_work_size(id)
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+* 
+* Set the work arrays,  X/Y/Z/T dimensions
+*
+* ef_set_work_array_dims(id,array #,xlo,ylo,zlo,tlo,xhi,yhi,zhi,thi)
+*
+      INTEGER nxout, nyout, ntout, i, k
+      INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
+     .     arg_incr(4,1:EF_MAX_ARGS)
+
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nxout = 1 + arg_hi_ss(X_AXIS,ARG5) - arg_lo_ss(X_AXIS,ARG5)
+      nyout = 1 + arg_hi_ss(Y_AXIS,ARG6) - arg_lo_ss(Y_AXIS,ARG6)
+      ntout = 1 + arg_hi_ss(T_AXIS,ARG7) - arg_lo_ss(T_AXIS,ARG7)
+
+* xaxlo  output x axis
+      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nxout, 1, 1, 1)
+* xaxhi  output x axis
+      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nxout, 1, 1, 1)
+
+* yaxlo  output y axis
+      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nyout, 1, 1, 1)
+* yaxhi  output y axis
+      CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, nyout, 1, 1, 1)
+
+* taxlo  output t axis
+      CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, ntout, 1, 1, 1)
+* taxhi  output t axis
+      CALL ef_set_work_array_dims (id, 6, 1, 1, 1, 1, ntout, 1, 1, 1)
+
+      RETURN
+      END
+
+* In this subroutine we compute the result
+*
+
+      SUBROUTINE scat2grid_minmax_xyt_compute(id, arg_1, arg_2, arg_3, 
+     .     arg_4, arg_5, arg_6, arg_7, result, xaxlo, xaxhi, 
+     .     yaxlo, yaxhi, taxlo, taxhi)
+
+*  arg_1  xpts  \
+*  arg_2  ypts  / Scattered x,y,t triples to be gridded.
+*  arg_3  tpts /
+*  arg_4  fpts /
+*  arg_5  xaxis of new grid   
+*  arg_6  yaxis of new grid 
+*  arg_7  taxis of new grid
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
+     .     mem1lot:mem1hit)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .     mem2lot:mem2hit)
+      REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz, 
+     .     mem3lot:mem3hit)
+      REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz, 
+     .     mem4lot:mem4hit)
+      REAL arg_5(mem5lox:mem5hix, mem5loy:mem5hiy, mem5loz:mem5hiz,
+     .     mem5lot:mem5hit)
+      REAL arg_6(mem6lox:mem6hix, mem6loy:mem6hiy, mem6loz:mem6hiz,
+     .     mem6lot:mem6hit)
+      REAL arg_7(mem7lox:mem7hix, mem7loy:mem7hiy, mem7loz:mem7hiz,
+     .     mem7lot:mem7hit)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .     memresloz:memreshiz, memreslot:memreshit)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable's axes. 
+
+      INTEGER res_lo_ss(4), res_hi_ss(4), res_incr(4)
+      INTEGER arg_lo_ss(4,EF_MAX_ARGS), arg_hi_ss(4,EF_MAX_ARGS),
+     .     arg_incr(4,EF_MAX_ARGS)
+
+
+************************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+*  Dimension the work arrays
+
+      REAL*8 xaxlo(wrk1lox:wrk1hix)
+      REAL*8 xaxhi(wrk2lox:wrk2hix)
+      REAL*8 yaxlo(wrk3lox:wrk3hix)
+      REAL*8 yaxhi(wrk4lox:wrk4hix)
+      REAL*8 taxlo(wrk5lox:wrk5hix)
+      REAL*8 taxhi(wrk6lox:wrk6hix)
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, i2, j1, k1, l1
+      INTEGER i5, i5n, j6, j6n, l7, l7n
+
+      INTEGER nxpts, nypts, ntpts, nscat
+      INTEGER nx, ny, nt, i1n, i2n
+
+      REAL x1, y1, xf, yf
+      REAL xx, yy, tt, ff, a1, a2, big
+
+      CHARACTER*250 errtxt
+
+*  variables for checking axis characteristics (modulo axes)
+
+      CHARACTER ax_name(5)*16, ax_units(5)*16
+      LOGICAL backward(5), modulox(5), regular(5)
+
+      CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+*  Check to see if output axes are modulo
+
+      CALL ef_get_axis_info (id, 5, ax_name, ax_units, backward, 
+     .                       modulox, regular)
+
+*  Find number of points in scattered input points.  1-D arrays defining the 
+*  scattered data points may lie on the X, Y, Z, or T axis of the input arguments.
+
+      nxpts = 0
+      nypts = 0
+      ntpts = 0
+
+      DO 110 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG1) .GE. 1) THEN
+            i1 = arg_lo_ss(m,ARG1)
+            i1n = arg_hi_ss(m,ARG1)
+            if (i1n-i1 .NE. 0) nxpts = 1 + (i1n - i1)
+         ENDIF
+ 110  CONTINUE
+
+      DO 120 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG2) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG2)
+            i2n = arg_hi_ss(m,ARG2)
+            if (i2n-i2 .NE. 0) nypts = 1 + (i2n - i2)
+         ENDIF
+ 120  CONTINUE
+
+      DO 130 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG3) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG3)
+            i2n = arg_hi_ss(m,ARG3)
+            if (i2n-i2 .NE. 0) ntpts = 1 + (i2n - i2)
+         ENDIF 
+ 130  CONTINUE
+
+      IF (nxpts .NE. nypts .OR. nxpts .EQ. 0) GOTO 900
+      IF (nxpts .NE. ntpts) GOTO 900
+      nscat = nxpts
+
+*  Compute number of points in output axes.
+
+      i5 = arg_lo_ss(X_AXIS,ARG5)
+      i5n = arg_hi_ss(X_AXIS,ARG5)
+
+      j6 = arg_lo_ss(Y_AXIS,ARG6)
+      j6n = arg_hi_ss(Y_AXIS,ARG6)
+
+      l7 = arg_lo_ss(T_AXIS,ARG7)
+      l7n = arg_hi_ss(T_AXIS,ARG7)
+
+      nx = 1 + (i5n - i5)
+      ny = 1 + (j6n - j6)
+      nt = 1 + (l7n - l7)
+
+*  Check that xax is a X axis and yax a Y axis and tax a T axis
+
+      IF (i5 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Fifth argument must be an X axis'
+         GO TO 999
+      ENDIF
+      IF (j6 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Sixth argument must be a Y axis'
+         GO TO 999
+      ENDIF
+      IF (l7 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Seventh argument must be a T axis'
+         GO TO 999
+      ENDIF
+
+C  Get coordinates of output axes.
+
+      CALL EF_GET_BOX_LIMITS(id, ARG5, X_AXIS,
+     .   arg_lo_ss(X_AXIS, ARG5), arg_hi_ss(X_AXIS, ARG5), xaxlo, xaxhi)
+
+      CALL EF_GET_BOX_LIMITS(id, ARG6, Y_AXIS,
+     .   arg_lo_ss(Y_AXIS, ARG6), arg_hi_ss(Y_AXIS, ARG6), yaxlo, yaxhi)
+
+      CALL EF_GET_BOX_LIMITS(id, ARG7, T_AXIS,
+     .   arg_lo_ss(T_AXIS, ARG7), arg_hi_ss(T_AXIS, ARG7), taxlo, taxhi)
+
+*  Compute result
+
+*  Initialize result.
+
+        big = ABS(bad_flag_result)
+
+        k = res_lo_ss(Z_AXIS)
+        DO l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+           DO j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+              DO i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+                 result(i,j,1,l) = big
+                 result(i,j,2,l) = -1.*big
+              ENDDO
+           ENDDO
+        ENDDO
+
+
+*  Loop over x,y,t, placing the min and max function values in the cells.
+
+         DO 300 n = 1, nscat
+
+            CALL pickout4 (arg_1, arg_2, arg_3, arg_4, 
+     .                         n, xx, yy, tt, ff)
+
+*  If output X axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+
+            IF  (modulox(1) .AND. xx.NE.bad_flag(ARG1))
+     .         CALL modscatminmax (xaxlo(1), xaxhi(nx), 1, xx)
+
+*  Put fcn into result variable.
+
+            IF (ff .NE. bad_flag(ARG4)) THEN 
+
+            l1 = 1
+            DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+              IF ( tt .GE. taxlo(l1) .AND. tt .LT. taxhi(l1) ) THEN 
+
+            j1 = 1
+            DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+              IF ( yy .GE. yaxlo(j1) .AND. yy .LT. yaxhi(j1) ) THEN 
+
+            i1 = 1
+            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+               IF ( xx .GE. xaxlo(i1) .AND. xx .LT. xaxhi(i1) ) THEN 
+
+                  result(i,j,1,L) = MIN(ff, result(i,j,1,L))
+                  result(i,j,2,L) = MAX(ff, result(i,j,2,L))
+
+               ENDIF 
+
+            i1 = i1 + 1
+ 100        CONTINUE
+
+            ENDIF 
+            j1 = j1 + 1
+ 200        CONTINUE
+
+            ENDIF 
+            l1 = l1 + 1
+ 400        CONTINUE
+
+           ENDIF  ! ff not bad 
+
+
+300   CONTINUE
+
+* Now set the missing-value flag for locations that had no data. 
+
+      i1 = 1
+      DO 620 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         j1 = 1
+         DO 610 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+            l1 = 1
+            DO 600 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+               IF( result(i,j,1,l) .EQ. big) THEN
+                  result(i,j,1,l) = bad_flag_result
+               ENDIF
+
+600         CONTINUE
+            j1 = j1 + 1
+610      CONTINUE
+         i1 = i1 + 1
+620   CONTINUE
+
+
+      RETURN
+
+900   CONTINUE
+
+      IF (nxpts .NE. nypts) THEN
+         WRITE (errtxt,20) nxpts, nypts
+      ELSE IF (nxpts .EQ. 0) THEN
+         WRITE (errtxt, 30)
+      ENDIF
+ 20   FORMAT ('Input scattered x, y have different # of points', 2I8)
+ 30   FORMAT ('No data in scattered x, y points')
+      GOTO 999 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN
+      END
diff --git a/fer/efi/scat2grid_std_xyt.F b/fer/efi/scat2grid_std_xyt.F
new file mode 100644
index 0000000..b5c598e
--- /dev/null
+++ b/fer/efi/scat2grid_std_xyt.F
@@ -0,0 +1,570 @@
+*
+*  scat2grid_std_xyt.F
+*
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+* Ansley Manke
+* April 2011
+* 1/16/2016 Correctly work with irregular grids
+
+* In this subroutine we provide information about
+* the function.  The user configurable information 
+* consists of the following:
+*
+* descr              Text description of the function
+*
+* num_args           Required number of arguments
+*
+* axis_inheritance   Type of axis for the result
+*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+*                       CUSTOM          - user defined axis
+*                       IMPLIED_BY_ARGS - same axis as the incoming argument
+*                       NORMAL          - the result is normal to this axis
+*                       ABSTRACT        - an axis which only has index values
+*
+* piecemeal_ok       For memory optimization:
+*                       axes where calculation may be performed piecemeal
+*                       ( YES, NO )
+* 
+*
+* For each argument we provide the following information:
+*
+* name               Text name for an argument
+*
+* unit               Text units for an argument
+*
+* desc               Text description of an argument
+*
+* axis_influence     Are this argument's axes the same as the result grid?
+*                       ( YES, NO )
+*
+* axis_extend       How much does Ferret need to extend arg limits relative to result 
+*
+
+
+      SUBROUTINE  SCAT2GRID_STD_XYT_INIT(id)
+
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+************************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CHARACTER*126 buff
+      WRITE (buff, 10)
+   10 FORMAT ('Copmpute std putting scattered data into XYT grid by bins')
+      CALL ef_set_desc(id, buff)
+
+      CALL ef_set_num_args(id, 7)
+      CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS, 
+     .     IMPLIED_BY_ARGS,  NORMAL, IMPLIED_BY_ARGS)
+
+      CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
+      CALL ef_set_num_work_arrays(id, 7)
+
+* Output grid is determined by arguments 5, 6, and 7, the result's x and y axes.
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'XPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'X coordinates of scattered input XYT')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'YPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'Y coordinates of scattered input XYT')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'TPTS')
+      CALL ef_set_arg_desc(id, arg,
+     .     'T coordinates of scattered input XYT')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+ 
+      arg = 4
+      CALL ef_set_arg_name(id, arg, 'F')
+      WRITE (buff, 20)
+  20  FORMAT ('F(X,Y,T) Data at scattered input XYT')
+      CALL ef_set_arg_desc(id, arg, buff)
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 5
+      CALL ef_set_arg_name(id, arg, 'XAXPTS')
+      CALL ef_set_arg_desc(id, arg,
+     .                   'X axis coordinates of the output grid')
+      CALL ef_set_axis_influence(id, arg, YES, NO, NO, NO)
+
+      arg = 6
+      CALL ef_set_arg_name(id, arg, 'YAXPTS')
+      CALL ef_set_arg_desc(id, arg,
+     .                   'Y axis coordinates of the output grid')
+      CALL ef_set_axis_influence(id, arg, NO, YES, NO, NO)
+
+      arg = 7
+      CALL ef_set_arg_name(id, arg, 'TAXPTS')
+      WRITE (buff, 30)
+  30  FORMAT ('T axis coordinates of the output grid, with same ',
+     .       'units and origin as tpts')
+      CALL ef_set_arg_desc(id, arg, buff)
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, YES)
+
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+************************************************************************
+
+      RETURN 
+      END
+      
+*
+* In this subroutine we request an amount of storage to be supplied
+* by Ferret and passed as an additional argument.
+*
+      SUBROUTINE SCAT2GRID_STD_XYT_WORK_SIZE(id)
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+* 
+* Set the work arrays,  X/Y/Z/T dimensions
+*
+* ef_set_work_array_dims(id,array #,xlo,ylo,zlo,tlo,xhi,yhi,zhi,thi)
+*
+      INTEGER nxout, nyout, ntout, i, k
+      INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
+     .     arg_incr(4,1:EF_MAX_ARGS)
+
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nxout = 1 + arg_hi_ss(X_AXIS,ARG5) - arg_lo_ss(X_AXIS,ARG5)
+      nyout = 1 + arg_hi_ss(Y_AXIS,ARG6) - arg_lo_ss(Y_AXIS,ARG6)
+      ntout = 1 + arg_hi_ss(T_AXIS,ARG7) - arg_lo_ss(T_AXIS,ARG7)
+
+* xaxlo  output x axis
+      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nxout, 1, 1, 1)
+* xaxhi  output x axis
+      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nxout, 1, 1, 1)
+
+* yaxlo  output y axis
+      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nyout, 1, 1, 1)
+* yaxhi  output y axis
+      CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, nyout, 1, 1, 1)
+
+* taxlo  output t axis
+      CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, ntout, 1, 1, 1)
+* taxhi  output t axis
+      CALL ef_set_work_array_dims (id, 6, 1, 1, 1, 1, ntout, 1, 1, 1)
+
+* counts
+      k = 2
+      CALL ef_set_work_array_dims 
+     .    (id, 7, 1, 1, 1, 1, nxout, nyout, k, ntout)
+
+      RETURN
+      END
+
+* In this subroutine we compute the result
+*
+
+      SUBROUTINE SCAT2GRID_STD_XYT_COMPUTE(id, arg_1, arg_2, arg_3, 
+     .     arg_4, arg_5, arg_6, arg_7, result, xaxlo, xaxhi, 
+     .     yaxlo, yaxhi, taxlo, taxhi, counts)
+
+*  arg_1  xpts  \
+*  arg_2  ypts  / Scattered x,y,t triples to be gridded.
+*  arg_3  tpts /
+*  arg_4  fpts /
+*  arg_5  xaxis of new grid   
+*  arg_6  yaxis of new grid 
+*  arg_7  taxis of new grid
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
+     .     mem1lot:mem1hit)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
+     .     mem2lot:mem2hit)
+      REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz, 
+     .     mem3lot:mem3hit)
+      REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz, 
+     .     mem4lot:mem4hit)
+      REAL arg_5(mem5lox:mem5hix, mem5loy:mem5hiy, mem5loz:mem5hiz,
+     .     mem5lot:mem5hit)
+      REAL arg_6(mem6lox:mem6hix, mem6loy:mem6hiy, mem6loz:mem6hiz,
+     .     mem6lot:mem6hit)
+      REAL arg_7(mem7lox:mem7hix, mem7loy:mem7hiy, mem7loz:mem7hiz,
+     .     mem7lot:mem7hit)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .     memresloz:memreshiz, memreslot:memreshit)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable's axes. 
+
+      INTEGER res_lo_ss(4), res_hi_ss(4), res_incr(4)
+      INTEGER arg_lo_ss(4,EF_MAX_ARGS), arg_hi_ss(4,EF_MAX_ARGS),
+     .     arg_incr(4,EF_MAX_ARGS)
+
+
+************************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+*  Dimension the work arrays
+
+      REAL*8 xaxlo(wrk1lox:wrk1hix)
+      REAL*8 xaxhi(wrk2lox:wrk2hix)
+      REAL*8 yaxlo(wrk3lox:wrk3hix)
+      REAL*8 yaxhi(wrk4lox:wrk4hix)
+      REAL*8 taxlo(wrk5lox:wrk5hix)
+      REAL*8 taxhi(wrk6lox:wrk6hix)
+      REAL counts(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+     .              wrk7loz:wrk7hiz, wrk7lot:wrk7hit) 
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, i2, j1, k1, l1, i1n, i2n
+      INTEGER i5, i5n, j6, j6n, l7, l7n
+
+      INTEGER nxpts, nypts, ntpts, nscat
+      INTEGER nx, ny, nt
+
+      REAL x1, y1, xf, yf, tol, diff
+      REAL xx, yy, tt, ff, c, fac
+
+      CHARACTER*250 errtxt
+
+*  variables for checking axis characteristics (modulo axes)
+
+      CHARACTER ax_name(5)*16, ax_units(5)*16
+      LOGICAL backward(5), modulox(5), regular(5)
+
+      CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+*  Check to see if output axes are modulo
+
+      CALL ef_get_axis_info (id, 5, ax_name, ax_units, backward, 
+     .                       modulox, regular)
+
+*  Find number of points in scattered input points.  1-D arrays defining the 
+*  scattered data points may lie on the X, Y, Z, or T axis of the input arguments.
+
+      nxpts = 0
+      nypts = 0
+      ntpts = 0
+
+      DO 110 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG1) .GE. 1) THEN
+            i1 = arg_lo_ss(m,ARG1)
+            i1n = arg_hi_ss(m,ARG1)
+            if (i1n-i1 .NE. 0) nxpts = 1 + (i1n - i1)
+         ENDIF
+ 110  CONTINUE
+
+      DO 120 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG2) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG2)
+            i2n = arg_hi_ss(m,ARG2)
+            if (i2n-i2 .NE. 0) nypts = 1 + (i2n - i2)
+         ENDIF
+ 120  CONTINUE
+
+      DO 130 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG3) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG3)
+            i2n = arg_hi_ss(m,ARG3)
+            if (i2n-i2 .NE. 0) ntpts = 1 + (i2n - i2)
+         ENDIF
+130   CONTINUE
+
+      IF (nxpts .NE. nypts .OR. nxpts .EQ. 0) GOTO 900
+      IF (nxpts .NE. ntpts) GOTO 900
+      nscat = nxpts
+
+*  Compute number of points in output axes.
+
+      i5 = arg_lo_ss(X_AXIS,ARG5)
+      i5n = arg_hi_ss(X_AXIS,ARG5)
+
+      j6 = arg_lo_ss(Y_AXIS,ARG6)
+      j6n = arg_hi_ss(Y_AXIS,ARG6)
+
+      l7 = arg_lo_ss(T_AXIS,ARG7)
+      l7n = arg_hi_ss(T_AXIS,ARG7)
+
+      nx = 1 + (i5n - i5)
+      ny = 1 + (j6n - j6)
+      nt = 1 + (l7n - l7)
+
+*  Check that xax is a X axis and yax a Y axis and tax a T axis
+
+      IF (i5 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Fifth argument must be an X axis'
+         GO TO 999
+      ENDIF
+      IF (j6 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Sixth argument must be a Y axis'
+         GO TO 999
+      ENDIF
+      IF (l7 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Seventh argument must be a T axis'
+         GO TO 999
+      ENDIF
+
+C  Get coordinates of output axes.
+
+      CALL EF_GET_BOX_LIMITS(id, ARG5, X_AXIS,
+     .   arg_lo_ss(X_AXIS, ARG5), arg_hi_ss(X_AXIS, ARG5), xaxlo, xaxhi)
+
+      CALL EF_GET_BOX_LIMITS(id, ARG6, Y_AXIS,
+     .   arg_lo_ss(Y_AXIS, ARG6), arg_hi_ss(Y_AXIS, ARG6), yaxlo, yaxhi)
+
+      CALL EF_GET_BOX_LIMITS(id, ARG7, T_AXIS,
+     .   arg_lo_ss(T_AXIS, ARG7), arg_hi_ss(T_AXIS, ARG7), taxlo, taxhi)
+ 
+*  Compute result
+
+*  Initialize result.
+
+        k = res_lo_ss(Z_AXIS)
+        DO l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+           DO j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+              DO i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+                 result(i,j,k,l) = 0.0
+              ENDDO
+           ENDDO
+        ENDDO
+
+*  Initialize counts.
+
+        DO l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+           DO j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+              DO i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+                 counts(i,j,1,L) = 0.0
+                 counts(i,j,2,L) = 0.0
+              ENDDO
+           ENDDO
+        ENDDO
+
+*  Loop over x,y,t, placing the function values in the appropriate slots
+*  in the grid. xpts and ypts may be on the X,Y,Z or T axis of ARG1 
+*  and ARG2, sending them to a subroutine collapses the extra dimensions so the
+*  value can be found.
+
+        DO 300 n = 1, nscat
+
+           CALL pickout4 (arg_1, arg_2, arg_3, arg_4, 
+     .                         n, xx, yy, tt, ff)
+
+*  If output X axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+
+           IF  (modulox(1) .AND. xx.NE.bad_flag(ARG1))
+     .         CALL modscatminmax (xaxlo(1), xaxhi(nx), 1, xx)
+
+*  Put fcn into result variable.
+
+           k = res_lo_ss(Z_AXIS)
+
+           IF (ff .NE. bad_flag(ARG4)) THEN
+
+           l1 = 1
+           DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+              IF ( tt .GE. taxlo(l1) .AND. tt .LT. taxhi(l1) ) THEN
+
+           j1 = 1
+           DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+              IF ( yy .GE. yaxlo(j1) .AND. yy .LT. yaxhi(j1) ) THEN
+
+           i1 = 1
+           DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+              IF ( xx .GE. xaxlo(i1) .AND. xx .LT. xaxhi(i1) ) THEN
+
+                 result(i,j,k,L) = result(i,j,k,L) + ff
+                 counts(i,j,1,L) = counts(i,j,1,L) + 1.0 
+              ENDIF
+
+           i1 = i1 + 1
+ 100       CONTINUE
+
+           ENDIF
+           j1 = j1 + 1
+ 200       CONTINUE
+
+           ENDIF
+           l1 = l1 + 1
+ 400       CONTINUE
+
+           ENDIF  ! ff not bad
+
+300     CONTINUE
+
+* Compute average in each bin.
+
+      i1 = 1
+      DO 620 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         j1 = 1
+         DO 610 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+            l1 = 1
+            DO 600 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+               IF( counts(i,j,1,L) .GT. 0. ) THEN
+                  result(i,j,k,l) = result(i,j,k,l)/counts(i,j,1,L)
+               ELSE
+                  result(i,j,k,l) = bad_flag_result
+               ENDIF
+
+600         CONTINUE
+            j1 = j1 + 1
+610      CONTINUE
+         i1 = i1 + 1
+620   CONTINUE
+
+* Compute std in each bin.
+
+
+
+*  Loop over x,y,t, accumulating square of the function values minus bin 
+*  mean in the appropriate slots in the grid.
+
+         DO 800 n = 1, nscat
+
+            CALL pickout4 (arg_1, arg_2, arg_3, arg_4, 
+     .                         n, xx, yy, tt, ff)
+
+*  If output X axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+
+            IF  (modulox(1) .AND. xx.NE.bad_flag(ARG1))
+     .         CALL modscatminmax (xaxlo(1), xaxhi(nx), 1, xx)
+
+*  Accumulate obs-mean in cells; using counts[k=2]
+
+	 
+*  Put fcn into result variable.
+
+            k = res_lo_ss(Z_AXIS)
+
+            IF (ff .NE. bad_flag(ARG4)) THEN
+
+            l1 = 1
+            DO 1400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+               IF ( tt .GE. taxlo(l1) .AND. tt .LT. taxhi(l1) ) THEN
+
+            j1 = 1
+            DO 1200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+               IF ( yy .GE. yaxlo(j1) .AND. yy .LT. yaxhi(j1) ) THEN
+
+            i1 = 1
+            DO 1100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+               IF ( xx .GE. xaxlo(i1) .AND. xx .LT. xaxhi(i1)  .AND.
+     .              result(i,j,k,l) .NE. bad_flag_result) THEN
+                  diff = ff - result(i,j,k,l)
+                  counts(i,j,2,L) = counts(i,j,2,L) + diff*diff
+               ENDIF
+
+            i1 = i1 + 1
+ 1100       CONTINUE
+
+            ENDIF
+            j1 = j1 + 1
+ 1200       CONTINUE
+
+            ENDIF
+            l1 = l1 + 1
+ 1400       CONTINUE
+
+            ENDIF  ! ff not bad
+
+800   CONTINUE
+
+
+* Compute std in each bin.
+
+      i1 = 1
+      DO 830 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         j1 = 1
+         DO 820 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+            l1 = 1
+            DO 810 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+               IF( counts(i,j,1,L) .GT. 0. ) THEN
+	          c = counts(i,j,1,L)
+	          fac = c/(c-1)
+                  result(i,j,k,l) = fac*SQRT(counts(i,j,2,L)/c)
+               ELSE
+                  result(i,j,k,l) = bad_flag_result
+               ENDIF
+
+810         CONTINUE
+            j1 = j1 + 1
+820      CONTINUE
+         i1 = i1 + 1
+830   CONTINUE
+
+
+      RETURN
+
+900   CONTINUE
+
+      IF (nxpts .NE. nypts) THEN
+         WRITE (errtxt,20) nxpts, nypts
+      ELSE IF (nxpts .EQ. 0) THEN
+         WRITE (errtxt, 30)
+      ENDIF
+ 20   FORMAT ('Input scattered x, y have different # of points', 2I8)
+ 30   FORMAT ('No data in scattered x, y points')
+      GOTO 999 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN
+      END
+
diff --git a/fer/efi/test_opendap.F b/fer/efi/test_opendap.F
index 9df1ff6..1b69e62 100644
--- a/fer/efi/test_opendap.F
+++ b/fer/efi/test_opendap.F
@@ -196,22 +196,14 @@
 *                                                                     |
 *                                                                     V
 
-#ifdef usingDODSf2cUnderscore 
-      INTEGER NF_OPEN_
-      CHARACTER*1024 NF_STRERROR_
-#else
-      INTEGER NF_OPEN
-      CHARACTER*1024 NF_STRERROR
-#endif 
-      EXTERNAL NCCLOS
+      include 'netcdf.inc'
+#include "netcdf_declareUnderscore.inc"
 
       INTEGER i, j, k, l, m, n
       INTEGER i1, j1, k1, l1, m1, n1
       INTEGER istatus, slen, cdfid
       CHARACTER*2048 filename
       CHARACTER*1024 errbuff
-      INTEGER nf_nowrite
-      PARAMETER (nf_nowrite = 0)
 
       CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
@@ -239,14 +231,14 @@
            istatus = NF_OPEN_(filename, NF_NOWRITE, cdfid) 
            IF ( istatus .NE. 0 ) errbuff = NF_STRERROR_(istatus)
 * close the netCDF file
-           IF ( istatus .EQ. 0 ) CALL NCCLOS(cdfid, istatus)
+           IF ( istatus .EQ. 0 ) istatus = NF_CLOSE_(cdfid)
 
 #else
 
            istatus = NF_OPEN(filename, NF_NOWRITE, cdfid) 
            IF ( istatus .NE. 0 ) errbuff = NF_STRERROR(istatus)
 * close the netCDF file
-           IF ( istatus .EQ. 0 ) CALL NCCLOS(cdfid, istatus)
+           IF ( istatus .EQ. 0 ) istatus = NF_CLOSE(cdfid)
 
 #endif 
 
diff --git a/fer/efi/tracks2grid_mask_ave_xyt.F b/fer/efi/tracks2grid_mask_ave_xyt.F
new file mode 100644
index 0000000..714543c
--- /dev/null
+++ b/fer/efi/tracks2grid_mask_ave_xyt.F
@@ -0,0 +1,685 @@
+*
+*  tracks2grid_mask_ave_xyt.F
+*
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+* Ansley Manke
+* June 2009  from scatgrid_nobs_xyt
+*
+* 9/ 3/2015 Fix LAS/SOCAT ticket 1720, missingness patterns in cruise-weighted 
+*           vs unweighted gridded fields.
+* 1/27/2016 Apply modulo operation to scattered longitudes or time if the output
+*           axis is a modulo axis.
+*
+* The input data points are not a simple scatter.  They are cruise tracks 
+* strung one after another .  (Each track will be a contiguous block of points 
+* in the input data arrays. )  And the subtlety is that each cruise needs to 
+* receive the same weight when determining the average for a cell, rather than 
+* each individual data point.  Which means effectively that you need to have 
+* two averaging processes .  You need to have a buffer (the individual cruise 
+* buffer) that is the size and shape of the output grid in which you average 
+* each individual cruise.  And then when the final point of each cruise from 
+* the input data is encountered, you need to add (average) the points from the 
+* individual cruise buffer into the output buffer, re-zeroing the individual 
+* cruise buffer as you do so, so it is ready to average the next cruise. 
+*
+*
+* In this subroutine we provide information about
+* the function.  The user configurable information 
+* consists of the following:
+*
+* descr              Text description of the function
+*
+* num_args           Required number of arguments
+*
+* axis_inheritance   Type of axis for the result
+*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+*                       CUSTOM          - user defined axis
+*                       IMPLIED_BY_ARGS - same axis as the incoming argument
+*                       NORMAL          - the result is normal to this axis
+*                       ABSTRACT        - an axis which only has index values
+*
+* piecemeal_ok       For memory optimization:
+*                       axes where calculation may be performed piecemeal
+*                       ( YES, NO )
+* 
+*
+* For each argument we provide the following information:
+*
+* name               Text name for an argument
+*
+* unit               Text units for an argument
+*
+* desc               Text description of an argument
+*
+* axis_influence     Are this argument's axes the same as the result grid?
+*                       ( YES, NO )
+*
+* axis_extend       How much does Ferret need to extend arg limits relative to result 
+*
+
+
+      SUBROUTINE  tracks2grid_mask_ave_xyt_init(id)
+
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+************************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CHARACTER*126 buff
+      WRITE (buff, 10)
+   10 FORMAT ('Average by cruise, when gridding scattered ',
+     .        'data to XYT grid where output grid is masked.')
+      CALL ef_set_desc(id, buff)
+
+      CALL ef_set_num_args(id, 9)
+      CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS,
+     .        IMPLIED_BY_ARGS, NORMAL, IMPLIED_BY_ARGS)
+
+      CALL ef_set_num_work_arrays(id, 8)
+
+* Output grid is determined by arguments 4, 5, 6, the result's x, y, t axes. 
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'Variable at scattered input XYT. Enter a scalar to just count Obs.')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'XPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'X coordinates of scattered input triples')
+
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'YPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'Y coordinates of scattered input triples')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 4
+      CALL ef_set_arg_name(id, arg, 'TPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'T coordinates of scattered input triples')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 5
+      CALL ef_set_arg_name(id, arg, 'ICRUISE')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'Cruise ID at scattered input locations')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 6
+      CALL ef_set_arg_name(id, arg, 'XAXPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     . 'X axis coordinates of the output grid, with same units as xpts')
+      CALL ef_set_axis_influence(id, arg, YES, NO, NO, NO)
+
+      arg = 7
+      CALL ef_set_arg_name(id, arg, 'YAXPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     . 'Y axis coordinates of the output grid, with same units as ypts')
+      CALL ef_set_axis_influence(id, arg, NO, YES, NO, NO)
+
+      arg = 8
+      CALL ef_set_arg_name(id, arg, 'TAXPTS')
+      WRITE (buff, 20)
+   20 FORMAT ('T axis coordinates, of the output grid, with same ',
+     .       'units and origin as tpts')
+      CALL ef_set_arg_desc(id, arg, buff)
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, YES)
+
+      arg = 9
+      CALL ef_set_arg_name(id, arg, 'MASK')
+      CALL ef_set_arg_desc(id, arg,  
+     .                   'XY mask on the output grid 1=valid, 0=ignore')
+      CALL ef_set_axis_influence(id, arg, YES, YES, NO, NO)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+************************************************************************
+
+      RETURN 
+      END
+*
+* In this subroutine we request an amount of storage to be supplied
+* by Ferret and passed as an additional argument.
+*
+      SUBROUTINE tracks2grid_mask_ave_xyt_work_size(id)
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+* 
+* Set the work arrays,  X/Y/Z/T dimensions
+*
+* ef_set_work_array_dims(id,array #,xlo,ylo,zlo,tlo,xhi,yhi,zhi,thi)
+*
+      INTEGER nxout, nyout, ntout, nx2, ny2, nt2
+      INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
+     .     arg_incr(4,1:EF_MAX_ARGS)
+
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nxout = 1 + arg_hi_ss(X_AXIS,ARG6) - arg_lo_ss(X_AXIS,ARG6)
+      nyout = 1 + arg_hi_ss(Y_AXIS,ARG7) - arg_lo_ss(Y_AXIS,ARG7)
+      ntout = 1 + arg_hi_ss(T_AXIS,ARG8) - arg_lo_ss(T_AXIS,ARG8)
+
+* xaxlo  output x axis
+      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nxout, 1, 1, 1)
+* xaxhi  output x axis
+      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nxout, 1, 1, 1)
+
+* yaxlo  output y axis
+      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nyout, 1, 1, 1)
+* yaxhi  output y axis
+      CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, nyout, 1, 1, 1)
+
+* taxlo  output t axis
+      CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, ntout, 1, 1, 1)
+* taxhi  output t axis
+      CALL ef_set_work_array_dims (id, 6, 1, 1, 1, 1, ntout, 1, 1, 1)
+
+* obs_cruise  work array - sum and counts of observations per cruise
+* x,y,t direction: output grid
+* z direction: 1..2
+      CALL ef_set_work_array_dims (id, 7, 1, 1, 1, 1, 
+     .                             nxout, nyout, 2, ntout)
+
+* obs  work array - work array - sum and counts of observations
+* x,y,t direction: output grid
+* z direction: 1..2
+      CALL ef_set_work_array_dims (id, 8, 1, 1, 1, 1, 
+     .                             nxout, nyout, 2, ntout)
+
+      RETURN
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+
+      SUBROUTINE tracks2grid_mask_ave_xyt_compute(id, arg_1, arg_2, arg_3, 
+     .     arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, result, 
+     .     xaxlo, xaxhi, yaxlo, yaxhi, taxlo, taxhi, obs_cruise, obs)
+
+*  arg_1  var
+*  arg_2  xpts  \
+*  arg_3  ypts   | Scattered x,y triples to be gridded.
+*  arg_4  tpts  / 
+*  arg_5  icruise
+*
+*  arg_6  xaxis of new grid   
+*  arg_7  yaxis of new grid
+*  arg_8  taxis of new grid
+*  arg_9  xy mask for output grid
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, 
+     .     mem1loz:mem1hiz, mem1lot:mem1hit)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, 
+     .     mem2loz:mem2hiz, mem2lot:mem2hit)
+      REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, 
+     .     mem3loz:mem3hiz, mem3lot:mem3hit)
+      REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, 
+     .     mem4loz:mem4hiz, mem4lot:mem4hit)
+      REAL arg_5(mem5lox:mem5hix, mem5loy:mem5hiy, 
+     .     mem5loz:mem5hiz, mem5lot:mem5hit)
+      REAL arg_6(mem6lox:mem6hix, mem6loy:mem6hiy, 
+     .     mem6loz:mem6hiz, mem6lot:mem6hit)
+      REAL arg_7(mem7lox:mem7hix, mem7loy:mem7hiy, 
+     .     mem7loz:mem7hiz, mem7lot:mem7hit)
+      REAL arg_8(mem8lox:mem8hix, mem8loy:mem8hiy, 
+     .     mem8loz:mem8hiz, mem8lot:mem8hit)
+      REAL arg_9(mem9lox:mem9hix, mem9loy:mem9hiy, 
+     .     mem9loz:mem9hiz, mem9lot:mem9hit)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .     memresloz:memreshiz, memreslot:memreshit)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable's axes. 
+
+      INTEGER res_lo_ss(4), res_hi_ss(4), res_incr(4)
+      INTEGER arg_lo_ss(4,EF_MAX_ARGS), arg_hi_ss(4,EF_MAX_ARGS),
+     .     arg_incr(4,EF_MAX_ARGS)
+
+
+************************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, i2, j1, k1, l1, k2
+      INTEGER i6,j7,L8,i6n,j7n,L8n
+
+      INTEGER nxpts, npts
+      INTEGER nx, ny, nt
+      INTEGER i1n, i2n
+      INTEGER obs_only, ncc, nscat
+
+      REAL x1, y1, t1, icruise, ncruise, xf, yf, tf
+      REAL xx, yy, tt, vv
+
+*  variables for checking axis characteristics (modulo axes)
+      CHARACTER ax_name(6)*16, ax_units(6)*16
+      LOGICAL backward(6), mdulo(6), regular(6)
+      LOGICAL modulox, modulot
+      REAL*8 modxlen, modtlen
+
+*  Dimension the work arrays
+
+      REAL*8 xaxlo(wrk1lox:wrk1hix)
+      REAL*8 xaxhi(wrk2lox:wrk2hix)
+      REAL*8 yaxlo(wrk3lox:wrk3hix)
+      REAL*8 yaxhi(wrk4lox:wrk4hix)
+      REAL*8 taxlo(wrk5lox:wrk5hix)
+      REAL*8 taxhi(wrk6lox:wrk6hix)
+
+      REAL obs_cruise(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+     .               wrk7loz:wrk7hiz, wrk7lot:wrk7hit)
+      REAL obs(wrk8lox:wrk8hix, wrk8loy:wrk8hiy,
+     .               wrk8loz:wrk8hiz, wrk8lot:wrk8hit)
+
+      CHARACTER*250 errtxt
+
+      REAL*8 dx, dy, dt, xxbeg, xxend, yybeg, yyend
+      REAL*8 xax1,xaxf, yax1,yaxf, tax1,taxf
+      INTEGER indx(4,2)
+
+      CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+
+*  Check to see if the output X-axis is modulo (does not need to be regular)
+      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
+     .                         backward, mdulo, regular)
+      modulox = mdulo(X_AXIS)
+      IF ( modulox ) THEN
+         CALL ef_get_axis_modulo_len(id, ARG6, X_AXIS, modxlen)
+      ENDIF
+
+*  Check to see if the output T-axis is modulo (does not need to be regular)
+      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
+     .                         backward, mdulo, regular)
+      modulot = mdulo(T_AXIS)
+      IF ( modulot ) THEN
+         CALL ef_get_axis_modulo_len(id, ARG8, T_AXIS, modtlen)
+      ENDIF
+
+      obs_only = 0	! 0 = var 1 is a variable to average.
+                        ! 1 = Compute a count of cruises with an obs in the grid cells
+
+*  Find number of points in scattered input points.  1-D arrays defining the 
+*  scattered data points may lie on the X, Y, Z, or T axis of the input arguments.
+
+      nxpts = 0
+
+      DO 100 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG2) .GE. 1) THEN
+            i1 = arg_lo_ss(m,ARG2)
+            i1n = arg_hi_ss(m,ARG2)
+            if (i1n-i1 .NE. 0) nxpts = 1 + (i1n - i1)
+            IF (nxpts .EQ. 0) GOTO 900
+         ENDIF
+ 100  CONTINUE
+
+      npts = 1
+      DO 110 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG1) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG1)
+            i2n = arg_hi_ss(m,ARG1)
+            npts = 1 + (i2n - i2)
+            IF ((npts.NE.1) .AND. (npts.NE.nxpts)) GOTO 900
+         ENDIF
+ 110  CONTINUE
+      IF (npts .EQ. 1) obs_only = 1  ! just count up the obs
+
+      DO 120 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG3) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG3)
+            i2n = arg_hi_ss(m,ARG3)
+            npts = 1 + (i2n - i2)
+            IF (npts .NE. nxpts) GOTO 900
+         ENDIF
+ 120  CONTINUE
+
+      DO 130 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG4) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG4)
+            i2n = arg_hi_ss(m,ARG4)
+            npts = 1 + (i2n - i2)
+            IF (npts .NE. nxpts) GOTO 900
+         ENDIF
+ 130  CONTINUE
+
+      DO 140 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG5) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG5)
+            i2n = arg_hi_ss(m,ARG5)
+            npts = 1 + (i2n - i2)
+            IF (npts .NE. nxpts) GOTO 900
+         ENDIF
+ 140  CONTINUE
+
+      nscat = nxpts
+
+*  Compute number of points in output axes.
+
+      i6 = ef_unspecified_int4
+      j7 = ef_unspecified_int4
+      L8 = ef_unspecified_int4
+
+      i6 = arg_lo_ss(X_AXIS,ARG6)
+      i6n = arg_hi_ss(X_AXIS,ARG6)
+
+      j7 = arg_lo_ss(Y_AXIS,ARG7)
+      j7n = arg_hi_ss(Y_AXIS,ARG7)
+
+      L8 = arg_lo_ss(T_AXIS,ARG8)
+      L8n = arg_hi_ss(T_AXIS,ARG8)
+
+      nx = 1 + (i6n - i6)
+      ny = 1 + (j7n - j7)
+      nt = 1 + (L8n - L8)
+
+*  Check that xax is a X axis and yax a Y axis
+
+      IF (i6 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Sixth argument must be a X axis'
+         GO TO 999
+      ENDIF
+      IF (j7 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Seventh argument must be a Y axis'
+         GO TO 999
+      ENDIF
+      IF (L8 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Eighth argument must be a T axis'
+         GO TO 999
+      ENDIF
+
+C  Get coordinates of output axes.
+
+      CALL EF_GET_BOX_LIMITS(id, ARG6, X_AXIS,
+     .   arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xaxlo, xaxhi)
+
+      CALL EF_GET_BOX_LIMITS(id, ARG7, Y_AXIS,
+     .   arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yaxlo, yaxhi)
+
+      CALL EF_GET_BOX_LIMITS(id, ARG8, T_AXIS,
+     .   arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), taxlo, taxhi)
+
+*  Get first coordinates of output axes.
+
+      call ef_get_coordinates(id, ARG6, X_AXIS, 
+     .   arg_lo_ss(X_AXIS, ARG6), arg_lo_ss(X_AXIS, ARG6), xax1)
+      call ef_get_coordinates(id, ARG7, X_AXIS, 
+     .   arg_lo_ss(Y_AXIS, ARG7), arg_lo_ss(Y_AXIS, ARG7), yax1)
+      x1 = xax1
+      y1 = yax1
+
+*  Compute result
+
+*  Initialize counts.
+
+      k2 = 2
+      IF (obs_only .EQ. 1) k2 = 1
+
+      DO L = 1, nt
+      DO k = 1, k2
+      DO j = 1, ny
+      DO i = 1, nx
+         obs(i,j,k,L) = 0.
+      ENDDO
+      ENDDO
+      ENDDO
+      ENDDO
+
+      DO L = 1, nt
+      DO k = 1, k2
+      DO j = 1, ny
+      DO i = 1, nx
+         obs_cruise(i,j,k,L) = 0.
+      ENDDO
+      ENDDO
+      ENDDO
+      ENDDO
+
+*  Loop over x and y, compute the number of observations for the gaussian-weighted 
+*  mapping onto the grid.  Lat and longitude may be on the X,Y,Z or T axis of ARG1 
+*  and ARG2, sending them to a subroutine collapses the extra dimensions so the
+*  value can be found.
+
+      n = 1
+      CALL pickoutxytcv (obs_only, arg_1, arg_2, arg_3, arg_4, arg_5,
+     .           n, vv, xx, yy, tt, ncc)
+      icruise = ncc
+
+*  If output axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+         IF ( modulox ) THEN
+            CALL modscat(xaxlo(1), xaxhi(nx), modxlen, 1, xx)
+         ENDIF
+         IF ( modulot ) THEN
+            CALL modscat(taxlo(1), taxhi(nt), modtlen, 1, tt)
+         ENDIF
+
+
+* For each cruise keep track of the index range it spans in the result grid
+* Then at the end of the cruise need only to process that subset of the grid.
+      indx(1,1) = nx
+      indx(1,2) = 1
+      indx(2,1) = ny
+      indx(2,2) = 1
+      indx(4,1) = nt
+      indx(4,2) = 1
+      
+      DO 300 n = 1, nscat
+
+         CALL pickoutxytcv (obs_only, arg_1, arg_2, arg_3, arg_4, arg_5,
+     .           n, vv, xx, yy, tt, ncc)
+         IF (vv .EQ. bad_flag(ARG1) .OR. xx .EQ. bad_flag(ARG2) .OR. 
+     .          yy .EQ. bad_flag(ARG3) .OR. tt .EQ. bad_flag(ARG4) ) GOTO 300
+     
+
+
+*  If output axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+         IF ( modulox ) THEN
+            CALL modscat(xaxlo(1), xaxhi(nx), modxlen, 1, xx)
+         ENDIF
+         IF ( modulot ) THEN
+            CALL modscat(taxlo(1), taxhi(nt), modtlen, 1, tt)
+         ENDIF
+
+
+	 if (xx.LT.xaxlo(1) .OR. xx.GT.xaxhi(nx)) GOTO 300
+	 if (yy.LT.yaxlo(1) .OR. yy.GT.yaxhi(ny)) GOTO 300
+	 if (tt.LT.taxlo(1) .OR. tt.GT.taxhi(nt)) GOTO 300
+
+         IF (ncc .NE. icruise) THEN
+	    
+            DO L = indx(4,1), indx(4,2)
+            DO j = indx(2,1), indx(2,2)
+            DO i = indx(1,1), indx(1,2)
+	       IF (obs_only .EQ. 0) THEN
+                  IF (obs_cruise(i,j,2,L) .GT. 0.) THEN
+                     obs(i,j,1,L) = obs(i,j,1,L) + 
+     .                 obs_cruise(i,j,1,L)/obs_cruise(i,j,2,L)
+                     obs(i,j,2,L) = obs(i,j,2,L) + 1.
+		  ENDIF
+                  obs_cruise(i,j,1,L) = 0.
+                  obs_cruise(i,j,2,L) = 0.
+               ELSE
+                  IF (obs_cruise(i,j,1,L) .GT. 0.) THEN
+                     obs(i,j,1,L) = obs(i,j,1,L) + 1.
+                  ENDIF
+                  obs_cruise(i,j,1,L) = 0.
+               ENDIF
+            ENDDO
+            ENDDO
+            ENDDO
+
+	    icruise = ncc
+
+* reset indices
+            indx(1,1) = nx
+            indx(1,2) = 1
+            indx(2,1) = ny
+            indx(2,2) = 1
+            indx(4,1) = nt
+            indx(4,2) = 1
+	    
+	 ENDIF
+
+         CALL nobsxytv (obs_only, xx, yy, tt, vv, nx, ny, nt, 
+     .           xaxlo,xaxhi, yaxlo,yaxhi, taxlo,taxhi, indx, obs_cruise)
+
+ 300     CONTINUE
+
+* Get data from the last cruise
+	    
+      DO L = indx(4,1), indx(4,2)
+      DO j = indx(2,1), indx(2,2)
+      DO i = indx(1,1), indx(1,2)
+         IF (obs_only .EQ. 0) THEN
+            IF (obs_cruise(i,j,2,L) .GT. 0.) THEN
+               obs(i,j,1,L) = obs(i,j,1,L) + 
+     .                 obs_cruise(i,j,1,L)/obs_cruise(i,j,2,L)
+               obs(i,j,2,L) = obs(i,j,2,L) + 1.
+            ENDIF
+            obs_cruise(i,j,1,L) = 0.
+            obs_cruise(i,j,2,L) = 0.
+         ELSE
+            IF (obs_cruise(i,j,1,L) .GT. 0.) THEN
+               obs(i,j,1,L) = obs(i,j,1,L) + 1.
+            ENDIF
+               obs_cruise(i,j,1,L) = 0.
+         ENDIF
+      ENDDO
+      ENDDO
+      ENDDO
+
+*  Put gridded fcn into result variable.
+
+      IF (obs_only .EQ. 0) THEN
+         k = res_lo_ss(Z_AXIS)
+         L1 = 1
+         DO 420 L = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+            j1 = 1
+            DO 410 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+               i1 = 1
+               DO 400 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+                  IF (obs(i1,j1,2,L1) .GT. 0.) THEN
+                     result(i,j,k,l) = obs(i1,j1,1,L1)/obs(i1,j1,2,L1)
+		  ELSE
+                     result(i,j,k,l) = bad_flag_result
+		  ENDIF
+
+                  i1 = i1 + 1
+ 400           CONTINUE
+               j1 = j1 + 1
+
+ 410        CONTINUE
+            L1 = L1 + 1
+ 420     CONTINUE
+
+      ELSE
+         k = res_lo_ss(Z_AXIS)
+         L1 = 1
+         DO 520 L = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+            j1 = 1
+            DO 510 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+               i1 = 1
+               DO 500 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+                  result(i,j,k,l) = obs(i1,j1,1,L1)
+                  i1 = i1 + 1
+ 500           CONTINUE
+               j1 = j1 + 1
+
+ 510        CONTINUE
+            l1 = l1 + 1
+ 520     CONTINUE
+
+      ENDIF
+
+      RETURN
+
+900   CONTINUE
+
+      IF (nxpts .NE. npts) THEN
+         WRITE (errtxt,20)
+      ELSE IF (nxpts .EQ. 0) THEN
+         WRITE (errtxt, 30)
+      ENDIF
+      GOTO 999 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+      RETURN
+
+   20 FORMAT 
+     . ('Input scattered var,x,y,t,cruiseID have different # of points')
+
+   30 FORMAT ('No data in scattered x,y,t points')
+
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+************************************************************************
+
+      END
+
+
+
diff --git a/fer/efi/tracks2grid_std_xyt.F b/fer/efi/tracks2grid_std_xyt.F
new file mode 100644
index 0000000..071df60
--- /dev/null
+++ b/fer/efi/tracks2grid_std_xyt.F
@@ -0,0 +1,787 @@
+*
+*  tracks2grid_std_xyt.F
+*
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+* Ansley Manke
+* October 2010 from tracks2grid_ave_xyt.F
+*
+* 9/ 3/2015 Fix LAS/SOCAT ticket 1720, missingness patterns in cruise-weighted 
+*           vs unweighted gridded fields.
+* 1/14/2016 Fix LAS/SOCAT ticket 1721, missing/zero where there should be data in cell
+* 1/27/2016 Apply modulo operation to scattered longitudes or time if the output
+*           axis is a modulo axis.
+*
+* This is the description of the averaging function.
+* The input data points are not a simple scatter.  They are cruise tracks 
+* strung one after another.  (Each track will be a contiguous block of points 
+* in the input data arrays.)  And the subtlety is that each cruise needs to 
+* receive the same weight when determining the average for a cell, rather than 
+* each individual data point.  Which means effectively that you need to have 
+* two averaging processes.  You need to have a buffer (the individual cruise 
+* buffer) that is the size and shape of the output grid in which you average 
+* each individual cruise.  And then when the final point of each cruise from 
+* the input data is encountered, you need to add (average) the points from the 
+* individual cruise buffer into the output buffer, re-zeroing the individual 
+* cruise buffer as you do so, so it is ready to average the next cruise. 
+*
+* This function will return the std for the averages, based on weighted means,
+* for small samples, http://wapedia.mobi/en/Weighted_mean#6. and
+* http://wapedia.mobi/en/Weighted_mean#7.
+* 
+*
+* In this subroutine we provide information about
+* the function.  The user configurable information 
+* consists of the following:
+*
+* descr              Text description of the function
+*
+* num_args           Required number of arguments
+*
+* axis_inheritance   Type of axis for the result
+*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+*                       CUSTOM          - user defined axis
+*                       IMPLIED_BY_ARGS - same axis as the incoming argument
+*                       NORMAL          - the result is normal to this axis
+*                       ABSTRACT        - an axis which only has index values
+*
+* piecemeal_ok       For memory optimization:
+*                       axes where calculation may be performed piecemeal
+*                       ( YES, NO )
+* 
+*
+* For each argument we provide the following information:
+*
+* name               Text name for an argument
+*
+* unit               Text units for an argument
+*
+* desc               Text description of an argument
+*
+* axis_influence     Are this argument's axes the same as the result grid?
+*                       ( YES, NO )
+*
+* axis_extend       How much does Ferret need to extend arg limits relative to result 
+*
+
+
+      SUBROUTINE  tracks2grid_std_xyt_init(id)
+
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+************************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CHARACTER*126 buff
+      WRITE (buff, 10)
+   10 FORMAT ('Weighted std by cruise, when gridding scattered ',
+     .        'data to XYT grid')
+      CALL ef_set_desc(id, buff)
+
+      CALL ef_set_num_args(id, 8)
+      CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS,
+     .        IMPLIED_BY_ARGS, NORMAL, IMPLIED_BY_ARGS)
+
+      CALL ef_set_num_work_arrays(id, 8)
+
+* Output grid is determined by arguments 4, 5, 6, the result's x, y, t axes. 
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VARIABLE')
+      CALL ef_set_arg_desc(id, arg, 'Variable at scattered input XYT.')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'XPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'X coordinates of scattered input triples')
+
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'YPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'Y coordinates of scattered input triples')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 4
+      CALL ef_set_arg_name(id, arg, 'TPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'T coordinates of scattered input triples')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 5
+      CALL ef_set_arg_name(id, arg, 'ICRUISE')
+      CALL ef_set_arg_desc(id, arg, 
+     .     'Cruise ID at scattered input locations')
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+      arg = 6
+      CALL ef_set_arg_name(id, arg, 'XAXPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .                   'X axis coordinates of a regular output grid')
+      CALL ef_set_axis_influence(id, arg, YES, NO, NO, NO)
+
+      arg = 7
+      CALL ef_set_arg_name(id, arg, 'YAXPTS')
+      CALL ef_set_arg_desc(id, arg, 
+     .                   'Y axis coordinates of a regular output grid')
+      CALL ef_set_axis_influence(id, arg, NO, YES, NO, NO)
+
+      arg = 8
+      CALL ef_set_arg_name(id, arg, 'TAXPTS')
+      WRITE (buff, 20)
+   20 FORMAT ('T axis coordinates, of a regular output grid, with same ',
+     .       'units and origin as tpts')
+      CALL ef_set_arg_desc(id, arg, buff)
+      CALL ef_set_axis_influence(id, arg, NO, NO, NO, YES)
+
+
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+************************************************************************
+
+      RETURN 
+      END
+
+*
+* In this subroutine we request an amount of storage to be supplied
+* by Ferret and passed as an additional argument.
+*
+      SUBROUTINE tracks2grid_std_xyt_work_size(id)
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+* 
+* Set the work arrays,  X/Y/Z/T dimensions
+*
+* ef_set_work_array_dims(id,array #,xlo,ylo,zlo,tlo,xhi,yhi,zhi,thi)
+*
+      INTEGER nxout, nyout, ntout, nx2, ny2, nt2
+      INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
+     .     arg_incr(4,1:EF_MAX_ARGS)
+
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nxout = 1 + arg_hi_ss(X_AXIS,ARG6) - arg_lo_ss(X_AXIS,ARG6)
+      nyout = 1 + arg_hi_ss(Y_AXIS,ARG7) - arg_lo_ss(Y_AXIS,ARG7)
+      ntout = 1 + arg_hi_ss(T_AXIS,ARG8) - arg_lo_ss(T_AXIS,ARG8)
+
+* xax  output x axis cell edges
+      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nxout, 2, 1, 1)
+
+* yax  output y axis cell edges
+      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nyout, 2, 1, 1)
+
+* Tax  output t axis cell edges
+      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, ntout, 2, 1, 1)
+
+* obs_cruise  work array - sum and counts of observations per cruise
+* x,y,t direction: output grid
+* z direction: 1..3
+      CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, 
+     .                             nxout, nyout, 3, ntout)
+
+* cell_avg  work array - work array - sum and counts over cruises for cell average
+* x,y,t direction: output grid
+* z direction: 1..2
+      CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, 
+     .                             nxout, nyout, 2, ntout)
+
+* wi_sums k=1, sum of cruiseweight wi = sum of obs in the cells
+* x,y,t direction: output grid
+* z direction: 1
+      CALL ef_set_work_array_dims (id, 6, 1, 1, 1, 1, 
+     .                             nxout, nyout, 1, ntout)
+
+* cruisemean saving individual weighted cruise means. 
+* for computing s^2  sum of wi*(xi - weighted_mean)**2
+* x,y,t direction: output grid
+* z direction: 30 (max cruises per cell?)
+      CALL ef_set_work_array_dims (id, 7, 1, 1, 1, 1, 
+     .                             nxout, nyout, 30, ntout)
+
+* cruiseweight saving individual cruiseweight. 
+* for computing s^2  sum of wi*(xi - weighted_mean)**2
+* x,y,t direction: output grid
+* z direction: 30 (max cruises per cell?)
+      CALL ef_set_work_array_dims (id, 8, 1, 1, 1, 1, 
+     .                             nxout, nyout, 30, ntout)
+
+      RETURN
+      END
+
+*
+* In this subroutine we compute the result
+*
+
+      SUBROUTINE tracks2grid_std_xyt_compute(id, arg_1, arg_2, arg_3, 
+     .     arg_4, arg_5, arg_6, arg_7, arg_8, result, xax, yax, tax, 
+     .     obs_cruise, cell_avg, wi_sums, cruisemean, cruiseweight)
+
+*  arg_1  var
+*  arg_2  xpts  \
+*  arg_3  ypts   | Scattered x,y triples to be gridded.
+*  arg_4  tpts  / 
+*  arg_5  icruise
+*
+*  arg_6  xaxis of new grid   
+*  arg_7  yaxis of new grid
+*  arg_8  taxis of new grid
+
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, 
+     .     mem1loz:mem1hiz, mem1lot:mem1hit)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, 
+     .     mem2loz:mem2hiz, mem2lot:mem2hit)
+      REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, 
+     .     mem3loz:mem3hiz, mem3lot:mem3hit)
+      REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, 
+     .     mem4loz:mem4hiz, mem4lot:mem4hit)
+      REAL arg_5(mem5lox:mem5hix, mem5loy:mem5hiy, 
+     .     mem5loz:mem5hiz, mem5lot:mem5hit)
+      REAL arg_6(mem6lox:mem6hix, mem6loy:mem6hiy, 
+     .     mem6loz:mem6hiz, mem6lot:mem6hit)
+      REAL arg_7(mem7lox:mem7hix, mem7loy:mem7hiy, 
+     .     mem7loz:mem7hiz, mem7lot:mem7hit)
+      REAL arg_8(mem8lox:mem8hix, mem8loy:mem8hiy, 
+     .     mem8loz:mem8hiz, mem8lot:mem8hit)
+      REAL arg_9(mem9lox:mem9hix, mem9loy:mem9hiy, 
+     .     mem9loz:mem9hiz, mem9lot:mem9hit)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .     memresloz:memreshiz, memreslot:memreshit)
+
+* After initialization, the 'res_' arrays contain indexing information 
+* for the result axes.  The 'arg_' arrays will contain the indexing 
+* information for each variable's axes. 
+
+      INTEGER res_lo_ss(4), res_hi_ss(4), res_incr(4)
+      INTEGER arg_lo_ss(4,EF_MAX_ARGS), arg_hi_ss(4,EF_MAX_ARGS),
+     .     arg_incr(4,EF_MAX_ARGS)
+
+
+************************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+      INTEGER i, j, k, l, m, n
+      INTEGER i6,j7,L8,i6n,j7n,L8n
+
+      INTEGER nxpts, npts
+      INTEGER nx, ny, nt
+      INTEGER i1, i2, i1n, i2n
+      INTEGER obs_only, icruise, ncc, nc_cell, nk
+
+      REAL x1, y1, t1, xf, yf, tf
+      REAL xx, yy, tt, vv
+
+*  variables for checking axis characteristics (modulo axes)
+      CHARACTER ax_name(6)*16, ax_units(6)*16
+      LOGICAL backward(6), mdulo(6), regular(6)
+      LOGICAL modulox, modulot
+      REAL*8 modxlen, modtlen
+
+      REAL dx, dy, xxbeg, xxend, yybeg, yyend
+      REAL cellmean, wt_cruise_mean, unwtd_mean,
+     .     wsumsq_ijl, wsumsq, diffsum, wtcruise,
+     .     denom, v1, v2, wtsq
+
+      REAL*8 xax1,xaxf, yax1,yaxf, tax1,taxf
+      INTEGER indx(4,2), icstart, icend, nscat
+
+*  Dimension the work arrays
+
+      REAL*8 xax(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
+     .               wrk1loz:wrk1hiz, wrk1lot:wrk1hit)
+      REAL*8 yax(wrk2lox:wrk2hix, wrk2loy:wrk2hiy,
+     .               wrk2loz:wrk2hiz, wrk2lot:wrk2hit)
+      REAL*8 tax(wrk3lox:wrk3hix, wrk3loy:wrk3hiy,
+     .               wrk3loz:wrk3hiz, wrk3lot:wrk3hit)
+      REAL obs_cruise(wrk4lox:wrk4hix, wrk4loy:wrk4hiy,
+     .               wrk4loz:wrk4hiz, wrk4lot:wrk4hit)
+      REAL cell_avg(wrk5lox:wrk5hix, wrk5loy:wrk5hiy,
+     .               wrk5loz:wrk5hiz, wrk5lot:wrk5hit)
+      REAL wi_sums(wrk6lox:wrk6hix, wrk6loy:wrk6hiy,
+     .               wrk6loz:wrk6hiz, wrk6lot:wrk6hit)
+      REAL cruisemean(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+     .               wrk7loz:wrk7hiz, wrk7lot:wrk7hit)
+      REAL cruiseweight(wrk8lox:wrk8hix, wrk8loy:wrk8hiy,
+     .               wrk8loz:wrk8hiz, wrk8lot:wrk8hit)
+
+      CHARACTER*250 errtxt
+
+      CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+*  Check to see if the output X-axis is modulo (does not need to be regular)
+      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
+     .                         backward, mdulo, regular)
+      modulox = mdulo(X_AXIS)
+      IF ( modulox ) THEN
+         CALL ef_get_axis_modulo_len(id, ARG6, X_AXIS, modxlen)
+      ENDIF
+
+*  Check to see if the output T-axis is modulo (does not need to be regular)
+      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
+     .                         backward, mdulo, regular)
+      modulot = mdulo(T_AXIS)
+      IF ( modulot ) THEN
+         CALL ef_get_axis_modulo_len(id, ARG8, T_AXIS, modtlen)
+      ENDIF
+
+      obs_only = 0	! Compute the std for average of variable (e.g. fco2)
+
+*  Find number of points in scattered input points.  1-D arrays defining the 
+*  scattered data points may lie on the X, Y, Z, or T axis of the input arguments.
+
+      nxpts = 0
+
+      DO 100 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG2) .GE. 1) THEN
+            i1 = arg_lo_ss(m,ARG2)
+            i1n = arg_hi_ss(m,ARG2)
+            if (i1n-i1 .NE. 0) nxpts = 1 + (i1n - i1)
+            IF (nxpts .EQ. 0) GOTO 900
+         ENDIF
+ 100  CONTINUE
+
+      npts = 1
+      DO 110 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG1) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG1)
+            i2n = arg_hi_ss(m,ARG1)
+            npts = 1 + (i2n - i2)
+            IF (npts.NE.nxpts) GOTO 900
+         ENDIF
+ 110  CONTINUE
+
+      DO 120 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG3) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG3)
+            i2n = arg_hi_ss(m,ARG3)
+            npts = 1 + (i2n - i2)
+            IF (npts .NE. nxpts) GOTO 900
+         ENDIF
+ 120  CONTINUE
+
+      DO 130 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG4) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG4)
+            i2n = arg_hi_ss(m,ARG4)
+            npts = 1 + (i2n - i2)
+            IF (npts .NE. nxpts) GOTO 900
+         ENDIF
+ 130  CONTINUE
+
+      DO 140 m = X_AXIS, T_AXIS
+         IF (arg_lo_ss(m,ARG5) .GE. 1) THEN
+            i2 = arg_lo_ss(m,ARG5)
+            i2n = arg_hi_ss(m,ARG5)
+            npts = 1 + (i2n - i2)
+            IF (npts .NE. nxpts) GOTO 900
+         ENDIF
+ 140  CONTINUE
+
+      nscat = nxpts
+
+*  Compute number of points in output axes.
+
+      i6 = ef_unspecified_int4
+      j7 = ef_unspecified_int4
+      L8 = ef_unspecified_int4
+
+      i6 = arg_lo_ss(X_AXIS,ARG6)
+      i6n = arg_hi_ss(X_AXIS,ARG6)
+
+      j7 = arg_lo_ss(Y_AXIS,ARG7)
+      j7n = arg_hi_ss(Y_AXIS,ARG7)
+
+      L8 = arg_lo_ss(T_AXIS,ARG8)
+      L8n = arg_hi_ss(T_AXIS,ARG8)
+
+      nx = 1 + (i6n - i6)
+      ny = 1 + (j7n - j7)
+      nt = 1 + (L8n - L8)
+
+*  Check that xax is a X axis and yax a Y axis
+
+      IF (i6 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Sixth argument must be a X axis'
+         GO TO 999
+      ENDIF
+      IF (j7 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Seventh argument must be a Y axis'
+         GO TO 999
+      ENDIF
+      IF (L8 .EQ. ef_unspecified_int4) THEN
+         WRITE (errtxt, *) 'Eighth argument must be a T axis'
+         GO TO 999
+      ENDIF
+
+C  Get coordinates of output axes.
+
+      CALL EF_GET_BOX_LIMITS(id, ARG6, X_AXIS,
+     .   arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax(1,1,1,1), xax(1,2,1,1))
+
+      CALL EF_GET_BOX_LIMITS(id, ARG7, Y_AXIS,
+     .   arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax(1,1,1,1), yax(1,2,1,1))
+
+      CALL EF_GET_BOX_LIMITS(id, ARG8, T_AXIS,
+     .   arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax(1,1,1,1), tax(1,2,1,1))
+
+*  Get first coordinates of output axes.
+
+      call ef_get_coordinates(id, ARG6, X_AXIS, 
+     .   arg_lo_ss(X_AXIS, ARG6), arg_lo_ss(X_AXIS, ARG6), xax1)
+      call ef_get_coordinates(id, ARG7, X_AXIS, 
+     .   arg_lo_ss(Y_AXIS, ARG7), arg_lo_ss(Y_AXIS, ARG7), yax1)
+      x1 = xax1
+      y1 = yax1
+
+*  Compute result
+
+*  Initialize counts.
+
+      DO L = 1, nt
+      DO k = 1, 2
+      DO j = 1, ny
+      DO i = 1, nx
+         cell_avg(i,j,k,L) = 0.
+      ENDDO
+      ENDDO
+      ENDDO
+      ENDDO
+
+      DO L = 1, nt
+      DO k = 1, 3
+      DO j = 1, ny
+      DO i = 1, nx
+         obs_cruise(i,j,k,L) = 0.
+      ENDDO
+      ENDDO
+      ENDDO
+      ENDDO
+
+      DO L = 1, nt
+      DO k = 1, 1
+      DO j = 1, ny
+      DO i = 1, nx
+         wi_sums(i,j,k,L) = 0.
+      ENDDO
+      ENDDO
+      ENDDO
+      ENDDO
+
+      DO L = 1, nt
+      DO k = 1, wrk7hiz
+      DO j = 1, ny
+      DO i = 1, nx
+         cruisemean(i,j,k,L) = 0.
+      ENDDO
+      ENDDO
+      ENDDO
+      ENDDO
+
+      DO L = 1, nt
+      DO k = 1, wrk7hiz
+      DO j = 1, ny
+      DO i = 1, nx
+         cruiseweight(i,j,k,L) = 0.
+      ENDDO
+      ENDDO
+      ENDDO
+      ENDDO
+
+*  Loop over x and y, compute the number of observations for the gaussian-weighted 
+*  mapping onto the grid.  Lat and longitude may be on the X,Y,Z or T axis of ARG1 
+*  and ARG2, sending them to a subroutine collapses the extra dimensions so the
+*  value can be found.
+
+      n = 1
+      CALL pickoutxytcv (obs_only, arg_1, arg_2, arg_3, arg_4, arg_5,
+     .           n, vv, xx, yy, tt, ncc)
+
+*  If output axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+      IF ( modulox ) THEN
+         CALL modscat(xax(1,1,1,1), xax(nx,2,1,1), modxlen, 1, xx)
+      ENDIF
+      IF ( modulot ) THEN
+         CALL modscat(tax(1,1,1,1), tax(nt,2,1,1), modtlen, 1, tt)
+      ENDIF
+
+      icruise = ncc
+
+* For each cruise keep track of the index range it spans in the result grid
+* Then at the end of the cruise need only to process that subset of the grid.
+      indx(1,1) = nx
+      indx(1,2) = 1
+      indx(2,1) = ny
+      indx(2,2) = 1
+      indx(4,1) = nt
+      indx(4,2) = 1
+
+      icstart = 1
+      DO 300 n = 1, nscat
+
+         CALL pickoutxytcv (obs_only, arg_1, arg_2, arg_3, arg_4, arg_5,
+     .           n, vv, xx, yy, tt, ncc)
+         IF (vv .EQ. bad_flag(ARG1) .OR. xx .EQ. bad_flag(ARG2) .OR. 
+     .          yy .EQ. bad_flag(ARG3) .OR. tt .EQ. bad_flag(ARG4) ) GOTO 300
+
+*  If output axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+         IF ( modulox ) THEN
+            CALL modscat(xax(1,1,1,1), xax(nx,2,1,1), modxlen, 1, xx)
+         ENDIF
+         IF ( modulot ) THEN
+            CALL modscat(tax(1,1,1,1), tax(nt,2,1,1), modtlen, 1, tt)
+         ENDIF
+
+* We have come to the end of a cruise loop over cells represented by the last cruise,
+* summing and counting the observations in the cruise, computing cruiseweight. 
+* cruisemean is weighted cruise mean in cell
+* cruiseweight are variances for cruise mean in cell
+* cell_avg(i,j,1,L) cruise mean averaged over cruises in cell
+* cell_avg(i,j,2,L) is count of cruises in cell
+* wi_sums(i,j,1,L) sum of cruiseweight wi in cell
+
+         IF (ncc .NE. icruise) THEN  
+	    icend = n-1
+
+            DO L = indx(4,1), indx(4,2)
+            DO j = indx(2,1), indx(2,2)
+            DO i = indx(1,1), indx(1,2)
+
+	       IF (obs_cruise(i,j,2,L).GT.0. .AND. obs_cruise(i,j,3,L).NE.0.) THEN
+
+                  wt_cruise_mean = obs_cruise(i,j,1,L)/obs_cruise(i,j,3,L)
+
+                  unwtd_mean = obs_cruise(i,j,1,L) ! nobsxytv_var returns mean already computed
+
+                  cell_avg(i,j,1,L) = cell_avg(i,j,1,L) + wt_cruise_mean
+                  cell_avg(i,j,2,L) = cell_avg(i,j,2,L) + 1.  
+
+		  wi_sums(i,j,1,l) = wi_sums(i,j,1,l) + 1./obs_cruise(i,j,3,L)
+
+		  nc_cell = cell_avg(i,j,2,L)
+		  IF (nc_cell.GT.wrk7hiz) THEN
+                     print *, 'Num_obs in cell at I,J,L = ', i,j,L, 
+     .               ' is', nc_cell
+		     CALL ef_bail_out (id,
+     .      'too many cruises in cell. increase K size of work array 7,8')
+		  ENDIF
+
+		  cruisemean(i,j,nc_cell,l) = unwtd_mean
+		  cruiseweight(i,j,nc_cell,l) = 1./obs_cruise(i,j,3,L)
+
+	       ENDIF
+
+
+            ENDDO
+            ENDDO
+            ENDDO
+
+	    icruise = ncc
+
+            DO L = indx(4,1), indx(4,2)
+            DO j = indx(2,1), indx(2,2)
+            DO i = indx(1,1), indx(1,2)
+	       obs_cruise(i,j,1,L) = 0.
+	       obs_cruise(i,j,2,L) = 0.
+	       obs_cruise(i,j,3,L) = 0.
+            ENDDO
+            ENDDO
+            ENDDO
+
+* reset indices
+            indx(1,1) = nx
+            indx(1,2) = 1
+            indx(2,1) = ny
+            indx(2,2) = 1
+            indx(4,1) = nt
+            indx(4,2) = 1
+
+	 ENDIF
+
+*  Count and add up observations in each cell, in this cruise. 
+     
+         CALL nobsxytv_var (obs_only, xx, yy, tt, vv, nx, ny, nt, 
+     .        xax(1,1,1,1), xax(1,2,1,1), yax(1,1,1,1), yax(1,2,1,1), 
+     .        tax(1,1,1,1), tax(1,2,1,1), indx, obs_cruise)
+
+ 300  CONTINUE
+
+* Get data from the last cruise
+
+      icend = n-1
+
+      DO L = indx(4,1), indx(4,2)
+         DO j = indx(2,1), indx(2,2)
+            DO i = indx(1,1), indx(1,2)
+
+	       IF (obs_cruise(i,j,2,L).GT.0. .AND. obs_cruise(i,j,3,L).NE.0.) THEN
+
+                  wt_cruise_mean = obs_cruise(i,j,1,L)/obs_cruise(i,j,3,L)
+
+                  unwtd_mean = obs_cruise(i,j,1,L) ! nobsxytv_var returns mean already computed
+
+                  cell_avg(i,j,1,L) = cell_avg(i,j,1,L) + wt_cruise_mean
+                  cell_avg(i,j,2,L) = cell_avg(i,j,2,L) + 1.  
+
+		  wi_sums(i,j,1,l) = wi_sums(i,j,1,l) + 1./obs_cruise(i,j,3,L)
+
+		  nc_cell = cell_avg(i,j,2,L)
+		  IF (nc_cell.GT.wrk7hiz) THEN
+                     print *, 'Num_obs in cell at I,J,L = ', i,j,L, 
+     .               ' is', nc_cell
+		     CALL ef_bail_out (id,
+     .      'too many cruises in cell. increase K size of work array 7,8')
+		  ENDIF
+
+		  cruisemean(i,j,nc_cell,l) = unwtd_mean
+		  cruiseweight(i,j,nc_cell,l) = 1./obs_cruise(i,j,3,L)
+
+	       ENDIF
+
+            ENDDO
+         ENDDO
+      ENDDO
+      
+*  Put gridded fcn into result variable.
+* wi_sums(i,j,1,L) sum of cruiseweight wi in cell
+* V1 sum of cruiseweight
+* V2 sum of cruiseweight squared
+* for s^2  wsumsq sum of wi*(xi - weighted_mean)**2
+
+      k = res_lo_ss(Z_AXIS)
+      DO 420 L = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+         DO 410 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+            DO 400 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+               nc_cell = cell_avg(i,j,2,L)
+
+               IF (nc_cell .EQ. 0) THEN
+                   result(i,j,k,l) = bad_flag_result
+               ELSE IF (nc_cell .EQ. 1) THEN
+                   result(i,j,k,l) = 0.
+c               ELSE IF (wi_sums(i,j,1,l).LE.1.e-6) THEN
+c                   result(i,j,k,l) = bad_flag_result
+
+* Compute sum of (cruise-cell-averages - weighted cell mean) squared\
+
+               ELSE IF (nc_cell.GT.1 .AND. wi_sums(i,j,1,l).NE.0.) THEN
+
+                  cellmean = cell_avg(i,j,1,L)/wi_sums(i,j,1,l)
+
+                  wsumsq_ijl = 0.
+                  wsumsq = 0.
+		  v1 = 0.
+                  DO 500, nk = 1, nc_cell
+                      wtcruise = cruiseweight(i,j,nk,L)
+		      unwtd_mean = cruisemean(i,j,nk,L)
+
+		      wtsq = wtcruise*wtcruise
+		      wsumsq = wsumsq + wtsq  
+
+* Sum the squares of difference of unweighted cruise means 
+* minus weighted cell mean
+
+		      diffsum = unwtd_mean - cellmean
+                      wsumsq_ijl = wsumsq_ijl + wtcruise*(diffsum)**2
+
+ 500              CONTINUE
+                  V1 = wi_sums(i,j,1,l)
+                  V2 = wsumsq
+                  denom = V1*V1 - V2
+		  
+c                  IF (ABS(denom).GT.1.e-6) THEN
+                  IF (ABS(denom).NE.0.) THEN
+                     result(i,j,k,l) = SQRT(wsumsq_ijl* V1/denom)
+                  ELSE
+                     result(i,j,k,l) = bad_flag_result
+                  ENDIF
+	       ENDIF
+
+ 400        CONTINUE
+
+ 410     CONTINUE
+ 420  CONTINUE
+
+      RETURN
+
+900   CONTINUE
+
+      IF (nxpts .NE. npts) THEN
+         WRITE (errtxt,20)
+      ELSE IF (nxpts .EQ. 0) THEN
+         WRITE (errtxt, 30)
+      ENDIF
+      GOTO 999 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+      RETURN
+
+   20 FORMAT 
+     . ('Input scattered var,x,y,t,cruiseID have different # of points')
+
+   30 FORMAT ('No data in scattered x,y,t points')
+
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+************************************************************************
+
+      END
diff --git a/fer/efi/unique_str2int.F b/fer/efi/unique_str2int.F
index 81acc90..e8b61c7 100644
--- a/fer/efi/unique_str2int.F
+++ b/fer/efi/unique_str2int.F
@@ -59,7 +59,7 @@
       CHARACTER*100 descrip
 
       WRITE (descrip, 100)
-  100 FORMAT ('Returns an ID number for each unique string',
+  100 FORMAT ('Returns an ID number for each unique string ',
      .        'in the input array of strings (case sensitive)')
       CALL ef_set_desc(id, descrip)
 
diff --git a/fer/fmt/full_uvar_name.F b/fer/fmt/full_uvar_name.F
index 170b8e5..3dce61a 100644
--- a/fer/fmt/full_uvar_name.F
+++ b/fer/fmt/full_uvar_name.F
@@ -48,16 +48,15 @@
 *                  using original upper/lowercase spelling
 * V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
 *                  added to that dataset in the attribute structure
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 * calling argument declarations:
 	INTEGER	uvar
 
 * local variable declarations:
-	
-	LOGICAL coordvar
+
 	INTEGER TM_LENSTR1, len, len2
-	INTEGER dset, varid, vtype, nvdims, outflag, vdims(8), 
-     .		nvatts, status
+	INTEGER dset, varid, status
 
 	include 'tmap_dims.parm'
 	include 'xdset_info.cmn_text'
@@ -81,8 +80,7 @@
 	      CALL CD_GET_VAR_ID (dset, uvar_name_code(uvar), varid, status)
 	   ENDIF
 	   IF (status .EQ. ferr_ok) 
-     .      CALL CD_GET_VAR_INFO (dset, varid, FULL_UVAR_NAME, vtype, 
-     .            nvdims, vdims, nvatts, coordvar, outflag, status)
+     .      CALL CD_GET_ID_VARNAME (dset, varid, FULL_UVAR_NAME, status)
 	ENDIF
 
 	IF (uvar_dset(uvar) .GT. pdset_irrelevant) THEN
diff --git a/fer/fmt/full_uvar_name_xml.F b/fer/fmt/full_uvar_name_xml.F
index a0b64f6..08c3cc2 100644
--- a/fer/fmt/full_uvar_name_xml.F
+++ b/fer/fmt/full_uvar_name_xml.F
@@ -45,16 +45,15 @@
 * V 6.66
 * V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
 *                  using original upper/lowercase spelling
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 
 * calling argument declarations:
 	INTEGER	uvar
 
 * local variable declarations:
-	LOGICAL coordvar
 	INTEGER TM_LENSTR1, len, len2
-	INTEGER dset, varid, vtype, nvdims, outflag, vdims(8), 
-     .		nvatts, status
+	INTEGER dset, varid, status
 
 	include 'tmap_dims.parm'
 	include 'xdset_info.cmn_text'
@@ -74,8 +73,8 @@
 	   dset = pdset_uvars
 	   CALL CD_GET_VAR_ID (dset, uvar_name_code(uvar), varid, status)
 	   IF (status .EQ. ferr_ok) 
-     .      CALL CD_GET_VAR_INFO (dset, varid, FULL_UVAR_NAME_XML, vtype, 
-     .            nvdims, vdims, nvatts, coordvar, outflag, status)
+     .      CALL CD_GET_ID_VARNAME (dset, varid, FULL_UVAR_NAME_XML, status)
+
 	ENDIF
 
 	IF (uvar_dset(uvar) .GT. pdset_irrelevant) THEN
diff --git a/fer/gnl/cdf_list.F b/fer/gnl/cdf_list.F
index 8b6354d..455ee18 100644
--- a/fer/gnl/cdf_list.F
+++ b/fer/gnl/cdf_list.F
@@ -133,7 +133,8 @@
 * V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
 * V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
-#include "netcdf.inc"
+        include 'netcdf.inc'
+#include "netcdf_declareUnderscore.inc"
         include 'tmap_errors.parm'
         include 'cd_lib.parm'
         include 'cdf_tmap.parm'
@@ -1198,7 +1199,11 @@
  500	CONTINUE
 
 * close the file
-        CALL NCCLOS(cdfid, cdfstat)
+#ifdef usingDODSf2cUnderscore 
+        cdfstat = NF_CLOSE_(cdfid)
+#else
+        cdfstat = NF_CLOSE(cdfid)
+#endif
         IF ( cdfstat .NE. NF_NOERR ) CALL TM_ERRMSG
      .     ( cdfstat+pcdferr, status, 'CDF_LIST', unspecified_int4,
      .     no_varid, 'could not close CDF output file: ',
@@ -1241,7 +1246,11 @@
  5800   CALL ERRMSG ( ferr_TMAP_error, final_status, ' ', *5810 )
  5810	nready = ivar - 1
 	IF (.NOT.flushed) GOTO 400 ! yea ... a bit of spagetti code ... 
-	CALL NCCLOS(cdfid, cdfstat)
+#ifdef usingDODSf2cUnderscore 
+        cdfstat = NF_CLOSE_(cdfid)
+#else
+        cdfstat = NF_CLOSE(cdfid)
+#endif
  5990   RETURN
 	END
 
diff --git a/fer/gnl/cdf_list_global_atts.F b/fer/gnl/cdf_list_global_atts.F
index 85009d2..6643676 100644
--- a/fer/gnl/cdf_list_global_atts.F
+++ b/fer/gnl/cdf_list_global_atts.F
@@ -40,6 +40,7 @@
 * V600  4/06 *acm* - additional declarations found by Solaris compiler
 * V600  6/06 *acm* - additional declarations found by Solaris compiler
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 #include "netcdf.inc"
         include 'cd_lib.parm'
@@ -50,10 +51,9 @@
         INTEGER dset, cdfid, status
         
 * internal variable declarations:
-        LOGICAL MATCH_NAME, NC_GET_ATTRIB, coordvar, do_warn, got_it
-        INTEGER TM_LENSTR1, varid, vartype, nvdims, vdims(8), nvatts, 
-     .          all_outflag, iatt, slen, attype, attlen, attoutflag,
-     .          bufflen
+        LOGICAL MATCH_NAME, NC_GET_ATTRIB, do_warn, got_it
+        INTEGER TM_LENSTR1, varid, nvatts, iatt, slen, attype, attlen, 
+     .          attoutflag, bufflen
 	REAL	vals(100)
         CHARACTER*128 varname, attname, aname
         CHARACTER*10240 buff
@@ -65,8 +65,8 @@
 * Get global attributes from dset and if they have been marked for output,
 * write to the file cdfid
 
-        CALL CD_GET_VAR_INFO (dset, varid, varname, vartype, nvdims, 
-     .            vdims, nvatts, coordvar, all_outflag, status) 
+        varname = '.'
+        CALL CD_GET_VAR_NATTS (dset, varid, varname, nvatts, status) 
 
         DO 80 iatt = 1, nvatts
            CALL CD_GET_VAR_ATT_NAME( dset, varid, iatt, attname, status)
diff --git a/fer/gnl/define_ef_aggregate_grid.F b/fer/gnl/define_ef_aggregate_grid.F
index 08fc404..6ec3cce 100644
--- a/fer/gnl/define_ef_aggregate_grid.F
+++ b/fer/gnl/define_ef_aggregate_grid.F
@@ -48,6 +48,7 @@
 * V710 *acm* 10/16 Ticket 2422: variables uvar_grid, uvar_data_type, uvar_aux_cat, 
 *                  uvar_aux_var to be replaced with calls to LIST routines in NCF_Util.c 
 * v71  12/16 *acm* Ticket 2158: working with true monthly time axes.
+* v72   6/17 *acm* Variable type in aggregations should match what is in the member files
 
       IMPLICIT NONE
         include 'tmap_errors.parm'
@@ -81,7 +82,7 @@
      .		gap_size, max_gap_size, l,
      .		axcalt, axlagf, gg, ipt1, ipte, fax,
      .		nv_dummy, igrid_dummy, vtype_dummy, num_indices,
-     .		ef_time2d_dset, ef_time2d_grid, iaxis
+     .		ef_time2d_dset, ef_time2d_grid, iaxis, fvartype
 	REAL*8  TDEST_WORLD, TM_WORLD_AX, fdelta
 
 * Getting info back from the attribute-handling structure
@@ -98,6 +99,12 @@
 	ef_ordered_time2d = .FALSE.
 	ef_time2d_dset = ds_var_setnum(fvar)
 
+* Get the file-variable type
+        slen = TM_LENSTR1(vname)
+	varid = 0
+        CALL CD_GET_VAR_TYPE (ef_time2d_dset, varid, vname(:slen), 
+     .                        fvartype, status)
+
 * the 2D time variable in an E-aggregation of F-aggregations has special needs
 * its grid should not have the agg axis 
 	IF (agg_dim .EQ. E_dim) THEN
@@ -173,11 +180,11 @@
 	   ds_grid_number(nv) = agg_grid
 	ENDIF
 
-* Type should be NCFLOAT or NCCHAR
+* Type should be what is in the original file
 	IF (ds_var_type(nv) .EQ. ptype_string) THEN
 	   type = NCCHAR
 	ELSE
-	   type = NCFLOAT
+	   type = fvartype
 	ENDIF
 
 * Hook the aggregated variable into the linked list structures
@@ -362,7 +369,7 @@
 * ... save the sequence number of this variable, so we can cache it later
 	   it2d = nv
 
-	   type = NCFLOAT
+	   type = NCDOUBLE
 	   nvars = nvars + 1
       
 	   CALL CD_ADD_VAR( agg_dset, tcoordname, nvars, 
diff --git a/fer/gnl/edit_attribute.F b/fer/gnl/edit_attribute.F
index 1659ba7..0da88e9 100644
--- a/fer/gnl/edit_attribute.F
+++ b/fer/gnl/edit_attribute.F
@@ -42,6 +42,7 @@
 * 3/2006 Allow commands equivalent to SET AXIS/modulo/depth/units etc.
 * V600  4/06 *acm* - additional declarations found by Solaris compiler
 * V64  10/09 *acm* longer string length for grid_name
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 	include 'tmap_dims.parm'
 *TMAP_DSET.PARM
@@ -246,7 +247,7 @@
 
 * calling argument declarations:
 
-      LOGICAL att_quiet
+      LOGICAL CD_ISIT_COORDVAR, coordvar, att_quiet
       INTEGER mr, attype_spec, dset, status
       REAL grid_data(mr_lo_ss(mr,1):mr_hi_ss(mr,1),
      .               mr_lo_ss(mr,2):mr_hi_ss(mr,2),
@@ -259,11 +260,10 @@
 * local variable declarations: 
       
       LOGICAL TM_HAS_STRING, 
-     .        valid, do_err, coordvar, have_mods, ez, ncfile
+     .        valid, do_err, have_mods, ez, ncfile
       INTEGER MR_DIM_LEN, TM_LENSTR1, STR_SAME, varid, idim, ndims,
      .        attlen, attype, span, lo(nferdims), hi(nferdims), del(nferdims), slen, vlen, 
-     .        attlen_old, attype_old, attoutflag, vartype, nvdims,
-     .        nvatts, vdims(8), all_outflag, cat, var, tmap_status,
+     .        attlen_old, attype_old, attoutflag, cat, var, tmap_status,
      .        grid, mod_cx, attid
       REAL dummy, bad, scalefac, offset
       CHARACTER GET_STRING_ELEMENT*2048, TM_FMT*2048, attbuff*2048, 
@@ -309,9 +309,7 @@
      .              attname, varid, do_err, status )
       IF (status .NE. ferr_ok) GOTO 5400
 
-      CALL CD_GET_VAR_INFO (dset, varid, varname, vartype, nvdims, 
-     .            vdims, nvatts, coordvar, all_outflag, status)
-
+      coordvar = CD_ISIT_COORDVAR (dset, varid, varname, status)
       IF (coordvar) THEN
 
 * Do not allow user to change the direction of an axis.
diff --git a/fer/gnl/init_ef_aggregate_dset.F b/fer/gnl/init_ef_aggregate_dset.F
index 8133a0a..f8bf618 100644
--- a/fer/gnl/init_ef_aggregate_dset.F
+++ b/fer/gnl/init_ef_aggregate_dset.F
@@ -120,8 +120,7 @@
 * local variable declarations:
 	LOGICAL	OK_AS_AGG_VAR, ITSA_TRUEMONTH_AXIS, match, has_uvars
 	INTEGER	TM_LENSTR, TM_LENSTR1, STR_SAME,
-     .		NCF_ADD_AGG_MEMBER, NCF_GET_AGG_MEMBER_INFO, 
-     .          KNOWN_GRID,
+     .		NCF_ADD_AGG_MEMBER, KNOWN_GRID,
      .		iset, dset1, item, ii, nT, max_str_len,
      .		perm(nferdims), member_sets(nsets+pmaxgaps),
      .		imatch, nv, grid, igrid, idim, ivar, nvars, nuvars, iline, 
diff --git a/fer/gnl/init_memory.F b/fer/gnl/init_memory.F
index b389965..d7a5b81 100644
--- a/fer/gnl/init_memory.F
+++ b/fer/gnl/init_memory.F
@@ -1,4 +1,4 @@
-	SUBROUTINE INIT_MEMORY
+	SUBROUTINE INIT_MEMORY (vmem_size_arg)
 
 *
 *
@@ -54,6 +54,8 @@
 *                 code defining it from this routine)
 * V702: 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 *                - perform initial sanity check
+* V72 : 5/17 *acm* rmem_size comes in as-is; handle it as in xeq_set for a 
+*                  SET MEM/SIZ=
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -63,10 +65,12 @@
 	include 'xprog_state.cmn'
 
 * calling argument declarations:
+	REAL vmem_size_arg
 
 * internal variable declarations
 	INTEGER	bigblk, mv, ws
         INTEGER i1, i2, len
+	INTEGER*8 i8_val
         CHARACTER*30 TM_FMT, sym_name, buff
 
 * LINKS IN MEMORY VARIABLE TABLE
@@ -99,7 +103,14 @@
         ENDDO
 
 * SET MEMORY limit default
-	max_mem_allowed = pmax_mem_default
+* -memsize command-line argument passed in, handle as in xeq_set
+
+	IF (vmem_size_arg .NE. 0.) THEN 
+	   i8_val = (vmem_size_arg*1.0000000001D0) * 1000000  ! int tuncation issues ...
+	   max_mem_allowed = i8_val 
+	ELSE
+	   max_mem_allowed = pmax_mem_default
+	ENDIF
 
 * accounting variables (see xvariables.cmn)
         total_mem = 0
diff --git a/fer/gnl/parse_command.F b/fer/gnl/parse_command.F
index 7ba0db9..4242822 100644
--- a/fer/gnl/parse_command.F
+++ b/fer/gnl/parse_command.F
@@ -138,6 +138,7 @@
 * V697  3/16 Ticket 2376: parsing backslash escapes within repeat loops.
 * V697  3/16  *acm* ticket 2356 scale back change for multiple slash at end of command
 * V71  *acm* 1/17   Change to return 16 digits by default for grave-accent expressions was lost
+* V73   7/17  *acm* ticket 2551 Report an error for unmatched parentheses in a REPEAT loop.
 
 * command, subcommand and qualifiers will be identified by number in
 *	 COMMON/XCOMMAND.  Arguments will be returned as positions in
@@ -942,6 +943,9 @@ cc  Allow zero-length null string in quotes
 	      ENDIF
  850	    CONTINUE
 *   ... no matching left paren ever found (probably a syntax error ...)
+*       It would be better to let the parsing of each command catch and report
+*       errors, but ticket 2551 shows a failure in that. Make it an error here.
+          GOTO 5080
 	  ENDIF
 	ENDIF
  890	CONTINUE
@@ -1097,5 +1101,8 @@ cc  Allow zero-length null string in quotes
 
  5070	CALL ERRMSG
      .			( ferr_invalid_command, status, 'REPEAT what ?', *5000 )
+ 5080	CALL ERRMSG
+     .			( ferr_invalid_command, status, 
+     .		'Mismatched parentheses within REPEAT loop ', *5000 )
 	END
 
diff --git a/fer/gnl/redefine_ax_att.F b/fer/gnl/redefine_ax_att.F
index 90adcc4..e428821 100644
--- a/fer/gnl/redefine_ax_att.F
+++ b/fer/gnl/redefine_ax_att.F
@@ -49,6 +49,7 @@
 * V64  *acm*11/09 The ENDIF for name-is-an-axis-of-dset was in the wrong place:
 *                 check for changes in all the attribs.
 * V698  3/16 *acm* Remove unneeded xdset_parms.cmn
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -74,11 +75,10 @@
       
       INTEGER TM_LENSTR1, STR_SAME, 
      .        dset, varid, attlen, attype, attoutflag, 
-     .        vartype, nvdims, nvatts, vdims(8), all_outflag,
      .        attid, len, maxlen, status
       REAL dummy
       CHARACTER buff*128, varname*128, attbuff*10, attname*128, dir*4
-      LOGICAL	coordvar, do_warn, got_it
+      LOGICAL	CD_ISIT_COORDVAR, do_warn, got_it
 
       dummy = 0.
       do_warn = .FALSE.
@@ -101,10 +101,8 @@ c    user-defined axes. See if name exists as an axis name.
          IF (status .EQ. ferr_ok) THEN  ! name is an axis name in the dataset
 
 ! name is a variable; is it a coordinate variable of the dataset?
-
-            CALL CD_GET_VAR_INFO (dset, varid, name, vartype, 
-     .          nvdims, vdims, nvatts, coordvar, all_outflag, status) 
-            IF (.NOT. coordvar) goto 100
+ 
+            IF (.NOT. CD_ISIT_COORDVAR (dset, varid, name, status)) goto 100
 
 c ... If units attribute already exists, change it; otherwise add new
 c     If new units not defined, remove units attribute.
diff --git a/fer/gnl/repl_exprns.F b/fer/gnl/repl_exprns.F
index 35d8e82..f1d30a4 100644
--- a/fer/gnl/repl_exprns.F
+++ b/fer/gnl/repl_exprns.F
@@ -122,6 +122,7 @@
 * v701 *acm* 9/16 Ticket 2469: For RETURN=shape, use the same logic as in SHOW GRID,
 *                 for determining when a grid dimension is compressed by a transformation.
 * V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 #include "netcdf.inc"
 	include 'tmap_dims.parm'
@@ -156,8 +157,8 @@
      .		  str_len, lenbuff, iend, itmp, axis,
      .		  mr, cx, mr_temp, i, i1, i2, use_digits, true_end,
      .		  qual_end, brkt, idim, use_width, dset, varid, 
-     .            vartype, nvdims, vdims(8), nvatts, ist, ind,
-     .            attype, attlen, inxt, attoutflag,outflag, fertype, 
+     .            vartype, ist, ind,
+     .            attype, attlen, inxt, attoutflag, fertype, 
      .            attid, ieq, base_isp, base_cx, cat, var, uvar,  
      .            i1ss, inss, grid, ucode
 	REAL	  result, val
@@ -562,9 +563,8 @@
 	            CALL CD_GET_VAR_ID(dset, cmnd(istart:iend), varid, status)
 
 	            IF (status .EQ. ferr_ok)  
-     .                CALL CD_GET_VAR_INFO (dset, varid, cmnd(istart:iend), 
-     .                              vartype, nvdims, vdims, nvatts,
-     .                              coordvar, outflag, status )
+     .                CALL CD_GET_VAR_TYPE (dset, varid, cmnd(istart:iend), 
+     .                              vartype, status )
 
                     IF (vartype.EQ.0 ) GOTO 4000
 		    
@@ -899,9 +899,8 @@
               CALL CD_GET_VAR_ID(dset, cmnd(istart:iend), varid, status)
 
               IF (status .EQ. ferr_ok)  
-     .          CALL CD_GET_VAR_INFO (dset, varid, cmnd(istart:iend), 
-     .                              vartype, nvdims, vdims, nvatts,
-     .                              coordvar, outflag, status )
+     .          CALL CD_GET_VAR_TYPE (dset, varid, cmnd(istart:iend), 
+     .                              vartype, status )
 
               IF (vartype.EQ.0 ) THEN  
 
diff --git a/fer/gnl/reset_ax_att.F b/fer/gnl/reset_ax_att.F
index f9bad38..f96bcca 100644
--- a/fer/gnl/reset_ax_att.F
+++ b/fer/gnl/reset_ax_att.F
@@ -43,6 +43,7 @@
 * V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
 *                  Use pseudo-dataset of user-defined axes to keep track of attributes.
 * V698  3/16 *acm* Remove unneeded xdset_parms.cmn
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -67,12 +68,11 @@
 * local variable declarations: 
       
       INTEGER TM_LENSTR1, STR_SAME, 
-     .        dset, varid, attlen, attype, attoutflag, 
-     .        vartype, nvdims, nvatts, vdims(8), all_outflag,
+     .        dset, varid, attlen, attype, attoutflag,
      .        attid, len, maxlen, status
       REAL dummy
       CHARACTER buff*128, varname*128, attbuff*10, attname*128, dir*4
-      LOGICAL	coordvar, do_warn, got_it
+      LOGICAL	CD_ISIT_COORDVAR, do_warn, got_it
 
       dummy = 0.
       do_warn = .FALSE.
@@ -93,10 +93,8 @@ c    user-defined axes. See if name exists as an axis name.
 
          IF (status .EQ. ferr_ok) THEN  
 ! name is a variable; is it a coordinate variable of the dataset?
-
-            CALL CD_GET_VAR_INFO (dset, varid, name, vartype, 
-     .          nvdims, vdims, nvatts, coordvar, all_outflag, status) 
-            IF (.NOT. coordvar) goto 100
+     
+            IF (.NOT. CD_ISIT_COORDVAR (dset, varid, name, status)) goto 100
 
          ELSE
 	    GOTO 100
diff --git a/fer/gnl/set_agg_var_atts.F b/fer/gnl/set_agg_var_atts.F
index 6ca30ff..635fe25 100644
--- a/fer/gnl/set_agg_var_atts.F
+++ b/fer/gnl/set_agg_var_atts.F
@@ -45,6 +45,7 @@
 * V698 *sh* 2/16 
 * V698 *acm* 2/16 LET/D variables are now stored with their associated datset
 *                 in the List structure so can get their attribute info
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
         INCLUDE 'tmap_dims.parm'
         INCLUDE 'ferret.parm'
@@ -73,13 +74,12 @@
         INTEGER maxlen
         PARAMETER (maxlen = 2048)
 
-        LOGICAL NC_GET_ATTRIB, coordvar, got_it
+        LOGICAL NC_GET_ATTRIB, got_it
         INTEGER TM_LENSTR1, vlen, ref_dset, ref_id, var_id,
-     .          vtype, nvdims, nvatts, vdims(8), iatt, imemb,
-     .          attype, attlen, attoutflag,
+     .          nvatts, att, imemb, attype, attlen, attoutflag,
      .          m_attid, m_attype, m_attlen, m_attoutflag,
      .          m_dset, m_cat, m_grid, m_var, m_ens_ax,
-     .          all_outflag, memb_id(nsets), i
+     .          all_outflag, memb_id(nsets), i, iatt
         REAL    attvals(50), m_attvals(50)
         CHARACTER attname*128
         CHARACTER*(maxlen) attstr, m_attstr
@@ -119,11 +119,8 @@
         ENDDO
 
 * Get number of attributes from the reference variable
-        CALL CD_GET_VAR_INFO (ref_dset, ref_id, vname(:vlen),
-     .                        vtype, nvdims, vdims,
-     .                        nvatts, coordvar, all_outflag, status)
-!       IF (coordvar) GOTO error
-
+        CALL CD_GET_VAR_NATTS (ref_dset, ref_id, vname(:vlen),
+     .                         nvatts, status)
 
 **** loop through the attribute list from the reference variable
         attloop: DO iatt = 1, nvatts
diff --git a/fer/gnl/set_var.F b/fer/gnl/set_var.F
index 2b9ff12..a89a7b4 100644
--- a/fer/gnl/set_var.F
+++ b/fer/gnl/set_var.F
@@ -89,6 +89,7 @@
 * V7   *acm* 5/16  Fix ticket 2432, see alsoticket 2352. For LET/D variables 
 *                  look for info under that dataset
 * V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -111,12 +112,11 @@
 * internal variable declarations:
 	LOGICAL		VALID_GRID, TM_LEGAL_NAME, TM_HAS_STRING,
      .			ACTS_LIKE_FVAR,
-     .                  have_mods, ez, gtts, ncfile, coordvar
+     .                  have_mods, ez, gtts, ncfile
 	INTEGER		GRID_FROM_NAME, TM_LENSTR1, STR_UPCASE, mod_cx,
      .			i, dset, grid, cat, var, loc, TMAP_status, 
      .			testvar, outtype_flag, varid, attid, attype, attlen, 
-     .			attoutflag, vartype, nvdims, nvatts, vdims(8), 
-     .			varoutflag, cx, idum
+     .			attoutflag, vartype, cx, idum
 	REAL		bad, scalefac, offset, val, dummy
 	CHARACTER	grid_name*64, title*128, units*128, newname*128,
      .                  is_nan*3, flag*10, typflag*10, varattname*512,
@@ -378,9 +378,7 @@
 
 * Get input type, store in variable outtype_flag
            IF (outtype_flag .EQ. 99) THEN
-              CALL CD_GET_VAR_INFO (dset, varid, varname, vartype, 
-     .                  nvdims, vdims, nvatts, coordvar, varoutflag, 
-     .                  status) 
+              CALL CD_GET_VAR_TYPE (dset, varid, vname, vartype, status)
               outtype_flag = vartype 
            ENDIF
 
diff --git a/fer/gnl/show_1_uvar_xml.F b/fer/gnl/show_1_uvar_xml.F
index 4a3c5b0..215dab3 100644
--- a/fer/gnl/show_1_uvar_xml.F
+++ b/fer/gnl/show_1_uvar_xml.F
@@ -48,6 +48,7 @@
 * V650  Write to lun which may be set to a file unit number rather than std out
 * V67  *acm* 2/11 XML fixes. New attribute formatting, ![CDATA] escape, upper/lowercase handling.
 * V67  *acm* 2/16 Fixes for getting extra attributes that may have been assigned
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
         include 'tmap_dims.parm'
 	include 'xdset_info.cmn_text'
@@ -66,11 +67,10 @@
         LOGICAL first
 	
 * local variable declarations:
-        LOGICAL NC_GET_ATTRIB, got_it, coordvar
+        LOGICAL NC_GET_ATTRIB, got_it
 	INTEGER TM_LENSTR1, GRID_FROM_NAME_XML, STR_SAME,
      .          slen, llen, grid, cx_expr, i, j, status,
-     .            varid, vtype, nvdims, vdims(8), nvatts, blen, 
-     .            len_attbuff, attoutflag, all_outflag, attid, 
+     .            varid, nvatts, blen, len_attbuff, attoutflag, attid, 
      .            attlen, attype, iatt, dset, alen, itype
 	CHARACTER FULL_UVAR_NAME_XML*150, FULL_UVAR_NAME*150, 
      .            TM_FMT*12,
@@ -200,8 +200,8 @@
         ENDIF
 	IF (status .NE. ferr_ok) GOTO 1000
 
-	CALL CD_GET_VAR_INFO (dset, varid, vname, vtype, nvdims, 
-     .            vdims, nvatts, coordvar, all_outflag, status)
+	CALL CD_GET_VAR_NATTS (dset, varid, vname, nvatts, status)
+
 	IF (status .NE. ferr_ok) GOTO 1000
 
 	DO 200 iatt = 1, nvatts
diff --git a/fer/gnl/show_data_files.F b/fer/gnl/show_data_files.F
index c45704b..b487517 100644
--- a/fer/gnl/show_data_files.F
+++ b/fer/gnl/show_data_files.F
@@ -58,6 +58,8 @@
 * V698 *sh*   2/16 insert blank line at conclusion of list
 * V702 *sh*  11/16 number the member files with the syntax (e.g.) "12.3"
 * V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
+* V73  4/17 *acm* Change the text when showing members of a union aggregation,
+*                 implement dataset.member notation for unions, (e.g.) "12.3"
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -97,7 +99,8 @@
 
 * show aggregation members
         ELSEIF (ds_type(dset) .EQ. 'ENS'
-     .    .OR.  ds_type(dset) .EQ. 'FCT') THEN
+     .    .OR.  ds_type(dset) .EQ. 'FCT'
+     .    .OR.  ds_type(dset) .EQ. 'UNI') THEN
 
 * ... get parent aggregation dataset number in string form
 	   abuff = LEFINT(dset, alen )
diff --git a/fer/gnl/show_data_set_vars.F b/fer/gnl/show_data_set_vars.F
index 0ee8e97..c08cc14 100644
--- a/fer/gnl/show_data_set_vars.F
+++ b/fer/gnl/show_data_set_vars.F
@@ -84,7 +84,7 @@
 * V7    acm  6/16 Ticket 2437: Deprecating mode_6d_lab. 
 *		  Adjust output to 6-D or 4-D grids
 * V720  3/17 *acm*  clean up long commented-out code referring to aggregations 
-
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -111,13 +111,12 @@
 	
 * local variable declarations:
 	LOGICAL		FOUR_D_GRID,
-     .			first_time, its_delimited, is_undetermined, coordvar
+     .			first_time, its_delimited, is_undetermined
 	INTEGER 	TM_LENSTR1, TM_LENSTR, TM_GET_CALENDAR_ID, GRID_FROM_NAME,
      .			ivar, i, dlen, len, grid, taxis, slen(nferdims), tlen, 
      .			nfields, kvar, field_types(maxezvars), 
      .			cal_id, len_cal, j, num_indices, rlen(nferdims), iok,
-     .			listdims, idim, igrid, nv, varid, vtype, nvdims, outflag,
-     .                  vdims(8),  nvatts
+     .			listdims, idim, igrid, nv, varid
 	CHARACTER	LEFINT*16, LOHI_STRING*48, TM_FMT*14, 
      .			TM_GET_CAL*32, 
      .			line*255, cal_name*32
@@ -275,8 +274,7 @@
 	   line = ds_var_code(ivar)
 	   IF (.NOT.mode_upcase_output) THEN  ! get original variable name
 	      CALL CD_GET_VAR_ID (dset, ds_var_code(ivar), varid, status)
-	      CALL CD_GET_VAR_INFO (dset, varid, line, vtype, 
-     .            nvdims, vdims, nvatts, coordvar, outflag, status)
+	      CALL CD_GET_VAR_VARNAME (dset, varid, line, status)
 	   ENDIF
 
 * ... separate into two lines if variable code is too long (11/92)
@@ -322,8 +320,7 @@
 	   line = ds_var_code(ivar)
 	   IF (.NOT.mode_upcase_output) THEN  ! get original variable name
 	      CALL CD_GET_VAR_ID (dset, ds_var_code(ivar), varid, status)
-	      CALL CD_GET_VAR_INFO (dset, varid, line, vtype, 
-     .            nvdims, vdims, nvatts, coordvar, outflag, status)
+	      CALL CD_GET_VAR_VARNAME (dset, varid, line, status)
 	   ENDIF
 * ... separate into two lines if variable code is too long (11/92)
            IF ( TM_LENSTR1( line ) .GT. 8 ) THEN
diff --git a/fer/gnl/show_line_xml.F b/fer/gnl/show_line_xml.F
index 08218b4..eaa1dde 100644
--- a/fer/gnl/show_line_xml.F
+++ b/fer/gnl/show_line_xml.F
@@ -84,12 +84,10 @@
 	INTEGER		TM_LENSTR1, TM_GET_CALENDAR_ID, cal_id, status
 	CHARACTER	TM_FMT*32, buff*80, outbuff*20
 
-        LOGICAL         coordvar, new
+        LOGICAL         new
         INTEGER         STR_SAME, 
-     .                  ivar,  llen,
-     .                  varid, vtype, nvdims, vdims(8), nvatts, blen, i, 
-     .                  len_attbuff, attoutflag, all_outflag, attid, 
-     .                  attlen, attype, iatt
+     .                  ivar, llen, varid, vtype, nvatts, blen, i, len_attbuff, 
+     .                  attoutflag, attid,  attlen, attype, iatt
         CHARACTER       vname*128, attname*128, attbuff*2048, 
      .                  outstring*2048, atype*10
 	REAL            vals(100)
@@ -237,9 +235,8 @@ C New form for attribute output, list values separately.
    50   dset = iset
 
 * other attributes
-
-        CALL CD_GET_VAR_INFO (dset, varid, vname, vtype, nvdims,
-     .           vdims, nvatts, coordvar, all_outflag, status)
+        CALL CD_GET_VAR_TYPE (dset, varid, vname, vtype, status)
+        CALL CD_GET_VAR_NATTS (dset, varid, vname, nvatts, status)
 
 * Data type of the axis in the file...
 
diff --git a/fer/gnl/special_symbol.F b/fer/gnl/special_symbol.F
index a7848ac..e3e1f07 100644
--- a/fer/gnl/special_symbol.F
+++ b/fer/gnl/special_symbol.F
@@ -69,6 +69,9 @@
 * V68   2/13 *kms*- Symbol PROGRAM_NAME = Ferret or PyFerret
 * V702  3/17 *sh* - Dynamic memory calculation change for FERRET_MEMORY symbol
 *                 - added PEAK_MEMORY and SPAWN_STATUS
+* v720 7/17 *acm* ticket 2552 Make SPAWN_STATUS return the return status, so 0=succcess
+*                 SPAWN_OK -> SPAWN_OK, so 1=succcess, 0=failure
+*                 SPAWN_STATUS returns the status value
 
 * calling argument declarations:
 	INTEGER	  isym, slen
@@ -76,13 +79,14 @@
 
 * internal parameter declaration
 	INTEGER nspecial
-	PARAMETER (nspecial = 19)
+	PARAMETER (nspecial = 20)
 
 * internal variable declarations:
+	LOGICAL	IS_SECURE
 	INTEGER STR_UPCASE, TM_LENSTR, i, i1, ierr, wsid, 
      .          nxpix, nypix, llen, icount, irate, imax, iset
 c        REAL DTIME 
-        REAL TArray(2), dtime_res, clock_secs, count, cputime_now
+        REAL TArray(2), dtime_res, clock_secs, count, cputime_now, rstatus
 	CHARACTER special(nspecial)*16, upname*16
 	CHARACTER LEFINT*16, TM_FMT*12, NF_INQ_LIBVERS*80, NF_INQ_LIBVERS_*80,
      .		  LEFINT8*16
@@ -108,7 +112,8 @@ c        REAL DTIME
      .	     special(16)/ 'N_OPEN_DSETS' /,
      .	     special(17)/ 'PROGRAM_NAME' /,
      .	     special(18)/ 'PEAK_MEMORY' /,
-     .	     special(19)/ 'SPAWN_STATUS' /
+     .	     special(19)/ 'SPAWN_OK' /,
+     .	     special(20)/ 'SPAWN_STATUS' /
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -152,7 +157,7 @@ c        REAL DTIME
 
  200	GOTO (1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 
      .        1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600,
-     .        2700, 2800, 2900 ) i
+     .        2700, 2800, 2900, 3000 ) i
 
 * PPL$XPIXEL
 * get the horizontal pixels size of the window as specified by the user
@@ -324,13 +329,26 @@ c        CALL DTIME(TArray)
  2800	value = LEFINT8(peak_mem,slen)
         RETURN
 
-* SPAWN_STATUS
- 2900	IF (spawn_status) THEN
-	   value = "1"
+* SPAWN_OK
+ 2900   IF (IS_SECURE()) THEN
+           rstatus = 0.
+        ELSEIF (spawn_status .EQ. 0.) THEN
+           rstatus = 1.
 	ELSE
-	   value = "0"
+	   rstatus = 0.
 	ENDIF
-	slen = 1
+	value = TM_FMT(rstatus, 10, 10, slen)
+        RETURN
+
+* SPAWN_STATUS
+ 3000   IF (IS_SECURE()) THEN
+	   value = 'secure: spawn not allowed'
+	   slen = 25
+        ELSE
+           rstatus = spawn_status
+           value = TM_FMT(rstatus, 10, 10, slen)
+	ENDIf
         RETURN
 
 	END
+
diff --git a/fer/plt/axis_ends.F b/fer/plt/axis_ends.F
index fb9da30..8627b67 100644
--- a/fer/plt/axis_ends.F
+++ b/fer/plt/axis_ends.F
@@ -113,8 +113,10 @@
 
            IF (lastl .GE. firstl ) THEN
 	      IF (ABS(lastl - last) .GT. eps2) last = last + 1.
+	      IF (ABS(lastl - last) .GT. 1.) last = last - 1.
 	   ELSE
              IF (ABS(firstl - first) .GT. eps2) first = first + 1.
+	      IF (ABS(firstl - first) .GT. 1.) first = first - 1.
 	   ENDIF
        ENDIF
        span = ABS(last-first)
diff --git a/fer/plt/plot_set_up.F b/fer/plt/plot_set_up.F
index 17958e0..8af381f 100644
--- a/fer/plt/plot_set_up.F
+++ b/fer/plt/plot_set_up.F
@@ -152,7 +152,7 @@
 * V685+ *acm  12/13 In dependent axis setup, make sure variable the_taxis is set.
 * V691  *acm*  5/14 For ribbon line plots, set up for histogram levels
 * V691  *acm*  7/14 Fix ticket 2187: axis labels for PLOT/VS plots.
-* V693  *acm* 10/14 Fix 2122: Check for a valid axis if they've asked for a 
+* V693  *acm* 10/14 Fix 2212: Check for a valid axis if they've asked for a 
 *                   log axis before proceeding with vlimits or hlimits
 * V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
 * V695+ *sh*  3/15 if an FMRC dataset disambiguate T and F axes with labels
@@ -191,6 +191,9 @@
 * V7.2 *acm* 4/2017 Ticket 2318: for constant-value data on a line plot, make the axis
 *                   range +/- 10% of the value instead of +/- 1. For very large or small
 *                   values the +/- 1 corrupted the labels or the location of the plot.
+* V7.2 *acm* 4/2017 In fix for 2212, make sure ind_min,ind_max are defined before using them 
+*                   to check log limits on log axis.  Make sure the limits are actually applied.
+* V7.2 *acm* 5/2017 restore correct longitude moduloing for PLOT/VS overlay plots
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -227,7 +230,7 @@
 * V500 *kob* 3/99- up VAR_CODE and VAR_UNITS to 64 chars
 * internal variable declarations:
 	LOGICAL		NO_LINE_RANGE, GEOG_LABEL, ITS_FMRC,
-     .                  ITSA_TRUEMONTH_AXIS,
+     .                  ITSA_TRUEMONTH_AXIS, TM_HAS_STRING,
      .			flip, time_axis,
      .			all_1_ind, formatted,
      .			indep_is_log, dep_is_log, use_nice,
@@ -256,7 +259,7 @@
 
 	INTEGER         TM_GET_CALENDAR_ID, cal_id_1, cal_id_2,
      .			cal_id_old, cal_id_new
-        INTEGER         TM_UNIT_ID, cx_x , cx_y, iunits, axis_x_dir, axis_y_dir
+        INTEGER         TM_UNIT_ID, cx_x , cx_y, iunits, junits, axis_x_dir, axis_y_dir
 	CHARACTER*1     axdir(6), ax1
 
 	REAL		val1, dt_min, lo, hi, dep_len, 
@@ -479,7 +482,6 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 
 		    ind_min = TSTEP_TO_SECS (mgrid_buff, t_dim, lo)
 		    ind_max = TSTEP_TO_SECS (mgrid_buff, t_dim, hi)
-		    
 
 * Plotting short time range? If so recompute tref     
 * axis length in hours from time since BC in seconds
@@ -508,6 +510,9 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 		    IF (itmp .NE. mnormal) CALL TM_DEALLO_DYN_LINE( itmp )
 		    itmp = mnormal
 	         ENDIF
+	      ELSE  ! not time axis
+	      
+	         CALL MINMAX( indep_dat, npts, mr_bad_data(mv), ind_min, ind_max )
 	      ENDIF
 
 	      slen = TM_LENSTR1(plot_title)
@@ -537,7 +542,13 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
               cal_name = line_cal_name(tax)
               cal_id_1 = TM_GET_CALENDAR_ID ( cal_name )
 
+	      CALL EQUAL_RANGE(
+     .			cmnd_buff(qual_start(pindeplim):qual_end(pindeplim)),
+     .			indep_dim, ind_min, ind_max, delta,
+     .			formatted, range_rqd, cal_id_1, status )
+
 * Check for a valid axis if they've asked for a log axis before proceeding
+
 	      IF (indep_is_log) THEN
 	         CALL AXIS_ENDS(indep_ax,indep_dim,grid1,ind_min,ind_max,
      .                       delta, indep_is_log, indep_axtyp, versus, status)
@@ -546,12 +557,15 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
                     last  = ind_max
                     GOTO 5170
                  ENDIF
-	      ENDIF
 
-	      CALL EQUAL_RANGE(
+* Get requested ends in data units again
+	         IF (versus) CALL EQUAL_RANGE(
      .			cmnd_buff(qual_start(pindeplim):qual_end(pindeplim)),
      .			indep_dim, ind_min, ind_max, delta,
      .			formatted, range_rqd, cal_id_1, status )
+
+	      ENDIF
+
 	      IF ( status .NE. ferr_OK ) GOTO 5000
 	   ELSEIF ( all_1_ind .AND. .NOT.overlay ) THEN
 	      IF ( val1 .EQ. mr_bad_data(mv) ) THEN
@@ -582,6 +596,8 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	   cx_y = cx_list(2)
 	   buff1 = VAR_UNITS(cx_x)
 	   IF (iunits .GE. 0) iunits = TM_UNIT_ID(buff1)
+	   
+
 
 	   IF (.NOT.overlay) THEN
 	      CALL AXIS_ENDS(indep_ax,indep_dim,grid1,ind_min,ind_max,
@@ -629,9 +645,24 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
                  CALL PPLCMD ( from, line, 0, 'XFOR 0', 1, 1 )	 
               ENDIF	 
 		  
-              CALL PPLCMD ( from, line, 0, 'YFOR 0', 1, 1 ) ! for now, anyway	 
-           ELSE
+              CALL PPLCMD ( from, line, 0, 'YFOR 0', 1, 1 ) ! for now, anyway	
+	      
+           ELSE ! overlay
               CALL PPLCMD ( from, line, 0, indep_ax//'FOR 0', 1, 1 )
+
+              IF (iunits .EQ. 4) THEN
+	         mod_vs_x = (TM_HAS_STRING(buff1, '_e') .OR.
+     .                   TM_HAS_STRING(buff1, 'lon') )
+	         
+              ENDIF
+
+              buff1 = VAR_UNITS(cx_y)	 
+              junits = TM_UNIT_ID(buff1)
+              IF (junits .EQ. 4) THEN
+                  mod_vs_y = (TM_HAS_STRING(buff1, '_e') .OR.
+     .                        TM_HAS_STRING(buff1, 'lon') ) 
+              ENDIF
+
 	   ENDIF
 
 	ELSE	! (not VERSUS)
@@ -1155,6 +1186,11 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	            CALL WARN( 'Use /HLIMITS and /VLIMITS instead.')
 	            denig_xylim_msg_done = .TRUE.
 	         ENDIF
+	         CALL EQUAL_RANGE(
+     .			cmnd_buff(qual_start(pindeplim):qual_end(pindeplim)),
+     .			indep_dim, ind_min, ind_max, delta,
+     .			formatted, range_rqd, cal_id_1, status )
+	         IF ( status .NE. ferr_OK ) GOTO 5000
 		 
 *  Check for valid log axis before proceeding
 	         IF (indep_is_log) THEN
@@ -1166,12 +1202,15 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
                        last  = ind_max
                        GOTO 5170
                     ENDIF
-	         ENDIF
-	         CALL EQUAL_RANGE(
+
+* Get requested ends in data units again    
+	            CALL EQUAL_RANGE(
      .			cmnd_buff(qual_start(pindeplim):qual_end(pindeplim)),
      .			indep_dim, ind_min, ind_max, delta,
      .			formatted, range_rqd, cal_id_1, status )
-	         IF ( status .NE. ferr_OK ) GOTO 5000
+
+	         ENDIF
+
 * convert time given in time steps to absolute units	   
 	         IF ( time_axis .AND. .NOT.formatted ) THEN
 * time limits given as tstep range although mode calendar is true
diff --git a/fer/stk/is_algebra.F b/fer/stk/is_algebra.F
index 12a4332..422cfb6 100644
--- a/fer/stk/is_algebra.F
+++ b/fer/stk/is_algebra.F
@@ -907,7 +907,7 @@
      .                                    cx_bad_data(big_cx)  )
 	   ENDIF
 
-c Tentative fix for ticket 2234
+c Tentative fix for ticket 2234.  See also ticket 2547.
 	   cx_type(big_cx) = cx_type(hi_cx)
 	   CALL RE_ASSIGN_VARIABLE( hi_mr, big_cx )
 
diff --git a/fer/stk/is_do_gc_fcn.F b/fer/stk/is_do_gc_fcn.F
index cba35e9..09235bf 100644
--- a/fer/stk/is_do_gc_fcn.F
+++ b/fer/stk/is_do_gc_fcn.F
@@ -63,8 +63,8 @@
 *                  uvar_aux_var to be replaced with calls to LIST routines in NCF_Util.c
 * V710 *acm*  4/17 Implement ability to run one of a family of functions based on 
 *                  arguments that indicate the coordinate directions to operate on,
-*                  e.g. INNERPRODUCT(VAR1,VAR2,2) to compute the inner product of the 
-*                  variables in the Y direction by running innerproduct_y
+*                  e.g. DOT(VAR1,VAR2,2) to compute the inner product of the 
+*                  variables in the Y direction by running dot_y
 
 
         IMPLICIT NONE
diff --git a/fer/stk/is_regrid.F b/fer/stk/is_regrid.F
index 58b1c39..7df7442 100644
--- a/fer/stk/is_regrid.F
+++ b/fer/stk/is_regrid.F
@@ -89,6 +89,7 @@
 * V698 *acm*  3/16 Ticket 2278: add an attribute with time range when
 *                  saving a modulo-regridded variable to netCDF
 * V702 3/17 *sh* for trac enhancement #2369 -- dynamic memory management 
+* V720: 6/17 *acm* Ticket 2346: new @IIN regridding transform
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -329,6 +330,15 @@ c     .    .AND. cx_has_impl_grid(dst_cx)
      .			memry(dst_mr)%ptr, dst_mr,
      .			workmem(plegacy_work_buffer)%ptr, src_cx, dst_cx,
      .                  wk_size+1 )
+
+	ELSEIF ( rgrd_trans .EQ. prgrd_iin ) THEN
+	   CALL DO_IIN_REGRID( cx_valid, axis,
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr,
+     .			workmem(plegacy_work_buffer)%ptr, wk_size+1, status )
+     
+	   IF ( status .NE. ferr_ok ) GOTO 5100
+
 * modulo regridding
 	ELSE
 	   IF ( itsa_string ) GOTO 5010
diff --git a/fer/stk/is_uvar_grid.F b/fer/stk/is_uvar_grid.F
index 75ebaf4..cd5ffc5 100644
--- a/fer/stk/is_uvar_grid.F
+++ b/fer/stk/is_uvar_grid.F
@@ -120,6 +120,8 @@
 *                  uvar_aux_var to be replaced with calls to LIST routines in NCF_Util.c 
 * V720  3/17 *acm*  clean up long commented-out code referring to aggregations 
 * V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
+* V720: 6/17 *acm* Fix ticket 2547: the grid and type of uvars are stored, but the
+*                  information may be collected on different passes through this routine.
 
 * calling argument declarations:
 	INTEGER	status
@@ -183,6 +185,8 @@
 	is_uvar_const = ITSA_CONST_VAR(uvar)   ! for repl_exprns fixing bug 2213
 * ... initialization to support 2/99 pass-2 changes
 	pass_number = 1
+
+	cx_type(big_cx) = ptype_unknown   ! initialize; fixing ticket 2547
 ! 4/99
 	need_another_pass = is_phase(isp) .LT. 0  ! saved from last time here
 	is_phase(isp) = ABS( is_phase(isp) )
@@ -668,6 +672,13 @@ c	cx_hi_ss(hi_cx, x_dim) = attlen !!
 	is_cx   ( isp ) = hi_cx
 	is_uvar ( isp ) = cx_variable( hi_cx )
 	is_act  ( isp ) = isact_get_grid	! temp diagnostic
+
+* Fixing ticket 2547. Save the type now. Later passes do not do the ifthen_type logic.
+	
+	IF (cx_type(big_cx).NE.cx_none .AND. cx_type(big_cx).NE.unspecified_int4) THEN
+	   CALL SAVE_UVAR_TYPE(uvar, cx_type(big_cx), this_dset)
+	ENDIF
+
 	RETURN 1
 	
 ***  DONE - clean up
@@ -685,6 +696,7 @@ c	cx_hi_ss(hi_cx, x_dim) = attlen !!
 	IF ( is_sum(isp) .EQ. isalg_transfer ) THEN
 	   IF ( uvar_dset(uvar).EQ.unspecified_int4 ) THEN
 	      uvar_need_dset(uvar) = .FALSE.
+	      
 	      CALL SAVE_UVAR_GRID(uvar, mgrid_abstract, ptype_float,
      .				  pdset_irrelevant)
 * ... 6/16 init aux info just for house-keeping
@@ -694,7 +706,6 @@ c	cx_hi_ss(hi_cx, x_dim) = attlen !!
 !	      uvar_need_dset(uvar) = .TRUE.	! always TRUE anyway
 * *kob* 4/99 bug fix - check to see if let/d is dataset independent
 	      IF (dset .EQ. unspecified_int4) THEN
-
 	         CALL SAVE_UVAR_GRID(uvar, mgrid_abstract, ptype_float,
      .				     pdset_irrelevant)
 * ... 6/16 init aux info just for house-keeping
diff --git a/fer/stk/rcvd_regrid.F b/fer/stk/rcvd_regrid.F
index 3b667f5..c0bdb66 100644
--- a/fer/stk/rcvd_regrid.F
+++ b/fer/stk/rcvd_regrid.F
@@ -77,6 +77,7 @@
 *                  dimension is now an arg to SECS_TO_TSTEP. Note the input 
 *                  argument "axis" in this routine is a dimension, 1, 2, ... 
 * V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
+* V720: 6/17 *acm* Ticket 2346: new @IIN regridding transform
 
 * calling argument declarations:
 	INTEGER	src_cx, dst_cx, axis, work, ok_min, ok_max, status
@@ -158,7 +159,8 @@
      .	    .OR. rgrd_trans .EQ. prgrd_average
      .	    .OR. rgrd_trans .EQ. prgrd_nearest
      .	    .OR. rgrd_trans .EQ. prgrd_bin
-     .	    .OR. rgrd_trans .EQ. prgrd_nbin ) THEN
+     .	    .OR. rgrd_trans .EQ. prgrd_nbin
+     .	    .OR. rgrd_trans .EQ. prgrd_iin ) THEN   ! I think @iin is whole box
 	   dst_where_loest = box_lo_lim
 	   dst_where_hiest = box_hi_lim
 	   src_where_loest = box_lo_lim
diff --git a/fer/stk/rqst_regrid.F b/fer/stk/rqst_regrid.F
index a691a10..5f90b7b 100644
--- a/fer/stk/rqst_regrid.F
+++ b/fer/stk/rqst_regrid.F
@@ -74,6 +74,8 @@
 *                  argument "axis" in this routine is a dimension, 1, 2, ... 
 * V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
 * V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
+* V720: 6/17 *acm* Ticket 2346: new @IIN regridding transform
+
 
 	include 'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -169,7 +171,8 @@
      .      .OR. rgrd_trans .EQ. prgrd_good_pt
      .      .OR. rgrd_trans .EQ. prgrd_average
      .      .OR. rgrd_trans .EQ. prgrd_bin
-     .      .OR. rgrd_trans .EQ. prgrd_nbin ) THEN
+     .      .OR. rgrd_trans .EQ. prgrd_nbin
+     .      .OR. rgrd_trans .EQ. prgrd_iin ) THEN  ! I think @iin is whole box
 	   where_loest = box_lo_lim
 	   where_hiest = box_hi_lim
 	ELSEIF ( rgrd_trans .EQ. prgrd_associate ) THEN
diff --git a/fer/utl/SOURCE_FILES b/fer/utl/SOURCE_FILES
index b230552..b081d5b 100644
--- a/fer/utl/SOURCE_FILES
+++ b/fer/utl/SOURCE_FILES
@@ -162,6 +162,7 @@ reverse_grid_axis_sub.F\
 return_one_val.F\
 save_uvar_aux_info.F\
 save_uvar_grid.F\
+save_uvar_type.F\
 secs_from_bc.F\
 secs_to_date.F\
 secs_to_date_c.F\
diff --git a/fer/utl/inherit_attrs.F b/fer/utl/inherit_attrs.F
index 78a103d..0c509be 100644
--- a/fer/utl/inherit_attrs.F
+++ b/fer/utl/inherit_attrs.F
@@ -43,6 +43,7 @@
 *                  added to that dataset in the attribute structure.
 * v71   7/16 *acm* Fix ticket 2447: special handling of missing-value flags
 *                  when inheriting all attributes from one variable to another.
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
       INCLUDE 'tmap_dims.parm'
       INCLUDE 'ferret.parm'
@@ -56,11 +57,11 @@
       INTEGER status
 
 * Local variable declarations
-      LOGICAL coordvar
+      LOGICAL CD_ISIT_COORDVAR
       INTEGER TM_LENSTR, STR_SAME, slen, tlen, dset1, dset2, 
-     .  varid1, varid2, vtype, nvdims, nvatts1, nvatts2,
-     .  vdims(8), iatt, first_quote, next_quote, dot, mr, cx, 
-     .  all_outflag, cat, iflag, attnum
+     .  varid1, varid2, nvatts1, nvatts2,
+     .  iatt, first_quote, next_quote, dot, mr, cx, 
+     .  cat, iflag, attnum
       CHARACTER*128 attname, buff1, buff2
 
 * Check that neither buffer contains varname.attname (If it is in 
@@ -130,13 +131,11 @@
 
 * Get number of attributes for variables
 
-      CALL CD_GET_VAR_INFO (dset1, varid1, varname1, vtype, nvdims, vdims,
-     .       nvatts1, coordvar, all_outflag, status)
-      IF (coordvar) GOTO 5020
+      IF (CD_ISIT_COORDVAR(dset1, varid1, varname1, status)) GOTO 5020
+      CALL CD_GET_VAR_NATTS (dset1, varid1, varname1, nvatts1, status)
 
-      CALL CD_GET_VAR_INFO (dset2, varid2, varname2, vtype, nvdims, vdims,
-     .       nvatts2, coordvar, all_outflag, status)
-      IF (coordvar) GOTO 5020
+      IF (CD_ISIT_COORDVAR(dset2, varid2, varname2, status)) GOTO 5020
+      CALL CD_GET_VAR_NATTS (dset2, varid2, varname2, nvatts2, status)
 
 * Remove attributes from variable 2
 * When an attribute is deleted, the following attributes move forward
diff --git a/fer/utl/save_uvar_grid.F b/fer/utl/save_uvar_grid.F
index 8d8b540..0922809 100644
--- a/fer/utl/save_uvar_grid.F
+++ b/fer/utl/save_uvar_grid.F
@@ -37,7 +37,9 @@
 * uvar (a LET expression), when evaluated in the given dset
 
 * V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
-
+* V720: 6/17 *acm* Fix ticket 2547: We store the grid and type of user variables and
+*                  expressions, but the grid and type may be determined on different 
+*                  iterations in is_uvar_grid.
 
         include 'ferret.parm'
         include 'tmap_dims.parm'
@@ -47,8 +49,9 @@
         INTEGER uvar, uvgrid, uvdtype, dset
 
 * internal variable declarations
-        INTEGER NCF_SET_UVAR_GRID, status,
-     .          c_list_dset, context_dset
+        INTEGER NCF_SET_UVAR_GRID,
+     .          c_list_dset, context_dset, 
+     .          pretype, savetype, status
 
 * c_list_dset  - dset value relevant in C LIST structures of NCF_Util.c
 * context_dset - dset for which grid of this uvar has been determined
@@ -63,9 +66,16 @@
           context_dset = dset
         ENDIF
 
+* We may have already stored the uvar type.  Check for that.
+
+	savetype = uvdtype
+	CALL GET_SAVED_UVAR_DTYPE( uvar, dset, pretype )
+	IF (pretype .NE. unspecified_int4 .AND. 
+     .      pretype .NE. ptype_unknown) savetype = pretype
+
 * store the grid
         status = NCF_SET_UVAR_GRID( c_list_dset, uvar,
-     .                              uvgrid, uvdtype, context_dset )
+     .                              uvgrid, savetype, context_dset )
 
 * Note that an ATOM_NOT_FOUND error is not trapped
 * We should really trap it and call ERRMSG(ferr_internal)
diff --git a/fer/utl/save_uvar_grid.F b/fer/utl/save_uvar_type.F
similarity index 82%
copy from fer/utl/save_uvar_grid.F
copy to fer/utl/save_uvar_type.F
index 8d8b540..95fd4dd 100644
--- a/fer/utl/save_uvar_grid.F
+++ b/fer/utl/save_uvar_type.F
@@ -1,4 +1,4 @@
-      SUBROUTINE SAVE_UVAR_GRID( uvar, uvgrid, uvdtype, dset )
+      SUBROUTINE SAVE_UVAR_TYPE( uvar, uvdtype, dset )
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,22 +33,24 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 
-* store the grid that has been determined to be correct for this
+* store the data type that has been determined to be correct for this
 * uvar (a LET expression), when evaluated in the given dset
 
 * V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
-
+* V720: 6/17 *acm* Fix ticket 2547: the grid and type of uvars are stored, but the
+*                  information may be collected on different calls from is_uvar_grid.
 
         include 'ferret.parm'
         include 'tmap_dims.parm'
         include 'xvariables.cmn'
 
 * calling argument declarations
-        INTEGER uvar, uvgrid, uvdtype, dset
+        INTEGER uvar, uvdtype, dset
 
 * internal variable declarations
-        INTEGER NCF_SET_UVAR_GRID, status,
-     .          c_list_dset, context_dset
+        INTEGER NCF_SET_UVAR_GRID,
+     .          c_list_dset, context_dset, pretype, savetype,
+     .          dummy_grid, status
 
 * c_list_dset  - dset value relevant in C LIST structures of NCF_Util.c
 * context_dset - dset for which grid of this uvar has been determined
@@ -63,9 +65,13 @@
           context_dset = dset
         ENDIF
 
+* We may have already stored the grid. 
+
+	CALL GET_SAVED_UVAR_GRID ( uvar, c_list_dset, dummy_grid )
+
 * store the grid
         status = NCF_SET_UVAR_GRID( c_list_dset, uvar,
-     .                              uvgrid, uvdtype, context_dset )
+     .                              dummy_grid, uvdtype, context_dset )
 
 * Note that an ATOM_NOT_FOUND error is not trapped
 * We should really trap it and call ERRMSG(ferr_internal)
diff --git a/fer/utl/store_dependency.F b/fer/utl/store_dependency.F
index af5ed43..a8850d5 100644
--- a/fer/utl/store_dependency.F
+++ b/fer/utl/store_dependency.F
@@ -49,6 +49,8 @@
 * V690  *sh* 11/13 - fixed problem in aux regridding variable dependencies
 *                    by adding a new calling arg
 * V693+ *sh* 1/21/15 - store regridding dependency lines
+* V720  acm* 6/2017  Fix for ticket 2533, reporting ok for regridding to 
+*                    undefined variable
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -94,8 +96,12 @@
 	var    = cx_variable(cx)
 	dset   = cx_data_set(cx)
 	desist = .FALSE.
+
+* Fix for ticket 2533, if known_var when bad status, and pcx_vtree_regrid_report,
+* regridding to an undefined variable was reported ready
+
 	known_var = cx_status .EQ. ferr_ok
-     .         .OR. cx_status .EQ. pcx_vtree_regrid_report
+cc     .         .OR. cx_status .EQ. pcx_vtree_regrid_report 
 !     .	      .OR.  cx_status .EQ. ferr_unknown_auxvar  ! ???
 
 * set up regrid target reports
diff --git a/fer/utl/update_attributes.F b/fer/utl/update_attributes.F
index 2d54934..7c72236 100644
--- a/fer/utl/update_attributes.F
+++ b/fer/utl/update_attributes.F
@@ -40,6 +40,7 @@
 * V670  2/11 *acm*   Fixes for inheriting attributes.
 * V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
 *                  added to that dataset in the attribute structure.
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 * Get the attribute information from the linked-list structure that is needed 
 * to do a plot.
@@ -65,22 +66,18 @@
       CHARACTER*(*) vname
 
 * Local variable declarations
-      LOGICAL NC_GET_ATTRIB, coordvar, got_it, do_warn, uvflag
-      INTEGER TM_LENSTR1, varid, vartyp, nvdim, vdims(8),
-     .        nvatts, attlen, attoutflag, status, vlen, maxlen, 
-     .        all_outflag
+      LOGICAL NC_GET_ATTRIB, got_it, do_warn, uvflag
+      INTEGER TM_LENSTR1, varid,
+     .        attlen, attoutflag, status, vlen, maxlen
       REAL tmp
       CHARACTER*128 buff
 
       vlen = TM_LENSTR1(vname)
-       CALL CD_GET_VAR_ID (dset, vname, varid, status)
-       IF (status .NE. ferr_ok) GOTO 1100
+      CALL CD_GET_VAR_ID (dset, vname, varid, status)
+      IF (status .NE. ferr_ok) GOTO 1100
 
-* get the vital statistics for this variable
+* get the needed info for this variable
 
-      CALL CD_GET_VAR_INFO(dset, varid, vname, vartyp, 
-     .      nvdim, vdims, nvatts, coordvar, all_outflag, status)
-      IF (status .NE. ferr_ok) GOTO 1200
       CALL CD_GET_VAR_UVFLAG (dset, varid, uvflag, status)
       IF (status .NE. ferr_ok) GOTO 1200
 
diff --git a/fer/xeq/xeq_annotate.F b/fer/xeq/xeq_annotate.F
index a2049e0..5bff1e1 100644
--- a/fer/xeq/xeq_annotate.F
+++ b/fer/xeq/xeq_annotate.F
@@ -113,7 +113,6 @@
 
 * ... pass a the command to PPLUS
 
-c	print *, ppl_buff(:rlen)
 	CALL PPLCMD (' ',' ',0,ppl_buff(:rlen),1,1)
 
  5000	RETURN
diff --git a/fer/xeq/xeq_cancel.F b/fer/xeq/xeq_cancel.F
index cc6baf8..d4686e3 100644
--- a/fer/xeq/xeq_cancel.F
+++ b/fer/xeq/xeq_cancel.F
@@ -153,6 +153,7 @@
 * V698  4/16 *acm* For ticket 2399: Apply MODE CALENDAR settings to F axes too
 * V7    acm  6/16 Ticket 2437: Deprecating mode_6d_lab. 
 *		  Adjust output to 6-D or 4-D grids
+* V720 *acm* 5/17 Implement specific calls in place of CD_GET_VAR_INFO
 
 
 	include 'tmap_dims.parm'
@@ -197,8 +198,7 @@
      .			idim, iqual, iset, item, ivar, nth, mr,
      .			mode, cx, axis, grid, mod_cx,
      .                  TM_LENSTR, len_test, len_mchars, varid,
-     .                  dset, cat, var, mods_cx, iflag, loc, 
-     .                  nvdims, vdims(8), nvatts, vtype, all_outflag, 
+     .                  dset, cat, var, mods_cx, iflag, loc, nvatts, 
      .                  slen, iatt, igrd, iline, new_att_modulo_len,
      .			cache_size, cache_nelems, cache_preemption
 	LOGICAL		MATCH4, TM_DIGIT_TEST, IS_TEMPLATE, MATCH_TEMPLATE,
@@ -985,9 +985,7 @@ c	ENDIF
      .           attname, i, .FALSE., status)
               IF (attname .NE. '') GOTO 6240
 
-              CALL CD_GET_VAR_INFO (dset, varid, varname, vtype,
-     .                              nvdims, vdims, nvatts, coordvar, 
-     .                              all_outflag, status)
+              CALL CD_GET_VAR_NATTS (dset, varid, varname, nvatts, status)
 
 * Set all attribute output flags to 0
 
diff --git a/fer/xeq/xeq_define.F b/fer/xeq/xeq_define.F
index 4a301fd..5fbe149 100644
--- a/fer/xeq/xeq_define.F
+++ b/fer/xeq/xeq_define.F
@@ -1243,7 +1243,7 @@ C /units=months  is 1/12 of the length of the year
 	   CALL GET_CMND_DATA (  cx_last, ptype_float, status )
 	   IF ( status .NE. ferr_ok ) RETURN
            IF ( num_uvars_in_cmnd .NE. 1 .AND.
-     .         (.NOT. has_bounds) )GOTO 5580
+     .         (.NOT. has_bounds) ) GOTO 5580
            cx = is_cx(1)
 * ... make sure it's an line (not a point,plane,etc.) of data
 	   CALL GET_CX_DIMS( cx, ndim, dim )
@@ -1293,7 +1293,14 @@ C /units=months  is 1/12 of the length of the year
 * ... original start of free line memory
 	   frst_pt = next_line_mem_pos
 * ... allocate some storage for the coordinates
-	   IF (frst_pt+3*n .GT. maxlinestore) GOTO 5590
+	   IF (frst_pt+2*n+1 .GT. maxlinestore) GOTO 5590
+	   
+* ... If they gave upper- and lower-bounds we need to store all that,
+*     at least temporarily.  IF its too big suggest edges.
+	   IF (has_bounds .AND. frst_pt+3*n .GT. maxlinestore) THEN 
+	      IF (num_uvars_in_cmnd .EQ. 2 .AND. n2.EQ.2*n) GOTO 5592
+	      IF (num_uvars_in_cmnd .EQ. 3) GOTO 5592
+	   ENDIF
 
 * ... store coordinate positions (error status already checked)
            IF (has_bounds) THEN
@@ -2781,7 +2788,10 @@ c ?? if nlab=0, use next avail slot?
  5582	CALL ERRMSG( ferr_grid_definition, status,
      .		'illegal argument for DEFINE AXIS/NPOINTS', *5000 )
  5590	CALL ERRMSG( ferr_prog_limit, status,
-     .		'axis coordinate storage exhausted - restart FERRET', *5000 )
+     .		'axis coordinate storage exhausted - issue CANCEL AXIS/ALL', *5000  )
+ 5592	CALL ERRMSG( ferr_prog_limit, status,
+     .		'axis coordinate storage exhausted -  '//
+     .		'use /EDGES not /BOUNDS to save space', *5000 )
  5600   slen = TM_LENSTR1(buff3)
         CALL ERRMSG( ferr_syntax, status,
      .               'error initializing '//buff3(:slen), *5000 )
diff --git a/fer/xeq/xeq_plot.F b/fer/xeq/xeq_plot.F
index 020668c..2891193 100644
--- a/fer/xeq/xeq_plot.F
+++ b/fer/xeq/xeq_plot.F
@@ -597,7 +597,7 @@ CC       => Set values here instead.
  100       ENDDO
 
 	   IF ( buff .NE. ' ' ) THEN
-* Check for optional pareskipeses
+* Check for optional parentheses
 
               slen = TM_LENSTR1(buff)
               s1 = 1
diff --git a/fer/xeq/xeq_spawn.F b/fer/xeq/xeq_spawn.F
index 45e4586..3fd08c6 100644
--- a/fer/xeq/xeq_spawn.F
+++ b/fer/xeq/xeq_spawn.F
@@ -55,6 +55,8 @@
 *    *acm* 7/17. Test a status flag on the system call (see ticket 2453).
 *                 Results seem inconsistent, make it a warning
 * V702 3/17 Use the return status to set Ferret symbol ($SPAWN_STATUS)
+* v720 7/17 ticket 2552 Make SPAWN_STATUS return the return status, so 0=succcess
+*           SPAWN_STATUS returns the status value, used for SPAWN_OK and SPAWN_STATUS
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -65,26 +67,20 @@
 	LOGICAL IS_SECURE
 	INTEGER	status, slen
 
+        IF (IS_SECURE()) THEN
+           CALL SPLIT_LIST(pttmode_help, err_lun,
+     1                     'This command is not allowed.', 0)
+           RETURN
+        ENDIF
+
 	CALL ALL_1_ARG
 	IF ( num_args .GT. 0 ) THEN
-	   if (IS_SECURE()) then
-	      call SPLIT_LIST(pttmode_help, err_lun,
-     1	        'This command is not allowed.', 0)
-	   else
-*             Flush Fortran stdout and stderr so that any output from
-*             the system command will appear in the appropriate place.
-              CALL FLUSH(ttout_lun)
-              CALL FLUSH(err_lun)
-	      CALL SYSTEM( cmnd_buff(arg_start(1):arg_end(1)),status )
-	      IF (status .NE. 0) THEN
-	         spawn_status = .FALSE.  ! failure of unix command
-	      ELSE
-	         spawn_status = .TRUE.   ! successful unix command
-	      ENDIF
-* To handle a nonzero return as an ERROR, comment out the WARN just above, and do this.
-c	      IF (status .NE. 0) GOTO 5100   
-
-	   end if
+*          Flush Fortran stdout and stderr so that any output from
+*          the system command will appear in the appropriate place.
+           CALL FLUSH(ttout_lun)
+           CALL FLUSH(err_lun)
+           CALL SYSTEM( cmnd_buff(arg_start(1):arg_end(1)),status )
+           spawn_status = status   
 	ELSE
 * user can get choice of shells with "SPAWN csh", or whatever.
 	   CALL SPLIT_LIST(pttmode_help, err_lun,
diff --git a/fer/xeq/xeq_wire.F b/fer/xeq/xeq_wire.F
index 4e923a8..ce743ae 100644
--- a/fer/xeq/xeq_wire.F
+++ b/fer/xeq/xeq_wire.F
@@ -59,6 +59,8 @@
 *                  A time axis may be a T axis or F axis
 * V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 * PyFr *kms*  4/17 Remove SAVE_FRAME for HDF format since no longer supported
+* V72  5/17 acm* Ticket 2530 add WIRE/COLOR= 
+* PyFr *kms*  5/17 Ticket 2530 add WIRE/COLOR= /OPACITY= /THICKNESS= 
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -70,6 +72,8 @@
 	include 'xprog_state.cmn'
 	include 'xplot_state.cmn'
 	include 'xplot_setup.cmn'
+        include 'gkscm1_inc.decl'
+        include 'GKSCM1.INC'    ! wsid
 
 	
 * calling argument declarations:
@@ -78,8 +82,9 @@
 	LOGICAL	  no_range, overlay, no_labels, transpz, got_vpoint,
      .		  is_logh, is_logv, is_shade, use_cell, set_up, inc_grid
 	INTEGER	  status, qp,
-     .		  ax1_work, ax2_work, density
-	REAL	  only_val, aspect
+     .		  ax1_work, ax2_work, density, icolor, ipen
+	REAL	  only_val, aspect, vbuf
+        REAL*4    dfltthick, opacity
 	PARAMETER (aspect = 0.0) 		!kob 12/96
 	CHARACTER vpoint*24, zlims*24, zscale*24
 
@@ -137,6 +142,55 @@
            IF ( status .NE. ferr_ok ) RETURN
         ENDIF
 
+* ... /COLOR=color name or pen number
+        dfltthick = 1.0
+	qp = qual_given(slash_wire_color)
+	IF ( qp .GT. 0 ) THEN
+*          get the color ID and default thickness
+           CALL EQUAL_COLOR( cmnd_buff(qual_start(qp):qual_end(qp)),
+     .                           icolor, dfltthick, status )
+           IF ( status .NE. ferr_ok ) GOTO 5000
+	ELSE
+	   icolor = -1	! auto-select in DISP_SET_UP
+	ENDIF
+
+* ... /OPACITY=n
+        qp = qual_given( slash_wire_opacity )
+        IF ( qp .GT. 0 ) THEN
+           IF ( icolor .GE. 0 ) THEN
+               CALL EQUAL_VAL(cmnd_buff(qual_start(qp):qual_end(qp)),
+     .                        vbuf, status)
+               IF ( status .NE. ferr_ok ) GOTO 5000
+               IF ( (vbuf .LT. 0.0) .OR. (vbuf .GT. 100.0) ) GOTO 5500
+               opacity = vbuf / 100.0
+               CALL DUP_COLOR_SET_OPACITY(wsid, icolor, opacity)
+           ELSE
+*             leave as the auto-select value (-1)
+              CALL WARN ('/OPACITY ignored unless /COLOR is given')
+           ENDIF
+        ENDIF
+
+* ... CONTOUR/THICKNESS=n
+        qp = qual_given( slash_wire_thick )
+        IF ( qp .GT. 0  ) THEN
+           IF ( icolor .GE. 0 ) THEN
+              CALL EQUAL_THICK(cmnd_buff(qual_start(qp):qual_end(qp)),
+     .                         dfltthick, icolor, ipen, status)
+              IF ( status .NE. ferr_ok ) GOTO 5000
+           ELSE
+*             leave as the auto-select value (-1)
+              CALL WARN ('/THICKNESS ignored unless /COLOR is given')
+              ipen = icolor
+           ENDIF
+        ELSEIF ( icolor .GE. 0 ) THEN
+*          /THICK not given; convert color ID to pen ID using default thickness
+           CALL EQUAL_THICK(' ', dfltthick, icolor, ipen, status)
+           IF ( status .NE. ferr_ok ) GOTO 5000
+        ELSE
+*          /THICK and /COLOR not given; leave as auto-select value (-1)
+           ipen = icolor
+        ENDIF
+
 * prepare PLOT+ environment
 	CALL DISP_PREP( status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
@@ -168,7 +222,7 @@
      .				is_uvar,	
      .				workmem(ax1_work)%ptr,
      .				workmem(ax2_work)%ptr,
-     .				-1, 			! auto pen select
+     .				ipen,
      .				set_up,
      .				status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
@@ -205,4 +259,7 @@
 
 * error exits
  5000	GOTO 1000
+ 5500   CALL ERRMSG( ferr_out_of_range, status,
+     .          cmnd_buff(qual_start(qp):qual_end(qp))//pCR//
+     .          'Value from 0 to 100 must be given', *1000 )
 	END
diff --git a/fmt/cmn/netcdf_declareUnderscore.inc b/fmt/cmn/netcdf_declareUnderscore.inc
index 68f0eb4..b6a3ede 100644
--- a/fmt/cmn/netcdf_declareUnderscore.inc
+++ b/fmt/cmn/netcdf_declareUnderscore.inc
@@ -31,5 +31,5 @@
       INTEGER NF_PUT_VAR1_DOUBLE_
       INTEGER NF_PUT_VARA_DOUBLE_
       INTEGER NF_REDEF_
-      CHARACTER*1024 NF_STRERROR_
+      CHARACTER*80 NF_STRERROR_
 #endif 
diff --git a/fmt/src/NCF_Util.c b/fmt/src/NCF_Util.c
index aef5ca2..3bb0535 100644
--- a/fmt/src/NCF_Util.c
+++ b/fmt/src/NCF_Util.c
@@ -131,7 +131,7 @@ int  FORTRAN(ncf_get_dsnum)( char * );
 int  FORTRAN(ncf_get_dsname)( int *, char *);
 int  FORTRAN(ncf_get_dim_id)( int *, char *);
 
-int  FORTRAN(ncf_get_var_name)( int *, int *, char *);
+int  FORTRAN(ncf_get_var_name)( int *, int *, char *, int *);
 int  FORTRAN(ncf_get_var_id)( int *, int*, char *);
 int  FORTRAN(ncf_get_var_id_case)( int *, int*, char *);
 int  FORTRAN(ncf_get_var_axflag)( int *, int *, int *, int *);
@@ -144,6 +144,7 @@ int  FORTRAN(ncf_get_attr_from_id) (int *, int *, int * , int *, double* );
 
 int  FORTRAN(ncf_get_var_outflag) (int *, int *, int *);
 int  FORTRAN(ncf_get_var_outtype) (int *, int *, int *);
+int  FORTRAN(ncf_get_var_type) (int *, int *, int *);
 int  FORTRAN(ncf_get_var_uvflag) (int *, int *, int *);
 
 int  FORTRAN(ncf_init_uvar_dset)( int *);
@@ -309,6 +310,22 @@ int FORTRAN(ncf_get_var_outtype)( int *dset, int *varid,    int *outtype )
 }
 
 /* ----
+ * Find a variable in a dataset based on the dataset integer ID and
+ * variable id. Return the variable type.
+ */
+int FORTRAN(ncf_get_var_type)( int *dset, int *varid, int *vartype )
+{
+    ncvar *var_ptr;
+
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    *vartype = var_ptr->type;
+    return FERR_OK;
+}
+
+/* ----
  * Find a variable attribute based on its variable ID and dataset ID, and attribute name
  * Return the attribute name, type, length, and output flag
  */
@@ -419,7 +436,7 @@ int FORTRAN(ncf_get_dim_id)( int *dset, char dname[] )
  * Find a variable in a dataset based on the dataset integer ID and
  * variable id. Return the variable name.
  */
-int FORTRAN(ncf_get_var_name)( int *dset, int* ivar, char* string )
+int FORTRAN(ncf_get_var_name)( int *dset, int* ivar, char* string, int* len_name )
 {
     ncvar *var_ptr;
 
@@ -429,6 +446,7 @@ int FORTRAN(ncf_get_var_name)( int *dset, int* ivar, char* string )
         return ATOM_NOT_FOUND;
 
     strcpy(string, var_ptr->name);
+	*len_name = strlen(string);
 
     return FERR_OK;
 }
@@ -1633,11 +1651,11 @@ int FORTRAN(ncf_add_var)( int *dset, int *varid, int *type, int *coordvar,
     strcpy(att.name,"missing_value");
     att.len = 1;
 #ifdef double_p
-    att.type = NC_FLOAT;
-    att.outtype = NC_FLOAT;
-#else
     att.type = NC_DOUBLE;
     att.outtype = NC_DOUBLE;
+#else
+    att.type = NC_FLOAT;
+    att.outtype = NC_FLOAT;
 #endif
     att.vals = (double *) malloc(att.len * sizeof(double));
     att.vals[0] = *bad;
diff --git a/fmt/src/SOURCE_FILES b/fmt/src/SOURCE_FILES
index 7e63fe2..219ba59 100644
--- a/fmt/src/SOURCE_FILES
+++ b/fmt/src/SOURCE_FILES
@@ -37,6 +37,7 @@ cd_get_ds_info.F\
 cd_get_agg_var_info.F\
 cd_get_generic_bounds.F\
 cd_get_generic_grids.F\
+cd_get_id_varname.F\
 cd_get_line_direction.F\
 cd_get_missing_flag.F\
 cd_get_parent_grids.F\
@@ -47,13 +48,18 @@ cd_get_tmap_parms.F\
 cd_get_var_att_id.F\
 cd_get_var_att_info.F\
 cd_get_var_att_name.F\
+cd_get_var_dims_info.F\
 cd_get_var_id.F\
 cd_get_var_info.F\
+cd_get_var_natts.F\
 cd_get_var_outflag.F\
 cd_get_var_outtype.F\
+cd_get_var_type.F\
 cd_get_var_uvflag.F\
+cd_get_var_varname.F\
 cd_init_dset.F\
 cd_init_agg_dset.F\
+cd_isit_coordvar.F\
 cd_isit_epic.F\
 cd_isit_recdim.F\
 cd_load_dset_attrs.F\
diff --git a/fmt/src/cd_get_var_outflag.F b/fmt/src/cd_get_id_varname.F
similarity index 68%
copy from fmt/src/cd_get_var_outflag.F
copy to fmt/src/cd_get_id_varname.F
index dd03ae4..0e03c2c 100644
--- a/fmt/src/cd_get_var_outflag.F
+++ b/fmt/src/cd_get_id_varname.F
@@ -1,4 +1,4 @@
-      SUBROUTINE CD_GET_VAR_OUTFLAG (dset, varid, iflag, status)
+      SUBROUTINE CD_GET_ID_VARNAME (dset, varid, vname, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,15 +34,12 @@
 *
 *
 * Read the linked list structure for netcdf variable information: 
-* given dset and variable id return its outflag for outputting attributes
+* given dset and variable id return variable name
 
 * Programmer Ansley Manke
 * NOAA/PMEL, Seattle, WA - TMAP
 
-* V600 12/05 *acm* Attribute control.
-* V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
-* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
-
+* V7   *acm* 8/16
 
 * include files
 #include "gt_lib.parm"
@@ -50,17 +47,49 @@
 
 * Argument declarations
 
-      INTEGER dset, varid, iflag
+      CHARACTER*(*) vname
+      INTEGER dset, varid, status
 
 * Internal declarations
 
       INCLUDE 'netcdf.inc'
 
-      INTEGER NCF_GET_VAR_OUTFLAG, dset_num, status
+      INTEGER TM_LENSTR1, NCF_GET_VAR_NAME,
+     .        slen, flen, dset_num
+      CHARACTER*512 errbuff
+      PARAMETER (flen=512)      ! size of variable name string
+
+#ifdef sun
+      BYTE      fhol(flen)      ! c-type Hollerith string buffer
+#else
+      INTEGER*1 fhol(flen)      ! c-type Hollerith string buffer
+#endif 
+
+      status = atom_not_found
 
       dset_num = dset
       IF (dset_num .LT. -2) dset_num = -2
-      status = NCF_GET_VAR_OUTFLAG(dset_num, varid, iflag)
 
- 5000 RETURN
+      status = NCF_GET_VAR_NAME(dset_num, varid, fhol, slen) 
+      IF (status .NE. merr_ok) GOTO 5000
+
+* Return vname in original upper/lower case
+
+      slen = MIN(slen, flen)
+      CALL TM_CTOF_STRNG ( fhol, vname, slen )
+
+
+      RETURN
+
+* error exit
+ 5000 IF (status .NE. atom_not_found) THEN
+	CALL CD_TRANSLATE_ERROR (status, errbuff)
+	slen = TM_LENSTR1(errbuff)
+
+        CALL TM_ERRMSG
+     .     ( merr_badfileatt, status, 'CD_NF_GET_VARID', dset,
+     .        no_stepfile, errbuff, no_errstring, *5000 )
+
+      ENDIF
+      RETURN
       END
diff --git a/fmt/src/cd_get_time_units.F b/fmt/src/cd_get_time_units.F
old mode 100755
new mode 100644
diff --git a/fmt/src/cd_get_var_info.F b/fmt/src/cd_get_var_dims_info.F
similarity index 80%
copy from fmt/src/cd_get_var_info.F
copy to fmt/src/cd_get_var_dims_info.F
index 285abbc..e5c31f5 100644
--- a/fmt/src/cd_get_var_info.F
+++ b/fmt/src/cd_get_var_dims_info.F
@@ -1,5 +1,5 @@
-      SUBROUTINE CD_GET_VAR_INFO (dset, ivar, vname, vartype, 
-     .            nvdims, vdims, nvatts, coordvar, outflag, cdfstat)
+      SUBROUTINE CD_GET_VAR_DIMS_INFO (dset, ivar, vname, nvdims, 
+     .        vdims, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -41,18 +41,10 @@
 * Programmer Ansley Manke
 * NOAA/PMEL, Seattle, WA - TMAP
 
-* V600 6/05 *acm* Attribute control.
-* V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
-* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
-* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
-* V698 *sh* 1/16 -- added status check/warning, since not checked by callers
-
 * Argument declarations
 
       CHARACTER*(*) vname
-      INTEGER dset, ivar, vartype, nvdims, vdims(*), nvatts, 
-     .        outflag, cdfstat, dset_num
-      LOGICAL coordvar
+      INTEGER dset, ivar, nvdims, vdims(*), status
 
 * Internal declarations
 
@@ -60,7 +52,10 @@
       INCLUDE 'netcdf.inc'
       INCLUDE 'tmap_errors.parm'
 
-      INTEGER TM_LENSTR1, NCF_INQ_VAR, slen, flen, rev(8), i, ndx, istat
+      INTEGER TM_LENSTR1, NCF_INQ_VAR, slen, flen, rev(8), i, ndx, 
+     .	      vartype, nvatts, outflag, dset_num
+      LOGICAL coordvar
+
       PARAMETER (flen=512)      ! size of variable name string
 
 #ifdef sun
@@ -70,17 +65,24 @@
 #endif 
 
       nvdims = 0
-      nvatts = 0
-      coordvar = .FALSE.
-      cdfstat = atom_not_found
+      status = atom_not_found
 
       IF (dset .EQ. unspecified_int4) RETURN
+      
+* If the varid is not set, find it from the variable name
+      IF (ivar.LE.0 .OR. ivar.EQ.unspecified_int4) THEN
+        slen = TM_LENSTR1(vname)
+	CALL CD_GET_VAR_ID (dset, vname(:slen), ivar, status)
+      ENDIF
+
+      IF (ivar.LT.0 .OR. status.NE.pcd_ferr_ok) RETURN
+
       IF (ivar .LT. 0) RETURN
 
       dset_num = dset
-      cdfstat = NCF_INQ_VAR(dset_num, ivar, fhol, slen, vartype, 
+      status = NCF_INQ_VAR(dset_num, ivar, fhol, slen, vartype, 
      .            nvdims, nvatts, coordvar, outflag, rev)
-      IF (cdfstat .NE. pcd_ferr_ok) GOTO 5000  ! not found
+      IF (status .NE. pcd_ferr_ok) GOTO 5000  ! not found
       slen = MIN(slen, flen)
 
 * Return vname in original upper/lower case
diff --git a/fmt/src/cd_get_var_info.F b/fmt/src/cd_get_var_info.F
index 285abbc..0d059e4 100644
--- a/fmt/src/cd_get_var_info.F
+++ b/fmt/src/cd_get_var_info.F
@@ -38,6 +38,31 @@
 * dset and ivar return variable name (in its original upper/lowercase 
 * form), type, dimensions, number of attributes
 
+* See also these routines which get subsets of these. 
+* All of the below calls take either a variable id or variable name. 
+* If the varid is < 0, it looks at the variable name and gets the varid.
+*
+*  The variable dimension info, 
+*       SUBROUTINE CD_GET_VAR_DIMS_INFO (dset, ivar, vname, nvdims, 
+*     .        vdims, status)
+*
+*  The logical flag true if it is a coordinate variable
+*       LOGICAL FUNCTION CD_ISIT_COORDVAR (dset, ivar, vname, status)
+*
+*  The number of attributes the variable hase
+*      SUBROUTINE CD_GET_VAR_NATTS (dset, ivar, vname, nvatts, status)
+*
+*  The flag, output-all-attributes
+*      SUBROUTINE CD_GET_VAR_OUTFLAG (dset, ivar, vname, outflag, status)
+*
+*  The variable type, netCDF type 
+*     SUBROUTINE CD_GET_VAR_TYPE (dset, varid, vname, vtype, status)
+*
+*  The variable name as it appears in the input file or variable definition,
+*  including the original upper- or lower-case spelling
+*      SUBROUTINE CD_GET_VAR_VARNAME (dset, varid, vname, status)
+
+
 * Programmer Ansley Manke
 * NOAA/PMEL, Seattle, WA - TMAP
 
diff --git a/fmt/src/cd_get_var_outflag.F b/fmt/src/cd_get_var_natts.F
similarity index 65%
copy from fmt/src/cd_get_var_outflag.F
copy to fmt/src/cd_get_var_natts.F
index dd03ae4..0b8769c 100644
--- a/fmt/src/cd_get_var_outflag.F
+++ b/fmt/src/cd_get_var_natts.F
@@ -1,4 +1,4 @@
-      SUBROUTINE CD_GET_VAR_OUTFLAG (dset, varid, iflag, status)
+      SUBROUTINE CD_GET_VAR_NATTS (dset, ivar, vname, nvatts, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,35 +32,53 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
 * Read the linked list structure for netcdf variable information: 
-* given dset and variable id return its outflag for outputting attributes
+* given dset and variable name OR variable ID return the number of 
+* attributes the variable has.
+* If varid is 0 or -999, use vname
 
 * Programmer Ansley Manke
-* NOAA/PMEL, Seattle, WA - TMAP
-
-* V600 12/05 *acm* Attribute control.
-* V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
-* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
-
+* NOAA/PMEL, Seattle, WA - 
+* 5/2017
 
-* include files
 #include "gt_lib.parm"
-      INCLUDE "tmap_errors.parm"
+      INCLUDE 'netcdf.inc'
+      INCLUDE 'tmap_errors.parm'
 
 * Argument declarations
 
-      INTEGER dset, varid, iflag
+      CHARACTER*(*) vname
+      INTEGER dset, ivar, nvatts, status
 
 * Internal declarations
 
-      INCLUDE 'netcdf.inc'
+      INTEGER TM_LENSTR1, NCF_INQ_VAR, var_id, slen, flen, rev(8), 
+     .        vartype, nvdims, outflag, dset_num
+      LOGICAL coordvar
+      PARAMETER (flen=512)      ! size of variable name string
+
+#ifdef sun
+      BYTE      fhol(flen)      ! c-type Hollerith string buffer
+#else
+      INTEGER*1 fhol(flen)      ! c-type Hollerith string buffer
+#endif 
+
+      nvatts = 0
+      status = merr_ok
+
+      IF (dset .EQ. unspecified_int4) RETURN
+
+* If the varid is not set, find it from the variable name
+      IF (ivar.LE.0 .OR. ivar.EQ.unspecified_int4) THEN
+        slen = TM_LENSTR1(vname)
+	CALL CD_GET_VAR_ID (dset, vname(:slen), ivar, status)
+      ENDIF
 
-      INTEGER NCF_GET_VAR_OUTFLAG, dset_num, status
+      IF (ivar.LT.0 .OR. status.NE.pcd_ferr_ok) RETURN
 
       dset_num = dset
-      IF (dset_num .LT. -2) dset_num = -2
-      status = NCF_GET_VAR_OUTFLAG(dset_num, varid, iflag)
+      status = NCF_INQ_VAR(dset_num, ivar, fhol, slen, vartype, 
+     .            nvdims, nvatts, coordvar, outflag, rev)
 
- 5000 RETURN
+      RETURN
       END
diff --git a/fmt/src/cd_get_var_outflag.F b/fmt/src/cd_get_var_outflag.F
index dd03ae4..b96a7e5 100644
--- a/fmt/src/cd_get_var_outflag.F
+++ b/fmt/src/cd_get_var_outflag.F
@@ -1,4 +1,4 @@
-      SUBROUTINE CD_GET_VAR_OUTFLAG (dset, varid, iflag, status)
+      SUBROUTINE CD_GET_VAR_OUTFLAG (dset, ivar, vname, iflag, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,33 +34,45 @@
 *
 *
 * Read the linked list structure for netcdf variable information: 
-* given dset and variable id return its outflag for outputting attributes
-
-* Programmer Ansley Manke
-* NOAA/PMEL, Seattle, WA - TMAP
+* given dset and variable name OR variable ID return the flag for 
+* output-all-attributes.
+* If varid is 0 or -999, use vname
+* Argument declarations
 
-* V600 12/05 *acm* Attribute control.
-* V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
-* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+      CHARACTER*(*) vname
+      INTEGER dset, ivar, outflag, status
 
+* Internal declarations
 
-* include files
 #include "gt_lib.parm"
-      INCLUDE "tmap_errors.parm"
+      INCLUDE 'netcdf.inc'
+      INCLUDE 'tmap_errors.parm'
 
-* Argument declarations
+      INTEGER TM_LENSTR1, NCF_GET_VAR_OUTFLAG, 
+     .        slen, flen, dset_num, iflag
 
-      INTEGER dset, varid, iflag
+      PARAMETER (flen=512)      ! size of variable name string
 
-* Internal declarations
+#ifdef sun
+      BYTE      fhol(flen)      ! c-type Hollerith string buffer
+#else
+      INTEGER*1 fhol(flen)      ! c-type Hollerith string buffer
+#endif 
 
-      INCLUDE 'netcdf.inc'
+      status = merr_ok
+      iflag = 0
+      IF (dset .EQ. unspecified_int4) RETURN
+
+* If the varid is not set, find it from the variable name
+      IF (ivar.LE.0 .OR. ivar.EQ.unspecified_int4) THEN
+        slen = TM_LENSTR1(vname)
+	CALL CD_GET_VAR_ID (dset, vname(:slen), ivar, status)
+      ENDIF
 
-      INTEGER NCF_GET_VAR_OUTFLAG, dset_num, status
+      IF (ivar.LT.0 .OR. status.NE.pcd_ferr_ok) RETURN
 
       dset_num = dset
-      IF (dset_num .LT. -2) dset_num = -2
-      status = NCF_GET_VAR_OUTFLAG(dset_num, varid, iflag)
+      status = NCF_GET_VAR_OUTFLAG(dset_num, ivar, iflag)
 
- 5000 RETURN
+      RETURN
       END
diff --git a/fmt/src/cd_get_var_outflag.F b/fmt/src/cd_get_var_type.F
similarity index 78%
copy from fmt/src/cd_get_var_outflag.F
copy to fmt/src/cd_get_var_type.F
index dd03ae4..4572414 100644
--- a/fmt/src/cd_get_var_outflag.F
+++ b/fmt/src/cd_get_var_type.F
@@ -1,4 +1,4 @@
-      SUBROUTINE CD_GET_VAR_OUTFLAG (dset, varid, iflag, status)
+      SUBROUTINE CD_GET_VAR_TYPE (dset, varid, vname, vtype, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,33 +34,36 @@
 *
 *
 * Read the linked list structure for netcdf variable information: 
-* given dset and variable id return its outflag for outputting attributes
+* given dset and variable name OR variable ID return variable type.
+* If varid is 0 or -999, use vname
 
 * Programmer Ansley Manke
-* NOAA/PMEL, Seattle, WA - TMAP
-
-* V600 12/05 *acm* Attribute control.
-* V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
-* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
-
+* NOAA/PMEL, Seattle, WA - 
+* 5/2017
 
 * include files
 #include "gt_lib.parm"
       INCLUDE "tmap_errors.parm"
+      INCLUDE 'netcdf.inc'
 
 * Argument declarations
 
-      INTEGER dset, varid, iflag
-
+      CHARACTER*(*) vname
+      INTEGER dset, varid, vtype, status
+   
 * Internal declarations
+      INTEGER NCF_GET_VAR_TYPE, TM_LENSTR1
+      INTEGER slen, var_id
 
-      INCLUDE 'netcdf.inc'
-
-      INTEGER NCF_GET_VAR_OUTFLAG, dset_num, status
+      status = merr_ok
 
-      dset_num = dset
-      IF (dset_num .LT. -2) dset_num = -2
-      status = NCF_GET_VAR_OUTFLAG(dset_num, varid, iflag)
+      var_id = varid
+      IF (varid.EQ.0 .OR. varid.EQ.unspecified_int4) THEN
+        slen = TM_LENSTR1(vname)
+	CALL CD_GET_VAR_ID (dset, vname(:slen), var_id, status)
+      ENDIF
 
- 5000 RETURN
+      status = NCF_GET_VAR_TYPE(dset, var_id, vtype)
+      
+      RETURN
       END
diff --git a/fmt/src/cd_get_var_outflag.F b/fmt/src/cd_get_var_varname.F
similarity index 67%
copy from fmt/src/cd_get_var_outflag.F
copy to fmt/src/cd_get_var_varname.F
index dd03ae4..8801076 100644
--- a/fmt/src/cd_get_var_outflag.F
+++ b/fmt/src/cd_get_var_varname.F
@@ -1,4 +1,4 @@
-      SUBROUTINE CD_GET_VAR_OUTFLAG (dset, varid, iflag, status)
+      SUBROUTINE CD_GET_VAR_VARNAME (dset, varid, vname, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,15 +34,12 @@
 *
 *
 * Read the linked list structure for netcdf variable information: 
-* given dset and variable id return its outflag for outputting attributes
+* given dset and variable id return variable name
 
 * Programmer Ansley Manke
 * NOAA/PMEL, Seattle, WA - TMAP
 
-* V600 12/05 *acm* Attribute control.
-* V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
-* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
-
+* V7   *acm* 8/16
 
 * include files
 #include "gt_lib.parm"
@@ -50,17 +47,51 @@
 
 * Argument declarations
 
-      INTEGER dset, varid, iflag
+      CHARACTER*(*) vname
+      INTEGER dset, varid, status
 
 * Internal declarations
 
       INCLUDE 'netcdf.inc'
 
-      INTEGER NCF_GET_VAR_OUTFLAG, dset_num, status
+      INTEGER TM_LENSTR1, NCF_GET_VAR_NAME,
+     .        slen, flen, dset_num
+      CHARACTER*512 errbuff
+      PARAMETER (flen=512)      ! size of variable name string
+
+#ifdef sun
+      BYTE      fhol(flen)      ! c-type Hollerith string buffer
+#else
+      INTEGER*1 fhol(flen)      ! c-type Hollerith string buffer
+#endif 
+
+      status = merr_ok
 
       dset_num = dset
       IF (dset_num .LT. -2) dset_num = -2
-      status = NCF_GET_VAR_OUTFLAG(dset_num, varid, iflag)
 
- 5000 RETURN
+      slen = TM_LENSTR1(vname)
+
+      status = NCF_GET_VAR_NAME(dset_num, varid, fhol, slen) 
+      IF (status .NE. merr_ok) GOTO 5000
+
+* Return vname in original upper/lower case
+
+      slen = MIN(slen, flen)
+      CALL TM_CTOF_STRNG ( fhol, vname, slen )
+
+
+      RETURN
+
+* error exit
+ 5000 IF (status .NE. atom_not_found) THEN
+	CALL CD_TRANSLATE_ERROR (status, errbuff)
+	slen = TM_LENSTR1(errbuff)
+
+        CALL TM_ERRMSG
+     .     ( merr_badfileatt, status, 'CD_NF_GET_VARID', dset,
+     .        no_stepfile, errbuff, no_errstring, *5000 )
+
+      ENDIF
+      RETURN
       END
diff --git a/fmt/src/cd_get_var_info.F b/fmt/src/cd_isit_coordvar.F
similarity index 66%
copy from fmt/src/cd_get_var_info.F
copy to fmt/src/cd_isit_coordvar.F
index 285abbc..817e67c 100644
--- a/fmt/src/cd_get_var_info.F
+++ b/fmt/src/cd_isit_coordvar.F
@@ -1,5 +1,4 @@
-      SUBROUTINE CD_GET_VAR_INFO (dset, ivar, vname, vartype, 
-     .            nvdims, vdims, nvatts, coordvar, outflag, cdfstat)
+       LOGICAL FUNCTION CD_ISIT_COORDVAR (dset, ivar, vname, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,33 +33,30 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Read the linked list structure for netcdf variable information: given
-* dset and ivar return variable name (in its original upper/lowercase 
-* form), type, dimensions, number of attributes
+* Read the linked list structure for netcdf variable information: 
+* given dset and variable name OR variable ID return True if it is a 
+* coordinate variable.
+* If varid is 0 or -999, use vname
 
 * Programmer Ansley Manke
 * NOAA/PMEL, Seattle, WA - TMAP
 
-* V600 6/05 *acm* Attribute control.
-* V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
-* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
-* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
-* V698 *sh* 1/16 -- added status check/warning, since not checked by callers
+
+#include "gt_lib.parm"
+      INCLUDE 'netcdf.inc'
+      INCLUDE 'tmap_errors.parm'
 
 * Argument declarations
 
       CHARACTER*(*) vname
-      INTEGER dset, ivar, vartype, nvdims, vdims(*), nvatts, 
-     .        outflag, cdfstat, dset_num
-      LOGICAL coordvar
+      INTEGER dset, ivar, status
 
 * Internal declarations
 
-#include "gt_lib.parm"
-      INCLUDE 'netcdf.inc'
-      INCLUDE 'tmap_errors.parm'
+      INTEGER TM_LENSTR1, NCF_INQ_VAR, slen, flen, rev(8), 
+     .        vartype, nvdims, nvatts, outflag, dset_num
+      LOGICAL coordvar
 
-      INTEGER TM_LENSTR1, NCF_INQ_VAR, slen, flen, rev(8), i, ndx, istat
       PARAMETER (flen=512)      ! size of variable name string
 
 #ifdef sun
@@ -69,31 +65,27 @@
       INTEGER*1 fhol(flen)      ! c-type Hollerith string buffer
 #endif 
 
-      nvdims = 0
-      nvatts = 0
+      CD_ISIT_COORDVAR = .FALSE.
+
       coordvar = .FALSE.
-      cdfstat = atom_not_found
+      status = merr_ok
 
       IF (dset .EQ. unspecified_int4) RETURN
-      IF (ivar .LT. 0) RETURN
+      
+* If the varid is not set, find it from the variable name
+      IF (ivar.LE.0 .OR. ivar.EQ.unspecified_int4) THEN
+         slen = TM_LENSTR1(vname)
+	 CALL CD_GET_VAR_ID (dset, vname(:slen), ivar, status)
+      ENDIF
+
+      IF (ivar.LT.0 .OR. status.NE.pcd_ferr_ok) RETURN
 
       dset_num = dset
-      cdfstat = NCF_INQ_VAR(dset_num, ivar, fhol, slen, vartype, 
+      status = NCF_INQ_VAR(dset_num, ivar, fhol, slen, vartype, 
      .            nvdims, nvatts, coordvar, outflag, rev)
-      IF (cdfstat .NE. pcd_ferr_ok) GOTO 5000  ! not found
-      slen = MIN(slen, flen)
-
-* Return vname in original upper/lower case
-      CALL TM_CTOF_STRNG ( fhol, vname, slen )
-
-* These dims are 0,1,2,3. For Fortran want 1,2,3,4, so add 1
-* Also, the dims are in C order t,z,y,x. Reverse the order, for 
-* opposite array ordering of Fortran vs c
+      IF (status .NE. pcd_ferr_ok) GOTO 5000  ! not found
 
-      DO 100 i = 1, nvdims
-	  ndx = nvdims - i + 1
-	  vdims(i) = rev(ndx) + 1
- 100  CONTINUE   
+      CD_ISIT_COORDVAR = coordvar
 
 5000  RETURN
       END
diff --git a/fmt/src/ez_delimited_read.c b/fmt/src/ez_delimited_read.c
index 6605aa5..8ee009a 100644
--- a/fmt/src/ez_delimited_read.c
+++ b/fmt/src/ez_delimited_read.c
@@ -203,6 +203,7 @@ int decode_file (char* fname, char *recptr, char *delims, int *skip,
   FILE *fp;
   int slen, i;
   int pinc = 8/sizeof(char*);  /* pointers spaced 8 bytes apart */
+  char *startptr;
 
   *nrec = 0;
 
@@ -221,15 +222,16 @@ int decode_file (char* fname, char *recptr, char *delims, int *skip,
       if ( fgets(recptr,*reclen,fp) )
 	{
 	  /* skip leading blanks */
-	  while (*recptr==' ')
-	    recptr++;
+          startptr = recptr;
+	  while (*startptr ==' ')
+	    startptr++;
 
 	  /* overwrite the newline record terminator with a NULL */
-	  if ((slen = strlen(recptr)) > 0)
-	    if (recptr[slen-1] == '\n')
-	      recptr[slen-1] = '\0';
+	  if ((slen = strlen(startptr)) > 0)
+	    if (startptr[slen-1] == '\n')
+	      startptr[slen-1] = '\0';
 	  
-	  decodeRec(recptr, delims, nfields, field_type, *nrec,
+	  decodeRec(startptr, delims, nfields, field_type, *nrec,
 		    numeric_fields, text_fields, bad_flags, status);
 
 #ifdef diagnostic_output	  /* ************* */
@@ -279,6 +281,7 @@ int FORTRAN(anal_file) (char* fname, char *recptr, char *delims, int* skip,
   FILE *fp;
   int slen, i, rec;
   int nsuccess = 0;
+  char *startptr;
 
   fp = fopen(fname,"r");
 
@@ -302,14 +305,15 @@ int FORTRAN(anal_file) (char* fname, char *recptr, char *delims, int* skip,
 	  rec++;
 
 	  /* skip leading blanks */
-	  while (*recptr==' ')
-	    recptr++;
+          startptr = recptr;
+	  while (*startptr ==' ')
+	    startptr++;
 
 	  /* overwrite the newline record terminator with a NULL */
-	  if ((slen = strlen(recptr)) > 0)
-	    recptr[slen-1] = '\0';
+	  if ((slen = strlen(startptr)) > 0)
+	    startptr[slen-1] = '\0';
 	  
-	  analRec(recptr, delims, nfields, field_type, *max_fields);
+	  analRec(startptr, delims, nfields, field_type, *max_fields);
 
 	  /* check for unknown field types */
 	  i = 0;
diff --git a/fmt/src/ez_init_dset.F b/fmt/src/ez_init_dset.F
index 11d3f8d..cdcacc2 100644
--- a/fmt/src/ez_init_dset.F
+++ b/fmt/src/ez_init_dset.F
@@ -83,7 +83,8 @@
 * V701  7/16 *kms* Compare ds_name to char_init2048 instead of char_init1024
 * V701  7/16 *acm* Ticket 2454. If the user gives lower-case names when opening
 *                  an EZ dataset, keep those names on output, etc.
-
+* V72   6/17 *acm* Ticket 2540, inconsistencies in skipping over variables defined
+*                  in a Delimited-file read as name and type "-".
 
 	CHARACTER*4	ez_rev
 	CHARACTER*1	tab
@@ -128,7 +129,7 @@
         LOGICAL         TM_LEGAL_NAME, vars_gvn, its_delimited, coordvar
 	CHARACTER*24	type_names(maxezvars)
 	CHARACTER*128	var_names(maxezvars)
-	INTEGER*4	TM_LENSTR1, STR_SAME, STR_UPCASE,
+	INTEGER*4	TM_LENSTR1, STR_SAME, STR_CASE_BLIND_COMPARE,
      .			set_cnt, bpos, epos, ncnt, var_pos, num_names,
      .			nvar, jcnt, stp_cnt, nstp, field_type(maxezvars),
      .			num_types, i, j, name_limit, idummy(maxezvars),
@@ -330,11 +331,11 @@
   140     CONTINUE
 * No room left for new variables
 	  GOTO 9100
+
 *
 * Load variable record now
   150     var_pos = nvar
-c	  status =  STR_UPCASE (line_buff, var_names(ncnt))
-          CALL string_array_modify_upcase(ds_var_code_head,
+          CALL string_array_modify_upcase (ds_var_code_head,
      .                             nvar,
      .                             var_names(ncnt),
      .                             LEN(var_names(ncnt)) )
@@ -434,7 +435,6 @@ c	  status =  STR_UPCASE (line_buff, var_names(ncnt))
         coordvar = .FALSE.
         varid = 0
 
-	ncnt = 1
         DO 200 ivar = 1, maxvars
            IF (ds_var_setnum(ivar) .EQ. set_not_open) GOTO 210
            IF (ds_var_setnum(ivar) .EQ. dset .AND.
@@ -442,17 +442,24 @@ c	  status =  STR_UPCASE (line_buff, var_names(ncnt))
 
               varid = varid + 1
 	      IF (ds_var_type(ivar) .EQ. ptype_float) THEN
-	         vartype = NF_FLOAT
+	         vartype = NF_DOUBLE
 	      ELSEIF  (ds_var_type(ivar) .EQ. ptype_string) THEN
 	         vartype = NF_CHAR
 	      ELSE
-                 vartype = NF_FLOAT
+	         vartype = NF_DOUBLE
               ENDIF
-        
-              CALL CD_ADD_VAR( dset, var_names(ncnt), varid, 
+
+	      line_buff = ds_var_code(ivar)
+	      DO ncnt = 1, num_names
+	         IF (STR_CASE_BLIND_COMPARE(ds_var_code(ivar), var_names(ncnt)) .EQ. 0) THEN
+	            line_buff = var_names(ncnt)
+		    EXIT ! from loop
+		 ENDIF
+	      ENDDO
+
+	      CALL CD_ADD_VAR( dset, line_buff, varid, 
      .          ds_var_title(ivar), ds_var_units(ivar), vartype,
      .          coordvar, ds_bad_flag(ivar), status)
-              ncnt = ncnt + 1
            ENDIF
   200   CONTINUE
 
diff --git a/jnls/examples/color_cover.jnl b/jnls/examples/color_cover.jnl
new file mode 100644
index 0000000..e906a4e
--- /dev/null
+++ b/jnls/examples/color_cover.jnl
@@ -0,0 +1,196 @@
+! modified from ferret_icon_large.jnl to produce Users Guide cover
+! 4-22-94 *sh*
+! 8/94 - modified with updated Tao time series (??)
+!	and "Ping Chang" name removed
+! 3/6/96  - *kob* add peter map projection to levitus sst shade
+! 3/5/98  - *jc*  replacing "Peter's" with "orange peel" map
+!                 and general cleanup.
+! 8/30/00 - *acm* update dates and title for use in Ferret Users Guide 
+!                 and web pages
+! 4/2015  - *acm* Require PyFerret. Modernize (some of) the graphics comands, 
+!                 viwport definitions etc
+!                 
+
+cancel mode logo
+cancel viewports
+
+if ($program_name"|pyferret>0|ferret>1") THEN 
+  say Use PyFerret for this script
+  EXIT/SCRIPT
+endif
+set text/font=ariel
+
+set wind/asp=1.32/siz=.65
+
+! Define the various views needed
+
+define view/xlim=0,1/ylim=0.825,1 URhb 
+define view/xlim=0,0.50/ylim=0.16,0.4 llu
+define view/xlim=0,0.50/ylim=0.02,0.8 lll
+define view/xlim=0.55,0.95/ylim=0.,0.384 lr2 
+define view/axes/x=0.001,0.999/y=0.001,0.999 xyfull
+set v xyfull
+
+! line around the whole plot
+shade/nolab/nokey/vlim=0:1/hlim=0:1/lev=(0)/i=1:5/j=1:5 i+j
+plot/over/vs/nolab/line/color=black/vlim=0:1/hlim=0:1  {0.001,0.001,0.999,0.999,0.001}, {.001,.999,.999,.001,.001}
+
+! box around the title
+plot/over/vs/line/color=(10,10,66)/nolab/noax {0.05,0.05,0.96,0.96,0.05}, {.69,.83,.83,.69,.69}
+cancel region
+
+! Toga/TAO line plots
+set view URhb
+go margins 0.5 0.5 1 0.5
+
+! Get these from http://www.pmel.noaa.gov/tao/data_deliv/frames/main.html
+! Use the non-java option, TAO/TRITON (pacific) data, netCDF 4-byte CF time
+! De-select all sites, then select equatorial 110W and 140W dots.
+
+use "./taodata/sst0n110w_5day.cdf"
+use "./taodata/sst0n140w_5day.cdf"
+
+ppl color,3,0,85,0  ! a less-glaring green
+plot/set/color/t=1-mar-1990:1-apr-2017 t_25[d=1], t_25[d=2]
+
+ppl labs/nouser 2, 23,34
+ppl labs/nouser 3, 23,34
+ppl labs/nouser 4, 23,34
+ppl labs/nouser 5, 23,34
+ppl labs/nouser 6, 23,34
+ppl labs/nouser 7, 23,34
+ppl labs/nouser 8,2.5,-.7,-1, 2n,110w
+ppl labs/nouser 9,4.7,-.7,-1, 2n,140w
+ppl ylab <&deg>C
+ppl aline/nouser 1,1.9,-.65,2.4,-.65,on
+ppl aline/nouser 2,4.1,-.65,4.6,-.65,on
+ppl axlsze ,.1
+ppl txlsze .075
+ppl yaxis 20,30,5
+ppl axlint ,1
+ppl axnmtc ,4
+ppl yfor (I2)
+ppl plot
+
+annotate/norm/halign=0/xpos=0.5/ypos=0.8/siz=0.14 "TOGA - TAO SST"
+
+! Draw main title and 'orange-peel' map projection
+
+set view full
+
+! ACM change title. Use a dark blue
+plot/vs/noax/nolab/hlim=-1:0 {1,2}, {1,2}
+
+set text/color=(10,10,66) !blue
+set text/font=times/italic
+label/nouser 3.00,7.3,0,0,0.17 NOAA/ PMEL
+label/nouser 3.00,6.65,0,0,0.4 F E R R E T
+label/nouser 3.00,6.25,0,0,0.17 An Analysis Tool for Gridded and Non-Gridded Data
+
+set text/color=black
+set text/font=arial
+cancel text/italic
+
+! The label for the next plot
+label/nouser 2.75,5.6,0,0,.15 @acLevitus Climatological SST
+
+set data levitus_climatology
+set reg/z=1/l=1/
+
+go mp_mcbryde_fpp
+!go my_ocean_stripmap temp[x=@fln] "levels=(-4,32,4)" default 1 1
+go my_ocean_stripmap_tn MISSING(temp,-6) "levels=(-14,32,2)" pale_green_blue_rev 1 1
+
+ppl axset,1,1,1,1
+ppl axlabp,-1,-1
+
+! end "orange peel" <--
+
+!================================
+set view lr2
+
+GO margins 1 0.5 .2 .2 
+
+! (Replace Vents plot with a ribbon plot)
+! Data is a couple of Cathy Cosca cruises from the SOCAT database,
+! CYNS20120124, CYNS20120216, CYNS20120416
+use 9261F2F516DF9D3B2CF475C98E6DA805_netcdf
+
+use etopo20
+shade/pal=grey_dark/nokey/lev=(0,10000,10000)/nolab/set rose[X=142:258,Y=-80:72]
+   ppl axlsze .11,.11
+ppl shade
+can data  etopo20
+
+use etopo5
+shade/over/pal=grey_dark/nokey/lev=(0,10000,10000)/nolab rose
+can data  etopo5
+
+use "9261F2F516DF9D3B2CF475C98E6DA805_netcdf.nc"
+let/units=degrees_north  lat_with_gaps = separate(latitude[i=1:272], rowsize, 0)
+let/units=degrees_east  lon_with_gaps = separate(longitude[i=1:272], rowsize, 1)
+let  var_with_gaps = separate(fco2_recommended[i=1:272], rowsize, 0)
+
+ppl shaset reset
+set text/isiz=4 cbar
+plot/vs/over/nolab/ribbon/line/fast/key=hor/thick=3/\
+levels=(-inf)(160,260,20)(260,450,10)(440,560,20)(inf)/palette=rainbow/\
+ missing=black lon_with_gaps, lat_with_gaps, var_with_gaps
+
+!================================
+!define math function
+
+LET lg=10
+LET delta=.25
+
+LET a=y/lg
+LET tanh = (EXP(a)-EXP(-1*a))/(EXP(a)+EXP(-1*a))
+LET d = (1+delta*(tanh-1))^.5
+LET b = -1*x/d
+LET vhat=-1*(.5+b)*d[y=@ddc]*EXP(b)/(d*d)
+LET hhat=-1*(.5-b)*d[Y=@DDC]*EXP(b)/d
+
+DEFINE AXIS/X=0:20:.1   xax
+DEFINE AXIS/Y=-20:20:.2/unit="ROSSBY RADIUS" yax
+DEFINE AXIS/Y=-20:20:1/unit="ROSSBY RADIUS" yax
+DEFINE GRID/X=xax/Y=yax gping
+SET GRID gping
+SET REGION/X=0:4/Y=-20:20
+
+set view llu
+
+contour/set vhat
+ppl lev () (-.012,.005,.001) pen(-.012,-.001,.001,4) pen(0,.005,.001,2) dark(0)
+ppl labs
+ppl hlabs 1,.18
+! shift origin to center 3/94
+ppl origin 1.4   ! was 1.7
+ppl conset 0.14
+ppl ylab ROSSBY RADIUS
+ppl labset,,,.14
+ppl axlint,,2
+ppl contour " "
+ppl conset 0.08
+ppl labset,,,.12
+
+annotate/norm/xpos=0.5/ypos=1.1/siz=0.16/halign=0 "Perturbation Solution"
+
+!================================
+set view lll
+go margins 1.4 0.4
+ppl lev ()
+
+DEFINE AXIS/X=0:20:.25   xax
+DEFINE AXIS/Y=-20:20:1.5/unit="ROSSBY RADIUS" yax
+contour/set vhat
+ppl vpoint 0.5,-80,.004
+ppl labs
+ppl labs/nouser 1,2.0,-.35,0 -(B+1/2)*D_y*e^B/D^2       ! with sub/superscripts
+ppl hlabs 1,.16
+ppl title
+ppl labset,,,.16
+ppl axlen ,5
+ppl window off
+ppl view 1800   ! was 1500 3/93
+
+frame/file=FerretTitlePage.png
diff --git a/jnls/examples/my_ocean_stripmap_tn.jnl b/jnls/examples/my_ocean_stripmap_tn.jnl
new file mode 100644
index 0000000..67bc497
--- /dev/null
+++ b/jnls/examples/my_ocean_stripmap_tn.jnl
@@ -0,0 +1,141 @@
+\cancel mode verify
+!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++!
+! mp_ocean_stripmap.jnl --  Creates an composite map based on the predefined
+!                           map projection.  
+!		    		
+! Jonathan Callahan
+! 9/97
+!
+
+! Description:  This journal file is not "nice" and is provided as an example only.
+!
+! Usage:                   arg1          arg2            arg3     arg4   arg5
+!  go mp_ocean_stripmap [variable] [levels qualifier] [palette] [fland] [land]
+!
+! arg 1 - variable to be plotted
+! arg 2 - a Ferret style levels qualifier
+! arg 3 - the palette to use
+! arg 4 - flag determining whether mp_go_fland is turned on[1] or off[0]
+! arg 5 - flag determining whether mp_go_land is turned on[1] or off[0]
+
+! Example:
+!   use coads_clmatology
+!   go mp_sinusoidal
+!   set grid sst
+!   go mp_ocean_stripmap sst lev=(-2,20,4)(20,34,2) no_green 1 0
+!
+
+!define view/xlim=.101,.914/ylim=.692,.828 vboxo
+
+!define viewport/xlim=0,.333/ylim=0,.5 mp_ll
+!define viewport/xlim=.333,.75/ylim=0,.5 mp_lm
+!define viewport/xlim=.75,.999/ylim=0,.5 mp_lr
+!define viewport/xlim=0,.25/ylim=.5,1 mp_ul
+!define viewport/xlim=.25,.667/ylim=.5,1 mp_um
+!define viewport/xlim=.667,.999/ylim=.5,1 mp_ur
+
+!define viewport/xlim=.100,.350/ylim=.385,.510 mp_ll
+!define viewport/xlim=.350,.662/ylim=.385,.510 mp_lm
+!define viewport/xlim=.662,.850/ylim=.385,.510 mp_lr
+!define viewport/xlim=.100,.288/ylim=.510,.635 mp_ul
+!define viewport/xlim=.288,.600/ylim=.510,.635 mp_um
+!define viewport/xlim=.600,.850/ylim=.510,.635 mp_ur
+
+! move to the right by 0.04, since for thumbnail we dont plot the key.
+
+define viewport/xlim=.140,.390/ylim=.385,.511 mp_ll
+define viewport/xlim=.390,.702/ylim=.385,.511 mp_lm
+define viewport/xlim=.702,.890/ylim=.385,.511 mp_lr
+define viewport/xlim=.140,.328/ylim=.510,.635 mp_ul
+define viewport/xlim=.328,.640/ylim=.510,.635 mp_um
+define viewport/xlim=.640,.890/ylim=.510,.635 mp_ur
+
+
+set data/save
+
+set region/y=-90:0
+
+set grid $1
+palette $3
+
+set view mp_ll
+set region/x=20:140
+go margins 0,0,0,0
+shade/set_up/nolab/$2 $1, x_page, y_page
+ppl axset,0,0,0,0
+ppl axlabp,0,0
+ppl box,OFF
+ppl shakey 0
+ppl shade
+if $4 then go mp_fland 120 dark_terrestrial overlay detailed
+ppl pen 
+if $5 then go mp_land
+
+set view mp_lm
+set region/x=140:290
+go margins 0,0,0,0
+shade/set_up/nolab/$2 $1, x_page, y_page
+ppl axset,0,0,0,0
+!ppl axlabp,0,0
+ppl box,OFF
+! Key defined here because we have the full range of values
+
+! For thumbnail turn off key with 1st arg = 0,
+! ppl shakey 1,1,0.20,0,3,4,9.75,10.75,0.0,5.5
+ppl shakey 0,1,0.20,0,3,4,9.75,10.75,0.0,5.5
+ppl shade
+if $4 then go mp_fland 60 dark_terrestrial overlay detailed
+if $5 then go mp_land
+
+set view mp_lr
+set region/x=290:380
+go margins 0,0,0,0
+shade/set_up/nolab/$2 $1, x_page, y_page
+ppl axset,0,0,0,0
+ppl axlabp,0,0
+ppl box,OFF
+ppl shakey 0
+ppl shade
+if $4 then go mp_fland 60 dark_terrestrial overlay detailed
+if $5 then go mp_land
+
+set region/y=0:90
+
+set view mp_ul
+set region/x=20:110
+go margins 0,0,0,0
+shade/set_up/nolab/$2 $1, x_page, y_page
+ppl axset,0,0,0,0
+ppl axlabp,0,0
+ppl box,OFF
+ppl shakey 0
+ppl shade
+if $4 then go mp_fland 60 dark_terrestrial overlay detailed
+if $5 then go mp_land
+
+set view mp_um
+set region/x=110:260
+go margins 0,0,0,0
+shade/set_up/nolab/$2 $1, x_page, y_page
+ppl axset,0,0,0,0
+ppl axlabp,0,0
+ppl box,OFF
+ppl shakey 0
+ppl shade
+if $4 then go mp_fland 60 dark_terrestrial overlay detailed
+if $5 then go mp_land
+
+set view mp_ur
+set region/x=260:380
+go margins 0,0,0,0
+shade/set_up/nolab/$2 $1, x_page, y_page
+ppl axset,0,0,0,0
+ppl axlabp,0,0
+ppl box,OFF
+ppl shakey 0
+ppl shade
+if $4 then go mp_fland 60 dark_terrestrial overlay detailed
+if $5 then go mp_land
+
+set data/restore
+set mode/last verify
diff --git a/jnls/go/frequency_histogram2.jnl b/jnls/go/frequency_histogram2.jnl
index 537bbd7..d603174 100644
--- a/jnls/go/frequency_histogram2.jnl
+++ b/jnls/go/frequency_histogram2.jnl
@@ -97,7 +97,10 @@ IF `style EQ 0` THEN
   go bar_chart2 plot/line wt_count $6"y|X|Y|Z|T"
 ELSE
   message/cont You may want to replot with /HLIM /PALETTE or other qualifiers on PLOT:
+  message/cont Color may be same as wt_count or another variable with the same shape
+  message/cont Base is a constant value, the value with a bar of size zero.
   message/cont >>>  go bar_chart3 poly/line/nolabel/fill wt_count [color] [base]
   go bar_chart3 poly/line/nolabel/fill wt_count
+ENDIF
 
 set mode/last verify
diff --git a/palettes/inverse_rainbow.spk b/palettes/inverse_rainbow.spk
new file mode 100644
index 0000000..4f84ef8
--- /dev/null
+++ b/palettes/inverse_rainbow.spk
@@ -0,0 +1,6 @@
+    0.0   60.0    0.0    0.0
+   10.0  100.0    0.0    0.0
+   33.0  100.0  100.0    0.0
+   66.0    0.0   60.0   30.0
+   90.0   30.0   20.0  100.0
+  100.0   80.0    0.0  100.0
diff --git a/palettes/pale_green_blue_rev.spk b/palettes/pale_green_blue_rev.spk
new file mode 100644
index 0000000..2d762c7
--- /dev/null
+++ b/palettes/pale_green_blue_rev.spk
@@ -0,0 +1,9 @@
+! inverse of pale_green_blue
+     0.0     3.1    11.3    34.4
+    10.0    10.5    20.3    57.8
+    20.5    13.3    36.7    65.6
+    50.0    11.3    56.6    75.0
+    62.5    25.4    71.1    76.6
+    75.0    49.6    80.1    73.0
+    87.5    77.7    91.0    70.3
+   100.0    92.6    96.9    69.1
diff --git a/palettes/purple_blue_orange.spk b/palettes/purple_blue_orange.spk
new file mode 100644
index 0000000..7d13a1f
--- /dev/null
+++ b/palettes/purple_blue_orange.spk
@@ -0,0 +1,14 @@
+! Blue to Orange, 12 steps
+! http://geography.uoregon.edu/datagraphics/color_scales.htm
+   0.0   60     0   100
+  10.0   33    10    55
+  18.2   10    40   100
+  27.3   15    50   100
+  39.9   20    80   100
+  49.0   68    84   100
+  51.0   55     0     0 
+  63.6   80    30     1
+  72.7   90    50    40
+  81.8  100    60    20
+  90.9  100    40    10
+ 100.0  100    17     0
diff --git a/palettes/range_of_blues.spk b/palettes/range_of_blues.spk
new file mode 100644
index 0000000..d4bc8a6
--- /dev/null
+++ b/palettes/range_of_blues.spk
@@ -0,0 +1,2 @@
+  0   20  30  95
+100   50  80 100
diff --git a/palettes/ten_reordered_levels.spk b/palettes/ten_reordered_levels.spk
new file mode 100644
index 0000000..d28aef7
--- /dev/null
+++ b/palettes/ten_reordered_levels.spk
@@ -0,0 +1,13 @@
+RGB_Mapping By_level
+ 
+! Level    Red  Green   Blue
+      1    0.0    0.0  100.0  ! blue
+      2  100.0   55.0    0.0  ! orange 100.0   50.0    0.0
+      3   70.0    0.0  100.0  ! purple
+      4    0.0  100.0  100.0  ! light blue
+      5   66.0   56.0   10.0  ! olive
+      6   50.0  100.0  10.0  ! light green 
+      7  100.0    0.0  100.0  ! magenta
+      8  100.0   10.0    0.0  ! bright red
+      9    0.0   60.0   30.0  ! green
+     10  100.0   90.0    0.0  ! yellow
diff --git a/palettes/woce2_test.spk b/palettes/woce2_test.spk
new file mode 100644
index 0000000..f8011d4
--- /dev/null
+++ b/palettes/woce2_test.spk
@@ -0,0 +1,7 @@
+RGB_Mapping By_value
+ 
+! Level  Red  Green  Blue
+      2    0    20  100  !  blue 
+      3   99    60   16  !  yellow-orange
+      4   40     0    0  ! muddy dark purple     26    31   50 
+
diff --git a/ppl/complot/symbel_hershey.F b/ppl/complot/symbel_hershey.F
index 6810fb9..d3e8118 100644
--- a/ppl/complot/symbel_hershey.F
+++ b/ppl/complot/symbel_hershey.F
@@ -12,6 +12,7 @@ C**
 C**
 C       Mod *JD* 3.19.91 for unix -- use environment variable PLOTFONTS
 C       *jd* 7.92 variable IF renamed to KIF for MAC
+C       *kms* 06-2017 - change from PLOTFONTS to FER_FONTS
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -160,7 +161,7 @@ C	IF(.NOT.READIR)GOTO 2020
 	IF(.NOT.READIR) THEN
 #ifdef unix
 C *JD* Mod below fix for unix  -- use environment variable 3.19.91	
-	   call getenv ('PLOTFONTS',fontdir)
+	   call getenv ('FER_FONTS',fontdir)
        	   dirlen = lnblk (fontdir,255)
 
 C *kob* 1/02 - cygwin 1.3.x requires "\" for unix directory accesses
diff --git a/ppl/plot/plotz.F b/ppl/plot/plotz.F
index a335c90..4216bb4 100644
--- a/ppl/plot/plotz.F
+++ b/ppl/plot/plotz.F
@@ -96,6 +96,8 @@ C
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
 * V695 *acm* 3/15 Changes for PyFerret fonts - text group settings for labels along contour lines
 * V698 *acm* 3/16  Ticket 2375: outline color key in black even on an overlay.
+* V720 *acm* 5/17 Ticket 2528: If contour text group not set, apply general SET TEXT settings 
+*                 except get the contour-line color 
 
 	INCLUDE 'PARAMPL5.DAT'
 	INCLUDE 'ZGRIDD.INC'
@@ -133,8 +135,7 @@ C
 C*       *jd* Linux port 12.96 add EXTERNAL calls below
         external scale, range
 
-C	VAX/VMS
-C
+
 	DIMENSION IZMRKD(3)
 	DATA IZMRKD/12,16,3/
 
@@ -268,8 +269,9 @@ C
 	IF (IWIND.NE.0) CALL WINDOW(0.0,0.0,XLEN,YLEN)
 	CALL COLOR(IPEN(1))
 
-*  If the user has set text style with SET TEXT/CONTOUR, use those settings.
-*  Otherwise get the color fractions for the pen being used for the contours. 
+*  If the user has set text style with SET TEXT for the CONTOUR group, use those settings.
+*  Otherwise get the color fractions for the pen being used for the contours.
+*  Apply any overall SET TEXT settings (other than color). 
 
        IF (pyfont) THEN
           igroup = icont
@@ -277,6 +279,10 @@ C
              CALL FGD_GQPEN(IWIND, IPEN(1), ier, pyf_red(igroup), 
      .                pyf_grn(igroup), pyf_blu(igroup), opaqfrac)
              pyf_set(icont) = .TRUE.
+             pyf_fontname(icont) = pyfnt_fontname
+             pyf_italic(icont) = pyfnt_italic
+             pyf_bold(icont) = pyfnt_bold
+             pyf_isiz(icont) = pyfnt_isiz
              tmpsetcolor = .TRUE.
           ELSE
              tmpsetcolor = .FALSE.
@@ -386,7 +392,7 @@ C
 *          Restore settings in pyfont common
            igroup = 0
            IF ( tmpsetcolor ) THEN
-              pyf_set(icont) = .FALSE.
+              CALL CANCEL_PYTEXT_GROUP (icont)
            ENDIF
         ENDIF
 
diff --git a/ppl/plot/spwn.F b/ppl/plot/spwn.F
index 0151851..8fd4d42 100644
--- a/ppl/plot/spwn.F
+++ b/ppl/plot/spwn.F
@@ -46,14 +46,16 @@ C**
 C**
 C** v552 *acm* 3/03 Longer strings: changes for multi-line labels
 C    V6.06 ACM Write error messages to Standard Error, unit number is LERROR
+* V72  *acm*  6/17 - Call Ferret's errmsg routine for syntax
+*                    errors calling PPLUS, see ticket 2543
 
 	INCLUDE 'CMRDL.INC'
 	INCLUDE 'LUNITS.INC'
 	INCLUDE 'SYSTEM.INC'
+	include 'errmsg.parm'
 C
-	IF(.NOT.QUIETF)WRITE(lerror,998)ICOM
-998	FORMAT(' **ERROR  COMMAND : ',A12,' NOT RECOGNIZED')
-c
+	IF(.NOT.QUIETF) 
+     .    CALL ERRMSG (ferr_ppl_error, status,' Command not recognized: PPLUS '//ICOM, *5000)
 
-	RETURN
+ 5000	RETURN
 	END
diff --git a/ppl/plot/view.F b/ppl/plot/view.F
index 6f847d1..f8ec27c 100644
--- a/ppl/plot/view.F
+++ b/ppl/plot/view.F
@@ -44,7 +44,8 @@ C**
 C***********************************************************************
 C**
 C**
-#ifdef unix
+* V720 *acm*   Ticket 2530 add WIRE/COLOR= and draw the color with pen 1
+
 	INCLUDE 'PARAMPL5.DAT'
 	INCLUDE 'HD.INC'
 	INCLUDE 'CMRD.INC'
@@ -57,20 +58,7 @@ C**
 	INCLUDE 'VIEW.INC'
 	INCLUDE 'SYSTEM.INC'
 	INCLUDE 'SWITCH.INC'
-#else
-	INCLUDE 'pplinc:PARAMPL5.DAT'
-	INCLUDE 'pplinc:HD.INC'
-	INCLUDE 'pplinc:CMRD.INC'
-	INCLUDE 'pplinc:CMRDL.INC'
-	INCLUDE 'pplinc:LABELS.INC'
-	INCLUDE 'pplinc:LABCOM.INC'
-	INCLUDE 'pplinc:HAB.INC'
-	INCLUDE 'pplinc:PEN.INC'
-	INCLUDE 'pplinc:PLT.INC'
-	INCLUDE 'pplinc:VIEW.INC'
-	INCLUDE 'cmdinc:SYSTEM.INC'
-	INCLUDE 'cmdinc:SWITCH.INC'
-#endif
+
 	IF(NX.EQ.0.OR.NY.EQ.0)RETURN
 	call trans(0,xmin,ymin,xtm,ytm)
 	call trans(0,xmax,ymax,xtx,ytx)
@@ -94,7 +82,13 @@ C     TRANSFORM VIEWPOINT
 	XV=(XMX-XM)*(VIEWX-xtm)/(xtx-xtm)+XM
 	YV=(YMX-YM)*(VIEWY-ytm)/(ytx-ytm)+YM
 	ICOUNT=ICOUNT+1
+
+	CALL COLOR(IPEN(1))
+
 	CALL SURFCE(X,XM,XMX,NX,YM,YMX,NY,VEWZMN,VEWZMX,
      *	XV,YV,VIEWZ)
+
+	CALL COLOR(IPEN(0))
+
 	RETURN
 	END
diff --git a/ppl/plotlib/contur.F b/ppl/plotlib/contur.F
index 77673a0..76cd734 100644
--- a/ppl/plotlib/contur.F
+++ b/ppl/plotlib/contur.F
@@ -70,6 +70,9 @@ C  v67  2/2011 *acm* Fix ticket 1799; do contouring in larger sections.
 *                 and 4-arg plot commands. 
 * V6.95 *acm* 3/15 Changes for PyFerret fonts. 
 * V6.96 *acm*12/15 Fix ticket 2328 - contour labels spilling outside plot axes 
+* V7.2  *acm* 6/17 Fix ticket bug2544 for depth-axis plots the above needs
+*                  different tests. If clipping is implented we can get rid of
+*                  the changes for 2328 and 2544.
 
 ****************************************************************************
 C**
@@ -150,7 +153,7 @@ c     oceanography emr   dec/69
 ! of contour labels expected on any ONE contour line in the plot.
 	parameter (mlab=200)
 	real xlabp(mlab),ylabp(mlab),xlabc(mlab),ylabc(mlab),widthp
-        realxadd,lmin,lmax
+        realxadd,lmin,lmax, xloskp,xhiskp, yloskp,yhiskp
 
 C	Place init into data stmt *jd* 12.96 linux
 	integer	nlabp,nlabc
@@ -180,6 +183,23 @@ c
 	igroup = fnt_all
         IF (pyfont .AND. pyf_set(icont)) igroup = icont
 
+* For checking that labels are within the plot box	
+        IF (pyfont) THEN
+	   IF (xlo .LE. xhi) THEN 
+	      xloskp = xlo
+	      xhiskp = xhi
+	   ELSE
+	      xloskp = xhi
+	      xhiskp = xlo
+	   ENDIF
+	   IF (ylo .LE. yhi) THEN 
+	      yloskp = ylo
+	      yhiskp = yhi
+	   ELSE
+	      yloskp = yhi
+	      yhiskp = ylo
+	   ENDIF
+        ENDIF
 c
 c	apply the rotation and scaling
 c
@@ -528,7 +548,6 @@ c
 	  call kurv1(kmax-1,x(2),y(2),0.,0.,3,splxp,splyp,
      ,      spltmp,spls,spline_tension,splier)
 	  if (splier.ne.0) then
-	    print*,' error in pplmod_contur.F, call to kurv1 ',splier
 	  endif
 	endif
 ! TMAP mod, horz contour labels:
@@ -688,7 +707,6 @@ c	yendl = y(k) + width*dyy/space
 	      dxx=spacex*sign(1.0,(x(kk)-x(k)))
 	      if (xb.eq.0.) then
 	        dyy=spacey*sign(1.0,(y(kk)-y(k)))
-	        print *,' pplmod_contur.F, note xb.eq.0 in contur ',str(1:4)
 	      else
 	        dyy=ya+yb*(spacex-abs(xa))/abs(xb)
 	      endif
@@ -696,7 +714,6 @@ c	yendl = y(k) + width*dyy/space
 	      dyy=spacey*sign(1.0,(y(kk)-y(k)))
 	      if (yb.eq.0.) then
 	        dxx=spacex*sign(1.0,(x(kk)-x(k)))
-	        print *,' pplmod_contur.F, note yb.eq.0 in contur ',str(1:4)
 	      else
 	        dxx=xa+xb*(spacey-abs(ya))/abs(yb)
 	      endif
@@ -705,7 +722,6 @@ c	yendl = y(k) + width*dyy/space
 	    dyy=spacey*sign(1.0,(y(kk)-y(k)))
 	    if (yb.eq.0.) then
 	      dxx=spacex*sign(1.0,(x(kk)-x(k)))
-	      print *,' pplmod_contur.F, note yb.eq.0 in contur ',str(1:4)
 	    else
 	      dxx=xa+xb*(spacey-abs(ya))/abs(yb)
 	    endif
@@ -713,7 +729,6 @@ c	yendl = y(k) + width*dyy/space
 	    dxx=spacex*sign(1.0,(x(kk)-x(k)))
 	    if (xb.eq.0.) then
 	      dyy=spacey*sign(1.0,(y(kk)-y(k)))
-	      print *,' pplmod_contur.F, note xb.eq.0 in contur ',str(1:4)
 	    else
 	      dyy=ya+yb*(spacex-abs(xa))/abs(xb)
 	    endif
@@ -861,10 +876,10 @@ c
 	  ylab = (ylab - yoff)/ yf
 
 	  skiplab = 0
-	  if (ylab.LT.ylo .OR. ylab.GT.yhi) skiplab = 1
-	  if (xlab.LT.xlo .OR. xlab.GT.xhi) skiplab = 1
-	  if (ylabend.LT.ylo .OR. ylabend.GT.yhi) skiplab = 1
-	  if (xlabend.LT.xlo .OR. xlabend.GT.xhi) skiplab = 1
+	  if (ylab.LT.yloskp .OR. ylab.GT.yhiskp) skiplab = 1
+	  if (xlab.LT.xloskp .OR. xlab.GT.xhiskp) skiplab = 1
+	  if (ylabend.LT.yloskp .OR. ylabend.GT.yhiskp) skiplab = 1
+	  if (xlabend.LT.xloskp .OR. xlabend.GT.xhiskp) skiplab = 1
 	ENDIF
 
 	iF (skiplab.EQ.0) call symbel(xlab,ylab,angle,hgt,nchar,str)
@@ -877,18 +892,6 @@ c
 	  xlabc(nlabc)=xlab
 	  ylabc(nlabc)=ylab
 	endif
-c
-        IF (curvilinear .AND. .NOT.curvilinear) THEN
-	print *, 'IF (curvilinear .AND. .NOT.curvilinear) in contur.F'
-           x_curv(1)=(xendl-xoff)/xf
-           y_curv(1)=(yendl-yoff)/yf
-
-           CALL CURV_COORD(x_curv, y_curv, 1, 1.0, 1.0, status) ! xform the pts
-	   IF (curv_missing) GOTO 1000
-
-           xendl=x_curv(1)*xf + xoff
-           yendl=y_curv(1)*yf + yoff
-        ENDIF
 
 	call plotny(xendl,yendl,3,0)
 ! TMAP mod, spline fit:
diff --git a/ppl/symlib/cmderr.F b/ppl/symlib/cmderr.F
index ae3ef6c..8ad9443 100644
--- a/ppl/symlib/cmderr.F
+++ b/ppl/symlib/cmderr.F
@@ -80,11 +80,15 @@ C       11-Dec-2003 ACM Add the string **ERROR before the error message,
 C                       to be consistent with Ferret error messages.
 C  
 C    V6.06 ACM Write error messages to Standard Error, unit number is LERROR
+* V72  *acm*  6/17 - Call Ferret's errmsg routine for syntax errors calling 
+*                    PPLUS, see ticket 2543
 
 	INCLUDE 'SYSTEM.INC'
 	INCLUDE 'CMDCOM.INC'
 	INCLUDE 'LUNITS.INC'
+	include 'errmsg.parm'
 
+	integer TM_LENSTR1, slen, status
 	CHARACTER LINE*(*),frmt*30
 	CHARACTER ERRMES(11)*30
 	DATA ERRMES/'Symbol not found','Unmatched ''',
@@ -92,40 +96,10 @@ C    V6.06 ACM Write error messages to Standard Error, unit number is LERROR
      *	'IF levels improperly nested','No operator found',
      *	'Unmatched "','WHILE levels improperly nested',
      *	'Syntax error','Unmatched (','Maximum no. levels exceeded'/
+
 	IF(IER.EQ.0)RETURN
-	WRITE(LERROR,999)' **ERROR',ERRMES(IER)
-999	FORMAT(A8,1X,A30)
-	WRITE(LERROR,998)' ',LINE(:ILEN)
-998	FORMAT(A1,1X,A)
-	IF(IPOS.LE.ILEN)THEN
-	    WRITE(FRMT,997)IPOS
-997	    FORMAT('(A1,',I3.3,'X,''^'')')
-	    WRITE(LERROR,FRMT)' '
-	ENDIF
-	IF(ECHOF)THEN
-	    WRITE(ECHLUN,999)'C ERROR',ERRMES(IER)
-	    WRITE(ECHLUN,998)'C',LINE(:ILEN)
-	    IF(IPOS.LE.ILEN)WRITE(ECHLUN,FRMT)'C'
-	ENDIF
+	slen = TM_LENSTR1(ERRMES(IER))
+        CALL ERRMSG (ferr_ppl_error, status, ERRMES(IER)(:slen)//' PPLUS '//LINE(:ILEN), *5000)
 
-C *kob* 4/99 minor mod - add (0) to exit call
-C *js* 9/00 Problems with exit call in cygwin, just halt instead
-#ifdef __CYGWIN__
-	IF(BATCHF)STOP
-#else
-	IF(BATCHF)CALL EXIT(0)
-#endif
-	IF(.NOT.TERMF)THEN
-C
-C	     If not interactive abort command file
-C	     Return to lowest level
-C
-	    IF(.NOT.ECHOF)THEN
-		WRITE(ECHLUN,999)'C **ERROR',ERRMES(IER)
-		WRITE(ECHLUN,998)'C',LINE(:ILEN)
-		IF(IPOS.LE.ILEN)WRITE(ECHLUN,FRMT)'C'
-	    ENDIF
-	    CALL ATFLSH
-	ENDIF
-	RETURN
+ 5000	RETURN
 	END
diff --git a/ppl/tmap_inc/taxis_inc.decl b/ppl/tmap_inc/taxis_inc.decl
index f07e500..050594d 100644
--- a/ppl/tmap_inc/taxis_inc.decl
+++ b/ppl/tmap_inc/taxis_inc.decl
@@ -7,33 +7,33 @@
 *                   its delta-t for time overlay plots, and clear in disp_init
 
 *                  
-	REAL	TLO
-	REAL	DT
-	REAL	DT_SAVE
-	REAL	TCSIZE
+	REAL*4	TLO
+	REAL*4	DT
+	REAL*4	DT_SAVE
+	REAL*4	TCSIZE
 	INTEGER	ITYPET
 	INTEGER	NMTCT
 	INTEGER	LABELT
 	INTEGER	IFDB
 	INTEGER	ISDB
 	INTEGER	ITFLG
-	REAL	VANG
+	REAL*4	VANG
 	INTEGER	IVFLG
 	INTEGER	IAUTOT
 	INTEGER	ITXTPE
 	INTEGER	ITXLBP
 
 	
-	REAL	TLOb
-	REAL	DTb
-	REAL	TCSIZEb
+	REAL*4	TLOb
+	REAL*4	DTb
+	REAL*4	TCSIZEb
 	INTEGER	ITYPETb
 	INTEGER	NMTCTb
 	INTEGER	LABELTb
 	INTEGER	IFDBb
 	INTEGER	ISDBb
 	INTEGER	ITFLGb
-	REAL	VANGb
+	REAL*4	VANGb
 	INTEGER	IVFLGb
 	INTEGER	IAUTOTb
 	INTEGER	ITXTPEb
diff --git a/ppl/tmapadds/fillpol.F b/ppl/tmapadds/fillpol.F
index e34b419..92b079c 100644
--- a/ppl/tmapadds/fillpol.F
+++ b/ppl/tmapadds/fillpol.F
@@ -77,6 +77,8 @@ C
 * V62  *acm* 5/09 Fixing bug 1661: if the plot is TRANSPOSED, then apply 
 *                 xinv, yinv to the opposite axis.
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
+* V72  *acm* 6/17  PyFerret ticket 2542, check for zero-extent on polygons before
+*                  calling graphics routines
 
         IMPLICIT NONE
         include         'xinterrupt.cmn' ! 1/89 *sh*
@@ -141,7 +143,7 @@ C
 *jd*
 	real            zzmin, zzmax, zt
 	integer         status, nlm1
-	real		dz,znp,zmp
+	real		dz,znp,zmp, x1val, y1val, xdel, ydel 
 	integer		i,j,uprdn, llen, ptsbase
 	logical         line_it, fill_it
         integer         slen1, slen2, ICNT, ii, IY
@@ -292,6 +294,14 @@ C      set already.
 * note: all points in the polygon are guaranteed to be "valid"
 	   nvertex = 0
 
+* Check that the polygon has a nonzero size in both directions
+* PyFerret fails e.g. on a zero-height rectangle. This is not a 
+* perfect test but will catch most cases.
+
+           x1val = x(IBASE+1)
+           y1val = x(iy+IBASE+1)
+	   xdel = 0.
+	   ydel = 0.
 	   DO 150 J=IBASE+1,IBASE+llen
 !	      CALL TRANS(I,X(J),X(IY+J),XT,YT)
 !	      nvertex = nvertex + 1
@@ -300,7 +310,12 @@ C      set already.
 	      nvertex = nvertex + 1
 	      x(xvertexbase+nvertex-1) = x(j)
 	      x(ypolybase+nvertex-1) = x(iy+j)
+              IF (j .GT. ibase+1) THEN
+	         xdel = MAX( xdel, ABS(x1val-x(j)) )
+	         ydel = MAX( ydel, ABS(y1val-x(iy+j)) )
+              ENDIF
  150	   CONTINUE
+	   IF (xdel.LT.epsilon .OR. ydel.LT.epsilon) GOTO 199
 
 	   if (fill_it) then
 *             Determine the color index for the fill
diff --git a/ppl/tmapadds/key.F b/ppl/tmapadds/key.F
index 346d3f9..5b64a12 100644
--- a/ppl/tmapadds/key.F
+++ b/ppl/tmapadds/key.F
@@ -122,6 +122,7 @@ c	        IF (NL.EQ.1 .AND. J.LE.2) ZLEV(2) = zlev(1)
 * V701 *acm*  8/16 Fix ticket 2440 when SHAKEY settings were made.
 * V71  *acm*  1/17 Fix ticket 2491: labels on colorbar when it's a ribbon/vlog, ribbon/hlog plot
 * V71  *acm*  1/17 Fix ticket 2491: Tweak to key labels, code adding .0 to numbers for consistency
+* V72  *acm*  7/17 See example, ticket 2550 small exponential labels need more precision in key labels
 
         IMPLICIT NONE
 
@@ -165,8 +166,8 @@ c	        IF (NL.EQ.1 .AND. J.LE.2) ZLEV(2) = zlev(1)
 	character*12	text, TM_FMT_SNGL, TM_FMT_SNGL_DIGITS, 
      .			txt_out, blanks
         character*20    buff
-	logical		TM_FPEQ_SNGL, TM_DFPEQ, ITSA_AXIS_VIEW, windof_hold, 
-     .                  check_0, increase_digits, nofill, cont_key_keep, 
+	logical		TM_FPEQ_SNGL, TM_DFPEQ, ITSA_AXIS_VIEW, TM_HAS_STRING,  
+     .                  windof_hold, check_0, increase_digits, nofill, cont_key_keep, 
      .                  no_lines, is_viewport, have_neg
 
 	external	TM_FMT_SNGL, TM_FMT_SNGL_DIGITS
@@ -263,6 +264,8 @@ c	        IF (NL.EQ.1 .AND. J.LE.2) ZLEV(2) = zlev(1)
 
              READ (buff,*) val_n
              IF ( TM_DFPEQ(val_last, val_n) ) increase_digits = .TRUE.
+             IF ( TM_HAS_STRING(buff, 'E-') ) increase_digits = .TRUE.
+
              val_last = val_n
              IF (max_len .lt. str_len) max_len = str_len
 	     
diff --git a/ppl/tmapadds/set_levels_shade_fill.F b/ppl/tmapadds/set_levels_shade_fill.F
index 227e673..9ed04cc 100644
--- a/ppl/tmapadds/set_levels_shade_fill.F
+++ b/ppl/tmapadds/set_levels_shade_fill.F
@@ -41,6 +41,8 @@
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
 * V697 *acm* 12/15 Fix ticket 2326: single level plus (inf) and/or (-inf)
 * V698 *acm*  2/16 Send info that the levels are from a histogram to setlab_syms
+* V720 *acm*  7/17 Ticket 2250: small-valued data caused an error computing number
+*                  of interval-edges NLEV2
 
         IMPLICIT NONE
 	include		'parampl5_dat.decl'
@@ -193,7 +195,12 @@ C       values and also the appropriate delta value. (ZNP, ZMP, DZ)
 	      endif
 
               IF (.NOT.openlev) THEN
-	      NLEV2=(ZMP-ZNP)/DZ+1 
+
+* nlev2 is 1 more than the # of intervals; it is the edges of the intervals, i.e. 
+* upper-limit of the uppermost interval minus the lower-limit of the low cell, 
+* and then add 1.5 for correct roundoff.
+
+	      NLEV2 = (ZMP-ZNP)/DZ + 1.5
 
 c *acm* 4/08 Set jj as in plotz
 
diff --git a/ppl/tmapadds/setlab_syms.F b/ppl/tmapadds/setlab_syms.F
index d8149d6..e1811c4 100644
--- a/ppl/tmapadds/setlab_syms.F
+++ b/ppl/tmapadds/setlab_syms.F
@@ -45,6 +45,7 @@
 * V698 *acm*  2/16 Fix the LEV_DEL computation which was wrong for irregular levels.
 *                  Clear out-of-date symbols, for variance-based or histogram
 *                  levels on previous plots
+* V720 *acm*  7/17 Ticket 2250: precision errors when data has very small values
 
 *    LEV_MIN  - lowest level used on last CONTOUR, SHADE, or FILL call.
 *    LEV_MAX -  highest level used last
@@ -68,31 +69,44 @@
 * Internal arguments
 
       REAL zmax, zmin, dz, diff, eps
+      REAL*8 zmaxD, zminD
 
-      CHARACTER ppl_buff*2048, TM_FMT_SNGL*10, buff*10, symbuff*120
+      CHARACTER ppl_buff*2048, TM_FMT_SNGL*10, TM_FMT*10, 
+     .          buff*10, symbuff*120,buffmin*10, buffmax*10
       INTEGER TM_LENSTR1, STR_SAME, i, ier, ilen, slen, ist
       LOGICAL TM_FPEQ_EPS_SNGL, reglevs
 
+
+
 * Lowest and highest Z level
 
       zmin = zlevels(1)
-      buff = TM_FMT_SNGL(zmin, -2, 10, slen)
-      IF (neginf) buff = 'open-ended'
+      buffmin = TM_FMT_SNGL(zmin, -2, 10, slen)
+      IF (neginf) buffmin = 'open-ended'
+
+      zmax = zlevels(nlevels)
+      buffmax = TM_FMT_SNGL(zmax, -2, 10, slen)
+      IF (posinf) buffmax = 'open-ended'
+
+* An epsilon for equal-sized deltas, need not be too tight a test
+      eps = 0.01* (zmax - zmin)/FLOAT(nlevels)
+
+      IF ( STR_SAME(buffmin, buffmax).EQ.0 .AND. .NOT.neginf .AND.
+     .    .NOT.TM_FPEQ_EPS_SNGL(eps, zmin, zmax) ) THEN
+	 zminD = zmin
+         zmaxD = zmax 
+	 buffmin = TM_FMT(zminD, 2, 10, slen)
+	 buffmax = TM_FMT(zmaxD, 2, 10, slen)
+      ENDIF
 
-      ppl_buff = 'LEV_MIN '//buff
+      ppl_buff = 'LEV_MIN '//buffmin
       ilen = TM_LENSTR1(ppl_buff)
       ier = 0
       ist = 0
       CALL SETSYM (ppl_buff, ilen, ier, ist)
 
-      zmax = zlevels(nlevels)
-      buff = TM_FMT_SNGL(zmax, -2, 10, slen)
-      IF (posinf) buff = 'open-ended'
-
-* An epsilon for equal-sized deltas, need not be too tight a test
-      eps = 0.01* (zmax - zmin)/FLOAT(nlevels)
 
-      ppl_buff = 'LEV_MAX '//buff
+      ppl_buff = 'LEV_MAX '//buffmax
       ilen = TM_LENSTR1(ppl_buff)
       ier = 0
       ist = 0
@@ -119,6 +133,8 @@
 * Otherwise, check if levels are regularly spaced 
 
       ELSE
+
+
          dz = zlevels(2) - zlevels(1)
       
          IF (nlevels .EQ. 1) THEN
@@ -141,6 +157,13 @@
 
       ENDIF
 
+      IF (STR_SAME(buff, '0') .EQ. 0 .AND. reglevs) THEN
+	 zminD = zlevels(1)
+         zmaxD = zlevels(2)
+	 zminD = zmaxD - zminD
+	 buff = TM_FMT(zminD, 2, 10, slen)
+      ENDIF
+
       ppl_buff = 'LEV_DEL '//buff
       ilen = TM_LENSTR1(ppl_buff)
       ier = 0
diff --git a/pyfermod/libpyferret.c b/pyfermod/libpyferret.c
index a20466c..c98b887 100644
--- a/pyfermod/libpyferret.c
+++ b/pyfermod/libpyferret.c
@@ -383,7 +383,7 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
     if ( pplMemory == NULL )
         return PyErr_NoMemory();
     set_ppl_memory(pplMemory, pplMemSize);
-    FORTRAN(init_memory)();
+    FORTRAN(init_memory)(&mwMemSize);
 
     if ( (metaname != NULL) || (unmappedFlag != 0) ) {
        /*
diff --git a/pyfermod/pyferret.h b/pyfermod/pyferret.h
index ecd49bd..4a80b37 100644
--- a/pyfermod/pyferret.h
+++ b/pyfermod/pyferret.h
@@ -101,12 +101,11 @@ void FORTRAN(get_time_axis_num)(int *axisnum, int *axisstart, int *axisend, char
                         CALTYPE *calendartype, int axiscoords[][6], int *numcoords,
                         char *errmsg, int *lenerrmsg, int maxlen_axisname, int maxlen_errmsg);
 void FORTRAN(init_journal)(int *status);
-void FORTRAN(init_memory)(void);
+void FORTRAN(init_memory)(double *maxmegawords);
 void FORTRAN(initialize)(void);
 void FORTRAN(no_journal)(void);
 void FORTRAN(proclaim_c)(int *ttoutLun, char *leader, int *quiet);
 void FORTRAN(save_ppl_memory_size)(int *ppl_mem_size);
-void FORTRAN(init_memory)(void);
 void FORTRAN(set_one_cmnd_mode)(int *one_cmnd_mode_int);
 void FORTRAN(turnoff_verify)(int *status);
 
diff --git a/setup.py b/setup.py
index b784cab..49a688f 100644
--- a/setup.py
+++ b/setup.py
@@ -88,8 +88,6 @@ if buildtype != "intel-mac":
     lib_list.extend(fer_lib_list)
     lib_list.extend(fer_lib_list)
     lib_list.extend(fer_lib_list)
-# Add required system libraries to the list to link in
-lib_list.append("python%d.%d" % sys.version_info[:2])
 
 # Linking in the rest of the system libraries were moved to addn_link_flags
 # in order to make sure the appropriate netcdff, netcdf, hdf5_hl, hdf5, and
@@ -103,23 +101,23 @@ addn_link_args = [ ]
 # The hdf5 libraries are only used to resolve netcdf library function
 # calls when statically linking in the netcdf libraries.
 if hdf5_libdir:
-    netcdff_lib = "-Wl," + os.path.join(netcdf4_libdir, "libnetcdff.a")
+    netcdff_lib = os.path.join(netcdf4_libdir, "libnetcdff.a")
     addn_link_args.append(netcdff_lib)
-    netcdf_lib = "-Wl," + os.path.join(netcdf4_libdir, "libnetcdf.a")
+    netcdf_lib = os.path.join(netcdf4_libdir, "libnetcdf.a")
     addn_link_args.append(netcdf_lib)
-    hdf5_hl_lib = "-Wl," + os.path.join(hdf5_libdir, "libhdf5_hl.a")
+    hdf5_hl_lib = os.path.join(hdf5_libdir, "libhdf5_hl.a")
     addn_link_args.append(hdf5_hl_lib)
-    hdf5_lib = "-Wl," + os.path.join(hdf5_libdir, "libhdf5.a")
+    hdf5_lib = os.path.join(hdf5_libdir, "libhdf5.a")
     addn_link_args.append(hdf5_lib)
 else:
     addn_link_args.extend([ "-lnetcdff", "-lnetcdf" ])
 
 # Link to the cairo library and the libraries it requires.
 if cairo_libdir:
-    cairo_lib = "-Wl," + os.path.join(cairo_libdir, "libcairo.a")
+    cairo_lib = os.path.join(cairo_libdir, "libcairo.a")
     addn_link_args.append(cairo_lib);
     if pixman_libdir:
-        pixman_lib = "-Wl," + os.path.join(pixman_libdir, "libpixman-1.a")
+        pixman_lib = os.path.join(pixman_libdir, "libpixman-1.a")
     else:
         pixman_lib = "-lpixman-1"
     addn_link_args.append(pixman_lib);
diff --git a/site_specific.mk b/site_specific.mk
index bbdef30..eea68c9 100644
--- a/site_specific.mk
+++ b/site_specific.mk
@@ -1,5 +1,6 @@
 ## Site-dependent definitions included in Makefiles
-## Also verify the values in external_functions/ef_utility/site_specific.mk
+
+## !!! Also verify the values in external_functions/ef_utility/site_specific.mk !!!
 
 ## =========================
 ## Full path name of the directory containing this file (the ferret root directory).
@@ -7,7 +8,7 @@
 ## =========================
 DIR_PREFIX = $(HOME)/build/pyferret_dev
 # DIR_PREFIX = $(HOME)/git/PyFerret
-# DIR_PREFIX = $(HOME)/pyferret_dev
+# DIR_PREFIX = $(HOME)/svn/pyferret
 
 ## =========================
 ## Installation directory for built PyFerret.  Using the "install"
@@ -26,8 +27,8 @@ INSTALL_FER_DIR = $(HOME)/ferret_distributions/rhel6_64
 ##   i386-linux-gnu    for 32-bit Ubuntu and many "free" Linux systems
 ##   intel-mac         for Mac OSX
 ## =========================
-BUILDTYPE = $(HOSTTYPE)
-# BUILDTYPE = x86_64-linux
+# BUILDTYPE = $(HOSTTYPE)
+BUILDTYPE = x86_64-linux
 # BUILDTYPE = x86_64-linux-gnu
 # BUILDTYPE = i386-linux
 # BUILDTYPE = i386-linux-gnu
@@ -52,7 +53,9 @@ PYTHONINCDIR := $(shell $(PYTHON_EXE) -c "from __future__ import print_function
 ## of cairo (v1.8 or later) can be used, but raster images from
 ## -nodisplay may look a little fuzzy unless -gif is specified.
 ## =========================
-CAIRO_DIR = /usr/local/cairo-1.14.4
+# CAIRO_DIR = /usr/local/cairo-1.14.10
+CAIRO_DIR = /usr/local/cairo-1.14.10-64
+# CAIRO_DIR = /usr/local/cairo-1.14.10-32
 # CAIRO_DIR = $(HOME)/.local
 # CAIRO_DIR = /usr/local
 # CAIRO_DIR =
@@ -63,8 +66,9 @@ CAIRO_DIR = /usr/local/cairo-1.14.4
 ## cairo library.  If blank, or if CAIRO_DIR is blank, the system's
 ## pixman-1 shared library will be used.
 ## =========================
-PIXMAN_DIR = /usr/local/cairo-1.14.4
-# PIXMAN_DIR = /usr/local/pixman-1-0.34.0
+# PIXMAN_DIR = /usr/local/pixman-0.34.0
+PIXMAN_DIR = /usr/local/pixman-0.34.0-64
+# PIXMAN_DIR = /usr/local/pixman-0.34.0-32
 # PIXMAN_DIR = $(HOME)/.local
 # PIXMAN_DIR = /usr/local
 # PIXMAN_DIR =
@@ -84,7 +88,9 @@ PANGO_DIR =
 ## and lib or lib64 subdirectories).  To link to NetCDF shared-object 
 ## libraries, do not give a location for HDF5_DIR.
 ## =========================
-HDF5_DIR = /usr/local/hdf5-1.8.16
+# HDF5_DIR = /usr/local/hdf5-1.8.18
+HDF5_DIR = /usr/local/hdf5-1.8.18-64
+# HDF5_DIR = /usr/local/hdf5-1.8.18-32
 # HDF5_DIR = $(HOME)/.local
 # HDF5_DIR = /usr/local
 # HDF5_DIR =
@@ -102,7 +108,9 @@ COMPRESS_LIB = z
 ## (above) is blank, the netcdf shared-object (.so) libraries will be
 ## used;  otherwise the netcdf static (.a) libraries will be used.
 ## =========================
-NETCDF4_DIR = /usr/local/netcdf-4.4.0
+# NETCDF4_DIR = /usr/local/netcdf-4.4.1.1
+NETCDF4_DIR = /usr/local/netcdf-4.4.1.1-64
+# NETCDF4_DIR = /usr/local/netcdf-4.4.1.1-32
 # NETCDF4_DIR = $(HOME)/.local
 # NETCDF4_DIR = /usr/local
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/pyferret.git



More information about the debian-science-commits mailing list